BACKGROUND OF THE INVENTION
1. Field of the Invention
[0001] The present invention relates to an encoding-availability determining apparatus,
an encoding-availability determining method, and an encoding-availability determining
program that determine whether encoding can be performed to embed data into an image,
and more particularly to an encoding-availability determining apparatus, an encoding-availability
determining method, and an encoding-availability determining program that enable to
determine whether encoding can be performed without actually examining whether data
can be extracted from an image by inputting the image from a medium after the image
having encoded data is output to the medium.
2. Description of the Related Art
[0003] An encoding method is disclosed in
Japanese Patent Laid-Open Publication No. 2004-349879 in which an image is split into a plurality of blocks, and a difference between average
densities of adjacent blocks is used to embed codes into the adjacent block pairs.
After the image, which includes the embedded codes, is output to a paper or a display
device etc., the image is input by using an input device such as a camera and subjected
to a decoding process. In the decoding process, the original codes are decoded from
the difference between the average densities of the adjacent blocks of the input image.
[0004] In the encoding and decoding method disclosed in
Japanese Patent Laid-Open Publication No. 2004-349879, decoding is performed only by using the difference between the average densities
of the adjacent blocks of the input image, thereby enabling to enhance the speed of
the decoding process. Due to this, a decoder based on the aforementioned decoding
method is increasingly mounted on a portable device.
[0005] However, in the encoding method disclosed in
Japanese Patent Laid-Open Publication No. 2004-349879, color reproduction of the image that is output to a medium such as the paper or
the display device is affected due to output characteristics of the output device.
Similarly, when the image having the embedded code is read and input from the medium
by an input device, grayscale levels of the input image differ from the grayscale
levels of the original image due to input characteristics of the input device. Due
to this, values pertaining to the difference between the average densities of the
adjacent block pairs in the input image differ from the corresponding values during
data embedding, and the original codes cannot be decoded.
[0006] Thus, in the encoding method disclosed in
Japanese Patent Laid-Open Publication No. 2004-349879, the image having the embedded code needs to be output to a medium, the output image
needs to be input from the medium and decoded to determine whether the original codes
can be decoded.
SUMMARY OF THE INVENTION
[0007] It is an object of the present invention to at least solve the problems in the conventional
technology.
[0008] An apparatus for determining an availability of encoding data into an image, according
to one aspect of the present invention, includes an embedding-availability determining
unit that determines the availability based on an input/output characteristic of a
predetermined feature amount related to a combination of an output device that outputs
an image in which the data is embedded to a medium and an input device that inputs
the image that is output to the medium; and a result output unit that outputs a result
of determination by the embedding-availability determining unit.
[0009] A method of determining an availability of encoding data into an image, according
to another aspect of the present invention, includes determining the availability
based on an input/output characteristic of a predetermined feature amount related
to a combination of an output device that outputs an image in which the data is embedded
to a medium and an input device that inputs the image that is output to the medium;
and outputting a result of determination at the determining.
[0010] A computer-readable recording medium according to still another aspect of the present
invention stores a computer program that causes a computer to execute the above method
according to the present invention.
[0011] The above and other objects, features, advantages and technical and industrial significance
of this invention will be better understood by reading the following detailed description
of presently preferred embodiments of the invention, when considered in connection
with the accompanying drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
[0012]
Fig. 1 is a block diagram of an encoder according to a first embodiment of the present
invention;
Fig. 2 is a schematic for illustrating an example of block-split image data;
Fig. 3 is a schematic for illustrating a density modifying process by a code forming
unit;
Fig. 4A is a graph of input/output characteristics in an ideal condition;
Fig. 4B is a graph of an example of actual input/output characteristics;
Fig. 5 is a flowchart of a processing procedure for an encoding-availability determining
process by the encoder according to the first embodiment;
Fig. 6 is a block diagram of an encoder according to a second embodiment of the present
invention;
Fig. 7 is a schematic for illustrating an example of selection of the input/output
characteristics by an input/output-characteristics selecting unit;
Fig. 8 is a block diagram of an encoder according to a third embodiment of the present
invention;
Fig. 9 is a flowchart of a processing procedure for an encoding-availability determining
process by the encoder according to the third embodiment;
Fig. 10 is a block diagram of an encoder according to a fourth embodiment of the present
invention;
Fig. 11 is a flowchart of a processing procedure for an encoding-availability determining
process by the encoder according to the fourth embodiment;
Fig. 12 is a block diagram of an encoder according to a fifth embodiment of the present
invention;
Fig. 13 is a flowchart of a processing procedure for an encoding-availability determining
process by the encoder according to the fifth embodiment; and
Fig. 14 is a block diagram of a computer that executes an encoding program according
to the first to the fifth embodiments.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0013] Exemplary embodiments of the present invention are explained below in detail with
reference to the accompanying drawings. An encoder that embeds codes (binary codes)
as data into original image data to generate image data having encoded codes is used
to explain the present embodiments.
[0014] The encoder according to the present embodiments embeds 16 bit codes eight times
into the original image data to generate the image data having the encoded codes.
The original image data is image data generated in a predetermined format such as
joint photographic expert group (JPEG), graphics interchange format (GIF) etc. and
has a size of 1024 by 1024 pixels. The 16 bit codes such as "1010110101001010", for
example, are embedded into the original image data.
[0015] Fig. 1 is a block diagram of an encoder 100 according to a first embodiment of the
present invention. The encoder 100 includes a block splitting unit 110, a block extracting
unit 120, an averaging unit 130, a comparing unit 140, a code forming unit 150, an
input/output-characteristics storing unit 160, an input/output-characteristics selecting
unit 170, an average-density-difference estimating unit 180, and an encoding determining
unit 190.
[0016] The block splitting unit 110 inputs the original image data, splits the original
image data into blocks of N lines and M rows (16 lines and 16 rows in the example
according to the first embodiment), and outputs the image data as block-split image
data I1. Fig. 2 is a schematic for illustrating an example of the block-split image
data I1. The block-split image data I1 includes 256 blocks (16 lines and 16 rows)
such as blocks B
l11, B
r11,..., B
l18, B
r18, B
l21, B
r21, ..., B
l168, B
r168 and so on. A single block has a size of 64 by 64 pixels.
[0017] In the block-split image data I1, 1 bit code is embedded into a pair block (two adjacent
blocks).
[0018] The pair blocks are formed of two blocks such as blocks B
l11 and B
r11, blocks B
l12 and B
r12, ... , blocks Bl
18 and B
r18 (forming the first line), blocks Bl
21 and B
r21, ... , blocks B
l28 and B
r28 (forming the second line), ... , blocks B
1161 and B
r161,..., blocks B
l168 and B
r168 (forming the sixteenth line).
[0019] In a block B
1xy of a pair block, a subscript 1 indicates that the block B
1xy is a left block, a subscript x indicates a line (N), and a subscript y indicates
a row (M). Similarly, in a block B
rxy of the pair block, a subscript r indicates that the block B
rxy is a right block, a subscript x indicates a line (N), and a subscript y indicates
a row (M) .
[0020] In a pair block, a feature amount in the form of an average density level (average
grayscale of each pixel in the block is between 0 and 255) of the left block B
1xy is indicated by a left-side average density data D
l. An average density level (feature amount) of the right block B
rxy is indicated by a right-side average density data D
r.
[0021] As shown in the following relational expressions, if the left-side average density
data D
l is less than the right-side average density data D
r, 1 bit code of the pair block is represented as "0". If the left-side average density
data D
1 is equal to or greater than the right-side average density data D
r, 1 bit code of the pair block is represented as "1".

[0022] For example, in a pair block consisting of blocks B
l18 and B
r18, because a left-side average density data D
l18 is "115" and a right-side average density data D
r18 is "125", 1 bit code of the pair block is represented by "0".
[0023] Similarly, in a pair block consisting of blocks B
l28 and B
r28, because a left-side average density data D
l28 is "125" and a right-side average density data D
r28 is "115", 1 bit code of the pair block is represented by "1".
[0024] In the block-split image data I1, because a single line includes eight pair blocks
(16 blocks), one line is represented by 8 bit code. Thus, all the lines (16 lines)
in the block-split image data I1 are represented by 128 bit codes. In the first embodiment,
because codes C, which are embedded into the block-split image data I1 include 16
bits, the codes C can be embedded into the block-split image data I1 a maximum eight
times (128 divided by 16).
[0025] The block extracting unit 120 sequentially extracts pair blocks (block B
1xy and block B
rxy) according to bit shift of the codes C, and sequentially outputs density distributions
of the block B
lxy and the block B
rxy as block density data D.
[0026] Bit shift of the codes C indicates bit by bit shifting of bit pointers of the codes
C from a bit at the extreme left (1) towards a bit at the extreme right (0) of the
codes C.
[0027] The averaging unit 130 calculates the left-side average density data D
1 corresponding to the block B
lxy and the right-side average density data D
r corresponding to the block B
rxy from the block density data D.
[0028] The comparing unit 140 compares nth bit of the codes C (such that n=1, 2, 16 beginning
from the bit at the extreme left) with a bit determination result that is determined
from a magnitude relation between the left-side average density data D
l and the right-side average density data D
r (based on the aforementioned relational expression, bit is determined as "0" or "1").
[0029] Based on the comparison result of the comparing unit 140, the code forming unit 150
embeds the codes C into the block-split image data I1 (the original image data). To
be specific, if the comparison result of the comparing unit 140 is matching, the code
forming unit 150 maintains the magnitude relation between the left-side average density
data D
l and the right-side average density data D
r. If the comparison result of the comparing unit 140 is not matching, the code forming
unit 150 performs a density modifying process to modify (reverse the magnitude relation)
the left-side average density data D
l and the right-side average density data D
r such that the magnitude relation between the left-side average density data D
l and the right-side average density data D
r represents bits of the codes C, generates image data having the encoded code (hereinafter,
"encoded image data"), and outputs the encoded image data.
[0030] Fig. 3 is a schematic for illustrating a density modifying process by the code forming
unit 150. In the density modifying process, if D
1<D
r, a left-side average density data D'
1 after modification is calculated by using Equation (1), and a right-side average
density data D'
r after modification is calculated by using Equation (2). T indicates a level difference
between the pair block, and has a value such as "30" for example. Due to this, after
density modification, the left-side average density data D'
1 becomes smaller than the right-side average density data D'
r, and the bit determination result is changed from "1" to "0".
[0031] If D
1≥D
r, a left-side average density data D'
1 after modification is calculated by using Equation (3), and a right-side average
density data D'
r after modification is calculated by using Equation (4). Due to this, after density
modification, the left-side average density data D'
1 becomes equal to or greater than the right-side average density data D'
r, and the bit determination result is changed from "0" to "1".
[0032] The input/output-characteristics storing unit 160 stores input/output characteristics
related to density for each combination of an output device which outputs an image
having embedded code to a medium, and an input device which inputs the image that
is output to the medium.
[0033] Fig. 4A is a graph of input/output characteristics in an ideal condition. Fig. 4B
is a graph of an example of actual input/output characteristics. In the ideal condition
of input/output characteristics, a density level on a horizontal axis (density level
of digital data before output by the output device) is the same as a density level
on a vertical axis (density reading level when the image that is output to the medium
by the output device is read by the input device), and the input/output characteristics
are indicated by a straight line having a slope equal to 1.
[0034] However, as shown in Fig. 4b, in the actual input/output characteristics, a difference
occurs between the density level on the horizontal axis and the density level on the
vertical axis. Especially because in a blind sector, the density level on the vertical
axis does not change even if the density level on the horizontal axis changes and
the embedded codes cannot be decoded, use of the blind sector needs to be avoided
when embedding the codes. The output device outputs a density patch to the medium,
and the input device inputs the density patch from the medium, thereby enabling to
estimate the input/output characteristics.
[0035] The input/output-characteristics selecting unit 170 receives specifications pertaining
to the output device and the input device, and reads the input/output characteristics
corresponding to a combination of the specified input device and the output device
from the input/output-characteristics storing unit 160. The input/output-characteristics
selecting unit 170 distributes the read input/output characteristics to the average-density-difference
estimating unit 180.
[0036] The average-density-difference estimating unit 180 estimates average density difference
of pair blocks when the image having the embedded codes is output to the medium and
is read by the input device. The average-density-difference estimating unit 180 operates
the input/output characteristics that are fetched from the input/output-characteristics
selecting unit 170 in the encoded image data that is generated by the code forming
unit 150 and calculates the average density difference of the pair blocks when the
image is read by the input device.
[0037] By using the input/output characteristics, the average-density-difference estimating
unit 180 estimates the average density difference of the pair blocks when the image
having the embedded codes is output to the medium and read by the input device, thereby
enabling to estimate whether the codes can be decoded without actual output of the
image to the medium and reading of the image from the medium.
[0038] By using the average density difference of the pair blocks estimated by the average-density-difference
estimating unit 180, the encoding determining unit 190 determines whether encoding
can be performed and outputs the determination result. To be specific, by using the
estimated average density difference of the pair blocks, the encoding determining
unit 190 compares the decoded codes and the embedded codes, and if the number of accurately
decoded codes exceeds a predetermined threshold value, determines that encoding can
be performed. If the number of accurately decoded codes does not exceed the predetermined
threshold value, the encoding determining unit 190 determines that encoding cannot
be performed.
[0039] A sequence of an encoding-availability determining process by the encoder 100 according
to the first embodiment is explained next. Fig. 5 is a flowchart of a processing procedure
for an encoding-availability determining process by the encoder 100 according to the
first embodiment. The encoding-availability determining process is activated after
the encoded image data is generated by the code forming unit 150.
[0040] In the encoding-availability determining process by the encoder 100, the input/output-characteristics
selecting unit 170 receives specifications of the output device and the input device,
and by using the input/output-characteristics storing unit 160, selects the input/output
characteristics pertaining to the combination of the specified output device and the
input device (step S101).
[0041] The average-density-difference estimating unit 180 applies the input/output characteristics
to the encoded image data (step S102) and calculates the average density difference
of each pair block (step S103). The encoding determining unit 190 compares the codes
that are decoded from the average density difference of each pair block with the embedded
codes to count a number n of the codes that can be accurately decoded (step S104)
and determines whether n is equal to or greater than the predetermined threshold value
(step S105).
[0042] If n is equal to or greater than the predetermined threshold value, the encoding
determining unit 190 outputs "encoding possible" (step S106), and if n is smaller
than the predetermined threshold value, the encoding determining unit 190 outputs
"encoding impossible" (step S107).
[0043] Thus, the encoder 100 operates the input/output characteristics in the encoded image
data, calculates the average density difference of each pair block, and based on the
average density difference, estimates the number of accurately decoded codes, thereby
enabling to determine whether encoding can be performed.
[0044] In the encoding-availability determining process, the encoder 100 counts a number
n of the codes that can be accurately decoded and determines that encoding can be
performed if n is equal to or greater than the predetermined threshold value. However,
making the predetermined threshold value equal to the number of embedded codes enables
to set a condition that encoding can be performed only if all the codes can be accurately
decoded.
[0045] As described above, according to the first embodiment, the input/output-characteristics
storing unit 160 stores the input/output characteristics for multiple combinations
of the input device and the output device, the input/output-characteristics selecting
unit 170 receives specifications of the input device and the output device and selects
the input/output characteristics corresponding to the specified combination of the
input device and the output device from the input/output-characteristics storing unit
160. The average-density-difference estimating unit 180 operates the input/output
characteristics in the encoded image data that is generated by the code forming unit
150 and calculates the average density difference of each pair block. Based on the
average density difference calculated by the average-density-difference estimating
unit 180, the encoding determining unit 190 estimates the number of codes that are
accurately decoded to determine whether encoding can be performed, thereby enabling
to determine whether encoding can be performed without the need to actually read and
decode the image from a medium after the encoded image is output to the medium.
[0046] When using a mobile phone to read an image printed on a paper, decoding needs to
be performed by using the mobile phone having the worst input characteristics from
various types of mobile phones. An encoder according to a second embodiment of the
present invention selects the worst input/output characteristics from the input/output
characteristics when each of multiple input devices is separately combined with the
output device and operates the selected input/output characteristics in the encoded
image data.
[0047] Fig. 6 is a block diagram of an encoder 200 according to the second embodiment. For
the sake of convenience, units performing similar functions as the units shown in
Fig. 2 are indicated by the same reference numerals, and the detailed explanation
is omitted. The encoder 200 includes an input/output-characteristics selecting unit
270 instead of the input/output-characteristics selecting unit 170 shown in Fig. 2.
[0048] The input/output-characteristics selecting unit 270 receives specifications of the
output device and multiple input devices, reads the input/output characteristics corresponding
to the combinations of the output device with each of the input devices from the input/output-characteristics
storing unit 160, and selects the worst input/output characteristics from the read
input/output characteristics.
[0049] Fig. 7 is a schematic for illustrating an example of selection of the input/output
characteristics by the input/output-characteristics selecting unit 270. The input/output-characteristics
selecting unit 270 selects the input/output characteristics from four input/output
characteristics when each of four input devices A through D is combined with an output
device A. In the example shown in Fig. 7, because the input/output characteristics
pertaining to a combination of the output device A with the input device D are the
worst, the input/output-characteristics selecting unit 270 selects the input/output
characteristics pertaining to the combination of the output device A with the input
device D.
[0050] According to the second embodiment, the input/output-characteristics selecting unit
270 receives specifications of the output device and multiple input devices, and selects
the worst input/output characteristics from the input/output characteristics pertaining
to combinations of the output device with each of the input devices, thereby enabling
to perform encoding with guaranteed decoding performance even when multiple input
devices are used.
[0051] The encoder can also be construed such that the encoder receives specifications of
multiple output devices and a single input device, or specifications of multiple output
devices and multiple input devices, and selects the worst input/output characteristics.
[0052] The encoders according to the first and the second embodiments apply the input/output
characteristics to the encoded image data, calculates the average density difference
of each pair block, and based on the average density difference, compares decoding
result of the codes with the embedded codes to determine whether encoding can be performed.
However, the encoder can also determine whether encoding can be performed only from
the calculated average density difference without comparing the decoding result with
the embedded codes. An encoder according to a third embodiment of the present invention
determines whether encoding can be performed only from the calculated average density
difference without comparing the decoding result with the embedded codes.
[0053] Fig. 8 is a block diagram of an encoder 300 according to the third embodiment. For
the sake of convenience, units performing similar functions as the units shown in
Fig. 6 are indicated by the same reference numerals, and the detailed explanation
is omitted. The encoder 300 includes an encoding determining unit 390 instead of the
encoding determining unit 190 of the encoder 200.
[0054] The encoding determining unit 390 determines whether encoding can be performed only
from the average density difference, which is estimated by the average-density-difference
estimating unit 180, of the pair blocks and outputs the determination result. If the
number of pair blocks having a predetermined average density difference is equal to
or greater than a predetermined threshold value, the encoding determining unit 390
determines that encoding can be performed. If the number of pair blocks having the
predetermined average density difference is smaller than the predetermined threshold
value, the encoding determining unit 390 determines that encoding cannot be performed.
[0055] Fig. 9 is a flowchart of a processing procedure for an encoding-availability determining
process by the encoder 300 according to the third embodiment. In the encoding-availability
determining process by the encoder 300, the input/output-characteristics selecting
unit 270 receives specifications of the output device and multiple input devices,
and selects the worst input/output characteristics from the input/output characteristics
corresponding to the combinations of the specified output device and each of the input
devices (step S301).
[0056] The average-density-difference estimating unit 180 operates the input/output characteristics
in the encoded image data (step S302), and calculates the average density difference
of each pair block (step S303). The encoding determining unit 390 counts a number
m of the pair blocks having the predetermined average density difference from the
average density difference of each pair block (step S304), and determines whether
m is equal to or greater than the predetermined threshold value (step S305).
[0057] If m is equal to or greater than the predetermined threshold value, the encoding
determining unit 390 outputs "encoding possible" (step S306). If n is smaller than
the predetermined threshold value, the encoding determining unit 390 outputs "encoding
impossible" (step S307).
[0058] Thus, the encoding determining unit 390 counts the number of the pair blocks having
the predetermined average density difference from the average density difference of
each pair block, thereby enabling to determine whether encoding can be performed.
[0059] According to the third embodiment, the encoding determining unit 390 of the encoder
300 counts the number m of the pair blocks having the predetermined average density
difference from the average density difference of each pair block, and based on whether
m is equal to or greater than the predetermined threshold value, determines whether
encoding can be performed, thereby enabling to determine whether encoding can be performed
without using the embedded data.
[0060] The encoder according to the third embodiment applies the input/output characteristics
to the encoded image data to calculate the average density difference of each block
pair, and based on the number of pair blocks having the predetermined average density
difference determines whether encoding can be performed. However, the encoder can
also determine whether encoding can be performed without operating the input/output
characteristics in the encoded image data. An encoder according to a fourth embodiment
of the present invention determines whether encoding can be performed without operating
the input/output characteristics in the encoded image data.
[0061] Fig. 10 is a block diagram of an encoder 400 according to the fourth embodiment.
For the sake of convenience, units performing similar functions as the units shown
in Fig. 6 are indicated by the same reference numerals, and the detailed explanation
is omitted. The encoder 400 includes an encoding determining unit 490 instead of the
encoding determining unit 190 shown in Fig. 6, and the average-density-difference
estimating unit 180 is removed.
[0062] The encoding determining unit 490 of the encoder 400 fetches the encoded image data
from the code forming unit 150, and based on a number of pair blocks in the blind
sector of the input/output characteristics that are selected by the input/output-characteristics
selecting unit 270, determines whether encoding can be performed. The encoding determining
unit 490 determines that a pair block is in the blind sector if at least one block
of the pair block is in the blind sector.
[0063] Fig. 11 is a flowchart of a processing procedure for an encoding-availability determining
process by the encoder 400 according to the fourth embodiment. In the encoding-availability
determining process, the input/output-characteristics selecting unit 270 of the encoder
400 receives specifications of the output device and multiple input devices, and selects
the worst input/output characteristics from the input/output characteristics corresponding
to the combinations of the specified output device and each of the input devices (step
S401).
[0064] The encoding determining unit 490 counts a number k of the pair blocks in the blind
sector of the input/output characteristics (step S402), and determines whether k is
equal to or greater than a predetermined threshold value (step S403).
[0065] If k is equal to or smaller than the predetermined threshold value, the encoding
determining unit 490 outputs "encoding possible" (step S404), and if k is greater
than the predetermined threshold value, the encoding determining unit 490 outputs
"encoding impossible" (step S405).
[0066] Thus, by counting the number of pair blocks in the blind sector of the input/output
characteristics from the encoded image data, the encoding determining unit 490 can
determine whether encoding can be performed.
[0067] According to the fourth embodiment, the encoding determining unit 490 of the encoder
400 counts the number k of the pair blocks in the blind sector of the input/output
characteristics from the pair blocks of the encoded image data, and based on whether
k is equal to or smaller than the predetermined threshold value, determines whether
encoding can be performed, thereby enabling to determine whether encoding can be performed
without operating the input/output characteristics in the encoded image data.
[0068] The encoder according to the first to the fourth embodiments determines whether encoding
can be performed for the encoded image data and outputs the determination result.
However, based on the determination result of whether encoding can be performed, the
embedding process of the codes can also be improved. An encoder according to a fifth
embodiment of the present invention improves the embedding process of the codes based
on the determination result of whether encoding can be performed.
[0069] Fig. 12 is a block diagram of an encoder 500 according to the fifth embodiment. For
the sake of convenience, units performing similar functions as the units shown in
Fig. 2 are indicated by the same reference numerals, and the detailed explanation
is omitted. The encoder 500 includes a code forming unit 550 instead of the code forming
unit 150 shown in Fig. 2, and also includes an optimum-embedding-level selecting unit
595 as a new unit.
[0070] The optimum-embedding-level selecting unit 595 fetches from the encoding determining
unit 190 the determination result of whether encoding can be performed, and based
on the determination result, selects an optimum value T pertaining to level difference
that is maintained between the average densities of a block pair during the density
modifying process. The optimum-embedding-level selecting unit 595 distributes the
optimum value T to the code forming unit 550.
[0071] If the determination result indicates that encoding can be performed, based on the
input/output characteristics, the optimum-embedding-level selecting unit 595 selects
the minimum value of level difference T that enables encoding. In other words, when
the encoder 500 operates the input/output characteristics in the encoded image data
to calculate the average density difference of each block pair and counts the number
n of the codes that are accurately decoded, the optimum-embedding-level selecting
unit 595 selects the minimum possible value for the level difference T such that n
is equal to or greater than the threshold value to enable encoding.
[0072] If the determination result indicates that encoding cannot be performed, based on
the input/output characteristics, the optimum-embedding-level selecting unit 595 selects
the level difference T that is necessary to enable encoding. In other words, when
the encoder 500 operates the input/output characteristics in the encoded image data
to calculate the average density difference of each block pair and counts the number
n of the codes that are accurately decoded, the optimum-embedding-level selecting
unit 595 selects the level difference T such that the value of n increases from being
less than the threshold value to being equal to or greater than the threshold value
to enable encoding.
[0073] Based on the determination result by the encoding determining unit 190 pertaining
to whether encoding can be performed, the optimum-embedding-level selecting unit 595
selects the optimum level difference, thereby enabling the code forming unit 550 to
perform an optimum density modifying process.
[0074] By using the optimum level difference selected by the optimum-embedding-level selecting
unit 595, the code forming unit 550 embeds the code again. In other words, by using
the optimum level difference, an average density difference modifying unit 551 of
the code forming unit 550 modifies the average densities of blocks in a block pair
to embed codes.
[0075] Fig. 13 is a flowchart of a processing procedure for an encoding-availability determining
process by the encoder 500 according to the fifth embodiment.
[0076] Because the sequence indicated by steps S501 through S506 of Fig. 13 is similar to
the sequence indicated by steps S101 through S106 of the encoding-availability determining
process by the encoder 100 shown in Fig. 5, only steps S507 through S511 of Fig. 13
are explained.
[0077] After the encoding determining unit 190 of the encoder 500 outputs "encoding possible"
at step S506, the optimum-embedding-level selecting unit 595 selects the minimum level
difference (step S507), and the code forming unit 550 uses the minimum level difference
to modify the average density difference again (step S508).
[0078] If the number n of the codes that can be accurately decoded is smaller than the threshold
value ("No" at step S505), the optimum-embedding-level selecting unit 595 selects
the minimum level difference that is necessary to ensure that n is equal to or greater
than the threshold value (step S510), and the code forming unit 550 uses the level
difference selected by the optimum-embedding-level selecting unit 595 to modify the
average density difference again (step S511). Next, the encoder 500 outputs "encoding
possible" due to modification of level difference by the optimum-embedding-level selecting
unit 595 (step S512) and ends the encoding-availability determining process.
[0079] According to the fifth embodiment, based on the determination result by the encoding
determining unit 190 pertaining to whether encoding can be performed, the optimum-embedding-level
selecting unit 595 of the encoder 500 selects the optimum level difference and the
code forming unit 550 uses the optimum level difference to embed the codes again,
thereby enabling to perform encoding while guaranteeing decoding performance and minimizing
deterioration of image quality.
[0080] The encoder 500 that combines the encoding determining unit 190 and the optimum-embedding-level
selecting unit 595 is explained in the fifth embodiment. However, instead of the encoding
determining unit 190, the encoding determining unit 390 explained in the third embodiment
or the encoding determining unit 490 explained in the fourth embodiment can also be
combined with the optimum-embedding-level selecting unit 595.
[0081] In the encoder 500, the optimum-embedding-level selecting unit 595 selects the optimum
level difference, and the code forming unit 550 uses the optimum level difference
to embed the codes again. However, the encoder can also be construed in which selection
of the level difference by the optimum-embedding-level selecting unit 595 and encoding
by the code forming unit 550 is repeatedly performed to get the optimum encoding result.
[0082] An encoder is explained according to the first to the fifth embodiments. However,
the present invention is not to be thus limited, and can be similarly applied to an
encoding-availability determining apparatus that determines whether encoding can be
performed from the input/output characteristics for the encoded image data that is
generated by the code forming unit 150.
[0083] An encoder that uses average density is explained according to the first to the fifth
embodiments. However, the present invention is not to be thus limited, and can be
similarly applied to an encoder that uses other feature quantities related to image
such as amount of granulation, color saturation, density equilibrium, dispersion etc.
[0084] An encoder that uses the average density difference between the pair blocks is explained
according to the first to the fifth embodiments. However, the present invention is
not to be thus limited, and can be similarly applied to an encoder that uses the average
density difference of other combinations of blocks.
[0085] An encoder is explained according to the first to the fifth embodiments. However,
a structure of the encoder can also be realized by using software to get an encoding
program having similar functions or an encoding-availability determining program as
a part of the encoding program.
[0086] Fig. 14 is a block diagram of a computer 600 that executes an encoding program according
to the first to the fifth embodiments. The computer 600 includes a random access memory
(RAM) 610, a central processing unit (CPU) 620, a hard disk drive (HDD) 630, a local-area-network
(LAN) interface 640, an input/output interface 650, and a digital-versatile-disk (DVD)
drive 660.
[0087] The RAM 610 stores programs and results during execution of programs etc. The CPU
620 reads the programs from the RAM 610 and executes the read programs.
[0088] The HDD 630 is a disk device that stores programs and data. The LAN interface 640
connects the computer 600 to other computers via LAN.
[0089] The input/output interface 650 connects input devices such as a mouse, a keyboard
etc. and output devices such as a display device, a printer etc. The DVD drive 660
performs read/write operations on a DVD.
[0090] An encoding program 611, which is executed by the computer 600, is stored in the
DVD, read from the DVD by the DVD drive 660, and installed in the computer 600.
[0091] The encoding program 611 can also be stored in a database of another computer system
that is connected to the computer 600 via the LAN interface 640, read from the database
and installed in the computer 600.
[0092] The encoding program 611 is stored in the HDD 630, read by the RAM 610, and executed
by the CPU 620 as an encoding process 621.
[0093] According to the present invention, it is possible to determine whether encoding
can be performed without actually examining whether data can be extracted from the
image by inputting the image from a medium after the image having encoded data is
output to the medium.
[0094] Furthermore, according to the present invention, it is possible to determine whether
encoding can be performed without actually examining whether data can be extracted
from the image by inputting the image from the medium after the image having encoded
data is output to the medium.
[0095] Moreover, according to the present invention, it is possible to determine whether
encoding can be performed without actually examining whether data can be extracted
from the image by inputting the image from the medium after the image having encoded
data is output to the medium.
[0096] Furthermore, according to the present invention, it is possible to guarantee decoding
performance for all the multiple input devices.
[0097] Moreover, according to the present invention, it is possible to perform optimum data
embedding while guaranteeing decoding performance.
[0098] Furthermore, according to the present invention, it is possible to perform optimum
data embedding while guaranteeing decoding performance.
[0099] Moreover, according to the present invention, it is possible to perform optimum data
embedding while guaranteeing decoding performance.
[0100] Although the invention has been described with respect to a specific embodiment for
a complete and clear disclosure, the appended claims are not to be thus limited but
are to be construed as embodying all modifications and alternative constructions that
may occur to one skilled in the art that fairly fall within the basic teaching herein
set forth.
1. An apparatus for determining an availability of encoding data into an image, the apparatus
comprising:
an embedding-availability determining unit that determines the availability based
on an input/output characteristic of a predetermined feature amount related to a combination
of an output device that outputs an image in which the data is embedded to a medium
and an input device that inputs the image that is output to the medium; and
a result output unit that outputs a result of determination by the embedding-availability
determining unit.
2. The apparatus according to claim 1, wherein
the embedding-availability determining unit determines the availability based on whether
the feature amount that is obtained by applying the input/output characteristic to
the image in which the data is embedded satisfies a predetermined condition.
3. The apparatus according to claim 1, wherein
the embedding-availability determining unit determines the availability based on a
fraction of a partial image pertaining to a blind sector for the input/output characteristic
from among the image in which the data is embedded.
4. The apparatus according to claim 1, wherein
a plurality of input devices is provided, and
the embedding-availability determining unit determines the availability based on a
worst input/output characteristic from among a plurality of input/output characteristics
obtained by combining the output device with each of the input devices.
5. The apparatus according to claim 1, further comprising:
an embedding unit that splits the image into a plurality of blocks, and embeds the
data into the image based on a difference between feature amounts of adjacent blocks;
and
an optimum-value selecting unit that selects an optimum value of the difference based
on the determination by the embedding-availability determining unit, wherein
the embedding unit re-embeds the data into the image by using the selected optimum
value.
6. The apparatus according to claim 5, wherein
the optimum-value selecting unit selects, when the embedding-availability determining
unit determines that the embedding is available, a minimum value of the difference
with which the embedding-availability determining unit can determine that the embedding
is possible, as the optimum value.
7. The apparatus according to claim 5, wherein
the optimum-value selecting unit selects, when the embedding-availability determining
unit determines that the embedding is unavailable, a required minimum value of the
difference with which the embedding-availability determining unit can determine that
the embedding is possible, as the optimum value.
8. A method of determining an availability of encoding data into an image, the method
comprising:
determining the availability based on an input/output characteristic of a predetermined
feature amount related to a combination of an output device that outputs an image
in which the data is embedded to a medium and an input device that inputs the image
that is output to the medium; and
outputting a result of determination at the determining.
9. The method according to claim 8, wherein
the determining includes determining the availability based on whether the feature
amount that is obtained by applying the input/output characteristic to the image in
which the data is embedded satisfies a predetermined condition.
10. The method according to claim 8, wherein
the determining includes determining the availability based on a fraction of a partial
image pertaining to a blind sector for the input/output characteristic from among
the image in which the data is embedded.
11. The method according to claim 8, wherein
a plurality of input devices is provided, and
the determining includes determining the availability based on a worst input/output
characteristic from among a plurality of input/output characteristics obtained by
combining the output device with each of the input devices.
12. The method according to claim 8, further comprising:
splitting the image into a plurality of blocks;
embedding the data into the image based on a difference between feature amounts of
adjacent blocks; and
selecting an optimum value of the difference based on the determination at the determining,
wherein
the embedding includes re-embedding the data into the image by using the selected
optimum value.
13. The method according to claim 12, wherein
the selecting includes selecting, when it is determined that the embedding is available,
a minimum value of the difference with which it can be determined that the embedding
is possible at the determining, as the optimum value.
14. The method according to claim 12, wherein
the selecting includes selecting, when it is determined that the embedding is unavailable,
a required minimum value of the difference with which it can be determined that the
embedding is possible at the determining, as the optimum value.
15. A computer-readable recording medium that stores a computer program for determining
an availability of encoding data into an image, wherein
the computer program causes a computer to execute:
determining the availability based on an input/output characteristic of a predetermined
feature amount related to a combination of an output device that outputs an image
in which the data is embedded to a medium and an input device that inputs the image
that is output to the medium; and
outputting a result of determination at the determining.
16. The computer-readable recording medium according to claim 15, wherein
the determining includes determining the availability based on whether the feature
amount that is obtained by applying the input/output characteristic to the image in
which the data is embedded satisfies a predetermined condition.
17. The computer-readable recording medium according to claim 15, wherein
the determining includes determining the availability based on a fraction of a partial
image pertaining to a blind sector for the input/output characteristic from among
the image in which the data is embedded.
18. The computer-readable recording medium according to claim 15, wherein
a plurality of input devices is provided, and
the determining includes determining the availability based on a worst input/output
characteristic from among a plurality of input/output characteristics obtained by
combining the output device with each of the input devices.
19. The computer-readable recording medium according to claim 15, wherein
the computer program further causes the computer to execute:
splitting the image into a plurality of blocks;
embedding the data into the image based on a difference between feature amounts of
adjacent blocks; and
selecting an optimum value of the difference based on the determination at the determining,
wherein
the embedding includes re-embedding the data into the image by using the selected
optimum value.
20. The computer-readable recording medium according to claim 19, wherein
the selecting includes selecting, when it is determined that the embedding is available,
a minimum value of the difference with which it can be determined that the embedding
is possible at the determining, as the optimum value.
Amended claims in accordance with Rule 86(2) EPC.
1. An apparatus for determining whether an image can be encoded by embedding data into
the image, the apparatus comprising:
a data embedding-availability determining unit that determines whether the image can
be encoded; and
a result output unit that outputs a result of determination by the data embedding-availability
determining unit; characterised in that:
said data embedding-availability determining unit determines whether the image can
be encoded based on an input-output characteristic of a predetermined feature amount
related to a combination of an output device that outputs an image in which the data
is embedded to a medium and an input device that inputs the image that is output to
the medium.
2. An apparatus for determining whether an image can be encoded by embedding data into
the image, the apparatus comprising:
a data embedding-availability determining unit (180, 190; 180, 390; 490; 180, 190,
595) that determines whether the image can be encoded;
a result output unit that outputs a result of determination by the data embedding-availability
determining unit; and
a code forming unit (150, 550) that generates image data encoded with the embedded
data; characterised in that:
said data embedding-availability determining unit determines whether the image can
be encoded based on an input-output characteristic of a predetermined feature amount
related to a combination of an output device that outputs an image in which the data
is embedded to a medium and an input device that inputs the image that is output to
the medium;
the apparatus further comprising a block splitting unit (110) that splits the image
data into a plurality of blocks; and
a comparing unit (140) that compares a bit resulting from a magnitude relationship
between each of feature amounts of pairs of said blocks with a code bit to be embedded
into these blocks, said code forming unit generating the encoded image data from the
result of the comparison performed by the comparing unit;
wherein said data embedding-availability determining unit further includes at least
either one of:
an estimating unit (180) that estimates the feature amount of the pairs of blocks
when the image having the embedded codes is output to the medium and is read by the
input device; and
an encoding determining unit (190, 390, 490) that determines whether or not encoding
can be performed by comparing the decoded codes and the embedded codes, using the
estimated feature amount of the pairs of blocks.
3. The apparatus according to claim 2, wherein
the data embedding-availability determining unit determines whether the image can
be encoded in the encoding determining unit (190, 390) based on whether the feature
amount that is obtained by applying the input-output characteristic to the image in
which the data is embedded satisfies a predetermined condition in view of the feature
amount of the pairs of blocks obtained from the estimating unit (180).
4. The apparatus according to claim 2, wherein
the data embedding-availability determining unit determines whether the image can
be encoded in the encoding determining unit (490) based on a fraction of a partial
image pertaining to a blind sector for the input/output characteristic from among
the image in which the data is embedded.
5. The apparatus according to claim 2, wherein
a plurality of input devices is provided, and
the data embedding-availability determining unit determines whether the image can
be encoded in the encoding determining unit (390) based on a worst input/output characteristic
from among a plurality of input/output characteristics obtained by combining the output
device with each of the input devices.
6. The apparatus according to claim 2, wherein said pairs of blocks are adjacent blocks,
and further comprising:
an optimum-value selecting unit (595) that selects an optimum value of the difference
based on the determination by the embedding-availability determining unit (190),
wherein
the code forming unit (550) re-embeds the data into the image by using the selected
optimum value.
7. The apparatus according to claim 6, wherein
the optimum-value selecting unit (595) selects, when the embedding-availability determining
unit (190) determines that the image can be encoded, a minimum value of the difference
with which the embedding-availability determining unit can determine that encoding
is possible, as the optimum value.
8. The apparatus according to claim 6, wherein
the optimum-value selecting unit selects, when the embedding-availability determining
unit determines that encoding is not possible, a required minimum value of the difference
with which the embedding-availability determining unit can determine that the encoding
is possible, as the optimum value.
9. A method of determining whether an image can be encoded by embedding data into the
image, the method comprising:
determining whether the image can be encoded; and
outputting a result of the determining step;
characterised in that
said determining step determines whether the image can be encoded based on an input/output
characteristic of a predetermined feature amount related to a combination of an output
device that outputs an image in which the data is embedded to a medium and an input
device that inputs the image that is output to the medium.
10. A method of determining whether an image can be encoded by embedding data into the
image, the method comprising the steps of:
determining whether the image can be encoded;
outputting a result of the determining step; and
generating image data encoded with the embedded data;
characterised in that:
said determining step determines whether the image can be encoded based on an input/output
characteristic of a predetermined feature amount related to a combination of an output
device that outputs an image in which the data is embedded to a medium and an input
device that inputs the image that is output to the medium, and characterised by the further steps of:
splitting the image data into a plurality of blocks;
comparing a bit resulting from a magnitude relationship between each of feature amounts
of pairs of said blocks with a code bit to be embedded in these blocks; wherein
said generating image data employs the result of the comparison performed by the comparing
step; and
said determining step further includes at least either one of:
estimating the feature amount of the pairs of blocks when the image having the embedded
codes is output to the medium and is read by the input device; and
determining whether or not encoding can be performed by comparing the decoded codes
and the embedded codes, using the estimated feature amount of the pairs of blocks.
11. The method according to claim 10, wherein
the determining step includes determining whether the image can be encoded based on
whether the feature amount that is obtained by applying the input/output characteristic
to the image in which the data is embedded satisfies a predetermined condition.
12. The method according to claim 10, wherein
the determining step includes determining whether the image can be encoded based on
a fraction of a partial image pertaining to a blind sector for the input/output characteristic
from among the image in which the data is embedded.
13. The method according to claim 10, wherein
a plurality of input devices is provided, and
the determining step includes determining whether the image can be encoded based on
a worst input/output characteristic from among a plurality of input/output characteristics
obtained by combining the output device with each of the input devices.
14. The method according to claim 10,
wherein said generating step includes embedding the data into the image based on a
difference between feature amounts of adjacent blocks as said pairs of blocks; and
wherein the method further comprises:
selecting an optimum value of the difference based on the determination in the determining
step, wherein
the embedding step includes re-embedding the data into the image by using the selected
optimum value.
15. The method according to claim 14, wherein
the selecting step includes selecting, when it is determined that encoding is possible,
a minimum value of the difference with which it can be determined that the encoding
is possible at the determining step, as the optimum value.
16. The method according to claim 14, wherein
the selecting step includes selecting, when it is determined that encoding is not
possible, a required minimum value of the difference with which it can be determined
that the encoding is possible at the determining step, as the optimum value.
17. A computer-readable recording medium that stores a computer program for determining
whether an image can be encoded by embedding data into the image, wherein the computer
program causes a computer to execute the steps of:
determining whether the image can be encoded; and
outputting a result of the determining step;
characterised in that
said determining step determines whether the image can be encoded based on an input/output
characteristic of a predetermined feature amount related to a combination of an output
device that outputs an image in which the data is embedded to a medium and an input
device that inputs the image that is output to the medium.
18. A computer-readable medium that stores a program for determining whether an image
can be encoded by embedding data into the image, wherein the program causes a computer
to execute the steps of:
determining whether the image can be encoded;
outputting a result of the determining step; and
generating image data encoded with the embedded data;
characterised in that:
said determining step determines whether the image can be encoded based on an input/output
characteristic of a predetermined feature amount related to a combination of an output
device that outputs an image in which the data is embedded to a medium and an input
device that inputs the image that is output to the medium, and characterised by the further steps of:
splitting the image data into a plurality of blocks;
comparing a bit resulting from a magnitude relationship between each of feature amounts
of pairs of said blocks with a code bit to be embedded in these blocks; wherein
said generating image data employs the result of the comparison performed by the comparing
step; and
said determining step further includes at least either one of:
estimating the feature amount of the pairs of blocks when the image having the embedded
codes is output to the medium and is read by the input device; and
determining whether or not encoding can be performed by comparing the decoded codes
and the embedded codes, using the estimated feature amount of the pairs of blocks.
19. The computer-readable recording medium according to claim 18, wherein
the determining step includes determining whether the image can be encoded based on
whether the feature amount that is obtained by applying the input/output characteristic
to the image in which the data is embedded satisfies a predetermined condition.
20. The computer-readable recording medium according to claim 18, wherein
the determining step includes determining whether the image can be encoded based on
a fraction of a partial image pertaining to a blind sector for the input/output characteristic
from among the image in which the data is embedded.
21. The computer-readable recording medium according to claim 18, wherein the program
is for use when a plurality of input devices is provided, and
the determining step includes determining whether the image can be encoded based on
a worst input/output characteristic from among a plurality of input/output characteristics
obtained by combining the output device with each of the input devices.
22. The computer-readable recording medium according to claim 18, wherein
the computer program further causes the computer to execute the steps of:
in said generating step, embedding the data into the image based on a difference between
feature amounts of adjacent blocks; and
selecting an optimum value of the difference based on the determination at the determining
step, wherein
the embedding step includes re-embedding the data into the image by using the selected
optimum value.
23. The computer-readable recording medium according to claim 22, wherein
the selecting step includes selecting, when it is determined that encoding is possible,
a minimum value of the difference with which it can be determined that the encoding
is possible at the determining step, as the optimum value.