1. Field of the Invention
The present invention relates to a technique of displaying on a display, photographing, and recognizing an image into which data is embedded in such a way that the embedded data cannot easily be seen by human eyes.
2. Description of the Related Art
As a conventional technique of embedding data into an image in such a way that it cannot easily be seen by human eyes, the technique disclosed in Patent Document 1 is known.
In this conventional technique, a yellow component of an original image is divided into blocks of a predetermined size, and the data to which error correction data is added is repeatedly embedded into a pair of blocks on the basis of a magnitude relation of the difference in average density of adjacent blocks of the block pair.
Data acquisition from the image in which data is embedded can be realized by, firstly, obtaining the data that is repeatedly embedded on the basis of a magnitude relation of the average density of adjacent blocks of the block pair (original data to which error correction data is added), and then by performing majority decision and error correction. Performing majority decision allows the number of errors in the data to be reduced, and performing error correction allows the original data to be obtained with errors in the data corrected.
As majority decision and error correction enable to obtain accurate data, embedded data can also be obtained from images captured by image input means such as a camera, with the image containing embedded data being printed on a piece of paper or displayed on a screen.
[Patent Document 1] Japanese Patent Application Publication No. 2004-349879
However, an image obtained via image output means such as print or a display and image input means such as a camera is deteriorated from the original image. Therefore, in the above-mentioned conventional data embedding method, processes such as providing data for error correction or repeatedly embedding the same data are required in order to obtain data correctly from the images. Thus there has been a problem whereby the amount of data that is actually embeddable is limited, and this amount has been difficult to increase.
An object of the present invention is to allow a far larger amount of data to be embedded than is allowed by the conventional method in an application of displaying an image containing embedded data on a display. Hereinafter, the image containing embedded data referred to as a ‘resultant image.’
A first embodiment of the present invention is for providing a method, device, or a program for displaying on a display an image into which data is embedded.
In the data dividing step, subject data to be embedded is divided by a predetermined length into a plural number of pieces of partial data. Hereinafter, the number of pieces of partial data is referred to as a ‘divided number’. In this step, for example, the subject data to be embedded is cut by a predetermined length, and each of the pieces of cut data is output as pieces of partial data. Also, in this step the subject data to be embedded is, for example, cut by a predetermined length, a predetermined reversible data converting operation is performed for each piece of the cut data, and each pieces of resulting converted data are output as the pieces of partial data. Also, in this step the pieces of partial data are, for example, generated so that each piece of cut data is redundantly included in the pieces of partial data.
In the data embedding step, the pieces of divided partial data, together with pieces of position information for specifying divided positions, are for example embedded into a plurality of input images, and the divided numbers of resultant images are generated. When this happens, a plurality of the input images are identical to each other obtained by duplicating one still input image. Also, a plurality of the input images are a plurality of frame images composing an input moving image.
A second embodiment of the present invention is for providing a method, device, or a program for extracting the pieces of partial data from a display image displayed by the method according to the second embodiment of the present invention, and for restoring the subject image to be embedded.
In the image inputting step, the display images are photographed at predetermined photographing time intervals.
In the data extracting step, the pieces of embedded partial data and position information are extracted from the photographed images.
In the data integrating step, the pieces of partial data extracted on the basis of the pieces of extracted position information are integrated to restore the subject data to be embedded after repeatedly performing the image inputting step and the data extracting step until the pieces of partial data and position information are all obtained, while identifying the pieces of extracted position information. When this happens, the pieces of position information include, for example, at least information relating to the integrating order of the pieces of partial data. And in the data integrating step, by identifying integrating order indicated by the pieces of position information, it is determined that extraction of all the pieces of partial data is completed when a predetermined number of pieces of partial data of a different integrating order are extracted, and the pieces of partial data are integrated on the basis of the integrating order. Also, the pieces of position information include at least information relating to the number of divisions and the integrating order of the pieces of partial data, and the data integrating step determines, by identifying the number of divisions and the integrating order indicated by the pieces of position information, that extraction of all the pieces of partial data is completed when pieces of partial data of a different integrating order equal in number to the number of divisions are extracted, and integrates the plurality of pieces of partial data on the basis of the integrating order. Also, the pieces of position information include information at least relating to an integrating order of a plurality of pieces of partial data, and a piece of position information of a piece of partial data in which is at the top of the integrating order further includes information relating to the divided number; and the data integrating step determines, by identifying the number of divisions and the integrating order indicated by the pieces of position information, that extraction of all the pieces of partial data is completed when the pieces of partial data of a different integrating order equal in number to the number of divisions are extracted, and integrates the pieces of partial data on the basis of the integrating order.
In the second embodiments of the present invention, the photographing time interval can be configured to be shorter than the display time interval.
According to the present invention, the amount of data that can be embedded can be increased by many times without increasing the display region of an image when photographing/recognizing the image in which data is embedded, even though the same type of image as in the conventional art is used.
Conventionally, the data embeddable in one image is in the tens of bits or about 10 digits. However, in the present invention, larger pieces of data such as a mail address or a URL can be embedded into a display image, and thus it will be possible to provide various kinds of data with using the display image.
According to the present invention, the concealment of data can be increased by performing a reversible converting operation for the data embedded in an image.
According to the present invention, it will be possible to embed the data into successive frames of a moving image, and thus various kinds of data can be provided in the moving image.
Embodiments of the present invention will now be described in detail with reference to the accompanying drawings. Here, in the first through third embodiments of the present invention, original data to be embedded can be embedded in such a way that the embedded data cannot easily be seen by human eyes.
The data to be embedded is input into a data dividing unit 101, and the n number of pieces of partial data and position information divided therein are output to a data embedding unit 102.
The data embedding unit 102 sequentially embeds the pieces of partial data and position information input from the data dividing unit 101 into input images, and outputs the n number of resultant images to an image storage unit 103 to store those resultant images therein.
A display control unit 104 repeatedly reads out the n number of the resultant images stored in the image storage unit 103 in a predetermined order, and respectively displays the read out images on a display unit 105 for T1 seconds each.
An image input unit 106 photographs the resultant images displayed on the display unit 105 at intervals of T2 seconds, and outputs the photographed images to a data extracting unit 107.
The data extracting unit 107 decodes the photographed images input by the image input unit 106, extracts the pieces of partial data and position information, and stores both the pieces of partial data and the position information in a data storage unit 108. When all the pieces of partial data and position information have been decoded, a data integrating unit 109 is notified that the decoding is complete.
The data integrating unit 109 reads out the pieces of partial data and position information stored in the data storage unit 108, and integrates the read out pieces of partial data and position information into the original data to be embedded in order to output the embedded data.
Operations of a first embodiment of the present invention, based on a configuration shown in
Firstly, the data dividing unit 101 of
Next, the data embedding unit 102 of
Further, the data embedding unit 102 duplicates the n number of embedding target images, and respectively embeds the pieces of partial data C1-Cn as well as the pieces of position information P1-Pn that specify the positions of those pieces of partial data into the duplicated images, as indicated by 203 in
The pieces partial data are set to sizes that can be embedded into the images together with the pieces of position information.
Consequently, the data embedding unit 102 generates the n number of resultant images E1-En in which different pieces of partial data and position information are embedded into the same image, and stores the images into the image storage unit 103 of
Next, the display control unit 104 of
On the other hand, the image input unit 106, data extracting unit 107, data storage unit 108, and data integrating unit 109, all of which are integrated into mobile phones etc., perform the following operations.
Firstly, the image input unit 106 photographs the resultant images displayed on the display unit 105 as described above at intervals of T2 seconds.
Next, the data extracting unit 107 sequentially extracts the pieces of partial data C1-Cn and position information P1-Pn that correspond to each of the pieces of partial data embedded into the above mentioned photographed resultant images, and stores the extracted pieces of data into the data storage unit 108.
In this case, as indicated by 206 in
Consequently, if, for example, the number of divisions n is a value fixed in advance, the data extracting unit 107 provides notification to the data integrating unit 109 when it is recognized that the n number of pieces of partial data C1-Cn are all obtained.
The data integrating unit 109 integrates the pieces of partial data on the basis of the pieces of partial data C1-Cn stored in the storage unit 108 and the pieces of position information P1-Pn stored together with the partial data C1-Cn in order to obtain the original data to be embedded and output the obtained original data.
The original data of M bits is divided into the n number of pieces of partial data C1-Cn of K1-Kn bits. M is equal to the total of K1 to Kn.
The number of bits K1-Kn of the divided pieces of partial data needs to be determined so that the partial data are embeddable into the image together with the pieces of position information that are embedded with the pieces of partial data. Assuming that the number of bits embeddable into the images is P, and that the number of bits of the pieces of position information P1-Pn that correspond to the pieces of partial data C1-Cn are respectively S1-Sn, Ki and Si need to be determined so that Formula 1 with respect to the i order of the pieces of partial data and position information (1≦i<n) below is satisfied.
Ki+Si≦P [Formula 1]
In this configuration example, the original data is divided into the pieces of partial data C1-Cn, each of whose amounts is the same, and partial data numbers “1”-“n” are used as the pieces of position information P1-Pn.
Assuming that the number of divisions is n, the number of bits S required for the pieces of position information (divided data number) is determined by means of Formula 2 below.
S=ceil(log 2(n)) [Formula 2]
The number of bits K of the pieces of partial data is determined by means of Formula 3 below.
K=P−S [Formula 3]
The maximum embeddable number of bits M is determined by means of Formula 4 below.
M=K×n=(P−ceil(log 2(n)))×n [Formula 4]
In Formula 2 and Formula 4, ceil( ) means a process of making the number within the parentheses an integer by rounding up the fractional portion of the number, and log 2( ) means a process of calculating a logarithm with the base of 2 of the number within the parentheses.
Assuming that n is 4 (n=4) and P is 100 bits (P=100), then S is 2 (S=2), K is 98 (K=98), and M is 392 (M=392).
In this configuration example, the original data is divided into the pieces of partial data C1-Cn, each of whose size is the same, and the partial data numbers and the number of divisions are used as the pieces of position information P1-Pn.
Assuming that the number of divisions is n, the number of bits S required for the pieces of position information (partial data numbers and the number of divisions) is determined by means of Formula 5 below.
S=ceil(log 2 (n))×2 [Formula 5]
The number of bits K of the pieces of partial data is determined by means of the above-mentioned formula 3, and the maximum embeddable number of bits M of the data is determined by means of Formula 6 below.
M=K×n=(P−ceil(log 2 (n))×2)×n [Formula 6]
Assuming that n is 4 (n=4) and P is 100 bits (P=100), then S is 4 (S=4), K is 96 (K=96), and M is 384 (M=384).
In this configuration example, the original data is divided into the pieces of partial data C2-Cn, each of whose size is the same except for the top piece of partial data C1. The partial data number and the number of divisions are set to the top piece of partial data C1 as pieces of position information P1, and only the partial data numbers are set to the other pieces of partial data C2-Cn, excluding the top piece of partial data as the pieces of position information Pi.
Assuming that the number of divisions is n, the number of bits S1 required for the piece of position information P1 of the top piece of partial data C1 (partial data number and the number of divisions) is determined by means of Formula 7 below.
S1=ceil(log 2(n))×2 [Formula 7]
The number of bits K1 of the top piece of partial data is determined by means of Formula 8 below.
K1=P−S1 [Formula 8]
The number of bits S2 that is required for the pieces of position information P2-Pn (partial data numbers) of the pieces of partial data C2-Cn other than the top piece of partial data is determined by means of Formula 9 below.
S2=ceil(log 2(n)) [Formula 9]
The number of bits K2 of the pieces of partial data C2-Cn other than the top piece of partial data is determined by means of Formula 10 below.
K2=P−S2 [Formula 10]
Accordingly, the maximum embeddable number of bits M is determined by means of Formula 11 below.
M=K1+K2×(n−1)=P×n−ceil(log 2(n))×(n+1) [Formula 11]
Assuming that n is 4 (n=4) and P is 100 bits (P=100), then S1 is 4 bit (S1=4 bit), K1 is 96 bit (K1=96 bit), S2 is 2 bit (S2=2 bit), K2 is 98 bit (K2=98 bit), and M is 390 bit (M=390 bit).
Firstly, the data embedding unit 102 determines
on the basis of
Next, the data embedding unit 102 divides the piece of input data into the n number of pieces of data by K1-Kn bits from the top, in order to generate the pieces of partial data C1-Cn (S702 in
Next, the data embedding unit 102 sets a variable i, which represents the partial data number, to 1, i.e., the value that represents the top piece of partial data (S703 in
Next, embedding of current piece (i.e. generating of the i-th resultant image) will now be described with reference to S704 to S707 in
Next, the data embedding unit 102 embeds the partial data Ci and position information Pi into a duplicated image of the input image, generates an image Ei into which both the partial data Ci and the position information Pi are embedded, and stores the generated image Ei in the image storage unit 103 shown in
Next, the data embedding unit 102 adds 1 to the partial data number i, and sets it to a value that represents the following piece of partial data (S706 in
Then, the data embedding unit 102 finishes the embedding process by determining that embedding of all the pieces of partial data is completed when the partial data number i exceeds the number of divisions n (determination of S707 in
By the above processes performed by the data embedding unit 102, the piece of input data is embedded into the input image, and the images E1-En into which (a) the pieces of position information P1-Pn and (b) the pieces of partial data C1-Cn that are the pieces of input data divided into the n number of pieces of data are embedded are generated.
Firstly, the display control unit 104 determines the displaying order of the resultant images (S801 of
Next, the display control unit 104 sets the variable i, which represents the number of the resultant images to be displayed, to 1 (S802 in
Next, the display control unit 104 obtains a number k of the resultant image to be displayed on the basis of the displaying order (S803 in
Next, the display control unit 104 displays the k-th resultant image Ek on the display unit 105 of
Next, the display control unit 104 waits until T1 seconds pass after the resultant image Ek is displayed (S805 in
Next, the display control unit 104 finishes a displaying process when instructed externally to stop displaying (determination at S806 in
Subsequently, the display control unit 104 adds 1 to the variable i that represents the number of resultant images to be displayed (S807 in
Next, the display unit 104 sets the process back to step S802 of
By the processes performed by the display control unit 104, the resultant images E1-En are displayed in sequence at intervals of T1 seconds at the same position on a display.
Firstly, the image input unit 106 of
Next, the data extracting unit 107 sets the process forward to step S903 of
The data extracting unit 107 obtains the pieces of partial data and position information as a result of the decoding when it succeeds in the decoding (S903 in
Next, the data extracting unit 107 obtains the partial data number and the number of divisions n from the pieces of position information (in the case of the data configuration example of
Next, the data extracting unit 107 stores the decoded pieces of partial data in the data storage unit 108 of
Next, the data extracting unit 107 confirms whether or not the decoding of all pieces of partial data is successfully completed, on the basis of the number of divisions n (S906 in
When the data extracting unit 107 succeeds in obtaining all the pieces of partial data, the data integrating unit 109 of
When there is an outstanding piece of partial data that has not yet been obtained, the data extracting unit 107 waits for T2 seconds after photographing has been started (S908 in
By the above processes performed by the image input unit 106, data extracting unit 107, and data integrating unit 109, the resultant images E1-En into which the pieces of partial data displayed on a screen are embedded are photographed and decoded to extract the embedded pieces of partial data, the extracted pieces of partial data are integrated, and then the original piece of data can be obtained.
A second embodiment of the present invention will now be described with reference to
While the data to be embedded is simply divided to produce resultant images in the first embodiment of the present invention, in the second embodiment of the present invention, the pieces of divided data are generated by performing some sort of reversible operation.
Redundantly embedding pieces of data for which an identical piece of divided data is rotated generates resultant images whose embedded states are different from each other. In the first embodiment of the present invention, a certain piece of partial data is embedded into only one certain image. For example, the partial data Ci is embedded only into the resultant image Ei. For this reason, when any one of the resultant images E1-En cannot be decoded, the original piece of data cannot be obtained.
By contrast, in the second embodiment of the present invention, a certain piece of divided data is rotated by various numbers of bits, and each of the pieces of divided data is distributed into a number of images so that they are redundantly embedded as well as displayed. Accordingly, this will be successful as long as one of those images is decoded, and thus the probability of succeeding in decoding can be improved.
In this data configuration, the data embedding unit 102 of
In
In
In
In
In this method, the piece of data in which the same piece of divided data is rotated from side to side is distributed into two images so that they are redundantly embedded and displayed. Accordingly, this method is successful as long as one of those two images is decoded, and thus the probability of succeeding in decoding can be improved.
In this data configuration, the data embedding unit 102 of
In
In
In
In
Instead of bit rotation from side to side as shown in
A third embodiment of the present invention will now be described with reference to
The third embodiment of the present invention enables embedding data into a moving image.
In
In the third embodiment of the present invention, a moving image is divided into frame images in units of Ti seconds, and pieces of divided data are sequentially embedded for each T1 second (see S1902→S706→S707→704 of
As a moving image in which embedding is performed as described above is reproduced, the moving image can be decoded in the same way as a still image. That is, the same process of decoding can be applied to both without discriminating between a still image and a moving image in the decoding.
A computer shown in
The CPU 2001 controls the entirety of this computer. The memory 2002 is a memory such as RAM which temporarily stores a program stored in the external storage device 2005 (or transportable storage medium 2009) at the time of executing a program or updating data. The CPU 2001 controls the entirety of the computer by reading out the program to the memory 2002 and executing it.
The input device 2003 is comprised of a keyboard, a mouse, etc. and their interface control devices. The input device 2003 detects an input from the keyboard, mouse, etc. operated by a user, and notifies the CPU 2001 of that detection result.
The output device 2004 is comprised of a display device, print device etc. and their interface control devices. The output device 2004 outputs the data transmitted by the control of the CPU 2001 to the display device or the print device.
The external storage device 2005 is, for example, a hard disk storage device. It is used mainly for storing various kinds of data or programs.
The portable storage medium driving device 2006 houses a transportable storage medium 2009 such as an optical disk, a SDRAM, or a compact flash, and plays an auxiliary role to the external storage device 2005.
The network connection device 2007 is, for example, a device for connecting a communication line such as a mobile communication network, a LAN (Local Area Network), or a WAN (Wide Area Network).
The system according to the present embodiment is implemented with the program, having functions implemented in the functional block of
In particular, the portion comprised of the image input unit 106, the data extracting unit 107, the data storage unit 108, and data integrating unit 109 is implemented as a function of, for example, a mobile phone or a terminal device of a mobile.
Number | Date | Country | Kind |
---|---|---|---|
2008-023497 | Feb 2008 | JP | national |