ES2321363B2 - DIGITAL WATER MARKING SYSTEM IN PARTICULAR OF AN AGUADIGITAL MARKING SYSTEM FOR THE DETECTION AND LOCATION OF ALTERATIONS IN DIGITAL IMAGES. - Google Patents
DIGITAL WATER MARKING SYSTEM IN PARTICULAR OF AN AGUADIGITAL MARKING SYSTEM FOR THE DETECTION AND LOCATION OF ALTERATIONS IN DIGITAL IMAGES. Download PDFInfo
- Publication number
- ES2321363B2 ES2321363B2 ES200603214A ES200603214A ES2321363B2 ES 2321363 B2 ES2321363 B2 ES 2321363B2 ES 200603214 A ES200603214 A ES 200603214A ES 200603214 A ES200603214 A ES 200603214A ES 2321363 B2 ES2321363 B2 ES 2321363B2
- Authority
- ES
- Spain
- Prior art keywords
- message
- image
- vector
- value
- integrity
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 17
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 title claims description 7
- 230000004075 alteration Effects 0.000 title abstract description 24
- 238000000034 method Methods 0.000 claims abstract description 99
- 239000013598 vector Substances 0.000 claims description 121
- 238000011002 quantification Methods 0.000 claims description 30
- 230000001419 dependent effect Effects 0.000 claims description 23
- 230000006870 function Effects 0.000 claims description 18
- 238000012544 monitoring process Methods 0.000 claims description 17
- 238000004891 communication Methods 0.000 claims description 12
- 230000001360 synchronised effect Effects 0.000 claims description 9
- 238000013139 quantization Methods 0.000 claims description 8
- 230000008569 process Effects 0.000 description 43
- 238000003780 insertion Methods 0.000 description 28
- 230000037431 insertion Effects 0.000 description 28
- 238000000605 extraction Methods 0.000 description 25
- 238000010586 diagram Methods 0.000 description 10
- 230000002123 temporal effect Effects 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 7
- 230000006835 compression Effects 0.000 description 7
- 238000007906 compression Methods 0.000 description 7
- 238000012966 insertion method Methods 0.000 description 5
- 239000011159 matrix material Substances 0.000 description 5
- 238000003860 storage Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000001228 spectrum Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 239000000654 additive Substances 0.000 description 2
- 230000000996 additive effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000005549 size reduction Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 230000001268 conjugating effect Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
- H04N19/467—Embedding additional information in the video signal during the compression process characterised by the embedded information being invisible, e.g. watermarking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/0021—Image watermarking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/0021—Image watermarking
- G06T1/0028—Adaptive watermarking, e.g. Human Visual System [HVS]-based watermarking
- G06T1/0035—Output size adaptive watermarking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/32—Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
- H04N1/32101—Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title
- H04N1/32144—Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title embedded in the image data, i.e. enclosed or integrated in the image, e.g. watermark, super-imposed logo or stamp
- H04N1/32149—Methods relating to embedding, encoding, decoding, detection or retrieval operations
- H04N1/32154—Transform domain methods
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/16—Analogue secrecy systems; Analogue subscription systems
- H04N7/167—Systems rendering the television signal unintelligible and subsequently intelligible
- H04N7/1675—Providing digital key or authorisation information for generation or regeneration of the scrambling sequence
-
- H04N7/26372—
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Editing Of Facsimile Originals (AREA)
Abstract
Sistema de marcado de agua digital en particular de un sistema de marcado de agua digital para la detección y localización de alteraciones en imágenes digitales.Digital watermarking system in particular of a digital watermarking system for detection and location of alterations in digital images.
Un sistema de marcado de agua digital con detección de manipulación de imágenes digitales para sistemas de vídeo. Supervisión insertando información de integridad y al menos un mensaje, caracterizado porque el método de marcado de agua comprende los pasos de:A digital watermarking system with digital image manipulation detection for systems video. Supervision by inserting integrity information and at least a message, characterized in that the watermarking method Understand the steps of:
transformar la imagen digital en una imagen digital transformada, dividir ésta en una pluralidad de bloques; obtener una pluralidad de valores proyectados de mensaje para cada uno de los mensajes; insertar cada bit de cada mensaje al menos en uno de dichos valores proyectados de mensaje; obtener valores proyectados de integridad para dicha información de integridad; insertar cada parte de la información de integridad en dichos valores proyectados de integridad; actualizar cada coeficiente predeterminado usado para calcular los valores proyectados de mensaje con los valores proyectados insertados de mensaje; actualizar cada coeficiente predeterminado usado para calcular los valores proyectados de integridad con los valores proyectados insertados de integridad.transform the digital image into an image digitally transformed, divide this into a plurality of blocks; obtain a plurality of projected message values for each one of the messages; insert each bit of each message at least in one of said projected message values; get values integrity projections for such integrity information; insert each part of the integrity information into those projected integrity values; update each coefficient default used to calculate the projected values of message with the projected message values inserted; update each default coefficient used to calculate the projected integrity values with projected values integrity inserts
Description
Sistema de marcado de agua digital en particular de un sistema de marcado de agua digital para la detección y localización de alteraciones en imágenes digitales.Digital watermarking system in particular of a digital watermarking system for detection and location of alterations in digital images.
La presente invención se refiere a un sistema de marcado de agua digital en particular de un sistema de marcado de agua digital para la detección y localización de alteraciones en imágenes digitales, en el que las imágenes digitales son obtenidas en un sistema digital de vídeo supervisión.The present invention relates to a system of digital water marking in particular of a marking system of digital water for the detection and location of alterations in digital images, in which digital images are obtained in a digital video monitoring system.
En un sistema de vídeo supervisión un elemento fundamental es la cámara. Actualmente, las cámaras analógicas son sustituidas por cámaras de seguridad digitales. éstas, en muchos casos, están diseñadas para utilizar las redes de comunicaciones digitales existentes, lo que conlleva una reducción de los costes de instalación. Ese factor es el causante del rápido aumento del número de ese tipo de sistemas digitales.In an video system monitoring an element The camera is fundamental. Currently, analog cameras are replaced by digital security cameras. these, in many cases, are designed to use communications networks existing digital, which leads to a reduction in costs of installation. That factor is the cause of the rapid increase in number of that kind of digital systems.
Otros dispositivos comunes en los sistemas de vídeo supervisión digitales son los servidores de vídeo. Su función principal es digitalizar la señal de vídeo analógica. Otra característica habitual es que realizan las funciones de interfaz entre las cámaras analógicas y las redes de comunicaciones digitales. Esto permite pasar de forma gradual de un sistema vídeo supervisión analógico a uno digital.Other common devices in the systems of Digital video monitoring are video servers. Its function Main is to digitize the analog video signal. Other usual feature is that they perform interface functions between analog cameras and communications networks digital This allows to gradually pass a video system analog to digital supervision.
Los servidores centrales son los otros dispositivos que componen, con los presentados anteriormente, el conjunto de elementos básicos de un sistema de vídeo supervisión digital. Su cometido esencial es la configuración del sistema y el control general de las cámaras digitales y los servidores de vídeo. Además, es muy común que se archiven en ellos las secuencias de vídeo obtenidas.The central servers are the others devices that make up, with those presented above, the set of basic elements of a video monitoring system digital. Its essential task is the configuration of the system and the general control of digital cameras and video servers. In addition, it is very common that the sequences of video obtained.
Estos nuevos sistemas digitales de vídeo supervisión aparecen fruto del enorme avance en las tecnologías de la información en las últimas décadas. Paralelamente a su aparición surgen numerosas aplicaciones para la edición de imágenes fijas y vídeo. Con ellas no es complicado conseguir alterar una imagen, de tal forma que no se pueda discernir entre una original y una falsa. Además, el número de potenciales manipuladores ha aumentado de manera enorme, ya que debido a Internet esas herramientas de edición están al alcance de un gran número de usuarios. Una consecuencia de lo anterior es que, desde el punto de vista de la autenticidad, la validez de las imágenes fijas y los vídeos digitales está cada vez más cuestionada.These new digital video systems supervision appear fruit of the enormous advance in the technologies of Information in recent decades. Parallel to its appearance numerous applications arise for editing still images and video. With them it is not complicated to alter an image of so that you cannot discern between an original and a false one. In addition, the number of potential manipulators has increased from huge way, because due to the Internet those tools of Edition are available to a large number of users. A consequence of the above is that, from the point of view of the authenticity, validity of still images and videos Digital is increasingly questioned.
El marcado de agua digital es una de las soluciones propuestas para resolver el problema mencionado anteriormente. Es un conjunto de técnicas empleadas para insertar información en un documento digital (imagen, vídeo, audio, etc.). La introducción de la información se realiza modificando el documento original (huésped) con la restricción principal de que la distorsión producida por el marcado se tolerable (en función de la aplicación). Una de sus ventajas esenciales es que los datos insertados están ligados al huésped, de ahí que no sea necesario ningún archivo adicional como ocurre en el caso de la criptografía.Digital watermarking is one of the proposed solutions to solve the mentioned problem previously. It is a set of techniques used to insert information in a digital document (image, video, audio, etc.). The introduction of the information is done by modifying the original document (guest) with the main restriction that the distortion caused by marking is tolerable (depending on the application). One of its essential advantages is that the data inserted are linked to the host, hence it is not necessary no additional files as in the case of the cryptography.
Para la clasificación de una técnica concreta de marcado de agua digital se emplean varias características. Dos de las más importantes son la robustez y la necesidad o no del huésped para hacer posible la extracción de la información. Sobre esta última característica, se dice que una técnica es ciega si para la extracción de la información no necesita el huésped y no ciega en el caso contrario.For the classification of a specific technique of Digital watermarking uses several features. Two of the most important are the robustness and the need or not of the host to make possible the extraction of information. About this last feature, it is said that a technique is blind if for information extraction does not need the guest and does not blind in the opposite case.
En la vídeo supervisión, una condición imprescindible es que no se necesiten las imágenes originales para poder extraer la información, para evitar doblar la capacidad de almacenamiento requerida. Como consecuencia se desprende que una técnica de marcado de agua para sistemas de vídeo supervisión debe ser preferiblemente ciega.In video supervision, a condition it is essential that the original images are not needed to to be able to extract the information, to avoid doubling the capacity of storage required As a result it follows that a Watermarking technique for video monitoring systems must be preferably blind
Una técnica de marcado de agua es robusta si la marca que tiene insertada resiste las alteraciones, pudiendo ser casuales o intencionadas. En el caso opuesto se encuentran las técnicas frágiles, que son aquéllas en las que la marca se corrompe tras la a la más mínima alteración. Para la detección de manipulaciones de contenidos digitales se usan las técnicas frágiles o semifrágiles, pues ellas permiten demostrar la autenticidad del contenido analizando la integridad de la marca.A watermarking technique is robust if the brand that has inserted resists alterations, being able to be casual or intentional. In the opposite case are the fragile techniques, which are those in which the brand is corrupted after the most minimal alteration. For the detection of Fragile digital content manipulations are used or semi-fragile, because they allow to demonstrate the authenticity of the content analyzing the integrity of the brand.
Actualmente, una de las grandes familias de técnicas de marcado de agua digital es la de espectro ensanchado, otra es aquélla formada por las llamadas técnicas de marcado de agua digital con información lateral en el codificador. Una característica particular de las técnicas de marcado de agua digital de espectro ensanchado en esquemas ciegos es que sufren la interferencia del propio huésped. En contraposición, las técnicas con información lateral en el codificador no sufren dicha interferencia. Dado que, como se indicó anteriormente, la autenticación de las imágenes de un sistema de vídeo supervisión es preciso que sea ciega, los esquemas más avanzados usan técnicas con información lateral en el codificador.Currently, one of the big families of Digital watermarking techniques is the spread spectrum, another is that formed by the so-called marking techniques of digital water with lateral information in the encoder. A particular feature of digital watermarking techniques wide spectrum in blind schemes is that they suffer the guest interference itself. In contrast, the techniques with lateral information in the encoder do not suffer such interference. Since, as indicated above, the Authentication of the images of a video monitoring system is it must be blind, the most advanced schemes use techniques with lateral information in the encoder.
Un ejemplo de técnica de marcado de agua digital con información lateral en el codificador y extracción ciega se puede encontrar en el artículo de B. Chen y G. W. Wornell: "Quantization Index Modulation: A Class of Provably Good Methods for Digital Watermarking and Information Embedding", publicado en IEEE Transactions on Information Theory, Vol. 47, No. 4, Mayo 2001. En este documento se muestra la posibilidad de usar cuantificadores para insertar información en el huésped. Básicamente, la idea propuesta es tener un conjunto de cuantificadores de los cuales se selecciona uno dependiendo del mensaje que se quiera insertar. La obtención de ese conjunto de cuantificadores no es trivial. Los autores proponen un procedimiento práctico para obtenerlos de manera eficiente y estructurada. Partiendo de un cuantificador prototipo se desplazan los puntos de reconstrucción, con el efecto de la obtención de un cuantificador distinto; esta técnica se llama modulación Dither. Por otra parte, se muestra como es posible aumentar la robustez bajando la tasa de transmisión. Uno de los procesos expuestos consiste en proyectar los valores del huésped antes de insertar la marca, de este modo el ruido que sea ortogonal al vector sobre el que se proyecta no influirá en la comunicación. En este documento se presenta la técnica llamada compensación de distorsión DC (Distortion-Compensated); mediante ella se puede controlar la diferencia entre el documento marcado y el documento original. Como resultado, existe otro valor con el que se puede llegar a una solución válida entre la robustez de la marca de agua y la imperceptibilidad.An example of a digital watermarking technique with lateral information on the encoder and blind extraction can be found in the article by B. Chen and GW Wornell: "Quantization Index Modulation: A Class of Provably Good Methods for Digital Watermarking and Information Embedding" , published in IEEE Transactions on Information Theory, Vol. 47, No. 4, May 2001. This document shows the possibility of using quantifiers to insert information into the host. Basically, the proposed idea is to have a set of quantifiers of which one is selected depending on the message you want to insert. Obtaining that set of quantifiers is not trivial. The authors propose a practical procedure to obtain them in an efficient and structured way. The reconstruction points are displaced from a prototype quantifier, with the effect of obtaining a different quantifier; This technique is called Dither modulation. On the other hand, it is shown how it is possible to increase the robustness by lowering the transmission rate. One of the exposed processes consists in projecting the values of the host before inserting the mark, in this way the noise that is orthogonal to the vector on which it is projected will not influence the communication. This document presents the technique called DC distortion compensation ( Distortion-Compensated ); through it you can control the difference between the marked document and the original document. As a result, there is another value with which a valid solution can be reached between the strength of the watermark and imperceptibility.
Otro enfoque de la proyección en el marcado de agua digital se puede encontrar en el artículo de Fernando Pérez-González, Félix Balado, y Juan R. Hernández: "Performance analysis of existing and new methods for data hiding with known-host information in additive channels", publicado en IEEE Transactions on Signal Processing, 51(4):960-980, Abril 2003. Special Issue on Signal Processing for Data Hiding in Digital Media & Secure Content Delivery. En este documento los autores dan una visión más amplia de la proyección de los valores del huésped, pues llegan a una solución de compromiso entre las técnicas de inserción con información lateral en el codificador y las técnicas de espectro ensanchado.Another approach to projection in marking digital water can be found in Fernando's article Pérez-González, Félix Balado, and Juan R. Hernández: "Performance analysis of existing and new methods for data hiding with known-host information in additive channels ", published in IEEE Transactions on Signal Processing, 51 (4): 960-980, April 2003. Special Issue on Signal Processing for Data Hiding in Digital Media & Secure Content Delivery In this document the authors give a more insight wide projection of host values, as they reach a compromise solution between insertion techniques with lateral information in the encoder and spectrum techniques widened
Otra implementación práctica de las técnicas basadas en cuantificadores está en el documento de Joachim J. Eggers, Robert Bauml, Tomas Tzschoppe y Bernd Girod: "Scalar Costa Scheme for Information Embedding", publicado en IEEE Transactions on Signal Processing, VOL. 51, NO. 4, Abril 2003. En este documento se muestra una técnica cercana a la modulación Dither, pero centrada exclusivamente sobre cuantificadores escalares.Another practical implementation of the techniques based on quantifiers is in the document by Joachim J. Eggers, Robert Bauml, Tomas Tzschoppe and Bernd Girod: "Scalar Costa Scheme for Information Embedding ", published in IEEE Transactions on Signal Processing, VOL. 51, NO. 4, April 2003. In This document shows a technique close to modulation Dither, but focused exclusively on quantifiers scalars
Los artículos presentados anteriormente tienen como denominador común el enfoque teórico de los esquemas de marcado de agua que proponen. Un ejemplo de ello es modelar el canal ruidoso de comunicación como un canal con ruido blanco gausiano aditivo, mientras que en muchas ocasiones el canal está caracterizado por un ruido de cuantificación; como es el caso de la codificación de imágenes fijas en JPEG o vídeos en MPEG-1.The articles presented above have as a common denominator the theoretical approach of the schemes of watermarking they propose. An example of this is modeling the Noisy communication channel as a channel with white noise additive Gaussian, while on many occasions the channel is characterized by a quantization noise; as is the case with the encoding still images in JPEG or videos in MPEG-1
Hay varias patentes centradas en el campo del marcado de agua para la autenticación de imágenes. La patente US20041 31 1 84 tiene como fin demostrar la validez de vídeos para ser usados como pruebas irrefutables ante la justicia. Utiliza técnicas de marcado de agua Dither-QIM, introduciendo dos tipos de información: uno es de identidad y el otro de control. La información de identidad se usa para identificar la secuencia del vídeo, y la de control se utiliza para determinar si la imagen fue manipulada. Otra característica básica en esta patente es que menciona únicamente el estándar MPEG. Ese estándar divide los coeficientes de cada bloque por una matriz de cuantificación, por lo tanto hay grandes distorsiones en la información insertada en el momento de la compresión del grupo de imágenes, como consecuencia para introducir la información necesita alterar una gran cantidad de coeficientes por cada bloque. Al marcar un número de coeficientes elevado la diferencia entre la imagen original y la imagen con la marca es, normalmente, bastante perceptible. Está ideada para implementarse en un computador portátil que acompañe a los sistemas de grabación de los coches patrulla.There are several patents focused on the field of watermarking for image authentication. The patent US20041 31 1 84 aims to demonstrate the validity of videos to be used as irrefutable evidence before the courts. It uses Dither-QIM watermarking techniques , introducing two types of information: one is identity and the other is control. Identity information is used to identify the video sequence, and the control information is used to determine if the image was manipulated. Another basic feature in this patent is that it mentions only the MPEG standard. This standard divides the coefficients of each block by a quantification matrix, therefore there are large distortions in the information inserted at the time of compression of the group of images, as a consequence to enter the information you need to alter a large number of coefficients for each block. When marking a high number of coefficients, the difference between the original image and the image with the mark is usually quite noticeable. It is designed to be implemented in a laptop that accompanies the recording systems of patrol cars.
La patente EP1001604 muestra un método para
introducir información en imágenes. Opera con imágenes fijas
codificadas con el estándar JPEG o JPEG2000, y utiliza para
insertar la información una adaptación de SCS (Scalar Costa
Scheme de Eggers et al.). Fija los valores del tamaño de
los escalones de cuantificación usados para introducir la
información reduciendo, por tanto, la versatilidad del método
original. Además, no contempla ninguna técnica que permita
introducir la información con un grado mayor de robustez, como
pueden ser las técnicas de proyec-
ción.EP1001604 patent shows a method for entering information into images. It operates with still images encoded with the JPEG or JPEG2000 standard, and uses SCS adaptation ( Scalar Costa Scheme of Eggers et al .) To insert the information. It sets the size values of the quantification steps used to enter the information, thus reducing the versatility of the original method. In addition, it does not include any technique that allows entering information with a greater degree of robustness, such as projecting techniques.
tion.
Una patente usada para autenticar flujos de imágenes es US2003172275, con el objetivo de garantizar los derechos de autor. En ella se clasifican las imágenes que forman en el flujo síncronas y asíncronas. En las imágenes síncronas se introduce una marca en los bloques seleccionados pseudoaleatoriamente. En la introducción de la información utiliza técnicas de inserción con información lateral en el codificador. Debido a que la marca no se introduce en toda la imagen, no es posible localizar las alteraciones.A patent used to authenticate flows of Images is US2003172275, with the aim of guaranteeing Copyright. It classifies the images that form in synchronous and asynchronous flow. In synchronous images, enter a mark in the selected blocks pseudorandomly. In the introduction of the information you use Insertion techniques with lateral information in the encoder. Because the brand is not introduced in the whole image, it is not Possible to locate the alterations.
Una idea para unir las técnicas de marcado de agua y las cámaras de red, los servidores de cámaras de red o los servidores vídeo digitales se muestra en la patente US2004071311. En ella se indica un solución posible para integrar las cámaras y el proceso de inserción de la marca de agua desde un punto de vista físico. En la actualidad hay numerosos fabricantes de cámaras de red, por lo que es más factible diseñar un método que se adapte perfectamente a las cámaras ya existentes que tratar de diseñarlas desde el principio. El proceso de introducción de la marca está caracterizado por insertar una robusta para poder demostrar la autenticidad y otra frágil para localizar las alteraciones. No obstante, en la patente no se describe un método lo suficientemente completo para poder abordar los problemas propios de la compresión en JPEG o en cualquiera de los estándares MPEG.An idea to join the marking techniques of water and network cameras, network camera servers or Digital video servers are shown in US2004071311. It indicates a possible solution to integrate the cameras and the process of inserting the watermark from a point of view physical. There are currently numerous camera manufacturers of network, so it is more feasible to design a method that suits perfectly to existing cameras that try to design them From the beginning. The process of introducing the brand is characterized by inserting a robust to demonstrate the authenticity and other fragile to locate the alterations. Do not However, a sufficiently described method is not described in the patent complete to address the problems of compression in JPEG or in any of the MPEG standards.
De lo expuesto anteriormente se deduce la necesidad encontrar una solución práctica para el problema de la detección y localización de manipulaciones espaciales y/o temporales en imágenes fijas o flujos de imágenes generados por sistemas de vídeo supervisión digitales. Donde dicha solución debe proporcionar un alto grado de fiabilidad y seguridad, de tal manera que lo que muestren las imágenes sea irrefutable. Otro requisito necesario, que no ha sido solventado aún, es la perfecta adaptación de los métodos de autenticación a las particularidades de los sistemas de vídeo supervisión digitales existentes, tales como la resistencia a la transcodificación de JPEG a MPEG o la adaptabilidad a las limitaciones computacionales de los dispositivos que integran esos sistemas, por ejemplo: las cámaras de seguridad digitales.From the above, the need to find a practical solution to the problem of detection and location of spatial manipulations and / or temporary in still images or image flows generated by Digital monitoring video systems. Where said solution should provide a high degree of reliability and safety, in such a way that what the images show is irrefutable. Other requirement necessary, which has not been solved yet, is the perfect adaptation of the authentication methods to the particularities of the existing digital video surveillance systems, such as the transcoding resistance from JPEG to MPEG or the adaptability to the computational limitations of the devices which integrate these systems, for example: security cameras digital
El sistema objeto de la invención permite resolver la problemática anteriormente expuesta proporcionando una técnica de marcado de agua digital de detección y localización de manipulaciones espaciales y/o temporales de imágenes para sistemas de vídeo supervisión. Con la característica adicional de poseer un alto grado de fiabilidad y seguridad.The system object of the invention allows solve the problem described above by providing a Digital watermarking technique for detection and location of spatial and / or temporal manipulations of images for systems Video monitoring. With the additional feature of owning a High degree of reliability and safety.
El sistema de la invención está compuesto por un sistema de inserción y otro de extracción de las marcas de agua digitales.The system of the invention is composed of a insertion system and other watermark extraction digital
En el sistema de inserción de la invención se introducen en la imagen al menos dos mensajes y la información de integridad. Uno de los mensajes es un identificador temporal que permite asociar a una imagen el instante en el que fue obtenida. Otro de los mensajes es un identificador único del origen de la imagen. De esta manera, el sistema de extracción de la información de la imagen puede determinar el dispositivo que originó la imagen, el momento en el que fue tomada y comprobar la integridad con la información de integridad extraída. Los datos obtenidos de origen y de referencia temporal pueden ser cotejados para verificar su validez.In the insertion system of the invention, enter at least two messages and the information in the image integrity. One of the messages is a temporary identifier that it allows to associate to an image the moment in which it was obtained. Another message is a unique identifier of the origin of the image. In this way, the information extraction system from the image you can determine the device that originated the image, the moment it was taken and check the integrity with the integrity information extracted. The data obtained from origin and Temporary reference can be checked to verify your validity.
Los dispositivos de los sistemas de vídeo supervisión digitales capaces de tomar imágenes o generarlas utilizan, usualmente, el estándar de imagen fija JPEG o algún estándar de vídeo de la familia MPEG. El sistema expuesto en la invención está diseñado para imágenes y vídeos codificados con dichos estándares; siendo robusto a la transcodificación entre ellos.The devices of the video systems digital monitoring capable of taking images or generating them they usually use the JPEG still image standard or some MPEG family video standard. The system exposed in the invention is designed for images and videos encoded with such standards; being robust to transcoding between they.
La minimización de la distorsión introducida al insertar la marca de agua digital en una imagen es una restricción intrínseca de la invención, puesto que se requiere validar el contenido y no modificarlo. Esto se alcanza adaptando los sistemas al ruido introducido en el canal de comunicación propio de la codificación de imágenes en los estándares anteriormente mencionados. Acorde con esto, la información se introduce en el dominio transformado DCT de los bloques de la imagen, concretamente en unos predeterminados coeficientes. La meta es reducir la alteración de los coeficientes predeterminados y el número de coeficientes necesarios para introducir la marca con una determinada fiabilidad. En este sentido, los sistemas de la invención tienen una clara ventaja, ya que en ellos la generación y inserción de la marca tienen en cuenta el ruido de cuantificación que va sufrir la información que se introduce.Minimization of distortion introduced to inserting the digital watermark into an image is a restriction intrinsic of the invention, since it is required to validate the content and not modify it. This is achieved by adapting the systems to the noise introduced into the communication channel of the image coding in the standards above mentioned. According to this, the information is entered in the DCT transformed domain of image blocks, specifically in predetermined coefficients. The goal is to reduce the alteration of the predetermined coefficients and the number of coefficients needed to introduce the brand with a certain reliability In this sense, the systems of the invention have a clear advantage, since in them the generation and insertion of the brand take into account the quantification noise that will suffer the information that is entered.
Desde un punto de vista funcional, la primera
parte del sistema de inserción de información de la invención es la
selección de los bloques de la imagen y los coeficientes de cada
bloque que van albergar cada bit de cada mensaje y la información
de integridad. Una manera de resolverlo eficientemente y además
garantizando que la comunicación sea oculta es seleccionar los
bloques de la imagen con una clave secreta. La resolución de la
detección y localización de las manipulaciones está fuertemente
relacionada con los bloques en los que se introduzca la información
de integridad; si se inserta esta información en toda la imagen se
podrá detectar y localizar las alteraciones en toda
ella.From a functional point of view, the first part of the information insertion system of the invention is the selection of the blocks of the image and the coefficients of each block that will house each bit of each message and the integrity information. One way to solve it efficiently and also ensuring that communication is hidden is to select the blocks of the image with a secret key. The resolution of the detection and location of the manipulations is strongly related to the blocks in which the integrity information is entered; If this information is inserted in the whole image, the alterations can be detected and located throughout
she.
La segunda parte consiste en proyectar los valores de los coeficientes seleccionados para los mensajes y para la información de integridad sobre unos vectores de proyección, donde el tamaño de los vectores proyectados, que son los vectores resultantes del proceso de proyección, es un parámetro variable del método. Para aumentar más la privacidad se pueden generar los vectores de proyección de los mensajes con una clave secreta. Para originar el vector de proyección sobre el que se proyectan los coeficientes que contendrán la información de integridad se utiliza una función cuyo parámetro es alguno de los mensajes y la clave secreta. Uno de esos mensajes es la referencia o sello temporal, con lo que la información de integridad de una imagen será dependiente del momento en que se obtiene. Al existir esta dependencia temporal, no se podrán usar imágenes marcadas de instantes anteriores para falsificar una secuencia de vídeo, pues el sello temporal no se corresponderá al período de tiempo y se detectará ese intento de falsificación. El tamaño de los vectores proyectados seleccionado permite llegar a un equilibrio entre la robustez de la marca y la tasa de transmisión. Además, los valores que forman cada uno de los vectores de proyección, sobre los que proyectan los coeficientes que albergarán cada bit de los mensajes o cada parte de la información de integridad, pueden ser ponderados en función de los valores de la tabla de cuantificación usada para codificar los coeficientes en el estándar JPEG o algunos de los estándares MPEG, o de cualquier otra tabla obtenida a partir de consideraciones perceptuales.The second part is to project the values of the coefficients selected for the messages and for integrity information about projection vectors, where the size of the projected vectors, which are the vectors resulting from the projection process, it is a variable parameter of method. To increase privacy, you can generate message projection vectors with a secret key. For originate the projection vector on which the projections are projected coefficients that will contain the integrity information is used a function whose parameter is one of the messages and the key secret One of those messages is the reference or temporary stamp, so that the integrity information of an image will be depending on the moment it is obtained. By existing this temporary dependency, marked images of previous moments to fake a video stream, because the temporary stamp will not correspond to the period of time and will will detect that attempt of falsification. The size of the vectors selected projected allows to reach a balance between the brand robustness and transmission rate. In addition, the values that form each of the projection vectors, on which project the coefficients that will house each bit of the messages or each part of the integrity information, can be weighted based on the values of the quantification table used for encode the coefficients in the JPEG standard or some of the MPEG standards, or any other table obtained from perceptual considerations.
La tercera parte en la inserción es la cuantificación de los valores de los vectores proyectados con un cuantificador seleccionado de un conjunto según sea el valor del bit del mensaje o la parte de la información de integridad que se quiera introducir. Cada cuantificador se produce modificando un prototipo y usando un vector de desplazamiento acorde con el valor que se quiera introducir. Para obtener este vector se usa la clave secreta para el caso de los mensajes, y para la información de integridad la clave secreta y el valor de los mensajes de los que se precise que sea dependiente.The third part in the insertion is the quantification of the values of the projected vectors with a selected quantifier of a set according to the value of the bit of the message or the part of the integrity information that is want to enter Each quantifier is produced by modifying a prototype and using a displacement vector according to the value that you want to introduce. To obtain this vector the key is used secret for messages, and for information on integrity of the secret key and the value of the messages from which it must be dependent.
La última parte del sistema de inserción consiste en actualizar cada coeficiente de los bloques de la imagen seleccionados, para portar los mensajes y la información de integridad, con el resultado de la cuantificación de los vectores proyectados. Al marcar en los valores de los vectores proyectados se logra que el ruido ortogonal a cada uno de los vectores de proyección no tenga influencia en la comunicación, con el consiguiente aumento de la robustez.The last part of the insertion system it consists of updating each coefficient of the blocks of the image selected, to carry messages and information integrity, with the result of the quantification of the vectors projected. When marking on the values of the projected vectors, makes the orthogonal noise to each of the vectors of projection has no influence on communication, with the consequent increase in robustness.
El sistema de extracción de la invención permite extraer los mensajes y determinar si la imagen fue manipulada espacial y/o temporalmente. El sistema de inserción y extracción coinciden en el modo en que seleccionan los bloques de la imagen y la proyección de los coeficientes, con la clave secreta. Por tanto, sin conocer la clave secreta no se pueden obtener los mensajes reconstruidos.The extraction system of the invention allows extract the messages and determine if the image was manipulated spatially and / or temporarily. The insertion and extraction system match in the way they select the image blocks and the projection of the coefficients, with the secret key. So, without knowing the secret key the messages cannot be obtained rebuilt
Una vez se hayan obtenido los vectores con los valores proyectados de los mensajes y de la información de integridad, se procede a la extracción de la información. Ello se logra sometiendo esos vectores a una cuantificación sincronizada a partir de la clave. Analizando las distancias a cada centroide del resultado de la cuantificación se obtienen los mensajes reconstruidos y se decide para cada bloque con la información de integridad la autenticidad del mismo. Para poder decidir acerca de la integridad de la imagen es necesario, para sincronizar la extracción, usar la clave secreta y el mensaje del que depende como elemento de sincronización de la extracción. Normalmente dicho mensaje es la referencia temporal. Si no se corresponde la referencia temporal con la información de integridad se señalarán los bloques de la imagen como falsos. Si la referencia temporal y la marca se corresponden, se comprobará que el valor de la referencia temporal esté dentro de los umbrales permitidos; en caso contrario el método indicará que hubo una ruptura de secuencialidad de un grupo de imágenes.Once the vectors have been obtained with the projected values of the messages and information of integrity, the information is extracted. Them and achieved by subjecting these vectors to a synchronized quantification to from the key. Analyzing the distances to each centroid of the result of the quantification the messages are obtained reconstructed and it is decided for each block with the information of integrity the authenticity of it. In order to decide about Image integrity is necessary, to synchronize the extraction, use the secret key and the message on which it depends as synchronization element of the extraction. Normally said Message is the temporary reference. If it does not correspond the Temporary reference with integrity information will be noted Image blocks as fake. If the temporary reference and the brand correspond, it will be checked that the value of the Temporary reference is within the permitted thresholds; in case otherwise the method will indicate that there was a sequential break of a group of images.
En cuanto al nivel de robustez, la introducción de los mensajes tiene asociada un nivel de robustez mayor que para la información de integridad. Esta característica se deriva de la necesidad de la perfecta decodificación de los mensajes necesarios para determinar la integridad de la imagen. Sin esos mensajes, como se ha dicho, es imposible sincronizarse y, por lo tanto, tomar un decisión correcta sobre la autenticidad de los bloques de la imagen. Por otra parte, la información de integridad debe ser muy sensible a toda alteración distinta a la distorsión propia de la codificación JPEG o MPEG; de ahí que tenga una robustez baja.As for the level of robustness, the introduction of the messages associated with a higher level of robustness than for Integrity information. This feature is derived from the need for the perfect decoding of the necessary messages to determine the integrity of the image. Without those messages, like it has been said, it is impossible to synchronize and therefore take a correct decision about the authenticity of the image blocks. On the other hand, integrity information must be very sensitive to any alteration other than the distortion of the JPEG or MPEG encoding; hence it has a low robustness.
Otro objeto de la invención es la alta fiabilidad del sistema expuesto. Esto se consigue logrando que la generación de la información de integridad para una imagen concreta en un instante concreto y un dispositivo concreto, sin conocer la clave secreta, sea un problema computacionalmente inabordable. Además, determinar la clave secreta usada para insertar la información analizando las imágenes fijas o vídeos marcados resulta también computacionalmente difícil, lo que proporciona un alto grado de seguridad.Another object of the invention is the high reliability of the exposed system. This is achieved by achieving that the generation of integrity information for a specific image in a specific moment and a specific device, without knowing the Secret key, be a computationally unapproachable problem. In addition, determine the secret key used to insert the information analyzing still images or videos marked results also computationally difficult, which provides a high degree of security
Otro objeto de la invención es la posibilidad de implementar el método de inserción en el interior de las cámaras de red que componen un sistema de vídeo supervisión digital, donde esas cámaras de red tienen unas restricciones muy elevadas en cuanto a los recursos computacionales disponibles. Para poder acometerlo, el sistema propuesto está diseñado para minimizar el número de cálculos y accesos a memoria. Por ejemplo, marcar en el dominio transformado descarga a la CPU de numerosos ciclos de instrucción del cálculo de la transformada. Otro ejemplo es el uso del menor número de coeficientes para insertar la información minimizando el número de valores para realizar el cálculo, así como una mejora perceptual.Another object of the invention is the possibility of implement the insertion method inside the chambers of network that make up a digital monitoring video system, where those network cameras have very high restrictions on As for the available computing resources. To undertake it, the proposed system is designed to minimize the number of calculations and access to memory. For example, dial in the transformed domain downloads to the CPU numerous cycles of instruction of the calculation of the transform. Another example is the use of the least number of coefficients to insert the information minimizing the number of values to perform the calculation, as well as a perceptual improvement.
Otro objeto del sistema expuesto en la invención, es permitir la máxima versatilidad posible, pudiendo configurar el sistema de forma que se pueda llegar a una solución de compromiso entre velocidad, distorsión, volumen de datos introducidos y/o tasa de error. Uno de los posibles parámetros configurables es el número de coeficientes asociados a cada bit de información de los mensajes o cada parte de la información de integridad. La relación entre la longitud entre el vector originario y el vector proyectado es otra de las posibilidades. El factor de control de la distorsión es el valor que más nítidamente permite balancear el método entre la distorsión y la probabilidad de detectar un error, dos características contrapuestas en la aplicación. Otra posibilidad es usar codificadores de canal en los mensajes; de esta forma se aumenta su robustez bajando la tasa de error.Another object of the system exposed in the invention is to allow the maximum possible versatility, being able to configure the system so that a solution can be reached of compromise between speed, distortion, data volume entered and / or error rate. One of the possible parameters configurable is the number of coefficients associated with each bit of message information or each part of the information of integrity. The relationship between the length between the vector originating and the projected vector is another possibility. He distortion control factor is the value that sharpest allows to balance the method between distortion and probability of detecting an error, two opposing characteristics in the application. Another possibility is to use channel encoders in the posts; in this way its robustness is increased by lowering the rate of error.
Otras ventajas y características del método serán aparentes en las figuras presentadas en conjunción con la descripción que viene a continuación.Other advantages and characteristics of the method they will be apparent in the figures presented in conjunction with the Description that comes next.
\vskip1.000000\baselineskip\ vskip1.000000 \ baselineskip
Para complementar la descripción que se está realizando y con objeto de ayudar a una mejor comprensión de las características del invento, de acuerdo con un ejemplo preferente de realización práctica del mismo, se acompaña un conjunto de dibujos en donde con carácter ilustrativo y no limitativo, se ha representado lo siguiente:To complement the description that is being performing and in order to help a better understanding of the characteristics of the invention, according to a preferred example of practical realization of the same, a set of drawings where illustrative and non-limiting, has been represented the following:
La Fig. 1 muestra esquemáticamente la estructura general del sistema que comprende la invención.Fig. 1 schematically shows the structure general of the system comprising the invention.
La Fig. 2 muestra en un esquema los módulos en los que está dividido el sistema de inserción.Fig. 2 shows in a diagram the modules in those that the insertion system is divided.
La Fig. 3 muestra en un esquema los módulos en los que está dividido el sistema de extracción.Fig. 3 shows in a diagram the modules in which is the extraction system divided.
La Fig. 4 representa un diagrama de flujo del proceso de introducción de un mensaje con la dirección IP en una imagen.Fig. 4 represents a flow chart of the process of entering a message with the IP address in a image.
La Fig. 5 representa un diagrama de flujo del proceso de introducción de un mensaje con una referencia temporal en una imagen.Fig. 5 represents a flow chart of the process of entering a message with a temporary reference in an image
La Fig. 6 representa un diagrama de flujo del proceso de introducción de la información de integridad en una imagen.Fig. 6 represents a flow chart of the process of entering integrity information into a image.
La Fig. 7 representa un diagrama de flujo del proceso de extracción de un mensaje con una dirección IP de una imagen.Fig. 7 represents a flow chart of the process of extracting a message with an IP address from a image.
La Fig. 8 representa un diagrama de flujo del proceso de extracción de un mensaje con una referencia temporal de un imagen.Fig. 8 represents a flow chart of the process of extracting a message with a temporary reference of an image
La Fig. 9 representa un diagrama de flujo del proceso de comprobación de integridad de una imagen.Fig. 9 represents a flow chart of the process of checking integrity of an image.
La Fig. 10 muestra la división de una imagen en bloques y en macrobloques, además representa la ordenación de los coeficientes según el orden en zigzag.Fig. 10 shows the division of an image into blocks and in macroblocks, it also represents the arrangement of coefficients according to the zigzag order.
La Fig. 11 representa la selección y ordenación de los coeficientes de los bloques que forman un macrobloque de integridad.Fig. 11 represents the selection and sorting of the coefficients of the blocks that form a macroblock of integrity.
La Fig. 12 representa un diagrama del proceso de inserción de marcado de agua digital con información lateral en el codificador.Fig. 12 represents a diagram of the process of Digital watermarking insert with side information in the encoder
La Fig. 13 representa esquemáticamente un diagrama interno de una cámara digital de red implementando los métodos de inserción propuestos en la presente invención.Fig. 13 schematically represents a internal diagram of a digital network camera implementing the insertion methods proposed in the present invention.
La Fig. 14 representa esquemáticamente un sistema computacional que ejecuta los métodos con detección de manipulación propuestos en la presente invención, reflejando la interconexión entre los dispositivos de un sistema digital de vídeo supervisión.Fig. 14 schematically represents a computer system that executes the methods with detection of handling proposed in the present invention, reflecting the interconnection between the devices of a digital video system supervision.
La Fig. 1 muestra esquemáticamente los elementos individuales que comprenden la realización preferente seleccionada para la presente invención. En estos elementos es donde se somete a una secuencia de imágenes, obtenida por un sistema de vídeo supervisión digital, a unas técnicas de marcado de agua digital que permiten detectar y localizar las alteraciones espaciales y/o temporales que sufrieron.Fig. 1 schematically shows the elements individual comprising the selected preferred embodiment for the present invention. These elements are where you submit to a sequence of images, obtained by a video system digital supervision, to digital watermarking techniques that allow to detect and locate spatial alterations and / or Temporary suffered.
Después de que una cámara digital de red obtiene una imagen digital, ésta se procesa en un codificador 100 donde está implementado el sistema de inserción de marcado de agua digital propuesto en la presente invención. La imagen marcada puede ser guardada formando parte de un vídeo con alguno de los estándares MPEG o como una imagen individual codificada acorde al estándar JPEG, en ambos casos se almacena en una unidad de almacenamiento 300. Si se opta por almacenar una secuencia de imágenes individuales marcadas formando un vídeo MPEG, se codifican en un codificador MPEG 400.After a digital network camera gets a digital image, it is processed in an encoder 100 where the watermarking insertion system is implemented digital proposed in the present invention. The marked image can be saved as part of a video with any of the standards MPEG or as an individual image encoded according to the standard JPEG, in both cases it is stored in a storage unit 300. If you choose to store a sequence of individual images marked forming an MPEG video, they are encoded in an encoder MPEG 400
La comprobación de la integridad de las imágenes marcadas comienza por recuperar, de la unidad de almacenamiento 300, las imágenes archivadas individualmente o en forma de vídeo MPEG. Si el flujo de imágenes está codificado con alguno de los estándares de MPEG la información de las imágenes se extrae en un decodificador MPEG 500. En un decodificador 200, que implementa el método de marcado de agua digital con detección de manipulación propuesto en la invención, es donde se procesa con el fin de detectar y localizar las alteraciones de la información obtenida del decodificador MPEG 500 o de las imágenes individuales almacenadas en la unidad de almacenamiento 300.Checking the integrity of the images marked begins by retrieving, from the storage unit 300, images archived individually or in the form of video MPEG If the image stream is encoded with any of the MPEG standards the image information is extracted in a MPEG 500 decoder. In a decoder 200, which implements the digital watermarking method with tamper detection proposed in the invention, is where it is processed in order to detect and locate the alterations of the information obtained from MPEG 500 decoder or individual images stored in storage unit 300.
Los datos generados por el decodificador 200 son relativos al origen de la imagen marcada, al instante en el que fue tomada, a las alteraciones detectadas, etc. Además, se puede configurar para que genere una imagen resultado señalando las modificaciones halladas.The data generated by decoder 200 is relative to the origin of the marked image, the instant it was taken, to the alterations detected, etc. In addition, you can configure to generate a result image by pointing out the Modifications found.
En los sistemas de inserción y extracción de marcas de agua los estándares de codificación contemplados son el JPEG para la imagen fija y los estándares de la familia MPEG para el vídeo.In the systems of insertion and extraction of watermarks the coding standards contemplated are the JPEG for still image and MPEG family standards for the video.
Una de las razones para emplear en la codificación de imágenes fijas de esta realización práctica el estándar JPEG es la buena relación entre la reducción de tamaño lograda y la distorsión introducida. Otra de las razones es su uso mayoritario en los sistemas de vídeo supervisión digitales actuales, permitiendo que la presente invención se adapte perfectamente a ellos.One of the reasons to use in the still image coding of this practical embodiment the JPEG standard is the good ratio between size reduction achieved and the distortion introduced. Another reason is its use Majority in current digital monitoring video systems, allowing the present invention to adapt perfectly to they.
Entre las imágenes fijas que componen una secuencia la redundancia existente es elevada. Este factor se puede explotar para alcanzar una notable reducción de tamaño, logrando que su almacenamiento sea más eficiente. En los sistemas propuestos en la presente invención, para la codificación de una secuencia de imágenes se utiliza un miembro de la familia de estándares MPEG. Ello se debe a los numerosos puntos coincidentes entre los estándares MPEG y el estándar JPEG, permitiendo que los métodos propuestos se adapten fácilmente a ambos.Among the still images that make up a sequence the existing redundancy is high. This factor can be explode to achieve a notable reduction in size, achieving Make your storage more efficient. In the proposed systems in the present invention, for the coding of a sequence of Images are used by a member of the MPEG family of standards. This is due to the numerous coincident points between the MPEG standards and the JPEG standard, allowing methods proposed easily adapt to both.
El estándar JPEG utiliza como espacio de color de tres componentes el YCC. Las componentes son la de luminancia (Y) y las de color (C y C). Cada componente de la imagen se divide en bloques no solapados de 8\times8 muestras. JPEG utiliza un cambio de coordenadas con el objetivo de que se concentre la mayor parte de la energía en un menor número de dimensiones que la representación original (RGB), hecho que se explota para reducir el tamaño de la imagen. Concretamente, JPEG utiliza la transformada discreta del coseno (DCT) en cada bloque de la imagen de las componentes Y, C o C. Cada bloque transformado de la imagen se somete a la cuantificación de los 64 coeficientes que lo forman, dividiéndolos por unos elementos que constituyen una matriz de cuantificación JPEG de dimensiones 8\times8, obteniendo como resultado unos coeficientes cuantificados c_{quant,j}, como se muestraThe JPEG standard uses the YCC as the three-component color space. The components are luminance (Y) and color (C and C). Each component of the image is divided into non-overlapping blocks of 8 x 8 samples. JPEG uses a change of coordinates in order to concentrate most of the energy in a smaller number of dimensions than the original representation (RGB), which is exploited to reduce the size of the image. Specifically, JPEG uses the discrete cosine transform (DCT) in each block of the image of the Y, C or C components. Each transformed block of the image is subjected to the quantification of the 64 coefficients that form it, dividing them by elements which constitute a JPEG quantification matrix of dimensions 8 x8, obtaining as a result quantized coefficients c quant, j, as shown
c_{quant,j} = round (c_{j}/q_{j}),c_ {quant, j} = round (c_ {j} / q_ {j}),
donde en la expresión anterior round() denota una función que devuelve el valor entero más cercano. A los coeficientes cuantificados c_{quant,j} de los bloques B_{i} se les aplica una codificación entrópica sin pérdidas para generar el archivo JPEG con la imagen, donde la codificación está especialmente diseñada para almacenar eficientemente aquellos c_{quant,j} cuyo valor sea cero.where in the previous expression round () denotes a function that returns the nearest integer value. To the quantized coefficients c quant, j of the blocks B i, a lossless entropic coding is applied to generate the JPEG file with the image, where the coding is specially designed to efficiently store those c quant , j} whose value is zero.
Para recuperar los bloques transformados reconstruidos \hat{\mathit{B}}_{i} que forman la imagen, hay que realizar el proceso inverso a la cuantificación. Se debe multiplicar cada coeficiente cuantificado c_{quant,j} perteneciente a cada \hat{\mathit{B}}_{i} por su respectivo elemento de, es decir,To recover the reconstructed transformed blocks \ hat {\ mathit {B}} {i} that form the image, the inverse process to quantification must be performed. Each quantized coefficient c quant, j pertaining to each \ hat {\ mathit {B}} {i} must be multiplied by its respective element of, that is,
\hat{c} = c_{quant,j} \cdot q_{j}.\ hat {c} = c_ {quant, j} \ cdot q_ {j}.
De la forma en que se codifica y decodifica una imagen en el estándar JPEG se deduce que cuanto mayores sean los valores de la matriz de cuantificación JPEG la distorsión introducida será mayor, aunque la compresión también será mayor. La energía de la imagen se concentra en las frecuencias más bajas de los bloques transformados de la imagen y, por otra parte, el sistema visual humano es más sensible a esas frecuencias; por lo tanto, en la generación de se deben tener en cuenta estas características para lograr una buena codificación JPEG asignando los tamaños de los escalones de cuantificación menores a las frecuencias más bajas. Muchas veces, el resultado de aplicar atendiendo a esas consideraciones es que numerosos de las frecuencias más altas son cero y, como se mencionó anteriormente, se logra una considerable reducción del tamaño.In the way that a code is encoded and decoded image in the JPEG standard shows that the larger the JPEG quantization matrix values distortion introduced will be greater, although the compression will also be greater. The Image energy is concentrated in the lower frequencies of the transformed blocks of the image and, on the other hand, the system Human visual is more sensitive to those frequencies; therefore in the generation of these characteristics should be taken into account to achieve a good JPEG encoding by assigning the sizes of quantification steps lower than the most frequencies low. Many times, the result of applying according to those considerations is that numerous of the highest frequencies are zero and, as mentioned earlier, a considerable size reduction
La Fig. 10 muestra la división de las imágenes 1003 en el estándar JPEG formando bloques de 8\times8 pixels 1001. Además, se puede observar la ordenación en zigzag de los coeficientes que forman los bloques, representada por una flecha que empieza en el coeficiente en la posición (1,1) (coeficiente de continua) y acaba en el coeficiente (8,8).Fig. 10 shows the division of the images 1003 in the JPEG standard forming 8 × 8 pixel blocks 1001. In addition, the zigzag ordination of the coefficients that form the blocks, represented by an arrow starting at the coefficient at position (1,1) (coefficient of continued) and ends in the coefficient (8.8).
En la presente descripción de la realización preferente se contempla que las imágenes JPEG que forman un flujo de imágenes obtenidas por un sistema de vídeo supervisión se compriman con el estándar MPEG-1. Un secuencia de vídeo MPEG-1 comprende varios tipos de imágenes, siendo los tipos I, B y P. Atendiendo a esta característica, las imágenes que contendrán la marca son las codificadas tipo I y P, dejando las codificadas como tipo B sin marca para que puedan soportar una mayor compresión.In the present description of the embodiment Preferred is that JPEG images that form a stream of images obtained by a video monitoring system will Compress with the MPEG-1 standard. A sequence of MPEG-1 video comprises several types of images, being the types I, B and P. Attending to this characteristic, the images that will contain the brand are the encoded type I and P, leaving those coded as type B without a mark so they can Withstand greater compression.
Cuando se codifica una secuencia de imágenes
fijas individuales como un flujo MPEG-1 se usa un
patrón de codificación. A modo ilustrativo consideraremos el patrón
IBBBBPBBBB. Ese patrón indica que la primera imagen se codifica
como una imagen tipo I, las cuatro siguientes tipo B, después como
tipo P y las cuatro últimas tipo B. Los métodos de marcado de agua
propuestos no utilizan las imágenes marcadas codificadas como B. Si
se quiere aumentar el grado de compresión de un vídeo de imágenes
marcadas se debe aumentar la proporción de imágenes codificadas
como tipo B. Como consecuencia, el número de imágenes I y P del
flujo disminuye y, con ello, la capacidad de detección de
alteraciones. Usando el patrón antes señalado, si una cámara digital
de red genera imágenes marcadas con una tasa de 10 por segundo y se
codifican en el codificador MPEG 400, sólo se podrá detectar
alteraciones con una resolución de 0.2 s. Acorde con esto, es
necesario en el momento en el que el usuario del sistema configure
la codificación MPEG-1, se llegue a un compromiso
entre el grado compresión y la resolución temporal de las
alteracio-
nes.When a sequence of individual still images is encoded as an MPEG-1 stream an encoding pattern is used. For illustrative purposes we will consider the IBBBBPBBBB pattern. This pattern indicates that the first image is encoded as a type I image, the next four type B, then as type P and the last four type B. The proposed watermarking methods do not use the images marked coded as B. If If you want to increase the degree of compression of a video of marked images, you must increase the proportion of images encoded as type B. As a result, the number of images I and P in the stream decreases and, with this, the ability to detect alterations. Using the above-mentioned pattern, if a digital network camera generates images marked at a rate of 10 per second and are encoded in the MPEG 400 encoder, only alterations with a resolution of 0.2 s can be detected. According to this, it is necessary at the moment in which the user of the system configures the MPEG-1 encoding, a compromise is reached between the degree of compression and the temporal resolution of the alterations.
nes.
En la presente realización preferente de la invención la marca insertada está compuesta por un mensaje de metadatos, un mensaje con una referencia temporal y la información de integridad.In the present preferred embodiment of the invention the inserted mark is composed of a message of metadata, a message with a temporary reference and information of integrity
En el mensaje de metadatos se podrá insertar y extraer de la imagen la información arbitraria que se desee. A modo de ejemplo ilustrativo y no limitativo se utiliza un identificador único del elemento generador de imágenes de vídeo supervisión. Debido al contexto habitual en el que se encuentra un sistema de vídeo supervisión digital se selecciona en la presente realización práctica la dirección IP. Nótese que existen numerosas alternativas como identificador único, tales como: número de serie, MAC (del inglés Media Access Control), etc.In the metadata message, arbitrary information may be inserted and extracted from the image. As an illustrative and non-limiting example, a unique identifier of the supervisory video image generator element is used. Due to the usual context in which a digital monitoring video system is located, the IP address is selected in the present practical embodiment. Note that there are numerous alternatives as a unique identifier, such as: serial number, MAC (English Media Access Control ), etc.
La información es introducida en la imagen digital en los coeficientes transformados de los bloques de luminancia que forman la imagen. Los bloques en los que se introduce la información de integridad se agrupan en macrobloques. Las dimensiones de los macrobloques para la inserción de la información de integridad son configurables y, además, determinan la granularidad de la detección de las alteraciones espaciales. Cuanto mayor sea el macrobloque más difícil es señalar los puntos concretos de la imagen que fueron modificados, aunque esta opción tiene la ventaja de la posibilidad de utilizar un mayor número de coeficientes para determinar su autenticidad. Por ejemplo, un macrobloque de la información de integridad puede estar formado por 2\times2 bloques. En la Fig. 10 se representa un macrobloque 1002 usado en la detección de alteraciones espaciales.The information is entered in the image digital in the transformed coefficients of the blocks of luminance that form the image. The blocks in which you Enter the integrity information grouped into macroblocks. The dimensions of the macroblocks for the insertion of the Integrity information are configurable and also determine the granularity of the detection of spatial alterations. How much the greater the macroblock the harder it is to point the points concrete of the image that were modified, although this option It has the advantage of the possibility of using a larger number of coefficients to determine its authenticity. For example, a macroblock of integrity information can be formed by 2 \ 2 blocks. A macroblock 1002 is shown in Fig. 10 used in the detection of spatial alterations.
En la Fig. 2 se muestra el esquema interno del codificador 100, que consta de un módulo de inserción de la dirección IP (metadatos) 110, un módulo de inserción de la referencia temporal 130, un módulo de inserción de la información de integridad 150 y un registro con el valor de la referencia temporal 170.In Fig. 2 the internal scheme of the encoder 100, consisting of an insert module of the IP address (metadata) 110, an insert module of the temporal reference 130, an information insertion module of integrity 150 and a record with the reference value temporary 170.
Cuando una imagen codificada con el estándar JPEG se introduce en el codificador 100, se procesa en el módulo de inserción de dirección IP 110 para introducir en cada imagen la dirección IP del dispositivo del sistema de vídeo supervisión digital que la obtuvo. Después, la imagen se pasa al módulo de inserción de la referencia temporal 130 para introducir en la imagen la referencia temporal (almacenada en el registro 170); con esa información se podrá saber el instante en el que se obtuvo la imagen y, además, determinar si se alteró el orden en una secuencia de imágenes (alteraciones temporales). Cada imagen en la salida del módulo 130 se pasa al módulo de inserción de la información de integridad 150; en ese módulo se introduce la información de integridad con la cual se pueden detectar las alteraciones espaciales. En la inserción de la información de integridad se utiliza la referencia temporal del registro 170 para que no se pueda falsificar una imagen usando otra, pues la información de integridad no es válida en otro momento distinto a aquél en que se generó. Los módulos 110, 130 y 150 utilizan una clave secreta K, de tal forma que introducir esos dos mensajes o la información de integridad sin dicha clave sea un problema computacionalmente muy complicado.When an image encoded with the standard JPEG is entered in encoder 100, processed in the module insertion of IP address 110 to enter in each image the IP address of the monitoring system video device digital that obtained it. Then, the image is passed to the module insertion of temporary reference 130 to enter in the image the temporary reference (stored in register 170); with that information will be able to know the moment in which the image and also determine if the order was altered in a sequence of images (temporary alterations). Each image at the exit of the module 130 is passed to the information insertion module of integrity 150; in that module the information of integrity with which alterations can be detected Space When inserting the integrity information, use the temporary reference of register 170 so that it is not can falsify one image using another, as the information in integrity is not valid at a time other than that in which gender. Modules 110, 130 and 150 use a secret key K, of such that entering those two messages or the information of integrity without such a key is a computationally very problem complicated.
La Fig. 3 muestra el esquema interno de decodificador 200, formado por un módulo de extracción de la dirección IP 210, un módulo de extracción de la referencia temporal 230 y un módulo de extracción de la información de integridad 250.Fig. 3 shows the internal scheme of decoder 200, formed by a module for extracting the IP address 210, a module for extracting the temporary reference 230 and an integrity information extraction module 250
El módulo de extracción de la dirección IP 210 recupera la dirección de IP insertada en la imagen. El módulo de extracción de la referencia temporal 230 recupera la referencia temporal que está ligada a la imagen. El módulo de extracción de la información de integridad 250 recupera la información de integridad y determina si una imagen fue manipulada espacialmente, es decir, si se modificó algún cuadro de la imagen original. Si la imagen fue manipulada, el módulo de extracción de la información de integridad 250 puede generar una imagen indicando gráficamente la posición de las alteraciones detectadas. Los módulos de extracción 210, 230 y 250 utilizan la misma clave secreta K para extraer la información que la usada para introducir la información.The module for extracting the IP address 210 retrieves the IP address inserted in the image. The module of extraction of temporary reference 230 retrieves the reference temporal that is linked to the image. The extraction module of the integrity information 250 retrieves integrity information and determines if an image was spatially manipulated, that is, if some picture of the original image was modified. If the image was manipulated, the module for extracting integrity information 250 can generate an image indicating graphically the position of the alterations detected. The extraction modules 210, 230 and 250 use the same secret key K to extract the information than the one used to enter the information.
Aunque los esquemas internos del codificador 100 y del decodificador 200 de la Fig. 2 y Fig. 3 muestran una conexión en cascada entre los módulos, esta característica no es restrictiva. Es posible disponer los módulos paralelamente o incluso agruparlos en un solo módulo.Although the internal schemes of the encoder 100 and of the decoder 200 of Fig. 2 and Fig. 3 show a connection cascading between modules, this feature is not restrictive It is possible to arrange the modules in parallel or even group them into a single module.
Las Fig. 4, Fig. 5 y Fig. 6 representan el diagrama de flujo de los sistemas de los módulos de inserción que forman el codificador 100, que se pueden apreciar en la Fig. 2.Fig. 4, Fig. 5 and Fig. 6 represent the system flow diagram of the insert modules that they form the encoder 100, which can be seen in Fig. 2.
Los diagramas de flujo son configurables mediante la asignación de valores a unos determinados parámetros del sistema. Uno de los parámetros del sistema es el número de coeficientes de la imagen por bit de información utilizados en el caso de los mensajes o el número de coeficientes de cada macrobloque para la introducción de la información de integridad. En los diagramas son representados por NºCOEF_IP, NºCOEF_REF o NºCOEF_INT, para el caso del mensaje con dirección IP, el mensaje con la referencia temporal y la información de integridad respectivamente. Otro parámetro de los diagramas de introducción de los mensajes es el número de bits de información de cada mensaje, que en los diagramas son representados por NºBITS_IP y NºBITS_REF, en el caso de la dirección IP y la referencia temporal respectivamente. Otro posible modo de configurar el sistema es mediante la selección de los coeficientes de bloque que serán utilizados para insertar el mensaje con la dirección IP (metadatos), el mensaje con la referencia temporal y la información de integridad. El tamaño de los vectores de proyección sobre los que se proyectan los valores de los coeficientes, de los que se obtienen los valores proyectados en los que se insertan la información, es otro valor configurable, representándolo por LONG_IP, LONG_REF y LONG_INT para la dirección IP, la referencia temporal y la información de integridad respectivamente.Flowcharts are configurable. by assigning values to certain parameters of the system. One of the system parameters is the number of Image coefficients per bit of information used in the case of the messages or the number of coefficients of each macroblock for the introduction of integrity information. In the diagrams are represented by NºCOEF_IP, NºCOEF_REF or NºCOEF_INT, in the case of the message with an IP address, the message with temporary reference and integrity information respectively. Another parameter of the introduction diagrams of the messages is the number of information bits of each message, which in the diagrams are represented by NºBITS_IP and NºBITS_REF, in the case of the IP address and the temporary reference respectively. Another possible way to configure the system is by selecting the block coefficients that will be used to insert the message with the IP address (metadata), the message with the temporary reference and information of integrity The size of the projection vectors on which the coefficient values are projected, of which get the projected values in which the information, is another configurable value, representing it by LONG_IP, LONG_REF and LONG_INT for the IP address, the reference Temporary and integrity information respectively.
La Fig. 4 muestra el diagrama de flujo del sistema de inserción de la dirección IP (metadatos) 110, en el cual se procesará cada imagen obtenida por un sistema de vídeo supervisión. Si es la primera vez que se ejecuta el método (paso 111) en un flujo de imágenes, en el paso 112 se seleccionan pseudoaleatoriamente (en función de la clave secreta K) los bloques transformados de 8\times8 coeficientes en que está dividida la imagen, para utilizarlos en la inserción de la dirección IP. En el paso 113 se inicializa la variable BIT, usada para determinar el número de bits del mensaje de la dirección IP que han sido introducidos en la imagen. En el paso 114 se decide si ya han sido introducidos todos los bits de este mensaje en la imagen; si la respuesta es afirmativa la parte de inserción de la dirección IP en la imagen habrá concluido. En caso contrario, se sigue en el paso 116 en el que se inicializa el contador de coeficientes por bit COEF a cero. En el paso 117 se determina si ya se ha introducido el valor del bit BIT en los NºCOEF_IP coeficientes que tenía asignados, en caso afirmativo se avanzará al paso 115 que sumará uno al valor del contador BIT y volverá al paso 114 descrito anteriormente. Si aún no se han alterado los coeficientes de la imagen asociados a ese bit de la dirección IP se pasa al paso 118, donde se genera un vector de proyección pseudoaleatorio (en función de la clave secreta K) de longitud LONG_IP. Después de obtener el vector de proyección se continúa en el paso 119, donde se computa el producto escalar entre el vector proyección y el vector formado por los coeficientes seleccionados (en el paso 112) cuyos índices están entre (NºBITS_IPxBIT)+COEF y (NºBITS_IPxBIT)+COEF+LONG_IP-1, guardando el resultado de la proyección en RES_PROY. En el paso 120 se suma LONG_IP al valor COEF, que se empleará para determinar los coeficientes usados en el cálculo de la siguiente proyección. En el paso 124 se inserta el valor del bit BIT de la dirección IP en RES_PROY y en el paso 125 se actualizan los coeficientes con los que se calculó la proyección actual con el resultado obtenido en el paso anterior (124).Fig. 4 shows the flow chart of the IP address insertion system (metadata) 110, in which each image obtained by a video system will be processed supervision. If this is the first time the method is executed (step 111) in an image stream, in step 112 are selected pseudorandomly (depending on the secret key K) the blocks transformed by 8 x 8 coefficients into which the image, for use in inserting the IP address. At step 113 initializes the BIT variable, used to determine the number of bits of the IP address message that have been introduced in the image. In step 114 it is decided if they have already been introduced all the bits of this message in the image; yes the answer is yes the insertion part of the IP address in The image will be over. Otherwise, follow in step 116 in which the coefficient counter per bit is initialized COEF to zero. In step 117, it is determined whether the BIT bit value in the NºCOEF_IP coefficients it had assigned, if so you will proceed to step 115 which will add one to the BIT counter value and will return to step 114 described previously. If the coefficients of the image associated with that bit of the IP address is passed to step 118, where a pseudo-random projection vector is generated (depending on of the secret key K) of length LONG_IP. After getting the projection vector is continued in step 119, where the scalar product between the projection vector and the vector formed by the selected coefficients (in step 112) whose indexes are between (NºBITS_IPxBIT) + COEF and (NºBITS_IPxBIT) + COEF + LONG_IP-1, saving the projection result in RES_PROY. In step 120 you add LONG_IP to the COEF value, which will be used to determine the coefficients used in the calculation of the following projection. At step 124 the BIT bit value of the IP address is inserted in RES_PROY and in step 125 the coefficients are updated with the that the current projection was calculated with the result obtained in the previous step (124).
La Fig. 5 muestra el diagrama de flujo del módulo de inserción de la referencia temporal 130. Igual que en la Fig. 4, en el inicio se introduce una imagen digital obtenida del sistema de vídeo supervisión. En el paso 131 se determina si es la primera vez que se ejecuta el método para ese determinado flujo de datos. Si es así, se avanza al paso 132 que seleccionará pseudoaleatoriamente (en función de la clave secreta K) los bloques de la imagen que van a albergar el mensaje con la referencia temporal. En el paso 133 se somete al mensaje con la referencia temporal a una codificación de canal, cuyo objetivo es aumentar su robustez produciendo un mensaje codificado de la referencia temporal. En el paso 134 se inicializa a cero la variable BIT usada para controlar el número de bits del mensaje codificado de la referencia temporal que se han insertado en la imagen. En el paso 135 se verifica si el mensaje codificado de la referencia temporal ha sido totalmente insertado en la imagen; para ello se comprueba si el valor de BIT es menor que el número de bits totales asignados para la inserción del mensaje codificado con la referencia temporal NºBITS_REF. En caso de que no se cumpla esta condición, el trabajo del módulo de inserción de la referencia temporal 130 habrá acabado. Si aún restan bits de la referencia temporal por introducir se continúa en el paso 136, que inicializa el valor COEF a cero. La variable COEF se usa para controlar el número de coeficientes que se han introducido del bit BIT del mensaje codificado de la referencia temporal. En el paso 138 se comprueba si se han computado los NºCOEF_REF coeficientes asignados para albergar cada bit de la referencia temporal, si es el caso. Si ya se han completado, se continúa en el paso 137 que actualiza el valor de BIT sumándole uno, indicando que a continuación se procederá a la inserción del bit siguiente del mensaje codificado de la referencia temporal. Si aún no se han utilizado todos los coeficientes correspondientes a cada bit de la referencia temporal, se avanza del paso 138 al 139. En el paso 139 se genera un vector de proyección de longitud LONG_REF, obtenido pseudoaleatoriamente con la clave secreta. Este vector de proyección será el usado para proyectar los valores de los coeficientes LONG_REF siguientes. En el paso 140 se calcula el producto escalar entre el vector de proyección (obtenido en el paso 139) y un vector formado por los coeficientes seleccionados en el paso 132 cuyos índices se encuentran entre (NºBITS_REFxBIT)+COEF y (NºBITS_REFxBIT)+COEF+LONG_REF-1, almacenando el resultado de la proyección en RES_PROY. En el paso 144 se suma al valor de COEF el valor de LONG_REF. Después, se pasa al paso 145, en el cual se inserta en el valor proyectado RES_PROY el bit del mensaje codificado de la referencia temporal cuyo índice es BIT. En el paso 146 se actualizan los coeficientes que se usaron para computar la proyección actual con el valor de RES_PROY, resultado del paso 145.Fig. 5 shows the flow chart of the Temporary reference insertion module 130. As in the Fig. 4, at the beginning a digital image obtained from the video monitoring system. In step 131 it is determined whether it is the first time the method is executed for that particular flow of data. If so, proceed to step 132 which will select pseudorandomly (depending on the secret key K) the blocks of the image that will host the message with the reference temporary. In step 133 you submit the message with the reference temporary to a channel coding, whose objective is to increase its robustness producing a coded message of the reference temporary. In step 134 the used BIT variable is initialized to zero to control the number of bits of the encoded message of the Temporary reference that has been inserted in the image. In step 135 is checked if the coded message of the temporary reference It has been fully inserted into the image; for this it is checked if the value of BIT is less than the number of total bits allocated for inserting the message coded with the temporary reference NºBITS_REF. In case this condition is not met, the work of the insertion module of the temporary reference 130 there will be finish. If bits of the temporary reference are still subtracted by enter is continued in step 136, which initializes the COEF value to zero The COEF variable is used to control the number of coefficients that have been entered from the BIT bit of the message Coded temporal reference. In step 138 it is checked if the NºCOEF_REF coefficients assigned for host each bit of the temporary reference, if applicable. Yes already have been completed, continue in step 137 that updates the BIT value by adding one, indicating that the following is will proceed to insert the next bit of the coded message of The temporary reference. If you have not yet used all coefficients corresponding to each bit of the time reference, step 138 to 139 is advanced. In step 139 a vector is generated LONG_REF projection length, obtained pseudorandomly With the secret key. This projection vector will be used for project the values of the following LONG_REF coefficients. In step 140 calculates the scalar product between the vector of projection (obtained in step 139) and a vector formed by coefficients selected in step 132 whose indices are found between (NºBITS_REFxBIT) + COEF and (NºBITS_REFxBIT) + COEF + LONG_REF-1, storing the projection result in RES_PROY. In step 144 you add to the COEF value the value of LONG_REF. Then, go to step 145, in which the bit of the RES_PROY is inserted in the projected value coded message of the temporary reference whose index is BIT. In step 146 updates the coefficients that were used to compute the current projection with the value of RES_PROY, result from step 145.
La Fig. 6 muestra el diagrama de flujo correspondiente al módulo de inserción de la información de integridad 150. A este sistema se le pasa como parámetro el valor de la referencia temporal que es introducida en la imagen por el módulo de inserción de la referencia temporal 130 obtenida del registro 170 y la clave secreta K. En el paso 151 se sincroniza el sistema para conseguir que la introducción de la información de integridad en la imagen sea dependiente del instante en que se tomó la imagen que se está procesando, además se utiliza en la sincronización la clave secreta K para garantizar que sólo los usuarios autorizados puedan introducir la información de integridad válida. Si no se conoce la referencia temporal, el proceso de introducir la información de integridad sin que en el decodificador 200 de la Fig. 1 se detecte resulta muy complejo. En el paso 152 se inicializa el valor índice i, cuya función es la de contar la fila de macrobloque en la que se encuentra el método de inserción durante su ejecución. En esta figura, el ancho en bloques (8\times8) de la imagen se denota por ANCHO y la altura en bloques por ALTO, el ancho en bloques de cada macrobloque M y el alto en bloques de cada macrobloque N. En el paso 153 se comprueba si ya se ha introducido la información de integridad en toda la imagen, si ha sido así se termina el proceso de inserción de la información de integridad. Si aún no se ha computado la totalidad de la imagen se avanza al paso 154 en el que se inicializa a cero el valor del índice de las columnas de macrobloques j. En el paso 156 se verifica si ya se han computado todas las columnas de macrobloques de la fila de macrobloques actual, la fila i. Si ya se han computado se sigue al paso 155 que suma una unidad al índice i para procesar la siguiente fila de macrobloques o acabar, decidiéndose esto en el paso 153. Si el resultado de la decisión tomada en el paso 156 es que quedan macrobloques de la fila i por procesar se continúa en el paso 157, donde se crea un vector VEC_INT de longitud NºCOEF_INT, tomando de cada bloque, que forma el macrobloque de coordenadas (i,j) de la imagen, NºCOEF_INT coeficientes. El orden de disposición de los coeficientes de cada bloque en dicho vector VEC_INT es de izquierda-derecha y de arriba-abajo respecto a la posición de los bloques en el macrobloque actual, como se representa en la Fig. 11. El orden de disposición de los coeficientes pertenecientes a cada bloque en el vector VEC_INT sigue el orden de los coeficientes según la ordenación zigzag de esos propios coeficientes en el bloque. En el paso siguiente, el 159, se inicializa el valor COEF a cero. Después, en el paso 160 se verifica si ya se ha insertado la información de integridad en el macrobloque actual (i,j), en caso afirmativo se suma una unidad a j en el paso 158 y se continúa en el paso 156. Si se decide (paso 160) que aún quedan bloques sin marcar (COEF<NºCOEF_INT) se continúa con el paso 161. En el paso 161 se genera pseudoaleatoriamente a partir de la referencia temporal y de la clave secreta un vector de proyección de longitud LONG_INT, donde la generación de este vector es resultado de la sincronización llevada a cabo en el paso 151 de la Fig. 6. En el paso 162 se computa la proyección, para ello se calcula el producto escalar entre el vector de proyección (obtenido en el paso 161) y un vector formado por los coeficientes de VEC_INT con índices comprendidos entre COEF y COEF+LONG_INT-1, donde el resultado de esta proyección se guarda en RES_PROY. En el paso 163 se suma el valor LONG_INT al valor de COEF. Luego, se continúa en el paso 168. En él se inserta el valor de esa parte de la información de integridad en el valor RES_PROY, que es el resultado de la proyección de los coeficientes de la imagen sobre el vector de proyección. En el paso 169 se actualizan los coeficientes utilizados para calcular la proyección actual con el valor el valor RES_PROY marcado, resultado del paso 168.Fig. 6 shows the flow chart corresponding to the module for inserting information from integrity 150. The value is passed to this system as a parameter of the temporal reference that is introduced in the image by the temporary reference insertion module 130 obtained from register 170 and the secret key K. In step 151, the system to get the introduction of information from image integrity is dependent on the moment it was taken the image that is being processed is also used in the synchronization of the secret key K to ensure that only authorized users can enter the integrity information valid. If the temporary reference is not known, the process of enter the integrity information without it in the decoder 200 of Fig. 1 detected is very complex. In step 152 you initializes the index value i, whose function is to count the row macroblock in which the insertion method is located during its execution. In this figure, the block width (8 \ x8) of the image is denoted by WIDTH and the height in blocks per HIGH, the block width of each macroblock M and the high in blocks of each macroblock N. In step 153, check if the integrity information has already been entered throughout the image, if so, the insertion process of the integrity information If the totality has not yet been computed of the image is advanced to step 154 in which it is initialized to zero the index value of the macroblock columns j. In step 156 verifies if all columns of macroblocks of the current macroblock row, row i. Yes, I know have computed follow step 155 which adds a unit to the index i to process the next row of macroblocks or finish, deciding this in step 153. If the result of the decision taken in step 156 is that macroblocks of row i remain process is continued in step 157, where a vector is created VEC_INT of length NºCOEF_INT, taking from each block, which forms the coordinate macroblock (i, j) of the image, NºCOEF_INT coefficients The order of arrangement of the coefficients of each block in said vector VEC_INT is from left-right and top-down regarding the position of the blocks in the current macroblock, as shown in Fig. 11. The order of arrangement of coefficients belonging to each block in the vector VEC_INT follow the order of the coefficients according to the zigzag order of those own coefficients in the block. In the next step, the 159, the COEF value is initialized to zero. Then, in step 160, check if the integrity information has already been inserted in the current macroblock (i, j), if yes, a unit is added to j in step 158 and continue in step 156. If decided (step 160) that there are still unmarked blocks (COEF <NºCOEF_INT) continue with step 161. In step 161, it is generated pseudorandomly based on the temporal reference and the secret key a projection vector of length LONG_INT, where the generation of this vector is a result of synchronization carried out in step 151 of Fig. 6. In step 162, compute the projection, for this the scalar product is calculated between the projection vector (obtained in step 161) and a vector formed by the coefficients of VEC_INT with indices included between COEF and COEF + LONG_INT-1, where the result of This projection is saved in RES_PROY. In step 163 the LONG_INT value to COEF value. Then, continue on step 168. It inserts the value of that part of the information of integrity in the RES_PROY value, which is the result of the projection of the image coefficients on the vector of projection. In step 169 the coefficients are updated used to calculate the current projection with the value the value RES_PROY marked, result of step 168.
En la Fig. 7, Fig. 8 y Fig. 9 se representan los diagramas de flujo de los procesos que se realizan en los módulos de extracción que forman el decodificador 200 y que se pueden apreciar en la Fig. 3. Los valores de los parámetros empleados en el codificador 100 deben ser los mismos que los que usa el decodificador 200. Por ejemplo: NºCOEF_IP, ANCHO, M, NºBITS_REF, etc.In Fig. 7, Fig. 8 and Fig. 9 the flowcharts of the processes that are performed in the modules of extraction that form the decoder 200 and that can be see in Fig. 3. The values of the parameters used in the encoder 100 must be the same as those used by the decoder 200. For example: NºCOEF_IP, WIDTH, M, NºBITS_REF, etc.
La Fig. 7 muestra el diagrama de flujo del proceso de extracción de la dirección IP correspondiente al módulo de extracción de la dirección IP (metadatos) 210. Al inicio se encuentra una imagen digital de la cual el módulo 210 va extraer la dirección IP. En el primer paso (211) se comprueba si es la primera vez que se ejecuta el diagrama de flujo en la secuencia a la que pertenece la imagen que se va a procesar. En caso afirmativo se continúa en el paso 212 en el cual se seleccionan pseudoaleatoriamente con la clave secreta K los bloques de la imagen JPEG de los cuales se va extraer el mensaje con la dirección IP. El paso siguiente es el 213, en el que se inicializa el valor BIT a cero. Ese valor permite controlar el número de bits de la dirección que son extraídos. Es en el paso 214 donde se verifica si el total de bits del mensaje con la dirección IP fueron recuperados; si es así, se finaliza la extracción de la dirección IP de la imagen actual que se procesa en este módulo. Si aún no se ha acabado con el total de los bits que forman la dirección IP NºBITS_IP se continúa en el paso 216, donde se inicializa a cero el valor COEF. El valor COEF es un contador del número de coeficientes que han sido usados para recuperar el valor del bit BIT de la dirección IP. La decisión sobre si ya han sido utilizados el total de coeficientes NºCOEF_IP necesarios para extraer el valor de un bit de la dirección IP se toma en el paso 218. Si ya se ha acabado se sigue con el paso 217, en el cual se decide el valor del bit BIT de la dirección IP usando un vector VEC_DIS de longitud NºCOEF_IP/LONG_IP formado por los valores almacenados en el paso 226. En el paso 215 se actualiza el valor de la variable BIT para proseguir o terminar con la extracción de la dirección IP, que se decide en el paso 214. Se llega al paso 219 si la decisión tomada en 218 es que aún restan grupos de coeficientes por procesar para poder calcular el valor del bit BIT de la dirección IP. En el paso 219 se genera un vector de proyección de longitud LONG_IP, donde ese vector debe ser igual al generado en 118 de la Fig. 4, para ello debe conocerse el valor de clave secreta K. En el paso 220 se computa la proyección mediante el producto escalar entre el vector proyección y un vector formado por los coeficientes (seleccionados en el paso 212) cuyos índices se encuentran entre (NºBITS_IPxBIT)+COEF y (NºBITS_IPxBIT)+COEF+LONG_IP-1, para finalmente almacenar el valor en RES_PROY. En el paso 221 se suma el valor LONG_IP a COEF. En el paso 226 se guarda en la posición COEF/LONG IP del vector VEC DIS el resultado del cálculo de la distancia entre RES_PROY y un vector de referencia. Este último cálculo será explicado posteriormente en esta descripción de la realización preferente de forma pormenorizada.Fig. 7 shows the flow chart of the process of extracting the IP address corresponding to the module of extracting the IP address (metadata) 210. At the beginning it find a digital image from which module 210 will extract the IP adress. In the first step (211) it is checked if it is the first once the flowchart is executed in the sequence to which The image to be processed belongs. If yes, continue in step 212 in which they are selected pseudorandomly with the secret key K the blocks of the JPEG image from which the message will be extracted with the address IP. The next step is 213, in which the value is initialized BIT to zero. That value allows you to control the number of bits in the address that are extracted. It is in step 214 where it is verified if the total bits of the message with the IP address were recovered; if so, the address extraction is completed IP of the current image that is processed in this module. If I still don't know has finished with the total of the bits that form the IP address NºBITS_IP is continued in step 216, where the initialization is reset to zero COEF value The COEF value is a counter of the number of coefficients that have been used to retrieve the BIT bit value of the IP adress. The decision on whether the total has already been used of coefficients NºCOEF_IP needed to extract the value of a bit of the IP address is taken in step 218. If it is already finished it will continue with step 217, in which the value of the BIT bit of the IP address using a vector VEC_DIS of length COCO_IP / LONG_IP Nº formed by the values stored in step 226. In step 215 the value of the BIT variable is updated for continue or end with the extraction of the IP address, which decide at step 214. Step 219 is reached if the decision taken in 218 is that there are still groups of coefficients to process for be able to calculate the value of the BIT bit of the IP address. In step 219 a projection vector of length LONG_IP is generated, where that vector must be equal to that generated in 118 of Fig. 4, to this must be known the secret key value K. In step 220 you compute the projection using the scalar product between the vector projection and a vector formed by the coefficients (selected in step 212) whose indexes are between (NºBITS_IPxBIT) + COEF and (NºBITS_IPxBIT) + COEF + LONG_IP-1, finally store the value in RES_PROY. In step 221 the value is added LONG_IP to COEF. In step 226 it is stored in the COEF / LONG position IP of the VEC DIS vector the result of calculating the distance between RES_PROY and a reference vector. This last calculation will be explained later in this description of the embodiment preferably in detail.
La Fig. 8 muestra el diagrama de flujo del proceso de extracción de la referencia temporal 230. Igual que los anteriores diagramas de flujo descritos, al inicio se encuentra una imagen digital de la cual se quiere extraer la referencia temporal que tiene ligada. El primer paso (231) del diagrama determina si es la primera ocasión en que se extrae de la imagen del presente flujo de imágenes, si es así, se avanza al paso 232, y en caso contrario al paso 233. En el paso 232 se seleccionan pseudoaleatoriamente con la clave secreta K los bloques de la imagen codificada que van ser usados para extraer la referencia temporal. El paso 233 inicializa el valor BIT a cero; con ese valor se puede saber cuándo ha finalizado el proceso de extracción de la referencia temporal en la imagen. En el paso 234 se decide si ya se han extraído todos los bits del mensaje de la referencia temporal en la imagen, continuando en el paso 235, o si aún quedan, prosiguiendo en el paso 237. El paso 235 está compuesto por un decodificador de canal que obtiene el valor del mensaje de la referencia temporal procesando los valores del vector VEC_DIS, siendo el proceso inverso al del paso 133 de la Fig. 5. Después de la decodificación de canal se llega al final del proceso descrito por el diagrama de flujo. En el paso 237 se introduce el valor cero en COEF, que se usa como contador del número de los coeficientes usados en un determinado instante para extraer la métrica correspondiente al bit BIT del mensaje codificado de la referencia temporal. En el paso 238 se decide si ya se han computado todos los coeficientes usados para extraer la métrica correspondiente a un bit del mensaje codificado de la referencia temporal. Si ya se han computado todos los coeficientes asociados a un determinado bit BIT se prosigue con la suma de una unidad al valor BIT para calcular los valores de RES_PROY del siguiente bit del mensaje, si es que existe. En caso de que aún no se hayan procesado todos los coeficientes necesarios para extraer la información insertada en la imagen relativa a un bit se continúa en el paso 239. En el paso 239 se genera un vector de proyección de longitud LONG_REF sobre el que se proyectarán los valores de coeficientes. En el paso 240 se calcula el producto escalar entre el vector proyección y un vector formado por los coeficientes seleccionados para insertar la referencia temporal (seleccionados en el paso 232) cuyos índices se encuentran entre (NºBITS_REFxBIT)+COEF y (NºBITS_REFxBIT)+COEF +LONG_REF-1, el valor obtenido se almacena en RES_PROY. En el paso 244 se actualiza el valor de COEF sumándole LONG_ REF. En el paso 246 se toma el valor RES_PROY y se calcula su distancia respecto a un vector de referencia, cuyo resultado se almacena en un vector VEC_DIS en la posición COEF/LONG_REF+BITx(NºCOEF_REF/LONG_REF), donde VEC_DIS será usado en el paso 235 para determinar el mensaje de la referencia temporal, como se indicó anteriormente. La manera para calcular la distancia de RES_PROY será abordado posteriormente en la descripción.Fig. 8 shows the flow chart of the process of extracting the temporary reference 230. Same as previous flowcharts described, at the beginning there is a digital image from which you want to extract the temporary reference That has bound. The first step (231) of the diagram determines if it is the first time it is extracted from the image of the present flow of images, if so, proceed to step 232, and otherwise to step 233. In step 232, pseudorandomly selected with the secret key K the blocks of the encoded image that will be used to extract the temporary reference. Step 233 initializes the BIT value to zero; with that value you can know when the process of extracting the temporary reference in the image. In step 234 it is decided if all the bits of the temporary reference message in the image, continuing in step 235, or if they still remain, continuing in the step 237. Step 235 is composed of a channel decoder that gets the value of the message from the temporary reference processing the values of the VEC_DIS vector, the process being inverse to step 133 in Fig. 5. After decoding channel is reached at the end of the process described by the diagram of flow. In step 237 the zero value is entered in COEF, which is use as a counter the number of coefficients used in a determined moment to extract the corresponding metric to the bit BIT of the coded message of the temporary reference. In step 238 it is decided if all the coefficients used have already been computed to extract the metric corresponding to one bit of the message Coded temporal reference. If all have already been computed the coefficients associated with a given BIT bit are continued with the sum of a unit to the BIT value to calculate the values of RES_PROY of the next bit of the message, if it exists. In case of that all the necessary coefficients have not yet been processed to extract the information inserted in the image relative to a bit is continued in step 239. In step 239 a vector is generated of projection of length LONG_REF on which the coefficient values. In step 240 the product is calculated scale between the projection vector and a vector formed by coefficients selected to insert the temporal reference (selected in step 232) whose indexes are between (NºBITS_REFxBIT) + COEF and (NºBITS_REFxBIT) + COEF + LONG_REF-1, the value obtained is stored in RES_PROY. In step 244 the COEF value is updated by adding LONG_ REF. In step 246, the value RES_PROY is taken and its distance from a reference vector, whose result is stores in a vector VEC_DIS in the position COEF / LONG_REF + BITx (NºCOEF_REF / LONG_REF), where VEC_DIS will be used in step 235 to determine the reference message temporary, as indicated above. The way to calculate the RES_PROY distance will be addressed later in the description.
La Fig. 9 muestra el diagrama de flujo correspondiente al proceso de extracción de la información de integridad 250. Este método tiene como parámetro la referencia temporal extraída en el módulo 230 y la clave secreta K; sin el valor correcto de la referencia temporal no se podría recuperar la información de integridad y se señalaría la imagen como falsa al no corresponderse la referencia temporal que tiene ligada con la información de integridad. El diagrama de flujo tiene como entrada una imagen de la que se va a extraer la información de integridad y comprobar su autenticidad espacialmente. En el paso 251 el método se sincroniza con la referencia temporal y la clave secreta K, que permitirá generar correctamente los valores pseudoaleatorios necesarios para el presente proceso de extracción. En el paso 252 se inicializa al valor cero el índice i que será usado por el método para saber en qué fila de macrobloques se encuentra. En el paso 253 se determina si la extracción de la información de integridad ha llegado a su fin, sabiéndolo al comprobar si ya se han computado todas la filas de macrobloques. Si aún no se han computado todas las filas se continúa con el paso 254, en el cual se inicializa el valor j que permite controlar el número de columnas de macrobloques de una fila de macrobloques i que han sido computadas. En el paso 254 se decide si ya se ha extraído la información de integridad de todas las columnas de macrobloques que forman cada fila. Si eso es así, se suma una unidad al contador i en el paso 255 y se vuelve al paso 253. En caso de que aún no se hayan computado todas las columnas se pasa al paso 258 en el que se genera el vector de coeficientes del macrobloque con coordenadas (i,j) usado para extraer la información de integridad. La forma de generar el vector es la misma que la mostrada anteriormente en el paso 157 de la Fig. 6. En el paso 260 se inicializa a cero el valor COEF, que permite controlar el número de coeficientes usados para extraer la información por cada macrobloque. La decisión sobre si ya se han computado todos los coeficientes de un macrobloque se toma en el paso 262. Si es así, se avanza al paso 261 en el que se analiza el vector distancias VEC_DIST y se decide si el macrobloque fue manipulado; si es el caso, se continúa en el paso 259. La función del paso 259 es señalar un macrobloque como falso; esto se puede hacer señalando el macrobloque de alguna forma visible y/o emitiendo una señal que permita a un usuario saber que ese macrobloque ha sido alterado. Si en el paso 261 no se decide que se ha manipulado el bloque estudiado, se prosigue, igual que a continuación del paso 259, con el paso 257. En el paso 257 se añade una unidad al contador j, indicando que la extracción de la información de integridad de un macrobloque ha acabado. Por otro lado, si en el paso 262 se decide que aún no se ha recuperado la información de integridad correspondiente a ese macrobloque se continúa en el paso 263. En el paso 263 se genera un vector de proyección de longitud LONG_INT sincronizado con el generador en 161 en la Fig. 6. Su generación es dependiente de la referencia temporal y de la clave, de ahí que si no se conoce la referencia temporal o la clave secreta se determinará con alta probabilidad que el macrobloque es falso. En el paso 265 se realiza el producto escalar entre el vector de proyección y un vector formado por coeficientes de VEC_INT con índices comprendidos entre COEF y COEF+LONG_INT-1, donde el resultado de la proyección se almacena en RES_PROY. En el paso 266 se actualiza el valor COEF añadiéndole el valor LONG_INT. Después de que la proyección actual se haya finalizado, se continúa con el paso 264. En ese paso se introduce el valor resultado de computar la distancia entre RES_PROY y un vector de referencia en la posición resultado de la división COEF/LONG_INT del vector de distancias VEC_DIST. La explicación del cálculo de la distancia será abordado posteriormente en la descripción.Fig. 9 shows the flow chart corresponding to the process of extracting information from integrity 250. This method is based on the reference temporary extracted in module 230 and the secret key K; without him correct value of the temporary reference could not retrieve the integrity information and the image would be flagged as false by not correspond the temporal reference that has linked to the integrity information The flowchart has as input an image from which the integrity information is to be extracted and Check its authenticity spatially. In step 251 the method is synchronized with the temporary reference and the secret key K, which will allow to correctly generate pseudorandom values necessary for the present extraction process. In step 252 you initializes to index zero the index i that will be used by the method to know in which row of macroblocks it is. In step 253 it is determined whether the extraction of integrity information has come to an end, knowing when checking if they have already been computed All rows of macroblocks. If all have not yet been computed the rows continue with step 254, in which the j value that allows you to control the number of macroblock columns of a row of macroblocks i that have been computed. In step 254 it is decided whether the integrity information has already been extracted from all the macroblock columns that make up each row. If that is thus, a unit is added to the counter i in step 255 and returned to the step 253. In case you have not yet computed all the columns are passed to step 258 in which the vector of Macroblock coefficients with coordinates (i, j) used to extract integrity information. The way to generate the vector it is the same as the one shown above in step 157 of Fig. 6. In step 260 the COEF value is initialized to zero, which allows control the number of coefficients used to extract the information for each macroblock. The decision on whether they have already computed all the coefficients of a macroblock is taken in the step 262. If so, proceed to step 261 in which the vector distances VEC_DIST and it is decided if the macroblock was manipulated; if this is the case, continue in step 259. The function from step 259 is to designate a macroblock as false; this can be do pointing to the macroblock in some visible way and / or issuing a signal that allows a user to know that this macroblock has been altered If in step 261 it is not decided that it has been manipulated the block studied is continued, just as after the step 259, with step 257. In step 257 a unit is added to the counter j, indicating that the extraction of information from Integrity of a macroblock is over. On the other hand, if in the step 262 it is decided that the information from has not yet been recovered integrity corresponding to that macroblock is continued in step 263. In step 263 a projection vector of length is generated LONG_INT synchronized with the generator at 161 in Fig. 6. Its generation is dependent on the temporary reference and the key, hence, if the temporary reference or password is unknown secret will be determined with high probability that the macroblock is false. In step 265 the scalar product is made between the projection vector and a vector formed by coefficients of VEC_INT with indexes between COEF and COEF + LONG_INT-1, where the projection result It is stored in RES_PROY. In step 266 the COEF value is updated adding the value LONG_INT. After the current projection has been completed, continue with step 264. In that step you enter the result value of computing the distance between RES_PROY and a reference vector in the result position of the COEF / LONG_INT division of the distance vector VEC_DIST. The explanation of the distance calculation will be addressed later in the description.
En la presente realización práctica, los bloques transformados DCT que albergan los mensajes de una imagen digital fija codificada acorde al estándar JPEG son seleccionados pseudoaleatoriamente. Se lleva a cabo en las parejas de pasos 112 (Fig. 4) - 212 (Fig. 7) y 132 (Fig. 5) - 232 (Fig. 8) para el mensaje con la dirección IP y el mensaje con la referencia temporal respectivamente. Si los bloques seleccionados en codificación y decodificación no son los mismos los datos recuperados son inválidos.In the present practical embodiment, the blocks DCT transforms that house the messages of a digital image Fixed encoded according to JPEG standard are selected pseudorandomly. It takes place in pairs of steps 112 (Fig. 4) - 212 (Fig. 7) and 132 (Fig. 5) - 232 (Fig. 8) for message with the IP address and the message with the temporary reference respectively. If the blocks selected in coding and decoding are not the same the recovered data are Invalid
La selección se realiza permutando los bloques que forman la imagen usando un generador de números pseudoaleatorios, en el cual se emplea como semilla el valor de la clave secreta o una función de ella. Los bloques transformados de la imagen se disponen formando un vector de bloques atendiendo al orden de izquierda-derecha y de arriba-abajo respecto a la posición de los bloques en la imagen. Con el generador pseudoaleatorio se permuta la posición de cada bloque en el vector de bloques obteniendo un vector de bloques desordenado.The selection is made by swapping the blocks that form the image using a number generator pseudorandom, in which the value of the secret key or a function of it. The transformed blocks of the image is arranged forming a vector of blocks attending to the left-right order and of up-down with respect to the position of the blocks in the image. With the pseudorandom generator, the position of each block in the block vector obtaining a vector of messy blocks.
Se fijan los coeficientes de los bloques que forman el vector de bloques desordenados para cada uno de los mensajes que van a ser ocultados en la imagen. Los coeficientes asociados a cada mensaje se disponen formando un vector de coeficientes c. El vector de coeficientes del mensaje con la dirección IP se denota por y tiene una longitud de NºBITS_IPxNºCOEF_IP. El mensaje con la referencia temporal se denota por con una longitud de NºBITS REFxNºCOEF REF..The coefficients of the blocks that are set they form the vector of disordered blocks for each of the messages that are going to be hidden in the image. Coefficients associated to each message are arranged forming a vector of coefficients c. The vector coefficients of the message with the IP address is denoted by and has a length of NºBITS_IPxNºCOEF_IP. The message with the temporary reference is denotes by with a length of NºBITS REFxNºCOEF REF ..
Si los vectores o las matrices de proyección no son ortogonales, se debe cumplir que los conjuntos de coeficientes asociados a cada mensaje sean disjuntos. Si esto no se cumpliera, los procesos de inserción de cada mensaje se estarían interfiriendo mutuamente y la información insertada no podría ser recuperada.If vectors or projection matrices do not are orthogonal, it must be met that the sets of coefficients associated with each message are disjoint. If this is not fulfilled, the insertion processes of each message would be interfering each other and the information inserted could not be recovered.
La selección pseudoaleatoria de los bloques se puede realizar cuando se vaya a procesar cada imagen y no sólo al comienzo de un flujo de imágenes. Esta posibilidad tiene el inconveniente de que el tiempo de ejecución de la inserción o de la extracción aumenta por lo que esta solución no es aconsejable en aquellos casos en que existan restricciones temporales.The pseudorandom selection of blocks is you can perform when each image is going to be processed and not only at Beginning of a flow of images. This possibility has the drawback that the runtime of the insert or of the extraction increases so this solution is not advisable in those cases in which there are temporary restrictions.
La sincronización de la introducción y la extracción de la información de integridad se realiza en los pasos 151 (Fig. 6) y 251 (Fig. 9). Se usa la clave secreta K para garantizar que la información de integridad se introduce por un usuario autorizado del sistema. La sincronización con el sello temporal se implementa con el objetivo de crear una dependencia entre el proceso de inserción de la información de integridad y el valor de la referencia temporal. Como resultado, no es posible utilizar imágenes marcadas en un instante de tiempo anterior para falsificar una imagen obtenida en otro instante diferente sin que se detecte. Esta sincronización se logra inicializando un generador pseudoaleatorio de integridad con un valor que sea función de la referencia temporal y de la clave secreta. El generador pseudoaleatorio se utiliza en la parte correspondiente al control de integridad en la obtención de valores en los pasos 161 (Fig. 6) y 168 (Fig. 6) en la introducción, 263 (Fig. 9) y 264 (Fig. 9) en la extracción.The timing of the introduction and the Extraction of integrity information is performed in the steps 151 (Fig. 6) and 251 (Fig. 9). The secret key K is used to ensure that integrity information is entered by a authorized user of the system. Synchronization with the seal temporary is implemented with the objective of creating a dependency between the process of inserting the integrity information and the Temporary reference value. As a result, it is not possible use images marked at an earlier time to falsify an image obtained at a different time without It is detected. This synchronization is achieved by initializing a generator pseudorandom integrity with a value that is a function of the Temporary reference and secret code. The generator pseudorandom is used in the part corresponding to the control of integrity in obtaining values in steps 161 (Fig. 6) and 168 (Fig. 6) in the introduction, 263 (Fig. 9) and 264 (Fig. 9) in the extraction.
Las parejas de pasos 118 (Fig. 4) - 219 (Fig. 7) del mensaje con la dirección IP, 139 (Fig. 5) - 239 (Fig. 8) del mensaje de la referencia temporal y 161 (Fig. 6) - 263 (Fig. 9) de la información de integridad generan los vectores de proyección, y de longitud LONG_IP, LONG_REF y LONG_INT respectivamente. Los vectores de proyección se obtienen pseudoaleatoriamente haciéndolos dependientes de la clave secreta para los mensajes o la referencia temporal y la clave secreta para la información de integridad.The pairs of steps 118 (Fig. 4) - 219 (Fig. 7) of the message with the IP address, 139 (Fig. 5) - 239 (Fig. 8) of the temporary reference message and 161 (Fig. 6) - 263 (Fig. 9) of integrity information generate projection vectors, and of length LONG_IP, LONG_REF and LONG_INT respectively. The projection vectors are obtained pseudorandomly by making them dependent on the secret key for messages or reference Temporary and secret key to integrity information.
El primer paso para generar los vectores de proyección es crear un vector con todos sus elementos puestos a uno y determinar el signo de los elementos del vector pseudoaleatoriamente. A continuación, se le aplica una máscara para obtener el vector de proyección. La máscara puede ser generada respondiendo a características psicovisuales humanas u otro tipo de requisito.The first step to generate the vectors of projection is to create a vector with all its elements set to one and determine the sign of the vector elements pseudorandomly. Next, a mask is applied to Get the projection vector. The mask can be generated responding to human psycho-visual characteristics or other types of requirement.
Un ejemplo para producir la máscara es crearla de forma que el peso de los coeficientes en la proyección sea el mismo desde la perspectiva del estándar JPEG; para ello los valores de la máscara se generan como función de la relación del tamaño de los escalones de cuantificación asociados a la cuantificación JPEG de cada coeficiente. Anteriormente se indicó que cada coeficiente de los bloques 8\times8 en los que está dividida una imagen en el estándar JPEG se somete a una cuantificación, donde el tamaño del escalón del cuantificador es función de su posición en el bloque. Por lo tanto, la máscara se genera de forma que al proyectar los coeficientes sobre el vector de proyección el valor de la máscara sea tal que el producto del escalón de cuantificación JPEG de cada coeficiente por el valor de la máscara que lo multiplica sea constante. Esta igualación se logra asignándole en la máscara el valor mayor (por ejemplo 1) al elemento asociado al coeficiente cuantificado con el escalón más peque no y haciendo que el resto de los elementos del vector sean proporcionales a él. Por ejemplo, si un coeficiente tuviese asociado un tamaño de escalón cuyo valor es el doble que el del coeficiente más pequeño le correspondería en la máscara la mitad del valor asociado al más pequeño. Particularizando, si sólo se marcara un coeficiente de cada bloque para introducir un determinado mensaje, la máscara generada sería un vector con sus elementos iguales a la unidad. Esta manera de generar la máscara queda ilustrada en el siguiente ejemploAn example to produce the mask is to create it so that the weight of the coefficients in the projection is the same from the perspective of the JPEG standard; for this the values of the mask are generated as a function of the size ratio of the quantification steps associated with JPEG quantification of each coefficient. It was previously indicated that each coefficient of the 8 \ times8 blocks into which an image is divided into the JPEG standard undergoes a quantification, where the size of the Quantifier step is a function of its position in the block. Therefore, the mask is generated so that when projecting coefficients on the projection vector the mask value be such that the product of the JPEG quantification step of each coefficient for the value of the mask that multiplies it be constant. This match is achieved by assigning in the mask the greater value (for example 1) to the element associated to the coefficient quantified with the smallest step and not making the rest of The elements of the vector are proportional to it. For example, yes a coefficient associated with a step size whose value is twice that of the smallest coefficient would correspond to it in the mask half the value associated with the smallest. Particularizing, if only one coefficient of each block is marked to enter a certain message, the generated mask would be a vector with its elements equal to unity. This way of generate the mask is illustrated in the following example
c_{quant} = {1,1,2,1}c_ {quant} = {1,1,2,1}
q = {5,5,6,6).q = {5,5,6,6).
En el caso anterior representa el vector formado por los coeficientes cuantificados, el vector q representa los valores de la matriz de cuantificación JPEG con los que se obtienen los coeficientes cuantificados. Atendiendo a esto, la máscara m resultaIn the previous case it represents the vector formed by the quantified coefficients, the vector q represents the values of the JPEG quantification matrix with which they are obtained the quantified coefficients. Attending to this, the mask m result
m = {1,1,5/6,5/6}.m = {1,1,5 / 6,5 / 6}.
Pudiendo corresponderse a vector de proyección p = {1,-1,5/6,-5/6}.May correspond to projection vector p = {1, -1.5 / 6, -5 / 6}.
En el resultado de las proyecciones RES_PROY se introduce un bit de los mensajes o una parte de la información de integridad. Este proceso se lleva a cabo en los pasos 124 de la Fig. 4, 145 de la Fig. 5 y 168 de la Fig. 6 para la dirección IP, la referencia temporal y la información de integridad respectivamente. Los tres pasos son análogos, difiriendo sólo en la información que se introduce en cada uno.In the result of the RES_PROY projections, enter a bit of the messages or a part of the information from integrity. This process is carried out in steps 124 of the Fig. 4, 145 of Fig. 5 and 168 of Fig. 6 for the IP address, Temporary reference and integrity information respectively. The three steps are analogous, differing only in the information that is entered in each one.
En el sistema propuesto en la presente invención se usan técnicas de marcado de agua con información lateral en el codificador, y en la presente descripción preferente se usa una técnica basada en cuantificadores escalares uniformes y codificación por repetición.In the system proposed in the present invention watermarking techniques with lateral information are used in the encoder, and in the present preferred description a technique based on uniform scalar quantifiers and repeat coding.
Los mensajes a insertar se representan mediante vectores binarios (sus elementos sólo pueden tomar los valores {0,1}) en los que cada elemento representa un bit de información:The messages to be inserted are represented by binary vectors (their elements can only take values {0,1}) in which each element represents a bit of information:
El mensaje correspondiente a la dirección IP se denota por y tiene una longitud de 32 bits, donde este valor se denota en los diagramas de flujo de Fig. 4 y Fig. 7 por NºBITS_IP.The message corresponding to the IP address is denoted by and has a length of 32 bits, where this value is denotes in the flowcharts of Fig. 4 and Fig. 7 by NºBITS_IP.
El mensaje de la referencia temporal se denota por y tiene una longitud variable, dependiendo de la codificación de canal que se aplique en el paso 133 de la Fig. 5. Este valor de longitud se denota en Fig. 5 y Fig. 8 por NºBITS REF.The temporary reference message is denoted by and has a variable length, depending on the coding channel applied in step 133 of Fig. 5. This value of Length is denoted in Fig. 5 and Fig. 8 by No. BITS REF.
La información de integridad también se representa mediante un vector binario que representa el valor de un mensaje de referencia, introduciéndose un bit en cada macrobloque, y por lo tanto su longitud es igual al número de macrobloques de la imagen. Este mensaje de referencia es arbitrario, debiendo ser conocido por el decodificador para poder verificar su presencia en la imagen.Integrity information is also represented by a binary vector that represents the value of a reference message, entering a bit in each macroblock, and therefore its length is equal to the number of macroblocks of the image. This reference message is arbitrary, and must be known by the decoder to verify its presence in the picture.
El objetivo del proceso de marcado de agua que se describe en esta realización práctica preferente es codificar cada mensaje o la información de integridad en un vector y que representa una palabra código, la cual se insertará en la imagen original.The objective of the watermarking process that described in this preferred practical embodiment is to code each message or integrity information in a vector and that represents a code word, which will be inserted in the image original.
En el método usado en esta descripción, cada palabra código y tiene L veces la longitud del vector binario que representa el mensaje a insertar, siendo L la tasa de repetición utilizada NºCOEF_IP/LONG_IP, NºCOEF_REF/LONGREF o NºCOEF_INT/LONG_INT según corresponda a la dirección IP, la referencia temporal o la información de integridad respectivamente; en general L será distinto para cada mensaje o para la información de integridad. El proceso para introducir información en la imagen propuesto en esta descripción de la realización preferente de la invención comprende tres pasos: cuantificación, obtención de vectores de error y actualización de los coeficientes. Estos pasos serán descritos en detalle a continuación.In the method used in this description, each code word and has L times the length of the binary vector that represents the message to be inserted, with L being the repetition rate used NºCOEF_IP / LONG_IP, NºCOEF_REF / LONGREF or NºCOEF_INT / LONG_INT as appropriate to the address IP, temporary reference or integrity information respectively; in general L will be different for each message or for the integrity information. The process for entering information in the image proposed in this description of the preferred embodiment of the invention comprises three steps: quantification, obtaining error vectors and updating the coefficients. These steps will be described in detail below.
En el primer paso, para insertar un mensaje o la información de integridad de longitud N representados por un vector binario b = (b_{1}, b_{2}, ..., b_{N}) se generan los elementos de la palabra código y, de manera que para un elemento con índice i dentro del intervalo ((j-1)\times+1, j\timesL] se utilizará el bit del vector binario correspondiente, siendo 1<j<N. Donde b denota a los vectores o para el caso de los mensajes o para la información de integridad. El valor i-ésimo se calcula comoIn the first step, to insert a message or the integrity information of length N represented by a binary vector b = (b_ {1}, b_ {2}, ..., b_ {N}) the elements of the code word and, so that for an element with index i within the range (( j -1) \ times + 1, j \ times L ] the corresponding binary vector bit will be used, being 1 < j < N . Where b denotes the vectors or for the case of the messages or for the integrity information. The ith value is calculated as
donde \Delta es el denominado escalón de cuantificación, que determinará la distorsión introducida por el proceso de marcado. Por otra parte, en la expresión anterior (1) representa un valor pseudoaleatorio distribuido uniformemente en el intervalo [-1/2,1/2] y es conocido sólo por el codificador y el decodificador; además, denota el resultado de la proyección i-ésima RES_PROY del correspondiente proceso de inserción en una imagen según se lleve a cabo en el módulo de inserción de la dirección IP (Fig. 4), en el de la dirección IP (Fig. 5) o en el de la información de integridad (Fig. 6), y donde representa la operación de cuantificación, que debido a la particular estructura de las palabras código viene dada simplemente porwhere Δ is the so-called quantification step , which will determine the distortion introduced by the marking process. On the other hand, in the previous expression (1) it represents a pseudo-random value evenly distributed in the range [-1 / 2,1 / 2] and is known only by the encoder and the decoder; In addition, it denotes the result of the i- th RES_PROY projection of the corresponding insertion process in an image as carried out in the insertion module of the IP address (Fig. 4), in that of the IP address (Fig. 5 ) or in that of the integrity information (Fig. 6), and where it represents the quantification operation, which due to the particular structure of the code words is simply given by
La obtención de se representa gráficamente en la Fig. 12, donde los círculos y los cuadrados simbolizan los puntos de reconstrucción que representan a los bits 0 y 1, respectivamente. Respecto al valor pseudoaleatorio, éste puede obtenerse a partir de la clave secreta K o bien a partir de la referencia temporal para los mensajes y la clave secreta en el caso de la información de integridad. En general, se utilizará un valor de diferente para cada valor con el fin de proporcionar privacidad al proceso de marcado. El vector formado por los de cada mensaje o información de integridad se representa por para la dirección IP, para la referencia temporal, y para la información de integridad.Obtaining is plotted in the Fig. 12, where circles and squares symbolize points reconstruction representing bits 0 and 1, respectively. Regarding the pseudorandom value, it can obtained from the secret key K or from the temporary reference for the messages and the secret key in the case of integrity information. In general, a value will be used different for each value in order to provide privacy to the marking process. The vector formed by those of each message or Integrity information is represented by for the IP address, for temporary reference, and for information on integrity.
El segundo paso del proceso de marcado consiste en la obtención del vector de error de cuantificación d.The second step of the marking process consists of in obtaining the quantization error vector d.
Cada elemento es el resultado de los pasos 124 (Fig. 4), 145 (Fig. 5) y 168 (Fig. 6).Each element is the result of steps 124 (Fig. 4), 145 (Fig. 5) and 168 (Fig. 6).
El tercer paso del proceso de marcado es la actualización, operación mediante la cual se dispersa el valor de cada sobre todos los coeficientes de la imagen original que han sido usados para obtener el valor de (que se corresponde con un cierto valor RES_PROY). La actualización se lleva a cabo en los pasos 125 (Fig. 4), 146 (Fig. 5) y 169 (Fig. 6). Se supone que los coeficientes de la imagen, que se han usado para obtener mediante la operación de proyección el valor de RES_PROY que ha dado lugar a en el paso anterior, se encuentran dispuestos en el vector c = (c_{1}, c_{2} ..., c_{M}), donde M es igual a LONG_IP, LONG_REF o LONG _INT, dependiendo de si el mensaje insertado se corresponde con la dirección IP, la referencia temporal, o la información de integridad, respectivamente. La obtención del j-ésimo coeficiente marcado, denotado por c_{j}^{\text{*}} viene dada por la siguiente expresión:The third step of the marking process is the update, an operation by which the value of each is dispersed over all the coefficients of the original image that have been used to obtain the value of (which corresponds to a certain RES_PROY value). The update is carried out in steps 125 (Fig. 4), 146 (Fig. 5) and 169 (Fig. 6). It is assumed that the coefficients of the image, which have been used to obtain the value of RES_PROY that resulted in the previous step by means of the projection operation, are arranged in the vector c = (c_ {1}, c_ { 2} ..., c_ {M}) , where M is equal to LONG_IP, LONG_REF or LONG _INT, depending on whether the message inserted corresponds to the IP address, time reference, or integrity information, respectively. Obtaining j -th coefficient marked, denoted by c _ {j} ^ {\ text {*}} is given by the following expression:
donde d_{i}^{\text{*}} = d_{i}/M, es el elemento j-ésimo del vector de proyección correspondiente (es decir, ó ), y \alpha es el denominado factor de compensación de distorsión, que puede tomar valores reales en el intervalo [0,1]. Controlando el valor de \alpha se puede llegar a una solución de compromiso entre la distorsión introducida y la robustez de la marca.where d {i} ^ {\ text {*}} = d {i} / M is the element j -th vector corresponding projection (i.e., or), and \ alpha is called compensation factor of distortion , which can take real values in the interval [0,1]. By controlling the value of α, a compromise solution can be reached between the distortion introduced and the robustness of the brand.
Para concluir el proceso de marcado, los coeficientes originales se reemplazan por los coeficientes marcados c_{j}^{\text{*}}.To conclude the marking process, the original coefficients are replaced by the coefficients marked c _ {j} ^ {\ text {*}}.
La imagen digital resultado de alterar los coeficientes en la inserción de información se vuelve a codificar según el estándar JPEG. Como se indicó anteriormente el estándar JPEG cuantifica los coeficientes de cada bloque 8\times8 que forman la imagen por los elementos de la matriz de cuantificación JPEG, introduciendo un ruido de cuantificación.The digital image resulting from altering the coefficients in the insertion of information is re-encoded according to the JPEG standard. As indicated above the standard JPEG quantifies the coefficients of each 8 \ 8 block that they form the image by the elements of the quantization matrix JPEG, introducing a quantization noise.
Es necesario conocer los valores de en el proceso de inserción de la información de la imagen, de modo que se pueda establecer un valor mínimo del tamaño de escalón \Delta necesario para insertar la información. Este proceso de generación de los elementos de las palabras código y se describe en la expresión (1).It is necessary to know the values of in the process of inserting the image information, so that it can set a minimum step size value \ Delta necessary to insert the information. This generation process of the elements of the code words and described in the expression (1).
La determinación del tamaño de los escalones de los cuantificadores (y), depende del valor mínimo del tamaño del escalón de cuantificación de (q_{IP,min}, q_{REF,min}, o q_{INT,min}); este valor divide los coeficientes usados para insertar cada tipo de información. De ese modo se consigue que la comunicación establecida entre el codificador 100 y el decodificador 200 sea posible con una distorsión muy pequeña. La condición que se debe cumplir esThe determination of the size of the steps of the quantifiers (y), depends on the minimum value of the size of the quantification step of (q_ {IP, min}, q_ {REF, min}, or q_ {INT, min}); this value divides the coefficients used to Insert each type of information. That way you get the communication established between the encoder 100 and the decoder 200 is possible with a very small distortion. The condition that must be met is
\Delta_{IP}\geq 2q_{IP,min},\ Delta_ {IP} \ geq 2q_ {IP, min},
\Delta_{REF}\geq 2q_{REF,min} y\ Delta_ {REF} \ geq 2q_ {REF, min} Y
\Delta_{INT}\geq 2q_{INT,min}.\ Delta_ {INT} \ geq 2q_ {INT, min}.
Respetando esta condición se logra que la
información introducida resista la compresión JPEG a un determinado
factor de calidad, donde ese factor controla. Esto queda claro con
el ejemplo que se describe a continuación. Se supone un factor
\Delta=1, sin proyección y el resultado del error de
cuantificación para la introducción de un bit, cuyo valor es cero,
es el máximo valor posible d=\Delta/2. El coeficiente
marcado resulta c^{\text{*}} = c+ \Delta/2. Si no
se cumpliera la condición anteriormente mencionada el valor marcado
cuantificado obtenido c_{quant}^{\text{*}} sería igual al
valor sin marcar cuantificado original, por lo tanto en el
decodificador 200 produciría un error al recuperar el valor del bit
insertado ya que
\hat{\mathit{c}} =
c_{quant}^{\text{*}} \times q estaría más cerca de una
palabra código del subconjunto asociado al valor uno que al de
valor cero.Respecting this condition, the information entered resists JPEG compression at a certain quality factor, where that factor controls. This is clear from the example described below. A factor Δ = 1 is assumed, without projection and the result of the quantization error for the introduction of a bit, whose value is zero, is the maximum possible value d = Δ / 2. The marked coefficient results c ^ {\ text {*}} = c + \ Delta / 2. If the aforementioned condition was not met, the quantified marked value obtained c {quant} ^ {\ text {*}} would be equal to the original quantized unmarked value, therefore in decoder 200 it would produce an error when recovering the value of the bit inserted since
\ hat {\ mathit {c}} = c _ {quant} ^ {\ text {*}} \ times that would be closer to a code word of the subset associated with the value one than the value zero.
El proceso de extracción de la información insertada es similar al proceso de marcado, y se puede descomponer en dos etapas. Para explicarlo, se parte de un conjunto de vectores de coeficientes c = (c_{1}, c_{2} ..., c_{M}), j = 1...N, que han sido marcados para transmitir información acerca del j-ésimo bit de un mensaje que tiene una longitud total de N bits, correspondiéndose este valor con NºBITS_IP o NºBITS_REF para el caso de la dirección IP y de la referencia temporal respectivamente o el número de macrobloques de la imagen para la información de integridad. Además, el valor L es la tasa de repetición utilizada, es decir, NºCOEF_IP/LONG_IP, NºCOEF_REF/LONG_REF y NºCOEF_INT/LONG_INT para la dirección IP, la referencia temporal y la información de integridad respectivamente.The process of extracting the inserted information is similar to the marking process, and can be broken down into two stages. To explain it, we start with a set of vectors of coefficients c = (c_ {1}, c_ {2}, c_ {M}) , j = 1 ... N , which have been marked to transmit information about of the jth bit of a message that has a total length of N bits, this value corresponding to NºBITS_IP or NºBITS_REF for the case of the IP address and the temporary reference respectively or the number of macroblocks of the image for the integrity information . In addition, the L value is the repetition rate used, that is, COCO_IP / LONG_IP No., COEF_REF / LONG_REF No. and COEF_INT / LONG_INT No. for the IP address, time reference and integrity information respectively.
El primer paso del proceso de decodificación consiste en obtener un vector de distancias VEC-DIS = (v_{1}, v_{2}, ..., v_{N}). De la proyección del vector usando los parámetros adecuados se obtiene como resultado un vector de longitud L, con 1<j<N, y denotamos la concatenación de dichos N vectores como s. El valor de v_{j} se obtiene mediante la expresiónThe first step of the decoding process is to obtain a distance vector VEC-DIS = (v_ {1}, v_ {2}, ..., v_ {N}) . The projection of the vector using the appropriate parameters results in a vector of length L , with 1 <j <N, and we denote the concatenation of said N vectors as s . The value of v j is obtained by the expression
El valor representa el valor absoluto del error de cuantificación del subvector con el conjunto de palabras código que representan el bit 0 en el j-ésimo bit, donde el conjunto palabras código tiene la forma del vector (\Delta(t_{1} + k_{1}), \Delta(t_{2} + k_{2}), ..., \Delta(t_{L} + k_{L})), donde es un número entero y los valores pseudoaleatorios deben corresponderse con los usados en la fase codificación. La operación (2) se lleva a cabo en los pasos 226 (Fig. 7), 246 (Fig. 8) y 264 (Fig. 9). Dependiendo del tipo de mensaje considerado, el siguiente paso en el proceso de decodificación es como se describe a continuación.The value represents the absolute value of the quantizer error of the subvector with the set of code words representing bit 0 in the jth bit, where the set code words has the form of the vector (\ Delta (t_ {1} + k_ {1}), \ Delta (t_ {2} + k_ {2}), ..., \ Delta (t_ {L} + k_ {L})) , where it is an integer and the pseudorandom values must correspond to those used in the coding phase. Operation (2) is carried out in steps 226 (Fig. 7), 246 (Fig. 8) and 264 (Fig. 9). Depending on the type of message considered, the next step in the decoding process is as described below.
Para obtener el j-ésimo bit de la dirección IP (paso 217 de la Fig. 7), la regla de decisión viene dada porTo obtain the jth bit of the IP address (step 217 of Fig. 7), the decision rule is given by
esto es, se seguirá un criterio de mínima distancia.that is, a criterion of minimum distance.
El mensaje relativo a la referencia temporal se codifica contra errores usando un código de canal (p.ej. convolucional). En este caso, el vector de distancias es la entrada al bloque 235 de la Fig. 8, que obtiene a la salida el vector binario \hat{\mathit{b}}_{REF}, el cual representa el mensaje estimado.The message regarding the temporary reference is Encode against errors using a channel code (e.g. convolutional). In this case, the distance vector is the input to block 235 of Fig. 8, which obtains the vector at the exit binary \ hat {\ mathit {b}} _ {REF}, which represents the message Dear.
En el sistema propuesto en la presente invención se contempla la detección de alteraciones temporales en las imágenes procesadas por él. Esto ocurre cuando se intenta modificar una imagen o se sustituye una secuencia de imágenes. Se implementa utilizando una ventana temporal compuesta por las referencias temporales válidas que se han de cotejar con la referencia temporal extraída de cada imagen. Si la referencia temporal está dentro de la ventana, la ventana se actualiza con el valor de la nueva referencia temporal. Si la referencia temporal extraída no es válida se indica que esa imagen determinada o secuencia de imágenes no es válida.In the system proposed in the present invention the detection of temporary alterations in the images processed by him. This happens when you try to modify an image or a sequence of images is replaced. It is implemented using a temporary window composed of references Temporary valid to be checked against the temporary reference extracted from each image. If the temporary reference is within the window, the window is updated with the value of the new Temporary reference If the extracted temporary reference is not valid indicates that that particular image or sequence of images is not valid.
La información de integridad se extrae en el paso 261 de la Fig. 9. En este paso, se calculará la distancia entre el conjunto de palabras código asociadas a un mensaje de referencia, y la versión proyectada de los coeficientes dedicados a integridad del j-ésimo macrobloque. Si dicha distancia es menor que un determinado umbral, entonces se decidirá que la señal es auténtica, y en otro caso que ha sido editada.The integrity information is extracted in step 261 of Fig. 9. In this step, the distance between the set of code words associated with a reference message, and the projected version of the integrity coefficients of j - will be calculated. th macroblock. If this distance is less than a certain threshold, then it will be decided that the signal is authentic, and in another case it has been edited.
Nótese que los diagramas de flujo no utilizan ninguna sintaxis especial, ni ningún lenguaje de programación. Más bien, representan la información necesaria para que una persona familiarizada en este campo de la tecnología pueda fabricar circuitos integrados o generar el software que ejecuten los procesos necesarios. Por ejemplo, cada función representada por un bloque o un diagrama de flujo puede ser implementada por un conjunto de instrucciones software, por un procesador digital de señal DSP, por un circuito digital configurable FPGA, por un circuito de aplicación específica ASIC o cualquier combinación de ellos.Note that flowcharts do not use No special syntax, or any programming language. Plus well, they represent the information necessary for a person familiar in this field of technology can manufacture integrated circuits or generate the software running the necessary processes. For example, each function represented by a block or a flowchart can be implemented by a software instruction set, by a digital processor of DSP signal, by an FPGA configurable digital circuit, by a ASIC specific application circuit or any combination of they.
Con el fin de ilustrar una posible implementación de los métodos de inserción de marcado de agua propuestos en la presente invención se muestra en la Fig. 13 un esquema de bloques de una cámara digital de red 1300. La cámara comprende una lente 1301 que focaliza un imagen sobre un sensor de imagen 1302, un circuito generador de imágenes 1303 que utiliza la imagen capturada por el sensor de imagen 1303 originando una imagen digital codificada acorde a algún estándar (p.ej. JPEG) y un circuito de control 1304 teniendo como una de sus funciones el control de la obtención, la generación y la codificación de las imágenes, siendo otra de sus funciones la comunicación con una red de comunicaciones 1306. Además, el circuito de control 1304 tiene la capacidad de ejecutar operaciones almacenadas en una memoria 1305, siendo en ésta donde están guardadas las operaciones necesarias para llevar a cabo los métodos de inserción propuestos en esta invención. Generalmente, la poca capacidad de cálculo de los circuitos de control presentes en las actuales cámaras digitales de red, hacen idónea la presente invención al conjugar perfectamente un elevado grado de seguridad con la necesidad de un número de operaciones bajo.In order to illustrate a possible implementation of watermark insertion methods proposed in the present invention is shown in Fig. 13 a block scheme of a 1300 network digital camera. The camera it comprises a lens 1301 that focuses an image on a sensor of image 1302, an image generating circuit 1303 that uses the image captured by image sensor 1303 causing an image digital encoded according to some standard (eg JPEG) and a control circuit 1304 having as one of its functions the control of obtaining, generating and coding the images, being another of its functions the communication with a network of communications 1306. In addition, control circuit 1304 has the ability to execute operations stored in a memory 1305, where operations are stored necessary to carry out the proposed insertion methods In this invention. Generally, the low calculation capacity of the control circuits present in the current digital cameras network, make the present invention suitable by conjugating perfectly a high degree of security with the need for a low number of operations
Los métodos de marcado de agua digital para detección de manipulación propuestos en la presente invención se podrían implementar en un sistema computacional 1400, como se muestra en la Fig. 14, donde tal sistema computacional 1400 comprendería un procesador 1401 y una memoria 1403. Tal sistema de computación 1400 estaría conectado a dispositivos de un sistema de vigilancia 1407 a través de una red comunicaciones digitales 1405. El procesador 1401 ejecuta las operaciones almacenadas en la memoria 1403; por lo tanto los procesos descritos que forman parte de los métodos para la detección de alteraciones pueden ser implementados en estos sistemas computacionales.Digital watermarking methods for tamper detection proposed in the present invention is could be implemented in a 1400 computer system, as shown in Fig. 14, where such a computer system 1400 it would comprise a processor 1401 and a memory 1403. Such a system of 1400 computing would be connected to devices of a system 1407 surveillance through a 1405 digital communications network. The processor 1401 executes the operations stored in the memory 1403; therefore the described processes that are part of the methods for detecting alterations can be implemented in these computer systems.
A modo de ejemplo, el sistema computacional 1400 podría ser un ordenador central que controla los parámetros de las cámaras digitales que forman el sistema global o, simplemente, un DSP configurado para que de manera aleatoria analice unas grabaciones de una base de datos.As an example, the 1400 computer system it could be a central computer that controls the parameters of the digital cameras that make up the global system or simply a DSP configured to randomly analyze some recordings of a database.
Hasta ahora, se ha detallado una posible realización práctica de la presente invención. Es evidente para una persona preparada en este campo técnico que existen variantes en el estado del arte aplicables a la realización práctica presentada. Acorde con esto, se debe decir que el alcance de la presente invención estará únicamente limitado por las reivindicaciones que acompañan a la invención y no por el contenido de la descripción preferente.So far, a possible detail has been detailed practical embodiment of the present invention. It is evident for a person prepared in this technical field that there are variants in the State of the art applicable to the practical realization presented. According to this, it should be said that the scope of this invention will be limited only by the claims that accompany the invention and not because of the content of the description preferential.
Claims (16)
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
ES200603214A ES2321363B2 (en) | 2006-12-14 | 2006-12-14 | DIGITAL WATER MARKING SYSTEM IN PARTICULAR OF AN AGUADIGITAL MARKING SYSTEM FOR THE DETECTION AND LOCATION OF ALTERATIONS IN DIGITAL IMAGES. |
US12/519,050 US8472528B2 (en) | 2006-12-14 | 2007-12-14 | Method for marking a digital image with a digital water mark |
JP2009540664A JP4944966B2 (en) | 2006-12-14 | 2007-12-14 | How to mark a digital image with a digital watermark |
DE102007060345A DE102007060345A1 (en) | 2006-12-14 | 2007-12-14 | Method for identifying a digital document, in particular a digital image, with a digital watermark |
PCT/EP2007/011013 WO2008071442A1 (en) | 2006-12-14 | 2007-12-14 | Method for marking a digital image with a digital watermark |
ES07856751.8T ES2583927T3 (en) | 2006-12-14 | 2007-12-14 | Method of marking a digital document |
EP07856751.8A EP2122569B1 (en) | 2006-12-14 | 2007-12-14 | Method for marking a digital image with a digital watermark |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
ES200603214A ES2321363B2 (en) | 2006-12-14 | 2006-12-14 | DIGITAL WATER MARKING SYSTEM IN PARTICULAR OF AN AGUADIGITAL MARKING SYSTEM FOR THE DETECTION AND LOCATION OF ALTERATIONS IN DIGITAL IMAGES. |
Publications (2)
Publication Number | Publication Date |
---|---|
ES2321363A1 ES2321363A1 (en) | 2009-06-04 |
ES2321363B2 true ES2321363B2 (en) | 2010-01-12 |
Family
ID=40723265
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES200603214A Expired - Fee Related ES2321363B2 (en) | 2006-12-14 | 2006-12-14 | DIGITAL WATER MARKING SYSTEM IN PARTICULAR OF AN AGUADIGITAL MARKING SYSTEM FOR THE DETECTION AND LOCATION OF ALTERATIONS IN DIGITAL IMAGES. |
Country Status (1)
Country | Link |
---|---|
ES (1) | ES2321363B2 (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5809139A (en) * | 1996-09-13 | 1998-09-15 | Vivo Software, Inc. | Watermarking method and apparatus for compressed digital video |
US5960081A (en) * | 1997-06-05 | 1999-09-28 | Cray Research, Inc. | Embedding a digital signature in a video sequence |
WO2003067886A1 (en) * | 2002-02-06 | 2003-08-14 | Sony United Kingdom Limited | Modifying bitstreams |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2846828B1 (en) * | 2002-10-31 | 2005-03-11 | France Telecom | METHOD FOR TATOTING A VIDEO SIGNAL, SYSTEM AND DATA CARRIER FOR IMPLEMENTING SAID METHOD, METHOD FOR EXTRACTING THE TATTOO OF A VIDEO SIGNAL, SYSTEM FOR IMPLEMENTING SAID METHOD |
-
2006
- 2006-12-14 ES ES200603214A patent/ES2321363B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5809139A (en) * | 1996-09-13 | 1998-09-15 | Vivo Software, Inc. | Watermarking method and apparatus for compressed digital video |
US5960081A (en) * | 1997-06-05 | 1999-09-28 | Cray Research, Inc. | Embedding a digital signature in a video sequence |
WO2003067886A1 (en) * | 2002-02-06 | 2003-08-14 | Sony United Kingdom Limited | Modifying bitstreams |
Also Published As
Publication number | Publication date |
---|---|
ES2321363A1 (en) | 2009-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230360165A1 (en) | Method and apparatus for protecting digital photos from alteration | |
ES2894328T3 (en) | System and procedure for digital watermarking | |
Fallahpour et al. | Tampering detection in compressed digital video using watermarking | |
ES2431595T3 (en) | Method and system of incorporation and extraction of a digital image watermark | |
ES2530208T3 (en) | Encoding visual content by rearranging patterns on a matrix | |
KR102637177B1 (en) | Method and apparatus for verifying integrity of image based on watermark | |
CN113538197B (en) | Watermark extraction method, watermark extraction device, storage medium and electronic equipment | |
CN107689026A (en) | Reversible steganography method based on optimum code | |
Cheung et al. | A sequential quantization strategy for data embedding and integrity verification | |
US9239966B2 (en) | Method and device for watermarking a sequence of images, method and device for authenticating a sequence of watermarked images and corresponding computer program | |
He et al. | A semi-fragile object based video authentication system | |
ES2583927T3 (en) | Method of marking a digital document | |
KR101354609B1 (en) | Image based data hiding device and method | |
ES2321363B2 (en) | DIGITAL WATER MARKING SYSTEM IN PARTICULAR OF AN AGUADIGITAL MARKING SYSTEM FOR THE DETECTION AND LOCATION OF ALTERATIONS IN DIGITAL IMAGES. | |
Kelash et al. | Utilization of steganographic techniques in video sequences | |
CN102946531A (en) | GOP (group of picture) frame structure combined video watermarking method and system | |
CN108271027B (en) | A method for extracting self-adaptive hidden information from images | |
Mitekin et al. | A new method for high-capacity information hiding in video robust against temporal desynchronization | |
WO2003003285A1 (en) | Method and system for watermarking an electrically depicted image | |
CN117275055A (en) | Human code comparison two-dimensional code preparation method based on face recognition | |
CN113557529B (en) | Mixed two-dimensional bar code reader | |
Sarreshtedari et al. | Source-channel coding approach to generate tamper-proof images | |
Wu | Tamper-localization watermarking with systematic error correcting code | |
CN109190741B (en) | A QR code-based private information management method and terminal | |
CN106851436A (en) | Video point shape Fragile Watermark Algorithm in DCT domain |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
EC2A | Search report published |
Date of ref document: 20090604 Kind code of ref document: A1 |
|
FG2A | Definitive protection |
Ref document number: 2321363B2 Country of ref document: ES |
|
FD2A | Announcement of lapse in spain |
Effective date: 20211123 |