The present invention relates to the field of the protection of digital images, i.e. to the field of images under electronic format, which can be processed, broadcasted or stored in an individual manner (still images/photos isolated or grouped e.g. in a slideshow) or in the form of a video stream (e.g. an audio/video stream). In this context, this invention refers to a method for scrambling an original digital image into a scrambled image and for descrambling the scrambled image into a reconstructed image, taking into account that the reconstructed image can be different from the original image, from a visual point of view only. The invention also relates to a scrambling system and a descrambling system for performing respectively the scrambling and descrambling operations. Images processed by the present invention refer to raster graphics images (or bitmap images) of any formats (e.g. GIF, JPEG, TIFF, etc. . . . ). In particular, these images are images compressed by any known process which reduces the required memory space in view of their storage while keeping the possibility to recover the original image, owing to a reverse process. The compression involves the coding of the image and may be lossy or lossless. The choice of the image compression/decompression process does not depend from the invention.
Against malicious purposes and for many other reasons, there is a need to secure the access to electronically stored images or photos (i.e. the information conveyed in images/photos) in particular when their physical storages are exposed to hackers or any other malicious person. This happens for example when a storing electronic server is hacked and when the physical storage of images is susceptible to be disclosed or when an image is not protected against copying processes. Each of these situations can cause problems either to the initial owner of the image or to its hoster.
For instance, when pictures are posted on internet sites, blogs or social networks (e.g. Facebook, Twitter, etc. . . . ), according to the policy of the web hoster or the web space provider, the rights on this picture (i.e. copyrights attached to the picture) are generally automatically lost and transferred to the hoster, while the legitimate owner may prefer to keep a full control on its own asset.
A known technique aiming to prevent or deter unauthorized copying of digital images and thereby preserve the copyrights of these images is the digital watermarking process. Watermarking is the process of embedding information into a digital signal which may be used to verify its authenticity or the identity of its owners, similarly as paper bearing a watermark for visible identification. If the signal is copied, then information relating to the watermark is also carried in the copy. There are generally two classes of digital watermarks: the visible watermarks and the invisible watermarks. However, none of these classes is appropriate for the purpose of the present inventions given that watermarking seeks to add information (either visible or invisible) to the digital image but this process does not seek to scramble this image.
Document US2012/063595A1 discloses a method for protecting audiovisual content organized in packets having a format identical or similar to JPEG2000 code stream. The EBCOT (Embedded Block Coding Optimized Truncation) function of JPEG2000 encoder is able to provide information relating to the distortion-to-rate ratio of each packet. The method of this document refers to a dynamical encryption process of unprotected packet (i.e. unencrypted packets). At the beginning of the process, no packet is encrypted. The first step is to protect the unprotected packet with the highest distortion-to-rate ratio. The second step is to repeat the first step until a predetermined distortion for the audiovisual content is obtained. In a variant, the data in the packets are substituted by dummy data instead of being encrypted. Such a solution does not handle only the audiovisual content given that scrambled packets of the data stream also include other information such as markers or packet headers which do not relate to elements of the image to scramble. Moreover, this method does not provide any scalability of the scrambling process.
Document US2005/078820A1 discloses an apparatus for encrypting an image by means of encryption keys and an apparatus for decrypting an encrypted image with these keys. The invention refers to images each made up of a plurality of rectangular tiles by means of a tile segmentation unit. Each tile is encrypted by means of a specific key determined by a key generation unit on the basis of encoding parameters. Each tile is further segmented into several bit streams where each bit stream corresponds to a specific resolution of the image. Therefore, when a first bit stream is decoded, a low-resolution image can be reproduced. When another bit stream is decoded in turn, an image having a higher resolution can be reproduced. When all the bit streams are decoded, an image having the highest resolution can be reproduced. Moreover, each bit stream is encrypted by a specific key and each entire image is further encrypted with another key. A reference table used to record information indicating the location of a tile and the resolution level corresponding to a given key in a bit stream must be used. The reference table must be transmitted to the decryption apparatus by a secure method. However, as being fully based on encryption processes, each user must receive several decryption keys, and in particular keys corresponding to the resolution level which has been assigned to this user in order to be able to decrypt the stream. Moreover, it should be kept in mind that encryption/decryption process involves significant computing resources, in particular a significant computing power for providing an efficient processing speed. Besides, encryption does not allow preserving the same coding format as that of the original data, or at least does not allow preserving the semantics of this coding format.
Document US2009/0214033A1 discloses an image encryption apparatus for encrypting image data within an arbitrary document and an image decryption apparatus for decrypting encrypted image data. An encrypting module encrypts the image data within an encryption area of the document by means of an encryption key corresponding to the authority level assigned to this encryption area. A decryption key generator generates one or more decryption keys corresponding to authority levels. The image encryption apparatus selects an encryption key, from among the generated encryption keys, corresponding to a required authority level for the respective encryption areas, and encrypts the image data in each encryption area with the selected encryption key. Thus, if there are four authority levels, then the key generator generates four different keys which are each input in a specific image converter of the encryption apparatus. Then, an image encrypting generator generates encrypted image data on the basis of image data received from each image converter. Finally, the image encrypting generator replaces the original image in the document by the encrypted image issued by this generator. By requiring a specific key for each security levels, the encryption/decryption apparatus must be each provided with a certain number of image converters, thus limiting the scalability of the degradation levels due to hardware elements of these apparatuses. Besides, the same problems as those mentioned in reference to the previous document persist.
Document US2010/332343A1 discloses a method for displaying multimedia content including a first step of receiving, in a receiver/decoder, data representing the multimedia content as well as disturbance data associated with the content. The second step refers to processing the data representing the content according to associated disturbance data and according to disturbance rights stored locally in the receiver/decoder. Finally, the receiver/decoder displays the multimedia content with a disturbance defined by the disturbance data according to a level of disturbance depending on local disturbance rights. Such disturbance data can consist in the insertion of a grey rectangle (or the replacement of some pixels by grey pixels) in a selected zone or the insertion of a banner containing a publicity message. Disturbance data can be more or less important depending on the disturbance rights of the user. The disturbance is applied at the user side by the receiver/decoder (by means of a sub-module SMP of the receiver/decoder) in accordance with the disturbance level which depends on the disturbance rights of the user. According to this document, the multimedia content is sent within data stream packets (in an encrypted form) to the receiver and the disturbance data are sent aside to the multimedia content. Accordingly, a malicious person could transmit or share the decryption key required for decrypting the multimedia content with another receiver/decoder and by-passing the disturbance process given that the latter is not performed by the sender.
Therefore, there is a need to provide an efficient technical solution for controlling access to such digital pictures/images.
In order to solve the above-mentioned problems, the present invention aims to suggest a new method for scrambling/descrambling digital images in view to increase their protection, for instance depending on their usage. The scrambling/descrambling operations must be performed at a very high speed. The invention allows getting variable scrambling effects by defining several scrambling levels, each providing a specific visual degradation accordingly. Moreover, the coding format of the scrambled/descrambled image (i.e. a coded or compressed image) must be preserved. Preferably, this coding format is syntactically and semantically compliant with the coding format of the original image.
These aims are reached by a method for scrambling an original digital image into a scrambled image and for descrambling the scrambled image into a reconstructed image. The original image is defined (i.e. determined) by original coefficients in accordance with a certain predefined coding format. These original coefficients can typically refer to coding elements of this image (such as DC and/or AC coefficients of a JPEG coding format) and/or parameters of this coding format (such as quantization coefficients of a quantization matrix also known as quantization table). These coefficients belong to a bitstream (more particularly to a flowing chain of bits or to a static chain of bits) through which the images and related data can be transmitted or downloaded. As, each coefficient has a precise role into the bitstream structure, they are arranged, namely positioned, according to a definite order (i.e. position) within this bitstream. In the present description, it should be noted that the term “bitstream” is used in reference to a chain of bits, regardless if this chain is a flowing chain (a stream) or a static chain of bits. Besides, the term “coefficient”, as used in the present description, refers to a number, namely to a numerical factor or to a mathematical value of a physical parameter.
According to the present invention, each of these coefficients is identified by means of its position. This position can refer for instance to the (absolute) position of the coefficient within the bitstream, regardless of the type of coefficient. In variant, this position can refer to a position defined with respect to the image (namely a position within the image, e.g. within a block of coefficients forming a sub-image of this image) particularly when these coefficients refer to DC/AC coefficients. Finally, this position can refer to a position defined with respect to a matrix (namely a position within a matrix such as a quantization table) particularly when these coefficients refer e.g. to quantization coefficients. The present method comprises a scrambling operation and a descrambling operation as below:
The scrambling operation comprises the following steps:
The descrambling operation of the method comprises the steps of:
The above-mentioned selection can be performed during the scrambling operation or during the descrambling operation. In the case where the selection is performed during the scrambling operation, therefore the control objects received during the descrambling operation derive from this selection. On the other hand, if the selection is performed during the descramble operation (by an additional step), then all the control objects generated during the scrambled operation must be previously received before performing this selection.
This selection is based on a user access condition and allows getting a scalable reconstructed image, in accordance to a specific degradation level defined by the user access condition. Thus, the user access condition defines the rights of the user for descrambling the scrambled image into a reconstructed image. Depending on the user access condition, the reconstructed image can be a partially descrambled image or a fully descrambled image (i.e. identical to the original image). According to the present invention, the reconstructed image can be scalable into a plurality of different quality levels so that this image can still be more or less scrambled. Therefore, the reconstruction of this image can be advantageously made in an adaptive and progressive manner. To this end, the present invention allows defining the quality of the reconstructed image by means of the user access condition, in particular owing to information or parameters contained in the access condition of that user. Thus the descrambling operation of the present method is performed selectively, according to access criteria. In other words it can be performed on demand, according to the profile of the user wanting to handle this image in view to see it, to copy it, to send it or in view of any other purpose. Such a method is useful for advertising/teasing application to stimulate/promote the curiosity for a final consumption.
The present invention also refers to a system for scrambling an original digital image having a certain coding format into a scrambled image having the same coding format. Preferably the scrambled image does not only safeguard the syntax of the coding format but also its semantics (by providing plausible data which are part of this coding format). To this end, this system comprises a scrambler for scrambling an original image into a scrambled image by substituting a plurality of original coefficients (e.g. referring to coding elements of the image and/or to configuration parameters of said coding format within a conversion table) by replacement coefficients (i.e. dummy coefficients) of the same nature to safeguard (i.e. to preserve) the coding format of the original image. On the other hand, the scrambler is also able to generate at least two control objects. Each control object corresponds to a specific degradation level of the original image and can be assigned to a specific user access condition. Moreover, each control object comprises, as original data, the substituted original coefficients with their respective position. This position can refer to a position within the bitstream (according to a global point of view), within the original image (according to a restricted point of view limited to image data) or within the conversion table (according to another point of view restricted to configuration data, in particular to configuration data of a conversion table).
To perform image reconstruction, the present invention also refers to a system for descrambling a scrambled image having a certain coding format into a scalable reconstructed image having the same coding format. Each image is defined by a set of orderly coefficients. Preferably, these coefficients refer to coding elements within this image and/or to parameters of the coding format within a conversion table. The scrambled image is associated with at least two control objects, each control object corresponding to a different reconstruction level of this image. Each control object comprises original data formed by substituted original coefficients and their respective positions as explained above. These control objects are then used to retrieve original values of the substituted original coefficients, for instance by replacing dummy coefficients and/or compensated coefficients (that have been put instead of original coefficients) by the respective original values of each substituted coefficients.
The descrambling system comprises an input interface for receiving the scrambled image and original data extracted from an original image from which the scrambled image was generated. This system also comprises a descrambler for generating the reconstructed image by processing at least one control object, among at least two control objects (CO1, CO2) wherein said original data has been stored in a form of 2-tuples. Each 2-tuple comprises an original coefficient and its position. These control objects are used for substituting dummy data of the scrambled image by the original coefficients thanks to their respective position.
The descrambling system comprises an output interface for outputting the reconstructed image.
It can also comprise a selection unit to select at least one of the control objects according to a user access condition.
The present invention will be better understood thanks to the attached figures in which:
Reference will now be made in detail to the preferred embodiments of the invention, examples of which are illustrated in the accompanying drawings. While the invention will be described in conjunction with preferred embodiments, it will be understood that they are not intended to limit the invention to these embodiments. Furthermore, in the following detailed description of the present invention, numerous specific details are set forth in order to provide a thorough understanding of the present invention. However, it will be obvious to one of ordinary skill in the art that the present invention may be practiced without these specific details. In other instances, well known methods, procedures, components, and circuits have not been described in detail as not to unnecessarily obscure aspects of the present invention.
Referring to
As shown in
Referring to
The DC coefficient 12 is a value representing an average intensity of its block and therefore refers to an average of the quantity of the matrix of the coefficients. The AC coefficients are the remaining elements of the matrix. From the top left to the bottom right, the AC coefficients are values representing respectively the low to high frequency factors in the 2-dimensional space.
According to one embodiment of the present invention, several blocks of original image 10 (marked by references P1 . . . P7, P12, P17, P23, P27 and P32 in
Yet according to another embodiment, the image 10 represents a rectangular portion or zone of a complete image, and contains a plurality of blocks spread over several rows of blocks. A zone is not limited to rectangular form and can have an arbitrary shape, defined by a selection of a different number of blocks on successive rows in the image. In this case, each zone is represented by the smallest numbers of blocks that cover the entire surface delimited by the zone. A selection of several zones inside the same image is also possible.
According to a preferred embodiment of the invention, the structure of the original image 10 and the original DC coefficients 12 extracted from the aforementioned blocks are shown in
Advantageously, by directly storing the position (typically the absolute position) of each substituted data in a form of a 2-tuple within the control object, the present invention increases both the speed and the reliability of the process when original data have to be replaced instead of dummy data to get the reconstructed image. Indeed, thanks to the 2-tuples, the present method is very reliable because the reading of positions of the original coefficients is performed independently from any other process. Accordingly, there is no need to recognize or to interpret dummy data (i.e. dummy coefficients) to perform the descrambling process, because the storing of the positions of each substituted original coefficient allow putting back the appropriate original data at the right place, regardless data to exchange. Besides, it should be noted that increasing the speed as much as possible is crucial for real time processing, especially whenever the descrambler is located in an intermediate level, namely not necessarily coupled with the end media decoder.
The position of a data (e.g. a coefficient) can be identified in several ways. According to a first manner, this position is an absolute position defined by a unique value within a bitstream (in accordance to a positioning system assigning a position data, e.g. a position value, to each data of the bistream) which immediately enables to point the corresponding value (i.e. the coefficient corresponding to this position). This absolute position can be generated by a process (or a unit) which assigns a unique position value to each data (e.g. coefficients) within the bit stream (such as the encoded image), regardless the block 11 or the stream packet into which this data is located. According to another manner, the position of a coefficient, such as a DC coefficient or a quantization coefficient, can be defined in relation to its bloc number (e.g. P2, P12, P17, etc. . . . as shown as example above) or to its position within a matrix (such as a quantization matrix). According to yet another manner, the position of a coefficient, such an AC coefficient, can be defined both with in relation to its bloc number and its position within this bloc. For instance, the position P1709 assigned to a coefficient could refer to the 9th coefficient (among the 64 coefficients of a block) of the block P17. Besides, each image 10, 20 can be further identified by a unique number which can be also included in the position data. For instance, the position referenced by the number 5540P1709 could refer to the 9th coefficient of the block P17 located in the 5540th image. In any case, the position as defined in the present invention enables pointing directly the appropriate coefficient.
According to the present method, one of the first steps of the scrambling operation is to receive and to store the original image 10. However, this step should be regarded as an optional step, given that the original image may be already stored in the scrambler at the beginning of the scrambling operation. This original image is structured according to a predefined coding format having a specific syntax, so as to be readable by common players (i.e. rendering means). This coding format presents also a specific semantics allowing the interpretation of an expression such as the value of a coefficient. Preferably, this coding format refers to a differential coding so that a current DC coefficient of a certain block can be determined e.g. by subtracting the value of the non-encoded previous DC coefficient to the value of non-encoded current DC coefficient.
Then, the next step refers to the substitution of a plurality of original DC and/or AC coefficients 12, 13 by dummy coefficients 12′, 13′. According to the present invention, these dummy coefficients do not define any random coefficients but coefficients of the same nature as original coefficients, in order to guarantee the syntax of the coding format of the scrambled image 20. More preferably, the dummy coefficients of the present invention ensure not only the syntax of the encoded data stream, but also the semantics of this data stream so as to keep consistent data. Accordingly, both the format and the plausibility of the coding format can be maintained. It is therefore suitable to make a distinction between the syntax and the semantics. For instance, the syntax of a coding format based onto 3-bit binary numbers is kept if each dummy data also refers to a 3-bit binary number. However, among all the 3-bit binary numbers, certain values can be regarded as being unlikely or incredible data (i.e. as being impossible data which must be put aside), because they are merely excluded from the coding format (i.e. inexistent in this coding format) and thus they do not respect the semantics of encoded data. Consequently, in order to keep also the semantics of the coding format, it is necessary to choose dummy data that may be expected in accordance to the coding format. Advantageously, by keeping the semantics of the data stream it becomes possible to fully hide each dummy coefficient among the other original coefficients of same block. Therefore, it becomes impossible for a process to identify the presence of dummy values, whereas dummy data which does not respect the semantics of the coding format can therefore be detected as being foreign data because they are unexpected data (i.e. incredible data) in the coding format in question.
As shown by the substituting step, the present scrambling process is achieved by substituting some original coefficients by such dummy data. It means that there is no intention neither to mix the blocks (or the pixels) within the image, nor to encrypt the coefficients with an encryption key since encryption/decryption process requires significant time and computing resources. Moreover, providing a scrambling effect by an encryption process does not allow safeguarding the same coding format as that of the original data, or at least does not allow safeguarding the semantics of this coding format.
In the present invention, the scrambling effect is advantageously obtained by altering certain blocks 11 (in particular by substituting original DC/AC coefficients with dummy coefficients 12′, 13′ to get fake or misleading coefficients) while retaining their position. This position can refers to a position within a bitstream (e.g. if one considers a flow of data or static data arranged in a linear manner) or it can refers to a position within the image itself (e.g. when just one still image is concerned). Advantageously, such a substituting process requires less computing time and power than an encryption/decryption process. Accordingly, time and computing resources can be saved, both from the sender and from the receiver sides (respectively, during the scrambling and descrambling processes). On the other hand, dummy coefficients are conform to the syntax of the image format (syntax of the used codec) so as to be readable by common players. More preferably, these dummy coefficients are part of plausible coefficients of the coding format in order to preserve the semantics of the encoded data. In the example provided by
As shown in the middle of
Each control objects CO1, CO2, CO3 corresponds to a degradation level of the original image 10, since the first control object CO1 comprises all the required original data 15 to recover the original image, whereas each of the other control objects CO2, CO3 only comprises a specific part of all the original data. The degradation level of the third control object CO3 is therefore higher than the degradation levels of the two other control objects CO1 and CO2.
In the embodiment shown as example in
In variant the coefficients stored in the control objects can refer to quantizers (i.e. data used for the configuration of the decoding) instead of DC and/or AC coefficients. In this case, the substitution is applied to the quantizers in the quantization table (i.e. the conversion table which is also known as quantization matrix). Because the quantization table is a global parameter of the JPEG format, modifying its quantizers affects all blocks of the compressed image during the compression step. Therefore, in this embodiment, 2-tuple data of the original data 15 no longer contain the value of the DC/AC coefficient together with the position of the affected block. Instead, they consist of the original quantizer and its index-location in the quantization table or its position within the bitstream. Thus, the 2-tuple still comprises both a value and the position of this value, but the value refers now to a quantization value (instead of coefficient value) and the position can refer now to a position within the conversion table (instead of a position within the image). For instance, a possible original data 15 can be (QI,I), which refers to an original value Q of a quantizer at the location I (Iε[0 . . . 63]) of the quantization table. A control object CON containing only the quantizer at the lower location I (scaler of low frequency coefficients) produces more degradation than those having the quantizer at higher location I (corresponding to high frequency coefficients).
By scrambling coefficients of the quantization table, the present invention distinguishes from scrambling packets of JPEG2000 standard, because such packets never contain parameters of the coding format (such as coefficients of the quantization table). Indeed, according to JPEG2000 standard, parameters of the coding format take place in other data structures known as marker segments. Accordingly, the scrambling of packets of JPEG2000 standard does not allow the scrambling of parameters of the coding format of the image.
According to another embodiment, the coefficients stored in the control object can refer both to coding elements of the image (namely DC and/or AC coefficients) and to parameters of the coding format such as coefficients of the quantization matrix. Accordingly, the coefficients used for scrambling/descrambling images by substitution in the present invention can refer to coding elements and/or to parameters of the coding format.
At the end of the scrambling operation of the present invention, the scrambled image 20 (which still refers to an encoded or compressed image) has a coding format having the same syntax as that of the original image. Preferably, the coding format of the scrambled image 20 also preserves the semantics of the coding format of the original image, thanks to including realistic dummy coefficients.
The descrambling operation, which is made as a pseudo-reverse operation after the above scrambling operation, is now described with reference to
The second step refers to the using of original data 15, deriving from (i.e. coming from or resulting from) a selection of at least one of the control objects generated during the scrambling operation, for obtaining the reconstructed image 30 by putting back the original coefficients 12, 13, instead of said dummy coefficients, thanks to their respective position.
Advantageously, the position of any coefficient, as stored in a 2-tuple, enables to identify the original coefficient (since data included in each 2-tuple form a pair of unique data) and the dummy coefficient without requiring the reading of any coefficient. As this identification is immediate, the related process of substitution is very fast and fully reliable.
According to one embodiment, original data 15 used for obtaining the reconstructed image 30 during the descrambling operation is derived from a selection (of at least one of the control objects) performed during the scrambling operation. Therefore, all the control objects received at the descrambling operation are issued from this selection. Such a selection can be achieved e.g. by a selecting unit located within the system hosting the scrambler or within another entity connected to this system.
According to another embodiment, this selection is performed during the descrambling operation (by an additional step), after having received all the control objects generated during the scrambling operation. As this selection is performed on the basis of the user access condition assigned to each user (or group of users), the scrambler (or the system hosting the scrambler or connected to the later) does not need to manage the access conditions of the users. Thus, the selection can be performed at the user side, during the descrambling operation which can be achieved in a secured environment.
The user access condition can be regarded as a parameter that is specific for a certain user. It defines the remaining degradation level of the reconstructed image, i.e. the quality of the descrambled image after the descrambling operation. Thus, the user access condition can be regarded as data or information used for pointing or for designating one or several specific control objects. However, the user access condition should not be considered as being a decryption key, but should be regarded, for instance, as being a value which is representative of an access level used during the descrambling operation for defining the degradation level of the reconstructed image. Depending on the embodiment, the user access condition can be provided to the descrambling operation as a specific input each time the user wants to access to a scrambled image. However, the user access condition can be also stored in a memory of the device which performs the descrambling operation. Preferably, the user access condition has to be renewed periodically. According to another embodiment, the user access condition can be included within an entitlement control message that must be received periodically by the device processing the descrambling operation.
As shown as example in
As better shown in
Alternatively,
Advantageously, selecting at the user side (i.e. during the descrambling operation) at least one control object among a plurality of control objects storing original data allows to provide several degradation levels on the basis of same data received by the user, namely the same scrambled images and the same control objects that can be sent to all users (e.g. through a broadcast channel) whatever their access conditions. Accordingly, the upgrading or the downgrading of the access condition assigned to a user does not imply sending to this user other data in addition or instead of those he has already received.
According to a preferred embodiment, the degradation level of the reconstructed image corresponds to the number of blocks, which DC and/or AC coefficients are recovered to their original values thanks to the original data 15.
According to another embodiment, the degradation level of the reconstructed image is inversely proportional to the level of image-details (carried by the transformed coefficient at high frequency), which are correctly inverse-quantized. The more quantizers at the higher frequency are recovered, the lower degradation the reconstructed image suffers from.
According to another embodiment, each control object can be secured against reading by means of an additional encryption step using a key 16, during the scrambling operation. Consequently, the descrambling operation also comprises an additional step for decrypting each encrypted control object by means of this key 16. A single key 16 (or a single pair of public/private keys) could be used for encrypting and/or decrypting all the control objects whatever their organization (i.e. according to
In another embodiment, particularly applicable to the hierarchic organization of the control objects shown in
In a further embodiment, the key 16 of a certain level of degradation is obtained by a hash function of the key related to the lower level of degradation. Advantageously, there is no need to provide more than one key (K1, K2, K3) to a user in order to give him access to the respective control object(s).
In another embodiment, the encryption and decryption steps of the scrambling and descrambling operations can be performed with a key 16 according to a symmetric encryption scheme, or with a paired key 16 according to an asymmetric encryption scheme involving one public key and one private key.
Reference is now made to
In order to limit the spread of the image degradation caused by this drift effect (cascading effect), especially when the dummy effect is applied to a portion of the image and not its entirety, the method of the present invention suggests that the scrambling operation further comprises, for each block where the drift effect has to be stopped, a step for calculating a compensated coefficient 12″ (
As shown in
Once the calculation of a compensated coefficient has been made, the scrambling operation of the method also comprises steps aiming to substitute the original DC coefficient 12 of the compensated block 22 by the compensated coefficient 12″, and to store this original DC coefficient 12, together with its position (within the original image or within the bitstream), as additional original data 15 into a control object.
According to one embodiment, the compensated coefficient 12″ is calculated on the basis of the difference between the corresponding dummy coefficient 12′ (i.e. its dummy value) and the corresponding substituted original DC coefficient 12 (i.e. its original value). In particular, this difference is subtracted to the original value of the original DC coefficient 12 which has been substituted by the compensated coefficient 12″.
Referring now for instance to
Although shown here in reference to compensated coefficient, it should be noted that the variable length coding (VLC) is not only applicable to compensated coefficients of compensated blocks 22, but it is also applicable to dummy coefficients of uncompensated blocks (i.e. to dummy coefficients of a scrambled blocks 21).
According to an embodiment of the present invention, the DC coefficients are coded according to a Variable Length Coding and the substitution step (within the scrambling operation) selects the length of the dummy coefficient 12′ as the same as the length of the substituted coefficient 12.
The VLC coding is defined as being of variable length to keep the coding format so that blocks are still fully readable by common players (e.g. to be compliant with the JPEG norm). Regarding to the calculation of compensated coefficients 12″, a first option is to provide a compensated coefficient 12″ (also noted DCc) having the same length (i.e. the same bits length) as the original DC coefficient 12 (also noted DCo). By substituting the original DC coefficient DCo by a compensated coefficient DCc there is no incidence in the following AC coefficients in case where the compensated coefficient DCc is the same length as the original DC coefficient DCo.
However, in case where the length of the compensated coefficient DCc is different (i.e. either shorter or longer) than the original DC coefficients DCo, this bits length difference impacts on the structure of the block by causing a shifting of the AC coefficients. To obviate this shifting,
If the data available through the first AC coefficient AC1o is not enough to fully compensate the drift, then some or all of the AC coefficients from the block can be used to generate the appropriate compensation.
For implementing this way of doing into the method of the present invention, the following features have to be considered. The DC coefficients are coded according to a Variable Length Coding. In case that the length of the compensated coefficient 12″ is different than the length of the original DC coefficient 12, the method comprises the steps of:
If the quantity of bits available through the first AC coefficient is not sufficient, then some or all the following AC coefficients can be used to generate the compensated DC coefficient 12″ and the fake AC coefficient(s) 13′.
Although
According to more general considerations of the invention, the dummy coefficients 12′, 13′ and/or the compensated coefficients 12″ are preferably syntactically and semantically compliant with the coding format of the original image 10. Besides, each of the blocks of coefficients of the image 10 can be identified by a unique identifier. This identifier can be used for identifying the original coefficient of each block. Preferably, each original coefficient is identified by means of its position within the image, e.g. by means of the pair of original data 15 which comprises the value of the original coefficient together with its position within the image. More preferably, the position of each coefficient is referenced with respect to the bitstream, namely by means of a value corresponding to the absolute position of the coefficient within the bitstream. Accordingly, this position enable the system to immediately identify the appropriate coefficient, regardless the nature of data included in the bistream. Still preferably, the determination of the original coefficients that have to be substituted by dummy coefficients is made randomly among all the coefficients of the original image.
The area, within the image, where dummy coefficients are generated can be limited to a portion of the digital image or can be extended to the entire image. According to an embodiment, each control object is defined by an integer value which does not exceed the total number of control objects. The number of original data 15 is preferably equal in each control object referring to embodiments shown in
According to the present invention, it should be noted that the scrambled image 20 is a fully scrambled image, namely an image which requires the access to all the control objects in order to recover the corresponding original image 10. Accordingly, the scrambled image 20 does not refer to an image which can be assigned to several levels of degradation. Only the reconstructed image 30 refers to a scalable image, since it can refer to a fully descrambled image or to a more or less scrambled image. Besides, it should be also noted that all the images, namely the original image 10, the scrambled image 20 and the reconstructed image 30, have the same nature in order to preserve the coding format (which is defined by the original image). More preferably, no only the syntax of the coding format is safeguarded in the nature of the images 20, 30, but also the semantics so that all the coefficients used for defining these images are likely coefficients (i.e. plausible coefficients) pertaining to this coding format. Therefore, the result of the scrambling is only visually noticeable. Advantageously, this means that any electronic device is fully unable to recognize a scrambled image from an unscrambled image, given that all of them have been defined by coefficients which are fully compliant to the coding format of the original image. Depending on the scrambling level, the visual effect of the scrambled image can even create an artistic visual effect.
The present invention also refers to a system for scrambling an original image, having a certain coding format, into a scrambled image having the same coding format. In accordance with this coding format, the original image 10 is defined by a set of original coefficients, in particular a set of orderly coefficients (i.e. coefficients arranged according to a definite order or a definite pattern such as a matrix or a table, so that they are identifiable by their position within this arrangement or within this pattern). Preferably, these original coefficients refer to coding elements (such as DC/AC coefficients positioned in blocks 11) within this image, and/or to parameters (such as quantization elements) of said coding format within a conversion table (typically a quantization table in which said quantization elements are stored).
Such a system comprises a scrambler for scrambling an original image 10 in a scrambled image 20. The scrambling operation is obtained by substituting a plurality of original coefficients (e.g. AC and/or DC coefficients or elements of a quantization matrix, which can be regarded as being syntax elements) by dummy coefficients (i.e. replacement syntax elements) of the same nature to preserve the coding format. The scrambler is able to generate at least two control objects CO1, CO2, each control object corresponding to a specific degradation level of the original image 10. Besides, each control object comprises, as original data 15, the substituted original coefficients with their respective position. Depending on the kind of coefficients, this position can refer to the position of the coefficients DC/AC within the image or to the position of coefficient (e.g. a quantizer) within a conversion table (e.g. a quantization table). According to a preferred embodiment, this position refers to the absolute position of the coefficient within the bitstream corresponding to the image(s).
Given that each control object corresponds to a different degradation level of the original image 10, a specific user access condition 25 can be assigned to each control object. In one embodiment, the scrambler further comprises a selecting unit for selecting which control object(s) must be available for a specific user on the basis of the user access condition assigned to this user. Further to this selection, the user will be provided with the appropriate control object(s) allowing to descramble the scrambled image 20 in accordance to a degradation level corresponding to his own user access condition. The selecting unit may be also located within another entity connectable to the descrambling device of the user and in charge of managing the user access conditions of all users (or group of users).
According to another embodiment, the scrambler does not proceed with such a selection (and thus does not require a selecting unit) given that it provides, to any user, the scrambled image and all the control objects. Accordingly, the scrambler does not need to manage the user access conditions of the users because the selection is therefore performed at the user side, during the descrambling operation which can be achieved in a secured environment.
Depending on the method implemented in this system and in the case where original coefficients refer to DC/AC coefficients, each dummy coefficients can be also followed by a compensated coefficient which replaces an original coefficient whose value and position are also stored as additional original data 15 in one of the control objects CO1, CO2.
In order to proceed with a pseudo-reverse operation, the present invention also refers to a system 40 for descrambling a scrambled digital image 20, having (or compliant with) a certain coding format, into a scalable reconstructed image 30, having the same coding format. Each image 20, 30 being defined by a set of orderly coefficients 12, 12′, 13, 13′ which preferably refer to coding elements within this image and/or to parameters of said coding format within a conversion table. One embodiment of this system 40 is schematically shown in
The control objects are used for substituting fake coefficients of the scrambled image 20. Fake coefficients can refer to dummy coefficients 12′ and/or compensated coefficient 12″ previously used for replacing original DC coefficients 12, and/or can refer to dummy coefficients 13′ used for replacing original AC coefficients 13. Alternately or in addition, these control objects can comprise other original coefficients such as parameters (e.g. quantizers) of the coding format and their respective positions (within the bitstream or with respect to a matrix such as a conversion table or a quantization table).
The system 40 comprises an input interface 41 for receiving the scrambled image 20 and original data 15 extracted from an original image 10 from which the scrambled image 20 was generated.
This system 40 also comprises a descrambler for generating the reconstructed image 30 by processing at least one control object, among at least two control objects into which original data 15 has been stored in a form of 2-tuples. Each 2-tuple comprises an original coefficient 12, 13 and its position. The processing of control objects is used for substituting dummy data of the scrambled image 20 by the original coefficients 12, 13 thanks to their respective position.
The scrambled image 20 can be received by the input interface 41 as first input and the control objects as second input. Preferably, the control objects are received by a security unit located within the system 40.
According to one embodiment, the system 40 can also comprise a selection unit 42 (SU) to select at least one of the control objects CO1, CO2, CO3 when all the control objects generated by the scrambler are received by the descrambler. The selection is performed in accordance with a user access condition 25.
The descrambler can comprises a replacement unit 43 (RU) to substitute the fake coefficients (dummy DC coefficients 12′, compensated DC coefficients 12″, fake AC coefficients 13′ or fake coefficients of the quantization table) of the scrambled image 20 by the original coefficients (previously substituted during the scrambling operation) extracted from the selected control object(s). The selection unit 42 and/or the extraction and/or the replacement of the control objects can be preferably performed within the security unit.
The reconstructed image 30 can be finally delivered out of this system through an output interface 41′ as shown in
According to one embodiment, the system 40 further comprises an identification unit 44 (IU) to identify a user wanting to access to the scrambled image 20, and an access condition unit 45 (ACU) for determining the user access conditions 25 (UAC). The user access condition 25 can be imported into the system 40 as third input through the input interface 41.
As shown in
Optionally, this system may further comprise a decryption unit 47 (DU) for decrypting control objects CO1, CO2, CO3 with an appropriate key 16 in case where these control objects have been previously encrypted (in one of the manners already disclosed in the present description). To this end, the system can also comprise a security module 48 for storing the appropriate key 16 within a secured environment or for receiving this key as another input under an encrypted message and for processing this message to extract the required key 16. Preferably, the security module 48 and the security unit form the same entity.
Although three control object CO1, CO2, CO3 have been used in the examples of the present detailed description, it should be understood that the present invention is not limited to three control objects. From a general point of view, at least two control objects are defined.
Number | Date | Country | Kind |
---|---|---|---|
12160072.0 | Mar 2012 | EP | regional |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/EP2013/055585 | 3/19/2012 | WO | 00 | 9/5/2014 |
Number | Date | Country | |
---|---|---|---|
61612412 | Mar 2012 | US |