The embedding procedure outlined above can be applied to sparse representations of images in a procedure known as image folding. A high level overview of this procedure is given in the next Section.
3.2.1 Overview
Image folding can be described as the process of taking a section of a sparse representation of an image and then folding it into the remaining section of the same image. Figure 3.1 shows a high level overview of the procedure when applied to the image of Bertrand Russell.
The procedure starts by taking the original image, shown at the top of Figure 3.1, and splitting it into into two sections. In this example, it is the top and bottom section of the original image, shown respectively to the left and right of the second row of Figure 3.1.
It should be noted that this choice is arbitrary, and two other groups of pixels could have been chosen.
The next step is to generate a sparse approximation of the two sections. The sparse approximation in Figure 3.1 was realized by applying the DCT transform to 8 × 8 blocks
of pixels in each of the two sections. The coefficients were then quantized until the PSNR between the original image and the approximation was 45dB. Row three of Figure 3.1 shows the DCT coefficients remaining for each section following the quantization stage.
For demonstration purposes the coefficients have been reshaped into rectangular blocks the same width as the original image, and rescaled to 8 bit grey intensity levels.
An approximation of the top half of the original image is constructed from its DCT coefficients. This is referred to as the host image and is shown on the left of the fourth row of Figure 3.1. The embedded image is shown on the right of the same row. This is constructed by applying equation (3.2) with the DCT coefficients from the sparse approx-imation of the bottom section of the original image.
The final procedure is to add, or fold, the embedded image into the host image. The resulting folded image is shown in the fifth row of Figure 3.1.
Clearly from equation (3.2) the folded image can be split back into the host and em-bedded images by, applying an orthogonal projection onto the space VK = span{Sk}Kk=1. It is also possible to recover the DCT coefficients from the embedded image by applying equation (3.3). The result of these two operations is shown on the left of the bottom row of Figure 3.1.
If the orthonormal basis S⊥n, n = 1, . . . , Ne required in equation (3.3) is not know then it is not possible to recover the DCT coefficients from the embedded image. This prevents recovery of the bottom section of the image, shown on the right of the bottom row of Figure 3.1. In this situation bottom section is secured and the image is said to be partially encrypted.
The focus of this Chapter is therefore, on preventing the recovery of coefficients from the embedded section of an image, unless the correct private key is applied. To this end two security schemes are implemented which restrict access to the orthonormal basis S⊥n, n = 1, . . . , Ne.
In a similar way to the approaches described in Section 1.6.2, this folding procedure can be used to provide partial encryption of digital images. A suitable application of which would be to provide additional security in an online image distribution service. For example the procedure could be applied to all digital images available for sale on a public web site. This would allow customers to get an indication of the images before purchasing, with the full image only available to those in possession of the private key.
The next Section contains a more detailed description of the above procedure, with specific application to the blocked image approximations, produced in the last Chapter.
The folding procedure will be applied to an approximation made by choosing matrices
Figure 3.1: The Figure shows the steps involved in applying the folding procedure to the image of Bertrand Russell shown at the top. The image is first split into two section shown on the left and right of the second row. The third row shows the DCT coefficients required, to produce a sparse approximation of the images on the second row, to a PSNR of 45dB. The fourth row shows the host and embedded images respectively on the left and right. The fifth row shows the folded image. The sixth row contains the recovered images
from the dictionary D = {Sm}Mm=1rMc. This is equivalent the approximation shown equation (2.19), repeated below for the set D,
IKq =
The folding procedure begins as follows, H1 = ⌈NK2⌉ blocks are kept as hosts, where K is calculated with equation (2.17), and ⌈x⌉ indicates the smallest integer not less than x. These H1 blocks are now hosts, for embedding the (QN − H1) vectors of coefficients cq, q = H1+ 1 . . . , QN, of the remaining (QN − H1) equations in (3.4).
The vectors of coefficients cq(k), k = 1, . . . , Kq, q = H1 + 1 . . . , QN are relabelled to become eq(n), n = 1, . . . , Ne,q, q = 1 . . . , H, where each Ne,q = N2 − Kq. If N1 = (H1N2− K) is greater than zero, a vector of padding p1 ∈ RN1 will also be included with the coefficients. The relabelling procedure is performed with the dSet(·) operation, defined in Appendix A.2.4, as shown below
{eq}Hq=1= dSet([[Flat({cq}Qq=HN 1+1); p1], ne), (3.5) where ne(q) = Ne,q, q = 1, . . . , H1, and the elements of the vector p1 can take on any value.
These coefficients are embedded in the H1 host blocks, according to the following procedure:
The folded image (Figure 3.1 row five) is now ready to be stored and/or transmitted to a third party for recovery.
3.2.3 Recovery Procedure
The following discussion requires a procedure for orthonormalizing a set of vectors. This will be denoted by the operation \Orth(·), which can be applied to any set of vectors to construct an orthonormal basis for the space spanned by those vectors.
The procedure for the recovery of the approximation IK = ∪Qq=1NIKq of the image I from the folded image If1 is as follows:
• Calculate an orthonormal basis for the space VKq as
{Vk,q}Kk=1q = \Orth(Slq(k), k = 1, . . . , Kq), q = 1, . . . , H1. (3.7)
• Remove the components in V⊥q from Ifq1 as
˜IKq = ˆPV
KqIfq1, q = 1, . . . , H, where ˆPV
KqIfq1 is the orthogonal projection PˆVKqIfq1 =
• Flatten the coefficients to get a temporary vector t t = [Flat({˜eq}Hq=11 ).
Remove any padding p1 and relabel the recovered coefficients {˜cq}Qq=HN 1+1= dSet(t(1 : NK), nK)
The vector nK(q − H1) = Kq, q = H1+ 1, . . . , QN contains the number of coefficients in the remaining blocks, and NK is the number of hidden coefficients which is equal to
NK =
QN−(HX1+1) q=1
nK(q).
• The remaining ˜IKq , q = (H1 + 1), . . . , QN blocks of the approximated image, are calculated from the recovered coefficients with equation (3.4). The recovered image
˜IK is constructed as,
˜IK = ∪Qq=1N˜IKq . (3.10) From the above implementation it is clear that anyone in possession of the method which generates the matrices S⊥n,q ∈ RN ×N, n = 1, . . . , Ne,q, q = 1, . . . , H1, spanning the space V⊥q, can recover the hidden numbers. To prevent recovery of the image ˜IK from these hidden numbers, the construction of the matrices S⊥n,q needs to be hidden, except to those authorized to view the image. Two procedures for achieving this goal are discussed in the next Section.