1. Field of the Invention
The present invention relates to an image forming apparatus capable of handling a two dimensional code, a control method thereof, and a storage medium therefor.
2. Description of the Related Art
A technology (as disclosed in, for example, Japanese Patent Laid-Open No. 2003-280469) of restricting a copy of a printed material by using a two dimensional code has heretofore been known. In this conventional technology, the following processings are performed.
(1) First, a password is encoded so that a two dimensional code is obtained, and a printed material on which the obtained two dimensional code is printed is scanned by a scanner of an image forming apparatus.
(2) Next, if the two dimensional code is detected in image data obtained by the scanning, the two dimensional code is decoded so that the password is obtained.
(3) Thereafter, a user of the image forming apparatus is requested to input a password. At this time, the password inputted by the user through an operating section of the image forming apparatus is compared with the password obtained by decoding the two dimensional code, and only if both match each other, the image data obtained by the scanning are stored in a storage device of the image forming apparatus.
In this manner, the above-described conventional technology provides a system in which a copy is restricted when image data is to be stored in the storage device of the image forming apparatus.
In the above-described conventional technology, a copy can be restricted when a control is performed, as a job, in which a printed material with a two dimensional code printed thereon is read and outputted. However, a copy cannot necessarily be prevented in the following case.
For example, suppose that there is an image forming apparatus which performs two controls with different jobs: one being performed on the storing, in a storage device of the image forming apparatus, of image data obtained by reading a printed material with a printed two dimensional code; the other being performed on the outputting of the image data from the storage device of the image forming apparatus. In such an image forming apparatus, when the image data stored in the storage device are transmitted to an external device by file transfer or by fax, there is a problem that a copy can be made with use of printing means on the side of the external device.
Further, when browsing image data of an image forming apparatus using a display function of the image forming apparatus, there is no problem; however, when browsing image data of the image forming apparatus using an external device, there is a problem where a copy can be made using screenshot means and printing means of the external device.
An object of the invention is to solve the above-described problems. Therefore, to solve the above-described problems, the invention can be configured as follows.
In the first aspect of the present invention, there is provided an image forming apparatus including a display unit, comprising: a password obtaining unit configured to decode a two dimensional code within an image so as to obtain a password; a storage control unit configured to perform a control to store the image in a storage unit if the password obtained by the password obtaining unit matches a password entered through an operating section; and a control unit configured to perform, when an instruction is given by a user to display the image stored in the storage unit on the display unit, a control to display the image on the display unit without requesting an entry of the password obtained by the password obtaining unit, and to perform, when an instruction is given by a user to display the image stored in the storage unit on a display unit of an external device, other than the display unit, a control to request an entry of the password obtained by the password obtaining unit for displaying the image on the display unit of the external device.
In the second aspect of the present invention, there is provided a control method for an image forming apparatus including a display unit, comprising the steps of: obtaining a password by decoding a two dimensional code within an image; performing a control to store the image in a storage unit if the password obtained in the step of obtaining the password matches a password entered through an operating section; and performing, when an instruction is given by a user to display the image stored in the storage unit on the display unit, a control to display the image on the display unit without requesting an entry of the password obtained in the step of obtaining the password, and performing, when an instruction is given by a user to display the image stored in the storage unit on a display unit of an external device, other than the display unit, a control to request an entry of the password obtained in the step of obtaining the password for displaying the image on the display unit of the external device.
In the third aspect of the present invention, there is provided a computer-readable storage medium with a control program stored therein, the control program causing a control unit included in an image forming apparatus to perform the steps of: obtaining a password by decoding a two dimensional code within an image and; performing a control to store the image in a storage unit if the password obtained in the step of obtaining the password matches a password entered through an operating section; and performing, when an instruction is given by a user to display the image stored in the storage unit on the display unit, a control to display the image on the display unit without requesting an entry of the password obtained in the step of obtaining the password, and performing, when an instruction is given by a user to display the image stored in the storage unit on a display unit of an external device, other than the display unit, a control to request an entry of the password obtained in the step of obtaining the password for displaying the image on the display unit of the external device.
In the forth aspect of the present invention, there is provided an image forming apparatus comprising: a password obtaining unit configured to decode a two dimensional code within an image so as to obtain a password; and a setting unit configured to set, when transmitting data of the image to the outside, the password obtained by the password obtaining unit as a password for the entire image.
In addition, the steps in the respective control methods of the image forming apparatus in accordance with the present invention can be configured as a program which is performed by a computer serving as control means included in the image forming apparatus. Then, causing the computer to read the program enables the computer to carry out the control method. In addition, the program can be read into the computer via a computer readable storage medium that records the program.
In accordance with the invention, the image forming apparatus which restricts an unauthorized copy of a printed material with a two dimensional code printed thereon can restrict copying at the time when an image is formed from image data obtained by scanning the printed material or at the time when the stored image data are browsed on an external device. Therefore, restraining performance to an unauthorized copy of an important document can be improved.
Further features of the present invention will become apparent from the following description of exemplary embodiments (with reference to the attached drawings).
First, an embodiment of the invention is described in detail with reference to the accompanying drawings.
In an image forming system of this embodiment shown in
The host computer (hereinafter referred to as a PC) 40 includes functions of a personal computer. This PC 40 can transmit and receive files and e-mails using FTP and SMB protocol via a LAN 50 and a WAN. In addition, the PC 40 can issue a print command to the image forming apparatuses 10, 20, and 30 via a printer driver. Moreover, the PC 40 can display image data stored in the image forming apparatus on a monitor of the PC 40.
The image forming apparatuses 10 and 20 have the same configuration. The image forming apparatus 30 includes only a print function, but does not include a scanner, which each of the image forming apparatuses 10 and 20 includes. For the sake of simplicity, of the image forming apparatuses 10 and 20, attention is given to the image forming apparatus 10, a configuration of which is described in detail below.
The image forming apparatus 10 includes a scanner section 13 as an image input device, a printer section 14 as an image output device, a controller 11 for performing operation control on the entire image forming apparatus 10, and an operating section 12 as a user interface (UI). The scanner section 13 inputs a reflected light obtained by exposing and scanning an image on an original document into a CCD so as to convert information of the image into an electric signal. The scanner section 13, further, converts the electric signal into a luminance signal consisting of the R, G, and B colors, and outputs the luminance signal to the controller 11 as image data. The printer section 14 is an image forming device which forms the image data received from the controller 11 on a sheet of paper. Incidentally, as an image forming system in this embodiment, for example, the following methods can be employed: an electrophotographic system which uses a photoconductive drum or a photoconductive belt, or an ink-jet system which expels inks from a minute nozzle array to print on a sheet of paper. However, the image forming system is not limited to these systems.
Next, a detailed configuration of the controller 11 of the image forming apparatus 10 is described with reference to
The controller 11 is electrically connected to the scanner section 13 and the printer section 14, and meanwhile, it is also connected to the PC 40 or an external device via the LAN 50 or a WAN 331. This enables image data and device information to be inputted and outputted.
A CPU 201 achieves centralized control of accesses to individual devices connected thereto according to control programs and the like stored in a ROM 203, and centralized control of various processings carried out inside the controller 11. A RAM 202 is a system work memory for the operation of the CPU 201 and is also a memory for temporarily storing image data. This RAM 202 includes a nonvolatile SRAM in which stored contents are retained even after a power off and a DRAM in which stored contents are erased after a power off. In the ROM 203, a boot program and the like for the apparatus are stored. An HDD 204 is a hard disk drive, and is capable of storing therein system software and image data.
An operating section I/F 205 is an interface section which connects a system bus 210 and an operating section 12. The operating section I/F 205 receives image data to be displayed on the operating section 12 from the system bus 210, and outputs the image data to the operating section 12. In addition, the operating section I/F 205 outputs information inputted from the operating section 12 to the system bus 210.
A network I/F 206 is connected to the LAN 50 and the system bus 210 to enable information to be inputted and outputted through the network I/F 206. A modem 207 is connected to a WAN 331 and the system bus 210 to enable information to be inputted and outputted through the modem 207. An image bus 230 is a transmission line for transmitting and receiving image data, and consists of a PCI bus or IEEE 1394.
A scanner image processing section 212 detects whether or not there is a two dimensional code on image data received from the scanner section 13 via a scanner I/F 211, and if detecting a two dimensional code, the scanner image processing section 212 as a password obtaining means decodes the two dimensional code to obtain a password. The CPU 201 as a storing control means associates the decoding result with the image data received from the scanner section 13, and stores the decoding result in the RAM 202 or in the HDD 204. In addition, the CPU 201 encodes predetermined information inputted from a virtual keyboard or the like of the operating section 12 so as to generate a two dimensional code, and can compose the generated two dimensional code with the image data stored in the RAM 202 or in the HDD 204. The predetermined information includes, for example, a device number, printing time information, user ID information, password information, or the like. Incidentally, a digital watermarking technology having a resistance property to a print medium has been developed. Thus, in order to obtain an image (encoded image) that consists of the above encoded predetermined information, a digital watermarking image generated by use of such a digital watermarking technology, instead of a two dimensional code, can also be used.
A printer image processing section 215 receives image data from the image bus 230, and outputs the image data to the printer section 14 via the printer I/F 214.
An RIP 228 receives intermediate data which are generated from PDL code data transmitted from the PC 40 and the like, and generates image data. The CPU 201 stores the image data received from the RIP 228 in the RAM 202 or in the HDD 204.
Described herein is a processing at the time when inputting image data of a printed material (an original document) on which a two dimensional code is printed.
First, in S10000, the CPU 201 determines whether or not a user intending to make an input has logged in to an image forming apparatus. After logging in to the image forming apparatus, the user can use various functions included in the image forming apparatus. At the login, a user's login password is inputted. At this time, a login screen (not shown) is displayed on the operating section 12 by the CPU 201. When receiving a login password inputted by the user, the CPU 201 compares the inputted login password with a pre-registered login password stored in the HDD 204.
If the login password inputted by the user matches the pre-registered login password, the CPU 201 stores, in the HDD 204, login state information indicating that the user has logged in to the image forming apparatus. Referring to this login state information, the CPU 201 determines whether or not the user has logged in. If the user has logged in, the processing proceeds to S10001.
In S10001, the CPU 201 controls a transmission of image data scanned with the scanner section 13 to the scanner image processing section 212 via the scanner I/F 211.
In S10002, the scanner image processing section 212 detects whether or not the image data include a two dimensional code thereon. Incidentally, a two dimensional code used in this embodiment is not limited to a specific code. For the two dimensional code, for example, a QR code, or an encoding code referred to as an LVBC (Low Visibility Barcode) invented by the applicant of the present invention can be used. Details of this LVBC are described later. However, when a password is obtained from a two dimensional code, such as a QR code, disposed on a portion of an image, the password is not set to the entire image. The reason why this is done is that a two dimensional code, such as a QR code, disposed on a portion of the image can easily be cut out, which means that it does not have capability to protect the entire image right from the start. Therefore, a password included in the two dimensional code, such as a QR code, disposed on a portion of the image is considered to be one for another use, so that the password is not set to the entire image.
If detecting the two dimensional code in S10002, the CPU 201 decodes the detected two dimensional code, and stores obtained password information in the RAM 202 in S10003. Further, the processing proceeds to S10004, and the CPU 201 displays, on the operating section 12, a password entry screen as shown in
Next, in S10005, the CPU 201 receives a password inputted by the user through a virtual keyboard window 602 (
Subsequently, in S10006, the CPU 201 determines whether or not the password obtained by decoding the two dimensional code matches the password transmitted from the operating section and received by the CPU 201. If the two passwords match each other, the processing proceeds to S10007 and image data including the two dimensional code are stored in the HDD 204 so that the image data are associated with the password. Also if not detecting the two dimensional code in S10002, the processing proceeds to S10007. In this case, an input is a normal one without a copy restriction with use of a two dimensional code, and inputted image data are stored in the HDD 204.
Meanwhile, if the passwords do not match each other in S10006 or if a cancel key 604 shown in
Next, described is a processing at the time when outputting image data including a two dimensional code stored in the HDD 204.
First, in S20000, the CPU 201 determines whether or not a user intending to make an output of image data has logged in to the image forming apparatus. After logging in to the image forming apparatus, the user can use various functions included in the image forming apparatus. At the login, a user's login password is inputted. At this time, a login screen (not shown) is displayed on the operating section 12 by the CPU 201. When receiving a login password inputted by the user, the CPU 201 compares the inputted login password with a pre-registered login password stored in the HDD 204.
If the login password inputted by the user matches the pre-registered login password, the CPU 201 stores, in the HDD 204, login state information indicating that the user has logged in to the image forming apparatus. Referring to this login state information, the CPU 201 determines whether or not the user has logged in. If the user has logged in, the processing proceeds to S20001.
When an output of image data stored in the HDD 204 is instructed by the user through the operating section 12, in S20001 the CPU 201 reads the image data stored in the HDD 204 into the RAM 202.
Next, in S20002, the CPU 201 determines whether or not a password is associated with the above image data. If the password is associated therewith, the processing proceeds to S20003 and the CPU 201 displays the password entry screen shown in
In addition, in S20004, the CPU 201 receives a password inputted by the user through the virtual keyboard window 602 of the operating section 12, and stores the password in RAM 202.
Next, in S20005, the CPU 201 determines whether or not the password (a password obtained by decoding a two dimensional code within the image data) associated with the image data matches the password received from the operating section. If these passwords match each other, the processing proceeds to S20006 so that output of the image data is made. The output of the image data herein represents printing at the printer section 14, a Fax transmission, a file transfer to an external device, or the like.
If the password is not associated with the image data in S20002, a copy restriction is not involved, and thus the processing proceeds to S20006 so that output of the image data is made. Incidentally, if the passwords do not match each other or if the cancel key 604 is pressed in
A preview processing of image data is herein described with reference to
First, in S30000, the CPU 201 determines whether or not a user intending to preview image data has logged in to an image forming apparatus. Since this determination processing is the same as those in “Input Processing of Image Data” and “Output Processing of Image Data” described above, a detailed description thereof is omitted. In S30000, if the CPU determines that the user has logged in, the processing proceeds to S30001.
In S30001, the CPU 201 reads image data stored in the HDD 204 into the RAM 202.
Next, in S30002, the CPU 201 determines which mode is in use between a mode in which a preview is displayed on the operating section 12 and a mode in which a preview is displayed on a display section of an external device such as the PC 40. If a preview display instruction is made by the user through the operating section 12, it is determined that the mode is one in which a preview is displayed on the operating section 12. If the mode is one in which a preview is displayed on the operating section 12, the processing proceeds to S30008, and the CPU 201 performs control so that image data are displayed on the operating section 12. As described above, if the user issues an instruction so that image data stored in the HDD 204 are displayed on the operating section 12, even if a password is obtained from a two dimensional code, the user is not requested to input this password. Incidentally, in this embodiment, it is assumed that the operating section 12 does not have a print screen function for handling an image displayed on the operating section 12 as other file.
Meanwhile, if apreview display instruction (e.g., a display instruction from the side of an external device by an HTTP access) is made by the user through an external device, it is determined that the mode is one in which a preview is displayed on a display section of an external device. As just described, if the mode is one in which a preview is displayed on a display section of an external device other than a display means of the image forming apparatus, the processing proceeds to S30003 and the CPU 201 determines whether or not a password is associated with the image data.
If a password is associated with the image data, the processing proceeds to S30004 and the CPU 201 displays the password entry screen as shown in
Thereafter, in S30005, the CPU 201 receives the password inputted by the user through the virtual keyboard window 602 of the operating section 12, and stores the password in the RAM 202.
Next, in S30006, the CPU 201 determines whether or not the password (a password obtained by decoding the two dimensional code within the image data) associated with the image data matches the password received from the operating section 12. If these passwords match each other, the processing proceeds to S30007, and control is performed so that the image data are displayed on a display section of the external device. As just described, if an instruction is given by the user to display the image data stored in the HDD 204 on a display section of the external device, control is performed so that the user is requested to input the password obtained from the two dimensional code.
Meanwhile, in S30003, if the password is not associated with the image data, a copy restriction is not involved, and thus the processing proceeds to S30007, and control is performed so that the image data are displayed on a display section of the external device. In addition, in S30006, if the passwords do not match each other or if the cancel key 604 is pressed in
The password entry screen 600 is described briefly below.
Characters of a password which are entered by the user through the virtual keyboard 602 (character keys are not shown in the figure) are displayed in “*” in a display field for password input result 601. If an OK key 603 is pressed, the CPU 201 receives the entered password character string via an operating section I/F 205, and stores the password character string in the RAM 202. If the cancel key 604 is pressed, the CPU 201 cancels the job.
Next, details of the LVBC which is a type of two dimensional code are described.
The LVBC has the following features.
(1) To allow a sufficient amount of information to be embedded in a sheet of paper.
(2) To enable extraction, as digital information, of information embedded in the paper with use of a color material.
(3) To be resistant to a factor disturbing the extraction of information at the time of copying the original document, the factor being represented by a rotation, an enlargement, a reduction, a partial deletion of an original document, a dim or blurred signal caused by copying, and a blot on an original document, and the like.
(4) To shorten a period of time during which information is extracted from the paper.
Incidentally, the above-described items (1) and (4) are generally contradictory to each other, and if an amount of embedding information is increased, a time required for extracting information becomes long.
In
Use of the LVBC enables a composed information, which is obtained by composing the above first and second information, to be embedded in an image as additional information. Further, use of the LVBC enables a selection of either one of an extraction of first information only, an extraction of second information only, and an extraction of first and second information, depending on an application. In addition, contents of additional information can also arbitrarily be changed depending on an application.
An embedding method of additional information and an extraction method thereof using the LVBC are described below.
A region in which first information is embedded is a first region, and a region in which second information is embedded is a second region. As shown in
A quadrangular region denoted by 1101 represents a first region. There are a plurality of first regions 1101 which are respectively embedded in an image in a repetitive manner at fixed intervals. The same data are embedded in all the first regions 1101. The reason why the plurality of first regions 1101 are disposed is to increase redundancy so as to improve a resistance to a noise and an error.
A region denoted by 1102 represents a second region. There are also a plurality of second regions. The second region 1102 is a region other than the first regions 1101, so that both regions do not overlap each other. 1103 denotes the size of the first region, 1104 denotes the repetition size of the first region, and 1105 denotes the size of the second region.
Described next is an embedding method in which, with use of the LVBC, additional information is embedded in original document image data in the form of dots. In the LVBC, a group of dots (1201 in
In
Additional information is inputted as binary data within a certain size. The additional information is embedded in the original document image data in such a way that dots disposed on intersections of a grid are displaced (misaligned from the intersections) in any one of eight directions at the intersections.
On the analysis of the LVBC, it is necessary to correctly figure out the position of a grid. Therefore, it is desired that the displaced dots appear on an equal probability in the eight directions. However, when specific data (e.g., 0) are embedded, as can be seen from the dots which are displaced equally to the upper left (position at “0”) of the intersections, the dots does not appear in the eight directions on an equal probability. Hence, a scramble process (e.g., a symmetric key cryptography process) having reversibility is performed on embedded information, whereby displacements of the dots can be randomized.
Further, a grid with the minimum possible size to express additional information is generated as a tile pattern, and at the time of actual printing, the tile pattern can be pasted repetitively on a sheet of paper.
Incidentally, the embedding of additional information using the LVBC is, so to speak, a method in which additional information in the form of digital data is converted into analog data to be thereafter printed on the paper, so that the method can be achieved with a comparatively simple scheme.
Next, referring to the drawing, described is a processing in which an embedded information extraction section 1400 included in the scanner image processing section 212 of the controller 11 extracts additional information from original document image data.
The embedded information extraction section 1400 includes a DOT DETECTING SECTION 1401, a dot analyzing section 1402, an absolute coordinate list storage section 1403, a dot converting section 1404, a relative coordinate list storage section 1405, a first region decoding section 1406, and a second region decoding section 1407.
The dot detecting section 1401 extracts a plurality of dots from original document image data in which additional information is embedded, and converts the plurality of dots into coordinate information. The dot analyzing section 1402 removes unnecessary dots consisting halftone from the plurality of dots extracted by the dot detecting section 1401. The absolute coordinate list storage section 1403 stores, as a list, absolute coordinates of the plurality of dots analyzed by the dot analyzing section 1402. The dot converting section 1404 detects rotation angles and grid intervals from the list of the absolute coordinates, which is stored in the absolute coordinate list storage section 1403, and converts the rotation angles and grid intervals into relative coordinates from grid positions. The relative coordinate list storage section 1405 stores the relative coordinates outputted from the dot converting section 1404. The first region decoding section 1406 extracts first information from a first region as additional information, and outputs an extraction result. The second region decoding section 1407, only when necessary, extracts second information from a second region as additional information and outputs an extraction result.
The above-described processings are specifically described.
The dot detecting section 1401 receives a signal of an image read by an optical scanner in the form of multiple-valued monochrome image data. The embedding of additional information with use of the LVBC is made in the form of a group of dots of monochrome binary as shown in
The dot analyzing section 1402 removes unnecessary dots extracted by the dot detecting section 1401. Dots detected by the dot detecting section 1401 are desirably and ideally a group of dots of the LVBC, but in practice, they also contain dots for expressing halftone the group of which is contained in a printed original document, and isolated points (e.g., a period ‘.’ character) originally contained in an original document. Accordingly, the halftone dots are removed to eliminate these isolated points similar to the group of dots of the LVBC.
A vertical axis of the graph indicates the particle size of dots, and a horizontal axis thereof indicates the density of points. This graph shows a histogram indicating the frequency of appearance of dots with respect to the density of points. This histogram shows that the higher (darker) the density of points, the higher the frequency of appearance of dots. In the case of the group of dots of the LVBC, the particle size and the density of all the dots are made uniform at the time of embedding, so that the frequency of appearance of the group of dots of the LVBC attains its peak on a position within a small range of the graph (e.g., the position of “LVBC dot” of
The dot converting section 1404 detects the rotation angle of a grid and grid intervals from the list of absolute coordinates stored in the absolute coordinate list storage section 1403, and the rotation angle of a grid and the grid intervals are converted into relative coordinates from the grid position. A conversion result is stored in the relative coordinate list storage section 1405. An angle of the embedded LVBC dots with respect to a sheet of paper is different from an angle of dots in a scanned image due to a difference of a direction with which the sheet of paper is placed on a scanner or due to a small angle misalignment on an analogue level, so that a detection and a correction of the rotation angle need to be made. In addition, since a grid needs to be reproduced to locate information on a position misaligned from a grid position to which a group of dots of the LVBC belongs, it is necessary to correctly determine the intervals of grids.
For each dot, a distance between the dot and a neighboring dot is measured, and a mode value of distances obtained from a histogram of the distances which are measured on the entire image is defined as a grid interval.
Also on the rotation angles of the grid, for all dots, angles with respect to neighboring dots are measured.
Fundamentally, the angle of a neighboring dot with respect to a target dot corresponds to either one of the angles 0 degree, 90 degrees, 180 degrees, and 270 degrees, so that by correcting a misalignment of a measured angle, a rotation angle can be determined. An angle θ from the target dot to a neighboring dot is defined below, with a vector (dx, dy) formed by the target dot and the neighboring dot.
θ=a tan dy/dx
1602 of
Once the grid interval and rotation angles are obtained, a grid with grid intervals is virtually drawn, as shown in 1202 of
Finally, as shown in
Next, described in detail is a method in which the first region decoding section 1406 and the second region decoding section 1407 extract embedded additional information.
First, the first region decoding section 1406 is described in detail.
The first region decoding section 1406 determines the size 1103 of the region 1101 shown in
First, the repetition size 1104 of the first region 1101 is determined. Since data in all the first regions 1101 are the same, when an autocorrelation is taken with a predetermined offset in a longitudinal direction of a sheet of paper, the autocorrelation is increased when an offset value matches the repetition size 1104. Therefore, the repetition size 1104 can be determined from the offset at which the autocorrelation becomes highest.
For example, when the size 1103 of the first region 1101 shown in
Next, the positions of the first region 1101 and the size 1103 of the first region are determined. Although the repetition size 1104 of the first regions 1101 is determined from an autocorrelation value, it is necessary to determine the positions of the first regions 1101 and the size 1103 thereof.
Since the repetition size 1104 has been determined, an arbitrary region corresponding to the repetition size is cut out from the relative coordinate list storage section 1405. Thereafter, an autocorrelation of a region neighboring thereto is obtained, and an autocorrelation of a region further neighboring thereto is also obtained. This process is repeated. Of those regions, correlations on the portions of the first regions 1101 are high since the same data cyclically appear on the first regions 1101 at fixed repetition size 1104. On the second region 1102, the same data do not appear at fixed repetition size 1104, so that correlations are low. Using this characteristic, a starting position of a portion on which a correlation is kept high is identified as a starting position of a first region 1101, and a distance from the starting position to a position where the portion on which a correlation is kept high is determined to be the size 1103 of the first region 1101.
With use of the position of the first region 1101 and the size 1103 thereof, additional information embedded in the first region 1101 is extracted. When extracting additional information from a single region only, a false determination may occur due to a measurement error and a noise. Therefore, positions of dots written in all the first regions 1101 are aggregated, and a mode value is employed, so that additional information is extracted. In a step in which additional information is extracted, influences of a noise and an error cannot be eliminated, so that an error correction processing is performed on an extracted result.
As described in
In addition, as described in the correction of rotation angles, since a correction processing of a rotation angel is performed in units of 90 degrees, for data extracted herein, there are four types: correct data; data obtained by rotating data by 90 degrees; data obtained by rotating data by 180 degrees; and data obtained by rotating data by 270 degrees. For extracted data, error corrections using LDPC are performed on results obtained by rotating the extracted data by 0 degree, 90 degrees, 180 degrees, and 270 degrees. Only for a correct rotation angle, an error correction code is caused to function so that data are normally extracted.
In accordance with the above-described processes, the first information embedded in the first region 1101 can be extracted.
Next, the second region decoding section 1407 is described in detail.
First, as in the first region 1101, an autocorrelation of the second region 1102 is taken. Second regions 1102 are embedded at multiple repetitive cycles of the first region 1101, so that it is only necessary to take an autocorrelation in multiples of any one of the numbers (e.g., 24, 48, 72, . . . ) of repetitions of the first regions 1101, which enables the omitting of a calculation. Further, on the second region 1102, a repetition size 1105 of the second region 1102 and the size of the second region 1102 have the same value. After taking an autocorrelation, the repetition size 1105 of the second region is calculated from a mode value.
Next, a starting position of a second region 1102 is identified. In order to synchronize a starting position of a first region 1101 and a starting position of a second region 1102 at the time of embedding, it is possible to narrow down the starting position of the second region 1102 to any one of starting positions of first regions 1101.
In determining the position of a second region 1102, an error correction code is used. Also in connection with the second region 1102 as well as the first regions 1101, an error correction code is added in addition to embedded data. Since the size 1105 of the second region 1102 is already known, an error correction processing is performed in sequence on the basis of prediction from a head position of the first regions 1101.
In accordance with the above-described processings, second information embedded in the second region 1102 can be extracted.
Details of the LVBC have been described above.
It is possible to apply the invention to a system including a plurality of devices (e.g., a computer, an interface device, a reader, a printer, and the like) or also to a device including a single device (an image forming apparatus, a printer, a fax machine, or the like).
In addition, a program code for achieving procedures of the flowcharts shown in the above-described embodiment can separately be stored in a computer-readable storage medium. Accordingly, an object of the invention is also achieved in such a way that a computer (or a CPU or an MPU) of a system or of an apparatus reads the program code from the computer-readable storage medium in which the program code is stored and executes the program. In this case, the program code itself, which is read from this storage medium, achieves functions of the above-described embodiment. Therefore, this program code and a computer-readable storage medium with this program code stored therein also configure one of the inventions.
For a storage medium supplying the program code, for example, the following can be used: a floppy disk, a hard disk, an optical disk, a magnetic optical disk, a CD-ROM, a CD-R, a magnetic tape, a nonvolatile memory card, and a ROM.
Functions of the above-described embodiment are not only achieved by a computer reading and executing the program code. These functions may also be achieved in such a way that an OS (an operating system) or the like operating on a computer on the basis of instructions of the program code performs part or all of actual processings.
In addition, the above-described functions are achieved in such a way that a CPU or the like provided to a function enhancement board inserted into a computer or to a function enhancement unit connected to a computer performs part or all of actual processings. In this case, the program code read from the above storage medium is written in a memory provided to a function enhancement board inserted into a computer or to a function enhancement unit connected to a computer, and thereafter, is executed by the above CPU or the like on the basis of instructions of the program code.
While the present invention has been described with reference to exemplary embodiments, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. The scope of the following claims is to be accorded the broadest interpretation so as to encompass all such modifications and equivalent structures and functions.
This application claims the benefit of Japanese Patent Application No. 200-224024, filed Aug. 30, 2007, which is hereby incorporated by reference herein in its entirety.
Number | Date | Country | Kind |
---|---|---|---|
2007-224024 | Aug 2007 | JP | national |