ES2583927T3 - Método de marcado de un documento digital - Google Patents

Método de marcado de un documento digital Download PDF

Info

Publication number
ES2583927T3
ES2583927T3 ES07856751.8T ES07856751T ES2583927T3 ES 2583927 T3 ES2583927 T3 ES 2583927T3 ES 07856751 T ES07856751 T ES 07856751T ES 2583927 T3 ES2583927 T3 ES 2583927T3
Authority
ES
Spain
Prior art keywords
message
projected
integrity
vector
values
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.)
Active
Application number
ES07856751.8T
Other languages
English (en)
Inventor
José Luis Fernández Carnero
Santiago Rey Requejo
Fernando Pérez Gonzales
Jorge Rocafort Cimadevila
Pedro COMESAÑA ALFARO
Luis PÉREZ FREIRE
Carlos Mosquera Nartallo
Gabriel Domínguez Conde
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tredess 2010 SL
Original Assignee
Tredess 2010 SL
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from ES200603214A external-priority patent/ES2321363B2/es
Application filed by Tredess 2010 SL filed Critical Tredess 2010 SL
Application granted granted Critical
Publication of ES2583927T3 publication Critical patent/ES2583927T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/0021Image watermarking
    • G06T1/005Robust watermarking, e.g. average attack or collusion attack resistant
    • G06T1/0071Robust watermarking, e.g. average attack or collusion attack resistant using multiple or alternating watermarks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2201/00General purpose image data processing
    • G06T2201/005Image watermarking
    • G06T2201/0052Embedding of the watermark in the frequency domain
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2201/00General purpose image data processing
    • G06T2201/005Image watermarking
    • G06T2201/0083Image watermarking whereby only watermarked image required at decoder, e.g. source-based, blind, oblivious

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Editing Of Facsimile Originals (AREA)
  • Image Processing (AREA)

Abstract

Método de marcado de un documento digital, en particular de una imagen digital, con un marcado de agua digital para la detección de manipulaciones insertando una información (150) de integridad y al menos un mensaje con una pluralidad de bits, donde bloques de la imagen y coeficientes de cada bloque son seleccionados con una clave secreta (K), caracterizado por que el método comprende los pasos siguientes: - transformar la imagen digital en una imagen digital transformada, - dividir la imagen digital transformada en una pluralidad de bloques, teniendo cada bloque una pluralidad de coeficientes; - generar una pluralidad de valores proyectados de mensaje para el al menos un mensaje proyectando una pluralidad de coeficientes predeterminados sobre un vector dependiente de la clave secreta (K), - insertar cada bit de cada mensaje al menos en uno de dichos valores proyectados de mensaje; - generar una pluralidad de valores proyectados de integridad para dicha información de integridad (150) proyectando una pluralidad de coeficientes sobre un vector dependiente de mensaje, siendo dicho vector dependiente de mensaje derivado a partir de al menos uno de dichos mensajes y de la clave secreta (K); - insertar cada parte de la información de integridad (150) al menos en uno de dichos valores proyectados de integridad; - actualizar cada coeficiente usado para generar los valores proyectados de mensaje con los valores proyectados insertados de mensaje, logrando que la proyección de los primeros coeficientes actualizados de mensaje sobre el vector dependiente de la clave secreta y los valores proyectados insertados de mensaje sean idénticos; - actualizar cada coeficiente usado para calcular los valores proyectados de integridad con los valores proyectados insertados de integridad, logrando que la proyección de los coeficientes actualizados de integridad sobre dicho vector dependiente de mensaje y los valores proyectados insertados de integridad sean idénticos; - el insertar de cada parte de la información de integridad (150) se calcula sometiendo dichos valores proyectados de integridad a una cuantificación empleando un cuantificador de celosía con un tamaño de escalón predeterminado y moviendo los centroides del cuantificador de celosía con un vector de desplazamiento sincronizado con al menos uno de dichos mensajes y la clave secreta (K) ; - el insertar de cada bit de cada mensaje se calcula sometiendo dichos valores proyectados de mensaje a una cuantificación empleando un cuantificador de celosia con un tamaño de escalón predeterminado y moviendo los centroides del cuantificador de celosía con un vector de desplazamiento sincronizado con la clave secreta (K); y - sincronizar el insertar y el extraer de la información de integridad (150) por inicialisar un generador de integridad pseudoaleatorio con un valor que es una función de una referencia temporal (130) y de la clave secreta (K).

Description

5
10
15
20
25
30
35
40
Metodo de marcado de un documento digital
La presente invention se refiere a un metodo segun el preambulo de la reivindicacion 1 y a un metodo segun el preambulo de la reivindicacion 8.
Antecedentes de la invencion
En un sistema de video supervision un elemento fundamental es la camara. Actualmente, las camaras analogicas son sustituidas por camaras de seguridad digitales. estas, en muchos casos, estan disenadas para utilizar las redes de comunicaciones digitales existentes, lo que conlleva una reduction de los costes de instalacion. Ese factor es el causante del rapido aumento del numero de ese tipo de sistemas digitales. Otros dispositivos comunes en los sistemas de video supervision digitales son los servidores de video. Su funcion principal es digitalizar la senal de video analogica. Otra caracterlstica habitual es que realizan las funciones de interfaz entre las camaras analogicas y las redes de comunicaciones digitales. Esto permite pasar de forma gradual de un sistema video supervision analogico a uno digital.
Los servidores centrales son los otros dispositivos que componen, con los presentados anteriormente, el conjunto de elementos basicos de un sistema de video supervision digital. Su cometido esencial es la configuration del sistema y el control general de las camaras digitales y los servidores de video. Ademas, es muy comun que se archiven en ellos las secuencias de video obtenidas.
Estos nuevos sistemas digitales de video supervision aparecen fruto del enorme avance en las tecnologlas de la information en las ultimas decadas. Paralelamente a su aparicion surgen numerosas aplicaciones para la edition de imagenes fijas y video. Con ellas no es complicado conseguir alterar una imagen, de tal forma que no se pueda discernir entre una original y una falsa. Ademas, el numero de potenciales manipuladores ha aumentado de manera enorme, ya que debido a Internet esas herramientas de edicion estan al alcance de un gran numero de usuarios. Una consecuencia de lo anterior es que, desde el punto de vista de la autenticidad, la validez de las imagenes fijas y los videos digitales esta cada vez mas cuestionada.
EI marcado de agua digital es una de las soluciones propuestas para resolver el problema mencionado anteriormente. Es un conjunto de tecnicas empleadas para insertar informacion en un documento digital (imagen, video, audio, etc.). La introduction de la informacion se realiza modificando el documento original (huesped) con la restriction principal de que la distorsion producida por el marcado sea tolerable (en funcion de la aplicacion). Una de sus ventajas esenciales es que los datos insertados estan ligados al huesped, de ahl que no sea necesario ningun archivo adicional como ocurre en el caso de la criptografla. Para la clasificacion de una tecnica concreta de marcado de agua digital se emplean varias caracterlsticas. Dos de las mas importantes son la robustez y la necesidad o no del huesped para hacer posible la extraction de la informacion. Sobre esta ultima caracterlstica, se dice que una tecnica es ciega si para la extraction de la informacion no necesita el huesped y no ciega en el caso contrario.
En la video supervision, una condition imprescindible es que no se necesiten las imagenes originales para poder extraer la informacion, para evitar doblar la capacidad de almacenamiento requerida. Como
5
10
15
20
25
30
35
consecuencia se desprende que una tecnica de marcado de agua para sistemas de video supervision debe ser preferiblemente ciega.
Una tecnica 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 tecnicas fragiles, que son aquellas en las que la marca se corrompe tras la a la mas minima alteration. Para la detection de manipulaciones de contenidos digitales se usan las tecnicas fragiles o semifragiles, pues ellas permiten demostrar la autenticidad del contenido analizando la integridad de la marca.
Actualmente, una de las grandes familias de tecnicas de marcado de agua digital es la de espectro ensanchado, otra es aquella formada por las llamadas tecnicas de marcado de agua digital con information lateral en el codificador. Una caracteristica particular de las tecnicas de marcado de agua digital de espectro ensanchado en esquemas ciegos es que sufren la interferencia del propio huesped. En contraposition, las tecnicas con informacion lateral en el codificador no sufren dicha interferencia. Dada que, como se indico anteriormente, la autenticacion de las imagenes de un sistema de video supervision es preciso que sea ciega, los esquemas mas avanzados usan tecnicas con informacion lateral en el codificador.
Un ejemplo de tecnica de marcado de agua digital con informacion lateral en el codificador y extraction ciega se puede encontrar en el articulo 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 informacion en el huesped. Basicamente, la idea propuesta es tener un conjunto de cuantificadores de los cuales se selecciona uno dependiendo del mensaje que se quiera insertar. La obtencion de ese conjunto de cuantificadores no es trivial. Los autores proponen un procedimiento practico para obtenerlos de manera eficiente y estructurada. Partiendo de un cuantificador prototipo se desplazan los puntos de reconstruction, con el efecto de la obtencion de un cuantificador distinto; esta tecnica se llama modulation Dither. Por otra parte, se muestra como es posible aumentar la robustez bajando la tasa de transmision. Uno de los procesos expuestos consiste en proyectar los valores del huesped antes de insertar la marca, de este modo el ruido que sea ortogonal al vector sobre el que se proyecta no influira en la comunicacion. En este documento se presenta la tecnica llamada compensation de distorsion 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 solution valida entre la robustez de la marca de agua y la imperceptibilidad.
Otro enfoque de la proyeccion en el marcado de agua digital se puede encontrar en el articulo de Fernando Perez-Gonzalez, Felix Balado, y Juan R. Hernandez: "Performance analysis of existing and new methods for data hiding with known-host information in additive channels", publicado en IEEE Transactions an Signal Processing, 51(4):960-980, Abri! 2003. Special lssue on SignaI Processing for Data Hiding in Digital Media & Secure Content Delivery. En este documento los autores dan una vision mas amplia de la proyeccion de los valores del huesped, pues llegan a una solucion de compromiso entre las tecnicas de insertion con informacion lateral en el codificador y las tecnicas de espectro ensanchado.
5
10
15
20
25
30
35
Otra implementacion practica de las tecnicas basadas en cuantificadores esta en el documento de Joachim J. Eggers, Robert Baum!, 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 tecnica cercana a la modulacion Dither, pero centrada exclusivamente sobre cuantificadores escalares.
Los artlculos presentados anteriormente tienen como denominador comun el enfoque teorico de los esquemas de marcado de agua que proponen. Un ejemplo de ello es modelar el canal ruidoso de comunicacion como un canal con ruido blanco gausiano aditivo, mientras que en muchas ocasiones el canal esta caracterizado por un ruido de cuantificacion; como es el caso de la codificacion de imagenes fijas en JPEG o videos en MPEG-1.
Hay varias patentes centradas en el campo del marcado de agua para la autenticacion de imagenes. La patente US2004131184 tiene como fin demostrar la validez de videos para ser usados como pruebas irrefutables ante la justicia. Utiliza tecnicas de marcado de agua Dither-QIM, introduciendo dos tipos de informacion: uno es de identidad y el otro de control. La informacion de identidad se usa para identificar la secuencia del video, y la de control se utiliza para determinar si la imagen fue manipulada. Otra caracteristica basica en esta patente es que menciona unicamente el estandar MPEG. Ese estandar divide los coeficientes de cada bloque por una matriz de cuantificacion, por lo tanto hay grandes distorsiones en la informacion insertada en el momento de la compresion del grupo de imagenes, como consecuencia para introducir la informacion necesita alterar una gran cantidad de coeficientes por cada bloque. Al marcar un numero de coeficientes elevado la diferencia entre la imagen original y la imagen con la marca es, normalmente, bastante perceptible. Esta ideada para implementarse en un computador portatil que acompane a los sistemas de grabacion de los coches patrulla.
La patente EP1001604 muestra un metodo para introducir informacion en imagenes. Opera con imagenes fijas codificadas con el estandar JPEG o JPEG2000, y utiliza para insertar la informacion una adaptacion de SCS (Scalar Costa Scheme de Eggers et al.). Fija los valores del tamano de los escalones de cuantificacion usados para introducir la informacion reduciendo, por tanto, la versatilidad del metodo original. Ademas, no contempla ninguna tecnica que permita introducir la informacion con un grado mayor de robustez, como pueden ser las tecnicas de proyeccion.
Una patente usada para autenticar flujos de imagenes es US2003172275, con el objetivo de garantizar los derechos de autor. En ella se clasifican las imagenes que forman en el flujo sincronas y asincronas. En las imagenes sincronas se introduce una marca en los bloques seleccionados pseudoaleatoriamente. En la introduccion de la informacion utiliza tecnicas de insercion con informacion lateral en el codificador. Debido a que la marca no se introduce toda la imagen, no es posible localizar las alteraciones.
Una idea para unir las tecnicas de marcado de agua y las camaras de red, los servidores de camaras de red o los servidores video digitales se muestra en la patente US2004071311. En ella se indica un solucion posible para integrar las camaras y el proceso de insercion de la marca de agua desde un punto de vista fisico. En la actualidad hay numerosos fabricantes de camaras de red, por lo que es mas factible disenar un metodo que se adapte perfectamente a las camaras ya existentes que tratar de disenarlas desde el principio. EI proceso de introduccion de la marca esta caracterizado por insertar una robusta para poder
5
10
15
20
25
30
35
demostrar la autenticidad y otra fragil para localizar las alteraciones. No obstante, en la patente no se describe un metodo lo suficientemente completo para poder abordar los problemas propios de la compresion en JPEG o en cualquiera de los estandares MPEG.
De lo expuesto anteriormente se deduce la necesidad encontrar una solucion practica para el problema de la deteccion y localization de manipulaciones espaciales y/o temporales en imagenes fijas o flujos de imagenes generados por sistemas de video supervision digitales. Donde dicha solucion debe proporcionar un alto grado de fiabilidad y seguridad, de tal manera que lo que muestren las imagenes sea irrefutable. Otro requisito necesario, que no ha sido solventado aun, es la perfecta adaptation de los metodos de autenticacion a las particularidades de los sistemas de video supervision digitales existentes, tales como la resistencia a la transcodificacion de JPEG a MPEG o la adaptabilidad a las limitaciones computacionales de los dispositivos que integran esos sistemas, por ejemplo: las camaras de seguridad digitales.
Resumen de la invention
Partiendo de este estado de tecnica la invencion tiene por objeto proporcionar un metodo de marcado de un documento digital, en particular de una imagen digital, con un marcado de agua digital para la deteccion y localizacion de manipulaciones espaciales y/o temporales de imagenes que posee un alto grado de fiabilidad.
La invencion se refiere en un lado a un metodo de insertion y en otro lado a un metodo de extraction.
En el metodo de insercion se introducen en la imagen al menos dos mensajes y la information 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 unico del origen de la imagen. De esta manera, el metodo de extraccion de la informacion de la imagen puede determinar el dispositivo que origino la imagen, el momento en el que fue tomada y comprobar la integridad con la informacion de integridad extralda. Los datos obtenidos de origen y de referencia temporal pueden ser cotejados para verificar su validez.
Los dispositivos de los sistemas de video supervision digitales capaces de tomar imagenes o generarlas utilizan, usualmente, el estandar de imagen fija JPEG o algun estandar de video de la familia MPEG. EI sistema expuesto en la invencion esta disenado para imagenes y videos codificados con dichos estandares; siendo robusto a la transcodificacion entre ellos.
La minimization de la distorsion introducida al insertar la marca de agua digital en una imagen es una restriction intrlnseca de la invencion, puesto que se requiere validar el contenido y no modificarlo. Esto se alcanza adaptando los sistemas al ruido introducido en el canal de comunicacion propio de la codification de imagenes en los estandares anteriormente mencionados. Acorde con esto, la informacion se introduce en el dominio transformado DCT de los bloques de la imagen, concretamente en unos predeterminados coeficientes. La meta es reducir la alteration de los coeficientes predeterminados y el numero de coeficientes necesarios para introducir la marca con una determinada fiabilidad. En este sentido, los sistemas de la invencion tienen una clara ventaja, ya que en ellos la generation y insercion de la marca tienen en cuenta el ruido de cuantificacion que va sufrir la informacion que se introduce.
5
10
15
20
25
30
35
Desde un punto de vista funcional, la primera parte del metodo e insercion de informacion de la invencion es la seleccion de los bloques de la imagen y los coeficientes de cada bloque que van albergar cada bit de cada mensaje y la informacion de integridad. Una manera de resolverlo eficientemente y ademas garantizando que la comunicacion sea oculta es seleccionar los bloques de la imagen con una clave secreta. La resolucion de la deteccion y localizacion de las manipulaciones esta fuertemente relacionada con los bloques en los que se introduzca la informacion de integridad; si se inserta esta informacion en toda la imagen se podra detectar y localizar las alteraciones en toda ella.
La segunda parte consiste en proyectar los valores de los coeficientes seleccionados para los mensajes y para la informacion de integridad sobre unos vectores de proyeccion, donde el tamano de los vectores proyectados, que son los vectores resultantes del proceso de proyeccion, es un parametro variable del metodo. Para aumentar mas la privacidad se pueden generar los vectores de proyeccion de los mensajes con una clave secreta. Para originar el vector de proyeccion sobre el que se proyectan los coeficientes que contendran la informacion de integridad se utiliza una funcion cuyo parametro es alguno de los mensajes y la clave secreta. Uno de esos mensajes es la referencia o sello temporal, con lo que la informacion de integridad de una imagen sera dependiente del momento en que se obtiene Al existir esta dependencia temporal, no se podran usar imagenes marcadas de instantes anteriores para falsificar una secuencia de video, pues el sello temporal no se corresponded al perlodo de tiempo y se detectara ese intento de falsification. EI tamano de los vectores proyectados seleccionado permite llegar a un equilibrio entre la robustez de la marca y la tasa de transmision. Ademas, los valores que forman cada uno de los vectores de proyeccion, sobre los que proyectan los coeficientes que albergaran cada bit de los mensajes o cada parte de la informacion de integridad, pueden ser ponderados en funcion de los valores de la tabla de cuantificacion usada para codificar los coeficientes en el estandar JPEG o algunos de los estandares MPEG, o de cualquier otra tabla obtenida a partir de consideraciones perceptuales.
La tercera parte en la insercion es la cuantificacion de los valores de los vectores proyectados con un cuantificador seleccionado de un conjunto segun sea el valor del bit del mensaje o la parte de la informacion 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 informacion de integridad la clave secreta y el valor de los mensajes de los que se precise que sea dependiente.
La ultima parte del metodo de insercion consiste en actualizar cada coeficiente de los bloques de la imagen seleccionados, para portar los mensajes y la informacion de integridad, con el resultado de la cuantificacion 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 proyeccion no tenga influencia en la comunicacion, con el consiguiente aumento de la robustez.
EI metodo de extraction propuesto por la invencion permite extraer los mensajes y determinar si la imagen fue manipulada espacial y/o temporalmente. EI metodo de insercion y extraccion coinciden en el modo en que seleccionan los bloques de la imagen y la proyeccion de los coeficientes, con la clave secreta. Por tanto, sin conocer la clave secreta no se pueden obtener los mensajes reconstruidos.
5
10
15
20
25
30
35
Una vez se hayan obtenido los vectores con los valores proyectados de los mensajes y de la information de integridad, se procede a la extraction de la informacion. Ello se logra sometiendo esos vectores a una cuantificacion sincronizada a partir de la clave. Analizando las distancias a cada centroide del resultado de la cuantificacion se obtienen los mensajes reconstruidos y se decide para cada bloque con la informacion de integridad la autenticidad del mismo.
Para poder decidir acerca de la integridad de la imagen es necesario, para sincronizar la extraccion, usar la clave secreta y el mensaje del que depende como elemento de sincronizacion de la extraccion. Normalmente dicho mensaje es la referencia temporal. Si no se corresponde la referencia temporal con la informacion de integridad se senalaran los bloques de la imagen como falsos. Si la referencia temporal y la marca se corresponden, se comprobara que el valor de la referencia temporal este dentro de los umbrales permitidos; en caso contrario el metodo indicara que hubo una ruptura de secuencialidad de un grupo de imagenes.
En cuanto al nivel de robustez, la introduction de los mensajes tiene asociada un nivel de robustez mayor que para la informacion de integridad. Esta caracterlstica se deriva de la necesidad de la perfecta decodificacion 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 una decision correcta sobre la autenticidad de los bloques de la imagen. Por otra parte, la informacion de integridad debe ser muy sensible a toda alteration distinta a la distorsion propia de la codification JPEG o MPEG; de ahl que tenga una robustez baja.
Otro objeto de la invention es la alta fiabilidad del sistema expuesto. Esto se consigue logrando que la generation de la informacion de integridad para una imagen concreta en un instante concreto y un dispositivo concreto, sin conocer la clave secreta, sea un problema computacionalmente inabordable. Ademas, determinar la clave secreta usada para insertar la informacion analizando las imagenes fijas o videos marcados resulta tambien computacionalmente diflcil, lo que proporciona un alto grado de seguridad.
La invencion facilita la implementation del metodo de insertion en el interior de las camaras de red que componen un sistema de video supervision digital, donde esas camaras de red tienen unas restricciones muy elevadas en cuanto a los recursos computacionales disponibles. Para poder acometerlo, el sistema propuesto esta disenado para minimizar el numero de calculos y accesos a memoria. Par ejemplo, marcar en el dominio transformado descarga a la CPU de numerosos ciclos de instruction del calculo de la transformada. Otro ejemplo es el uso del menor numero de coeficientes para insertar la informacion minimizando el numero de valores para realizar el calculo, as! como una mejora perceptual.
La invencion favorece la maxima versatilidad posible, pudiendo configurar el sistema de forma que se pueda llegar a una solution de compromiso entre velocidad, distorsion, volumen de datos introducidos y/o tasa de error. Uno de los posibles parametros configurables es el numero de coeficientes asociados a cada bit de informacion de los mensajes o cada parte de la informacion de integridad. La relation entre la longitud entre el vector originario y el vector proyectado es otra de las posibilidades. EI factor de control de la distorsion es el valor que mas nltidamente permite balancear el metodo entre la distorsion y la probabilidad de detectar un error, dos caracterlsticas contrapuestas en la aplicacion. Otra posibilidad es
5
10
15
20
25
30
35
usar codificadores de canal en los mensajes; de esta forma se aumenta su robustez bajando la tasa de error.
Otras ventajas y caracterlsticas del metodo seran aparentes en las figuras presentadas en conjuncion con la descripcion que viene a continuacion.
Breve Descripcion de los dibujos
Para complementar la descripcion que se esta realizando y con objeto de ayudar a una mejor comprension de las caracterlsticas del invento, de acuerdo con un ejemplo preferente de realizacion practica del mismo, se acompana un conjunto de dibujos en donde con caracter ilustrativo y no limitativo, se ha representado lo siguiente:
La FIG. 1 muestra esquematicamente a estructura general del sistema que comprende la invencion.
La FIG. 2 muestra en un esquema los modulos en los que esta dividido el metodo de insercion.
La FIG. 3 muestra en un esquema los modulos en los que esta dividido el metodo de extraccion.
La FIG. 4 representa un diagrama de flujo del proceso metodo de introduccion de un mensaje con la direccion IP en una imagen.
La FIG. 5 representa un diagrama de flujo del metodo de introduccion de un mensaje con una referencia temporal en una imagen.
La FIG. 6 representa un diagrama de flujo del metodo de introduccion de la informacion de integridad en una imagen.
La FIG. 7 representa un diagrama de flujo del metodo de extraccion de un mensaje con una direccion IP de una imagen.
La FIG. 8 representa un diagrama de flujo del metodo de extraccion de un mensaje con una referencia temporal de una imagen.
La FIG. 9 representa un diagrama de flujo del metodo de comprobacion de integridad de una imagen.
La FIG. 10 muestra la division de una imagen en bloques y en macrobloques, ademas representa la ordenacion de los coeficientes segun el orden en zigzag.
La FIG. 11 representa la seleccion y ordenacion de los coeficientes de los bloques que forman un macrobloque de integridad.
La FIG. 12 representa un diagrama del metodo de insercion de marcado de agua digital con informacion lateral en el codificador.
La FIG. 13 representa esquematicamente un diagrama interno de una camara digital de red implementando el metodo de insercion propuesto en la presente invencion.
La FIG. 14 representa esquematicamente un sistema computacional que ejecuta los metodos con detection de manipulation propuestos en la presente invencion, reflejando la interconexion entre los dispositivos de un sistema digital de video supervision.
5
10
15
20
25
30
35
Realizacion preferente de la invencion
La FIG. 1 muestra esquematicamente los elementos individuales que comprenden la realizacion preferente seleccionada para la presente invencion. En estos elementos es donde se somete a una secuencia de imagenes, obtenida por un sistema de video supervision digital, a unas tecnicas de marcado de agua digital que permiten detectar y localizar las alteraciones espaciales y/o temporales que sufrieron. Despues de que una camara digital de red obtiene una imagen digital, esta se procesa en un codificador 100 donde esta implementado el metodo de insercion de marcado de agua digital propuesto en la presente invencion. La imagen marcada puede ser guardada formando parte de un video con alguno de los estandares MPEG o como una imagen individual codificada acorde al estandar JPEG, en ambos casos se almacena en una unidad de almacenamiento 300. Si se opta por almacenar una secuencia de imagenes individuales marcadas formando un video MPEG, se codifican en un codificador MPEG 400.
La comprobacion de la integridad de las imagenes marcadas comienza por recuperar, de la unidad de almacenamiento 300, las imagenes archivadas individualmente o en forma de video MPEG. Si el flujo de imagenes esta codificado con alguno de los estandares de MPEG la informacion de las imagenes se extrae en un decodificador MPEG 500. En un decodificador 200, que implementa el metodo de marcado de agua digital con deteccion de manipulacion propuesto en la invencion, es donde se procesa con el fin de detectar y localizar las alteraciones de la informacion obtenida del decodificador MPEG 500 o de las imagenes individuales almacenadas en la unidad de almacenamiento 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. Ademas, se puede configurar para que genere una imagen resultado senalando las modificaciones halladas.
Estandares de imagen fija y de video
En los sistemas de insercion y extraccion de marcas de agua los estandares de codificacion contemplados son el JPEG para la imagen fija y los estandares de la familia MPEG para el video.
Una de las razones para emplear en la codificacion de imagenes fijas de esta realizacion practica el estandar JPEG es la buena relacion entre la reduccion de tamano lograda y la distorsion introducida. Otra de las razones es su uso mayoritario en los sistemas de video supervision digitales actuales, permitiendo que la presente invencion se adapte perfectamente a ellos.
Entre las imagenes fijas que componen una secuencia la redundancia existente es elevada. Este factor se puede explotar para alcanzar una notable reduccion de tamano, logrando que su almacenamiento sea mas eficiente. En los sistemas propuestos en la presente invencion, para la codificacion de una secuencia de imagenes se utiliza un miembro de la familia de estandares MPEG. Ello se debe a los numerosos puntos coincidentes entre los estandares MPEG y el estandar JPEG, permitiendo que los metodos propuestos se adapten facilmente a ambos.
EI estandar 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^8 muestras. JPEG utiliza un cambio de coordenadas con el objetivo de que se concentre la mayor parte de la energia en un menor numero de dimensiones que la representacion original (RGB), hecho que se explota para reducir el tamano de la imagen. Concretamente, JPEG utiliza la transformada discreta del
5
10
15
20
25
30
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 cuantificacion de los 64 coeficientes ue lo forman, dividiendolos por unos elementos que constituyen una matriz de cuantificacion JPEG de dimensiones 8^8, obteniendo como
resultado unos coeficientes cuantificados cquant,j , como se muestra
Cquant, j = TOund( /),
donde en la expresion anterior round() denota una funcion que devuelve el valor entero mas cercano. A
C D
los coeficientes cuantificados want,] de los bloques ‘ se les aplica una codificacion entropica sin
perdidas para generar el archivo JPEG con la imagen, donde la codificacion esta especialmente disenada
C
para almacenar eficientemente aquellos quant,j cuyo valor sea cero.
Para recuperar los bloques transformados reconstruidos , que forman la imagen, hay que realizar el
C
proceso inverso a la cuantificacion. Se debe multiplicar cada coeficiente cuantificado quant>j
* c
perteneciente a cada B. por su respectivo elemento , es decir,
c = c f . • q
quant, j 1 j .
De la forma en que se codifica y decodifica una imagen en el estandar JPEG se deduce que cuanto mayores sean los valores de la matriz de cuantificacion JPEG la distorsion introducida sera mayor, aunque la compresion tambien sera mayor. La energla de la imagen se concentra en las frecuencias mas bajas de los bloques transformados de la imagen y, por otra parte, el sistema visual humano es mas sensible a esas frecuencias; por lo tanto, en la generacion de se deben tener en cuenta estas caracterlsticas para lograr una buena codificacion JPEG asignando los tamanos de los escalones de cuantificacion menores a las frecuencias mas bajas. Muchas veces, el resultado de aplicar atendiendo a esas consideraciones es que numerosos de las frecuencias mas altas son cero y, como se menciono anteriormente, se logra una considerable reduction del tamano.
La FIG. 10 muestra la division de las imagenes 1003 en el estandar JPEG formando bloques de 8,8 pixels 1001. Ademas, se puede observar la ordenacion en zigzag de los coeficientes que forman los bloques, representada por una flecha que empieza en el coeficiente en la position (1,1) (coeficiente de continua) y acaba en el coeficiente (8,8).
En la presente description de la realization preferente se contempla que las imagenes JPEG que forman un flujo de imagenes obtenidas por un sistema de video supervision se compriman con el estandar MPEG-1. Un secuencia de video MPEG-1 comprende varios tipos de imagenes, siendo los tipos 1, B y P. Atendiendo a esta caracterlstica, las imagenes que contendran la marca son las codificadas tipo 1 y P, dejando las codificadas como tipo B sin marca para que puedan soportar una mayor compresion.
5
10
15
20
25
30
35
Cuando se codifica una secuencia de imageries fijas individuales como un flujo MPEG-1 se usa un patron de codificacion. A modo ilustrativo consideraremos el patron IBBBBPBBBB. Ese patron indica que la primera imagen se codifica como una imagen tipo 1, las cuatro siguientes tipo B, despues como tipo P y las cuatro ultimas tipo B. Los metodos de marcado de agua propuestos no utilizan las imagenes marcadas codificadas como B. Si se quiere aumentar el grado de compresion de un video de imagenes marcadas se debe aumentar la proporcion de imagenes codificadas como tipo B. Corno consecuencia, el numero de imagenes 1 y P del flujo disminuye y, con ello, la capacidad de deteccion de alteraciones. Usando el patron antes senalado, si una camara digital de red genera imagenes marcadas con una tasa de 10 por segundo y se codifican en el codificador MPEG 400, solo se podra detectar alteraciones con una resolucion de 0.2 s. Acorde con esto, es necesario en el momento en el que el usuario del sistema configure la codificacion MPEG-1, se llegue a un compromiso entre el grado compresion y la resolucion temporal de las alteraciones. lnformacion ligada a las imagenes.
En la presente realizacion preferente de la invencion la marca insertada esta compuesta por un mensaje de metadatos, un mensaje con una referencia temporal y la informacion de integridad.
En el mensaje de metadatos se podra insertar y extraer de la imagen la informacion arbitraria que se desee. A modo de ejemplo ilustrativo y no limitativo se utiliza un identificador unico del elemento generador de imagenes de video supervision. Debido al contexto habitual en el que se encuentra un sistema de video supervision digital se selecciona en la presente realizacion practica la direccion IP. Notese que existen numerosas alternativas como identificador unico, tales como: numero de serie, MAC (del ingles Media Access Control), etc.
La informacion 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 informacion de integridad se agrupan en macrobloques. Las dimensiones de los macrobloques para la insertion de la informacion de integridad son configurables y, ademas, determinan la granularidad de la deteccion de las alteraciones espaciales. Cuanto mayor sea el macrobloque mas diflcil es senalar los puntos concretos de la imagen que fueron modificados, aunque esta option tiene la ventaja de la posibilidad de utilizar un mayor numero de coeficientes para determinar su autenticidad. Por ejemplo, un macrobloque de la informacion de integridad puede estar formado por 2 2 bloques. En la FIG. 10 se representa un macrobloque 1002 usado en la deteccion de alteraciones espaciales.
Modulos del codificador
En la FIG. 2 se muestra el esquema interno del codificador 100, que consta de un modulo de insercion de la direccion IP (metadatos) 110, un modulo de insercion de la referencia temporal 130, un modulo de insercion de la informacion de integridad 150 y un registro con el valor de la referencia temporal 170.
Cuando una imagen codificada con el estandar JPEG se introduce en el codificador 100, se procesa en el modulo de insercion de direccion IP 11O para introducir en cada imagen la direccion IP del dispositivo del sistema de video supervision digital que la obtuvo. Despues, la imagen se pasa al modulo de insercion de
5
10
15
20
25
30
35
la referenda temporal 130 para introducir en la imagen la referenda temporal (almacenada en el registro 170); con esa informacion se podra saber el instante en el que se obtuvo la imagen y, ademas, determinar si se altero el orden en una secuencia de imagenes (alteraciones temporales). Cada imagen en la salida del modulo 130 se pasa al modulo de insercion de la informacion de integridad 150; en ese modulo se introduce la informacion de integridad con la cual se pueden detectar las alteraciones espaciales. En la insercion de la informacion de integridad se utiliza la referencia temporal del registro 170 para que no se pueda falsificar una imagen usando otra, pues la informacion de integridad no es valida en otro momento distinto a aquel en que se genero. Los modulos 110, 130 y 150 utilizan una clave secreta K, de tal forma que introducir esos dos mensajes o la informacion de integridad sin dicha clave sea un problema computacionalmente muy complicado.
Modulos del decodificador
La FIG. 3 muestra el esquema interne de decodificador 200, formado por un modulo de extraccion de la direccion IP 210, un modulo de extraccion de la referencia temporal 230 y un modulo de extraccion de la informacion de integridad 250.
EI modulo de extraccion de la direccion IP 210 recupera la direccion de IP insertada en la imagen. EI modulo de extraccion de la referencia temporal 230 recupera la referencia temporal que esta ligada a la imagen. EI modulo de extraccion de la informacion de integridad 250 recupera la informacion de integridad y determina si una imagen fue manipulada espacialmente, es decir, si se modifico algun cuadro de la imagen original. Si la imagen fue manipulada, el modulo de extraccion de la informacion de integridad 250 puede generar una imagen indicando graficamente la posicion de las alteraciones detectadas. Los modulos de extraccion 210, 230 y 250 utilizan la misma clave secreta K para extraer la informacion que la usada para introducir la informacion.
Ordenacion interna del codificador y el decodificador
Aunque los esquemas internos del codificador 100 y del decodificador 200 de la FIG. 2 y FIG.3 muestran una conexion en cascada entre los modulos, esta caracterlstica no es restrictiva. Es posible disponer los modulos paralelamente o incluso agruparlos en un solo modulo.
Codificador
Las FIG. 4, FIG. 5 y FIG. 6 representan el diagrama de flujo de los sistemas de los modulos de insercion que forman el codificador 100, que se pueden apreciar en la FIG. 2.
Los diagramas de flujo son configurables mediante la asignacion de valores a unos determinados parametros del sistema. Uno de los parametros del sistema es el numero de coeficientes de la imagen por bit de informacion utilizados en el caso de los mensajes o el numero de coeficientes de cada macrobloque para la introduccion de la informacion de integridad. En los diagramas son representados por N°COEF_IP, N°COEF_REF o N°COEF_INT (”N°“ = number), para el caso del mensaje con direccion IP, el mensaje con la referencia temporal y la informacion de integridad respectivamente. Otro parametro de los diagramas de introduccion de los mensajes es el numero de bits de informacion de cada mensaje, que en los diagramas son representados por N°BITS_IP y N°BITS_REF, en el caso de la direccion IP y la referencia temporal respectivamente. Otro posible modo de configurar el sistema es mediante la seleccion de los coeficientes de bloque que seran utilizados para insertar el mensaje con la direccion IP (metadatos), el mensaje con la
5
10
15
20
25
30
35
40
referenda temporal y la informacion de integridad. EI tamano de los vectores de proyeccion sobre los que se proyectan los valores de los coeficientes, de los que se obtienen los valores proyectados en los que se insertan la informacion, es otro valor configurable, representandolo por LONG_IP, LONG_REF y LONG_INT para la direccion IP, la referencia temporal y la informacion de integridad respectivamente.
La FIG. 4 muestra el diagrama de flujo del sistema de insercion de la direccion IP (metadatos) 110, en el cual se procesara cada imagen obtenida por un sistema de video supervision. Si es la primera vez que se ejecuta el metodo (paso 111) en un flujo de imagenes, en el paso 112 se seleccionan pseudoaleatoriamente (en funcion de la clave secreta K) los bloques transformados de 8 8 coeficientes en que esta dividida la imagen, para utilizarlos en la insercion de la direccion IP. En el paso 113 se inicializa la variable BIT, usada para determinar el numero de bits del mensaje de la direccion 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 insercion de la direccion IP en la imagen habra concluido. En caso contrario, se sigue en el paso 116 en el que se inicializa el contador de coeficientes per 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 tenia asignados, en caso afirmativo se avanzara al paso 115 que sumara uno al valor del contador BIT y volvera al paso 114 descrito anteriormente. Si aun no se han alterado los coeficientes de la imagen asociados a ese bit de la direccion IP se pasa al paso 118, donde se genera un vector de proyeccion pseudoaleatorio (en funcion de la clave secreta K) de longitud LONG_IP. Despues de obtener el vector de proyeccion se continua en el paso 119, donde se computa el producto escalar entre el vector proyeccion y el vector formado por los coeficientes seleccionados (en el paso 112) cuyos Indices estan entre (N°BITS_IPxBIT)+COEF y (N°BITS_IPxBIT) +COEF+ LONG_I P-1, guardando el resultado de la proyeccion en RES_PROY. En el paso 120 se suma LONG_IP al valor COEF, que se empleara para determinar los coeficientes usados en el calculo de la siguiente proyeccion. En el paso 124 se inserta el valor del bit BIT de la direccion IP en RES_PROY y en el paso 125 se actualizan los coeficientes con los que se calculo la proyeccion actual con el resultado obtenido en el paso anterior (124).
La FIG.5 muestra el diagrama de flujo del modulo de insercion de la referencia temporal 130. lgual que en la FIG. 4, en el inicio se introduce una imagen digital obtenida del sistema de video supervision. En el paso 131 se determina si es la primera vez que se ejecuta el metodo para ese determinado flujo de datos. Si es asi, se avanza al paso 132 que seleccionara pseudo-aleatoriamente (en funcion 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 codificacion 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 numero 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 numero de bits totales signados para la insercion del mensaje codificado con la referencia temporal N°BITS_REF. En caso de que no se cumpla esta condicion, el trabajo del modulo de insercion de la referencia temporal 130 habra acabado. Si aun restan bits de la referencia temporal por introducir se continua en el paso 136, que inicializa el valor COEF a cero. La variable COEF se usa para controlar el numero de coeficientes que se han introducido del bit BIT del mensaje codificado de la referencia
5
10
15
20
25
30
35
temporal. En el paso 138 se comprueba si se han computado los 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 continua en el paso 137 que actualiza el valor de BIT sumandole uno, indicando que a continuacion se procedera a la insertion del bit siguiente del mensaje codificado de la referencia temporal. Si aun 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 proyeccion de longitud LONG_REF, obtenido pseudoaleatoriamente con la clave secreta. Este vector de proyeccion sera 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 proyeccion (obtenido en el paso 139) y un vector formado por los coeficientes seleccionados en el paso 132 cuyos Indices se encuentran entre (N°BITS_REFx BIT)+COEF y (N°BITS_REFxBIT)+COEF+LONG_REF-1, almacenando el resultado de la proyeccion en RES_PROY. En el paso 144 se suma al valor de COEF el valor de LONG_REF. Despues, 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 Indice es BIT. En el paso 146 se actualizan los coeficientes que se usaron para computar la proyeccion actual con el valor de RES_PROY, resultado del paso 145.
La FIG. 6 muestra el diagrama de flujo correspondiente al modulo de insercion de la information de integridad 150. A este sistema se le pasa como parametro el valor de la referencia temporal que es introducida en la imagen por el modulo de insercion 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 introduction de la informacion de integridad en la imagen sea dependiente del instante en que se tomo la imagen que se esta procesando, ademas se utiliza en la sincronizacion la clave secreta K para garantizar que solo los usuarios autorizados puedan introducir la informacion de integridad valida. Si no se conoce la referencia temporal, el proceso de introducir la informacion 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 Indice i, cuya funcion es la de contar la fila de macrobloque en la que se encuentra el metodo de insercion durante su ejecucion. En esta figura, el ancho en bloques (8 8) 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 informacion de integridad en toda la imagen, si ha sido asi se termina el proceso de insercion de la informacion de integridad. Si aun no se ha computado la totalidad de la imagen se avanza al paso 154 en el que se inicializa a cero el valor del Indice de las columnas de macro- bloques 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 Indice i para procesar la siguiente fila de macrobloques o acabar, decidiendose esto en el paso 153. Si el resultado de la decision tomada en el paso 156 es que quedan macrobloques de la fila i por procesar se continua 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. EI orden de disposition de los coeficientes de cada bloque en dicho vector VEC_INT es de izquierda-derecha y de arriba-abajo respecto a la position de los bloques en el macrobloque actual, como se representa en la
5
10
15
20
25
30
35
FIG. 11. EI orden de disposicion de los coeficientes pertenecientes a cada bloque en el vector VEC_INT sigue el orden de los coeficientes segun la ordenacion zigzag de esos propios coeficientes en el bloque. En el paso siguiente, el 159, se inicializa el valor COEF a cero. Despues, en el paso 160 se verifica si ya se ha insertado la informacion de integridad en el macrobloque actual (i,j), en caso afirmativo se suma una unidad a j en el paso 158 y se continua en el paso 156. Si se decide (paso 160) que aun quedan bloques sin marcar (COEF<N°COEF_INT) se continua con el paso 161. En el paso 161 se genera pseudo- aleatoriamente a partir de la referencia temporal y de la clave secreta un vector de proyeccion de longitud LONG_INT, donde la generacion de este vector es resultado de la sincronizacion llevada a cabo en el paso 151 de la FIG. 6. En el paso 162 se computa la proyeccion, para ello se calcula el producto escalar entre el vector de proyeccion (obtenido en el paso 161) y un vector formado por los coeficientes de VEC_INT con Indices comprendidos entre COEF y COEF+LONG_INT-1, donde el resultado de esta proyeccion se guarda en RES_PROY. En el paso 163 se suma el valor LONG_INT al valor de COEF. Luego, se continua en el paso 168. En el se inserta el valor de esa parte de la informacion de integridad en el valor RES_PROY, que es el resultado de la proyeccion de los coeficientes de la imagen sobre el vector de proyeccion. En el paso 169 se actualizan los coeficientes utilizados para calcular la proyeccion actual con el valor el valor RES_PROY marcado, resultado del paso 168.
Decodificador
En la FIG. 7, FIG. 8 y FIG. 9 se representan los diagramas de flujo de los procesos que se realizan en los modulos de extraccion que forman el decodificador 200 y que se pueden apreciar en la FIG. 3. Los valores de los parametros 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.
La FIG. 7 muestra el diagrama de flujo del proceso de extraccion de la direccion IP correspondiente al modulo de extraccion de la direccion IP (metadatos) 210. Al inicio se encuentra una imagen digital de la cual el modulo 210 va extraer la direccion 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 continua 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 direccion IP. EI paso siguiente es el 213, en el que se inicializa el valor BIT a cero. Ese valor permite controlar el numero de bits de la direccion que son extraldos. Es en el paso 214 donde se verifica si el total de bits del mensaje con la direccion IP fueron recuperados; si es asl, se finaliza la extraccion de la direccion IP de la imagen actual que se procesa en este modulo. Si aun no se ha acabado con el total de los bits que forman la direccion IP N°BITS_IP se continua en el paso 21o, donde se inicializa a cero el valor COEF. EI valor COEF es un contador del numero de coeficientes que han sido usados para recuperar el valor del bit BIT de la direccion IP. La decision sobre si ya han sido utilizados el total de coeficientes N°COEF_IP necesarios para extraer el valor de un bit de la direccion IP se toma en el paso 218. Si ya se ha acabado se sigue con el pya se ha acabado se sigue von el paso 217, en el cual se decide el valor del bit BIT de la direccion IP usando un vector VEC_DIS de longitud N°COEF_IP/LONG_IP formado por los valores
5
10
15
20
25
30
35
40
almacenados en el paso 226. En el paso 215 se actualiza el valor de la variable BIT para proseguir o terminar con la extraction de la direction IP, que se decide en el paso 214. Se llega al paso 219 si la decision tomada en 218 es que aun restan grupos de coeficientes por procesar para poder calcular el valor del bit BIT de la direccion IP. En el paso 219 se genera un vector de proyeccion 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 proyeccion mediante el producto escalar entre el vector proyeccion y un vector formado por los coeficientes (seleccionados en el paso 212) cuyos Indices se encuentran entre (N°BITS_IPxBIT)+COEF y (N°BITS_IPxBIT) +COEF+ LONG_I P-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 position COEF/LONG_IP del vector VEC_DIS el resultado del calculo de la distancia entre RES_PROY y un vector de referencia. Este ultimo calculo sera explicado posteriormente en esta descripcion de la realizacion preferente de forma pormenorizada.
La FIG. 8 muestra el diagrama de flujo del proceso de extraccion de la referencia temporal 230. lgual 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. EI primer paso (231) del diagrama determina si es la primera ocasion en que se extrae de la imagen del presente flujo de imagenes, si es asl, 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. EI paso 233 inicializa el valor BIT a cero; con ese valor se puede saber cuando ha finalizado el proceso de extraccion de la referencia temporal en la imagen. En el paso 234 se decide si ya se han extraldo todos los bits del mensaje de la referencia temporal en la imagen, continuando en el paso 235, o si aun quedan, prosiguiendo en el paso 237. EI paso 235 esta 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. Despues de la decodificacion de canal 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 numero de los coeficientes usados en un determinado instante para extraer la metrica 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 metrica 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 aun no se hayan procesado todos los coeficientes necesarios para extraer la information insertada en la imagen relativa a un bit se continua en el paso 239. En el paso 239 se genera un vector de proyeccion de longitud LONG_REF sobre el que se proyectaran los valores de coeficientes. En el paso 240 se calcula el producto escalar entre el vector proyeccion y un vector formado por los coeficientes seleccionados para insertar la referencia temporal (seleccionados en el paso 232) cuyos indices se encuentran entre (N°BITS_REFxBIT) +COEF y (N°BITS_REFx BIT)+COEF +LONG_REF -1, el valor obtenido se almacena en RES PROY. En el paso 244 se actualiza el valor de COEF sumandole 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 posicion COEF/LONG_REF+B1Tx(N0COEF _REF/LONG_REF), donde VEC_DIS sera usado en el paso 235 para determinar el mensaje de la referencia temporal, como se indico
5
10
15
20
25
30
35
anteriormente. La manera para calcular la distancia de RES_PROY sera abordado posteriormente en la descripcion.
La FIG. 9 muestra el diagrama de flujo correspondiente al proceso de extraccion de la information de integridad 250. Este metodo tiene como parametro la referencia temporal extralda en el modulo 230 y la clave secreta K; sin el valor correcto de la referencia temporal no se podrla recuperar la informacion de integridad y se senalarla la imagen como falsa al no corresponderse la referencia temporal que tiene ligada con la informacion de integridad. EI diagrama de flujo tiene como entrada una imagen de la que se va a extraer la informacion de integridad y comprobar su autenticidad espacialmente. En el paso 251 el metodo se sincroniza con la referencia temporal y la clave es la referencia temporal y la clave secreta K, que permitira generar correctamente los valores pseudoaleatorios necesarios para el presente proceso de extraccion. En el paso 252 se inicializa al valor cero el Indice i que sera usado por el metodo para saber en que fila de macrobloques se encuentra. En el paso 253 se determina si la extraccion de la informacion de integridad ha llegado a su fin, sabiendolo al comprobar si ya se han computado todas las filas de macrobloques. Si aun no se han computado todas las filas se continua con el paso 254, en el cual se inicializa el valor j que permite controlar el numero de columnas de macrobloques de una fila de macrobloques i que han sido computadas. En el paso 254 se decide si ya se ha extraldo la informacion de integridad de todas las columnas de macrobloques que forman cada fila. Si eso es asl, se suma una unidad al contador i en el paso 255 y se vuelve al paso 253. En caso de que aun 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 informacion 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 2o0 se inicializa a cero el valor COEF, que permite controlar el numero de coeficientes usados para extraer la informacion por cada macrobloque. La decision sobre si ya se han computado todos los coeficientes de un macrobloque se toma en el paso 262. Si es asf, 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 continua en el paso 259. La funcion del paso 259 es senalar un macrobloque como falso; esto se puede hacer senalando el macrobloque de alguna forma visible y/o emitiendo una serial 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 continuation del paso 259, con el paso 257. En el paso 257 se anade una unidad al contador j, indicando que la extraccion de la informacion de integridad de un macrobloque ha acabado. Par otro lado, si en el paso 262 se decide que aun se ha recuperado la informacion de integridad correspondiente a ese macrobloque se continua en el paso 2o3. En el paso 263 se genera un vector de proyeccion de longitud LONG_INT sincronizado con el generador en 161 en la FIG. 6. Su generation es dependiente de la referencia temporal y de la clave, de ahl que y de la clave, de ahl que si no se conoce la referencia temporal o la clave secreta se determinara con alta probabilidad que el macrobloque es falso. En el paso 265 se realiza el producto escalar entre el vector de proyeccion y un vector formado por coeficientes de VEC_INT con Indices comprendidos entre COEF y COEF+LONG_I NT-1, donde el resultado de la proyeccion se almacena en RES_PROY. En el paso 266 se actualiza el valor COEF anadiendole el valor LONG_INT. Despues de que la proyeccion actual se haya finalizado, se continua con el paso 264. En ese
5
10
15
20
25
30
35
paso se introduce el valor resultado de computar la distancia entre RES_PROY y un vector de referencia en la posicion resultado de la division COEF/LONG_INT del vector de distancias VEC_DIST. La explicacion del calculo de la distancia sera abordado posteriormente en la descripcion.
Selection pseudoaleatoria de bloques
En la presente realization practica, los bloques transformados DCT que albergan los mensajes de una imagen digital fija codificada acorde al estandar 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 direction IP y el mensaje con la referencia temporal respectivamente. Si los bloques seleccionados en codification y decodificacion no son los mismos los datos recuperados son invalidos.
La seleccion se realiza permutando los bloques que forman la imagen usando un generador de numeros pseudoaleatorios, en el cual se emplea como semilla el valor de la clave secreta o una funcion 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 posicion de los bloques en la imagen. Con el generador pseudoaleatorio se permuta la posicion de cada bloque en el vector de bloques obteniendo un vector de bloques desordenado.
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. EI vector de coeficientes del mensaje con la direccion IP se denota por y tiene una longitud de N°BITS_IPxN°COEF_IP. EI mensaje con la referencia temporal se denota por cref con una longitud de N°BITS_REFxN°COEF_REF.
Si los vectores o las matrices de proyeccion 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 insertion de cada mensaje se estarlan interfiriendo mutuamente y la information insertada no podrla ser recuperada.
La seleccion pseudoaleatoria de los bloques se puede realizar cuando se vaya a procesar cada imagen y no solo al comienzo de un flujo de imagenes. Esta posibilidad tiene el inconveniente de que el tiempo de ejecucion de la insercion o de la extraction aumenta por lo que esta solution no es aconsejable en aquellos casos en que existan restricciones temporales.
Sincronizacion funcion de la referencia temporal y la clave secreta
La sincronizacion de la introduction y la extraccion de la informacion de integridad se realiza en los pasos 151 (FIG. 6) y 251 (FIG. 9). Se usa la clave secreta K para garantizar que la informacion de integridad se introduce por un usuario autorizado del sistema. La sincronizacion con el sello temporal se implementa con el objetivo de crear una dependencia entre el proceso de insercion de la informacion de integridad y el valor de la referencia temporal. Corno resultado, no es posible utilizar imagenes marcadas en un instante de tiempo anterior para falsificar una imagen obtenida en otro instante diferente sin que se detecte. Esta sincronizacion se logra inicializando un generador pseudoaleatorio de integridad con un valor que sea funcion de la referencia temporal y de la clave secreta. EI generador pseudoaleatorio se utiliza en la parte correspondiente al control de integridad en la obtencion de valores en los pasos 161 (FIG. 6) y 168 (FIG. 6) en la introduccion, 263 (FIG. 9) y 264 (FIG. 9) en la extraccion.
5
10
15
20
25
30
35
Generacion de los vectores de proyeccion
Las parejas de pasos 118 (FIG. 4) - 219 (FIG. 7) del mensaje con la direccion IP, 139 (FIG. 5) - 239 (FIG. 8) del mensaje de la referencia temporal y 161 (FIG. 6) - 263 (FIG. 9) de la informacion de integridad generan los vectores de proyeccion,y de longitud LONG_IP, LONG_REF y LONG_INT respectivamente. Los vectores de proyeccion se obtienen pseudoaleatoriamente haciendolos dependientes de la clave secreta para los mensajes o la referencia temporal y la clave secreta para la informacion de integridad.
EI primer paso para generar los vectores de proyeccion es crear un vector con todos sus elementos puestos a uno y determinar el signo de los elementos del vector pseudoaleatoriamente. A continuacion, se le aplica una mascara para obtener el vector de proyeccion. La mascara puede ser generada respondiendo a caracterlsticas psicovisuales humanas u otro tipo de requisito.
Un ejemplo para producir la mascara es crearla de forma que el peso de los coeficientes en la proyeccion sea el mismo desde la perspectiva del estandar JPEG; para ello los valores de la mascara se generan como funcion de la relacion del tamano de los escalones de cuantificacion asociados a la cuantificacion JPEG de cada coeficiente. Anteriormente se indico que cada coeficiente de los bloques 8 8 en los que esta dividida una imagen en el estandar JPEG se somete a una cuantificacion, donde el tamano del escalon del cuantificador es funcion de su posicion en el bloque. Por lo tanto, la mascara se genera de forma que al proyectar los coeficientes sobre el vector de proyeccion el valor de la mascara sea tal que el producto del escalon de cuantificacion JPEG de cada coeficiente por el valor de la mascara que lo multiplica sea constante.
Esta igualacion se logra asignandole en la mascara el valor mayor (por ejemplo 1) al elemento asociado al coeficiente cuantificado con el escalon mas pequeno y haciendo que el resto de los elementos del vector sean proporcionales a el. Por ejemplo, si un coeficiente tuviese asociado un tamano de escalon cuyo valor es el .doble que el del coeficiente mas pequeno le corresponded a en la mascara la mitad del valor asociado al mas pequeno. Particularizando, si solo se marcara un coeficiente de cada bloque para introducir un determinado mensaje, la mascara generada serla un vector con sus elementos iguales a la unidad. Esta manera de generar la mascara queda ilustrada en el siguiente ejemplo
Cquant = {1,1,2,1}
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 cuantificacion JPEG con los que se obtienen los coeficientes cuantificados. Atendiendo a esto, la mascara m resulta
m={1,1,5/6,5/6}.
Pudiendo corresponderse a vector de proyeccion p={1,-1,5/6,-5/6}. lnsercion de la marca de agua
En el resultado de las proyecciones RES_PROY se introduce un bit de los mensajes o una parte de la informacion 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 direccion IP, la referencia temporal y la informacion de integridad
respectivamente. Los tres pasos son analogos, difiriendo solo en la informacion que se introduce en cada uno.
En el sistema propuesto en la presente invencion se usan tecnicas de marcado de agua con informacion lateral en el codificador, y en la presente descripcion preferente se usa una tecnica basada en 5 cuantificadores escalares uniformes y codificacion por repeticion.
Los mensajes a insertar se representan mediante vectores binarios (sus elementos solo pueden tomar los valores {O,1}) en los que cada elemento representa un bit de informacion:
EI mensaje correspondiente a la direccion IP se denota por bip 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.
10EI mensaje de la referencia temporal se denota por y tiene una longitud variable, dependiendo de la codificacion 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.
La informacion de integridad tambien se representa mediante un vector binario b^T que representa el valor de un mensaje de referencia, introduciendose un bit en cada macrobloque, y por lo tanto su longitud es 15 igual al numero 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.
EI objetivo del proceso de marcado de agua que se describe en esta realizacion practica preferente es codificar cada mensaje o la informacion de integridad en un vector y que representa una palabra codigo, la cual se insertara en la imagen original.
20 En el metodo usado en esta descripcion, cada palabra codigo y tiene L veces la longitud del vector binveces la longitud del vector binario que representa el mensaje a insertar, siendo L la tasa de repeticion utilizada N°COEF_IP/LONG_IP, N°COEF_REF/LONG_ REF o N°COEF_INT/LONG_INT segun corresponda a la direccion IP, la referencia temporal o la informacion de integridad respectivamente; en general L sera distinto para cada mensaje o para la informacion de integridad. EI proceso para introducir 25 informacion en la imagen propuesto en esta descripcion de la realizacion preferente de la invencion comprende tres pasos: cuantificacion, obtencion de vectores de error y actualizacion de los coeficientes Estos pasos seran descritos en detalle a continuation.
En el primer paso, para insertar un mensaje o la informacion de integridad de longitud N representados
por un vector binario b = (b1, b2,..., bN ) se generan los elementos de la palabra codigo y, de manera 30 que para un elemento yi con Indice i dentro del intervalo [j-1) L+1j L] se utilizara el bit bj del vector binario 1 +j+N correspondiente, siendo 1 j 1 N. Donde b denota a los vectores o para el caso de los mensajes bINT para la informacion de integridad. EI valor i-esimo se calcula como-
donde es el denominado escalon de cuantificacion, que determinara la distorsion introducida por el
imagen1
(1)
35 proceso de marcado. Par otra parte, en la expresion anterior (1) ki representa un valor pseudoaleatorio
5
10
15
20
25
30
distribuido uniformemente en el intervalo [-1/2, 1/2] y es conocido solo por el codificador y el decodificador; ademas, denota xi el resultado de la proyeccion i-esima RES_PROY del correspondiente proceso de insercion en una imagen segun se lleve a cabo en el modulo de insercion de la direccion IP (FIG. 4), en el de la direccion IP (FIG. 5) o en el de la informacion de integridad (FIG. 6), y donde representa la operacion de cuantificacion, que debido a la particular estructura de las palabras codigo viene dada simplemente por
Qa (x) = A ■ round
x
A
La obtencion de se representa graficamente en la FIG. 12, donde los clrculos y los cuadrados simbolizan los puntos de reconstruction que representan a los bits 0 y 1, respectivamente. Respecto al valor pseudoaleatorio ki, este 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 informacion de integridad. En general, se utilizara un valor ki de diferente para cada valor xi con el fin de proporcionar privacidad al proceso de marcado. EI vector formado ki por los de cada mensaje o informacion de integridad se representa por kp para la direccion IP kREF, para la referencia temporal, y kINT para la informacion de integridad.
EI segundo paso del proceso de marcado consiste en la obtencion del vector de error de cuantificacion d, donde di se obtiene simplemente como.
Cada elemento es el resultado de los pasos 124 (FIG. 4), 145 (FIG. 5) y 168 (FIG. 6).
El tercer paso del proceso de marcado es la actualization, operacion 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 valor RES_PROY). La actualizacion 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 operacion de proyeccion el valor de RES_PROY que ha dado lugar a en el paso
anterior, se encuentran dispuestos en el vector c = (c1, c2 ..., cM ) , donde M es igual a LONG_IP,
LONG_REF o LONG_INT, dependiendo de si el mensaje insertado se corresponde con la direccion IP, la referencia temporal, o la informacion de integridad, respectivamente. La obtencion del j-esimo coeficiente
marcado, denotado por c* viene dada por la siguiente expresion:
* d*
c, = c, + a ■ !
Pj
d* = dt /M es el elemento j-esimo del vector de proyeccion correspondiente (es decir, , o ), y a es el denominado factor de compensation de distorsion, que puede tomar valores reales en el intervalo [O, 1].
5
10
15
20
25
30
Controlando el valor a se puede llegar a una solucion de compromiso entre la distorsion introducida y la robustez de la marca.
Para concluir el proceso de marcado, los coeficientes originales q se reemplazan por los coeficientes marcados c * .
Distorsion introducida por JPEG
La imagen digital resultado de alterar los coeficientes en la insercion de informacion se vuelve a codificar segun el estandar JPEG. Corno se indico anteriormente el estandar JPEG cuantifica los coeficientes de cada bloque 8x8 que forman la imagen por los elementos de la matriz de cuantificacion JPEG , introduciendo un ruido de cuantificacion.
Es necesario conocer los valores de en el proceso de insercion de la informacion de la imagen, de modo que se pueda establecer un valor mlnimo del tamano de escalon □ necesario para insertar la informacion. Este proceso de generacion de los elementos de las palabras codigo y se describe en la expresion (1), denotando cada tamano de escalon por , y , y, para el caso del mensaje con la direccion IP, mensaje con la referencia temporal y la informacion de de integridad respectivamente.
La determinacion del tamano de los escalones de los cuantificadores (, y ) depende del valor mlnimo del
tamano del escalon de cuantificacion de (qiP>min, QREF.min ,o qINT,min ,); este valor divide los coeficientes usados para insertar cada tipo de informacion. De ese modo se consigue que la comunicacion establecida entre el codificador 100 y el decodificador 200 sea posible con una distorsion muy pequena. La condicion que se debe cumplir es
D IP — 2qiP,min,
D REF — 2qREF,min DINT — 2QlNT,min-
Respetando esta condicion se logra que la informacion introducida resista la compresion JPEG a un determinado factor de calidad, donde ese factor Qjpeg controla. Esto queda claro con el ejemplo que se describe a continuacion. Se supone un factor a =1, sin proyeccion y el resultado del error de cuantificacion para la introduccion de un bit, cuyo valor es cero, es el maximo valor posible d=4&/2. EI coeficiente
marcado resulta c = c +D/2. Si no se cumpliera la condicion anteriormente mencionada, el valor marcado cuantificado obtenido c**uant serla lor sin marcar cuantificado original por lo tanto en el
decodificador 200 producirla un error al recuperar el valor del bit insertado ya que c = c'quant x q estarla mas cerca de una palabra codigo del subconjunto asociado al valor uno que al de valor cero.
Extraccion de la informacion
EI proceso de extraccion de la informacion 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
5
10
15
20
25
30
c = (c1, c2 ..., cM ) , j — 1 — N , qUe han sido marcados para transmitir information acerca del j-esimo bit de un mensaje que tiene una longitud total de N bits, correspondiendose este valor con N°BITS_IP o N°BITS_REF para el caso de la direction IP y de la referencia temporal respectivamente o el numero de macrobloques de la imagen para la informacion de integridad. Ademas, el valor L es la tasa de repetition utilizada, es decir, N°COEF_IP/LONG_IP, N°COEF_REF/LONG_REF y N°COEF_ INT/LONG_INT para la direccion IP, la referencia temporal y la informacion de integridad respectivamente.
EI primer paso del proceso de decodificacion consiste en obtener un vector de distancias
VEC_DIS — (v13 v2,..., vN) . De la proyeccion del vector q usando los parametros adecuados se obtiene como resultado un vector sj de longitud L, con 1^ j+N, y denotamos la concatenation de dichos N vectores como s. EI valor de vi se obtiene mediante la expresion
jL
vj = Z (si - ki D) -s, + k, -D ,
i—( j-1)L+1
con los valores de y definidos anteriormente. EI valor vj representa el valor absoluto del error de cuantificacion de! subvector sj con el conjunto de palabras codigo que representan el bit 0 en el j-esimo bit, donde el conjunto palabras codigo tiene la forma de! Vector
(D(t1 + k), D(t 2 + k 2),., D(tL + kL)), donde t es un numero entero y los valores pseudoaleatorios ki deben corresponderse con los usados en la fase codificacion. La operacion (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 decodificacion es como se describe a continuacion.
Para obtener el j-esimo bit de la direccion IP (paso 217 de la FIG. 7), la regla de decision viene dada por
0, si vj < LD / 4
1, si vj > LD / 4
b
}
esto es, se seguira un criterio de minima distancia. EI mensaje relativo a la referencia temporal se codifica contra errores usando un codigo 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 lbREF , el cual representa el mensaje estimado.
En el sistema propuesto en la presente invencion se contempla la deteccion de alteraciones temporales en las imagenes procesadas por el. Esto ocurre cuando se intenta modificar una imagen o se sustituye una secuencia de imagenes. Se implementa utilizando una ventana temporal compuesta por las referencias temporales validas que se han de cotejar con la referencia temporal extralda de cada imagen. Si la referencia temporal esta dentro de la ventana, la ventana se actualiza con el valor de la nueva referencia
5
10
15
20
25
30
35
temporal. Si la referenda temporal extralda no es valida se indica que esa imagen determinada o secuencia de imagenes no es valida.
La informacion de integridad se extrae en el paso 261 de la FIG. 9. En este paso, se calculara la distancia entre el conjunto de palabras codigo asociadas a un mensaje de referencia, y la version proyectada de los coeficientes dedicados a integridad del j-esimo macrobloque sj. Si dicha distancia es menor que un determinado umbral, entonces se decidira que la senal es autentica, y en otro caso que ha sido editada.
lntegracion en dispositivos
Notese que los diagramas de flujo no utilizan ninguna sintaxis especial, ni ningun lenguaje de programacion. Mas bien, representan la informacion necesaria para que una persona familiarizada en este campo de la tecnologla pueda fabricar circuitos integrados o generar el software que ejecuten los procesos necesarios. Por ejemplo, cada funcion representada por un bloque o un diagrama de flujo puede ser implementada por un conjunto de instrucciones software, por un procesador digital de serial DSP, por un circuito digital configurable FPGA, por un circuito de aplicacion especlfica ASIC o cualquier combinacion de ellos.
Con el fin de ilustrar una posible implementacion de los metodos de insercion de marcado de agua propuestos en la presente invention se muestra en la FIG. 13 un esquema de bloques de una camara digital de red 1300. La camara comprende una lente 1301 que focaliza un imagen sobre un sensor de imagen 1302, un circuito generador de imagenes 1303 que utiliza la imagen capturada por el sensor de imagen 1303 originando una imagen digital codificada acorde a algun estandar (p.ej. JPEG) y un circuito de control 1304 teniendo como una de sus funciones el control de la obtencion, la generation y la codification de las imagenes, siendo otra de sus funciones la comunicacion con una red de comunicaciones 1306. Ademas, el circuito de control 1304 tiene la capacidad de ejecutar operaciones almacenadas en una memoria 1305, siendo en esta donde estan guardadas las operaciones necesarias para llevar a cabo los metodos de insercion propuestos en esta invencion. Generalmente, la poca capacidad de calculo de los circuitos de control presentes en las actuales camaras digitales de red hacen idonea la presente invencion al conjugar perfectamente un elevado grado de seguridad con la necesidad de un numero de operaciones bajo.
Los metodos de marcado de agua digital para detection de manipulation propuestos en la presente invencion se podrlan implementar en un sistema computacional 1400, como se muestra en la FIG. 14, donde tal sistema computacional 1400 comprenderla un procesador 1401 y una memoria 1403. Tal sistema de computation 1400 estarla conectado a dispositivos de un sistema de vigilancia 1407 a traves de una red comunicaciones digitales 1405. EI procesador 1401 ejecuta las operaciones almacenadas en la memoria 1403; por lo tanto los procesos descritos que forman parte de los metodos para la deteccion de alteraciones pueden ser implementados en estos sistemas computacionales.
A modo de ejemplo, el sistema computacional 1400 podrla ser un ordenador central que controla los parametros de las camaras digitales que forman el sistema global o, simplemente, un DSP configurado para que de manera aleatoria analice unas grabaciones de una base de datos.

Claims (15)

  1. 5
    10
    15
    20
    25
    30
    35
    Reivindicaciones
    1.- Metodo de marcado de un documento digital, en particular de una imagen digital, con un marcado de agua digital para la deteccion de manipulaciones insertando una informacion (150) de integridad y al menos un mensaje con una pluralidad de bits, donde bloques de la imagen y coeficientes de cada bloque son seleccionados con una clave secreta (K),
    caracterizado por que el metodo comprende los pasos siguientes:
    - transformar la imagen digital en una imagen digital transformada,
    - dividir la imagen digital transformada en una pluralidad de bloques, teniendo cada bloque una pluralidad de coeficientes;
    - generar una pluralidad de valores proyectados de mensaje para el al menos un mensaje proyectando una pluralidad de coeficientes predeterminados sobre un vector dependiente de la clave secreta (K),
    - insertar cada bit de cada mensaje al menos en uno de dichos valores proyectados de mensaje;
    - generar una pluralidad de valores proyectados de integridad para dicha informacion de integridad (150) proyectando una pluralidad de coeficientes sobre un vector dependiente de mensaje, siendo dicho vector dependiente de mensaje derivado a partir de al menos uno de dichos mensajes y de la clave secreta (K);
    - insertar cada parte de la informacion de integridad (150) al menos en uno de dichos valores proyectados de integridad;
    - actualizar cada coeficiente usado para generar los valores proyectados de mensaje con los valores proyectados insertados de mensaje, logrando que la proyeccion de los primeros coeficientes actualizados de mensaje sobre el vector dependiente de la clave secreta y los valores proyectados insertados de mensaje sean identicos;
    - actualizar cada coeficiente usado para calcular los valores proyectados de integridad con los valores proyectados insertados de integridad, logrando que la proyeccion de los coeficientes actualizados de integridad sobre dicho vector dependiente de mensaje y los valores proyectados insertados de integridad sean identicos;
    - el insertar de cada parte de la informacion de integridad (150) se calcula sometiendo dichos valores proyectados de integridad a una cuantificacion empleando un cuantificador de celosla con un tamano de escalon predeterminado y moviendo los centroides del cuantificador de celosla con un vector de desplazamiento sincronizado con al menos uno de dichos mensajes y la clave secreta (K) ;
    - el insertar de cada bit de cada mensaje se calcula sometiendo dichos valores proyectados de mensaje a una cuantificacion empleando un cuantificador de celosia con un tamano de escalon predeterminado y moviendo los centroides del cuantificador de celosla con un vector de desplazamiento sincronizado con la clave secreta (K); y
    - sincronizar el insertar y el extraer de la informacion de integridad (150) por inicialisar un generador de integridad pseudoaleatorio con un valor que es una funcion de una referencia temporal (130) y de la clave secreta (K).
    5
    10
    15
    20
    25
    30
    35
  2. 2.- Metodo segun la reivindicacion 1, caracterizado por que cada coeficiente de la pluralidad de coeficientes predeterminados usado para insertar los mensajes es seleccionado pseudoaletoriamente con la clave secreta (K).
  3. 3.- Metodo segun la reivindicacion 1, caracterizado por que cada valor de dicho vector dependiente de mensaje teniendo una posicion especlfica en dicho vector dependiente de mensaje y cada valor del vector dependiente de la clave secreta teniendo una posicion especlfica en el vector dependiente de la clave secreta se ponderan por un factor, donde dicho factor se deriva de dicha posicion especlfica de cada valor en el vector.
  4. 4. - Metodo segun la reivindicacion 3, caracterizado por que dicha imagen digital se codifica con un estandar de imagen digital obteniendo una imagen digital codificada, donde dicho estandar de imagen digital es seleccionado del grupo constituido por el estandar JPEG y cualquiera de los estandares MPEG; cada coeficiente se codifica dividiendolo por un valor de la tabla de cuantificacion del estandar, donde dicho valor de la tabla de cuantificacion es funcion de la posicion del coeficiente en el bloque concreto al que pertenece; y el valor de cada factor que pondera a un valor concreto del vector dependiente es una funcion del valor de la tabla de cuantificacion que divide a un coeficiente concreto en la imagen codificada, donde dicho coeficiente concreto multiplica dicho valor concreto del vector dependiente al proyectar en los pasos de obtencion de las pluralidades de valores proyectados.
  5. 5. - Metodo segun la reivindicacion 1, caracterizado por que uno de dichos mensajes es una referencia temporal (130).
  6. 6. - Metodo segun la reivindicacion 1, caracterizado por que uno de dichos mensajes es un identificador unico de un dispositivo, donde dicho dispositivo captura dicha imagen digital.
  7. 7. - Metodo de marcado de un documento digital, en particular de una imagen digital, con un marcado de agua para la deteccion de manipulaciones extrayendo datos de la imagen digital con marcados de agua, siendo los datos una informacion (150) de integridad y al menos un mensaje con una pluralidad de bits, en donde bloques de la imagen y coeficientes de cada bloque son seleccionados con una clave secreta (K),
    caracterizado por que el metodo comprende los pasos siguientes:
    - transformar la imagen digital en una imagen digital transformada,
    - dividir la imagen digital transformada en una pluralidad de bloques, teniendo cada bloque una pluralidad de coeficientes;
    - generar una pluralidad de valores proyectados para cada de los mensajes proyectando una pluralidad de coeficientes sobre un vector dependiente de la clave secreta (K),
    - extraer varios bits de cada mensaje de dichos valores proyectados de mensaje;
    5
    10
    15
    20
    25
    30
    35
    - para cada mensaje determinar un mensaje reconstruido basado en los bits extraldos de cada mensaje;
    - obtener una pluralidad de valores proyectados de integridad para la informacion de integridad proyectando una pluralidad de coeficientes sobre un vector dependiente de mensaje, el cual se deriva al menos de uno de los mensajes reconstruidos y de la clave secreta (K);
    - el extraer una pluralidad de partes de la informacion de integridad (150) de dicha pluralidad de valores proyectados de integridad;
    - determinar si la imagen digital con marcados de agua fue alterada o no analizando las partes extraldas de la informacion de integridad,
    - extraer una pluralidad de partes de la informacion de integridad (150) se calcula sometiendo dichos valores proyectados de integridad a una cuantificacion empleando un cuantificador de celosla con un tamano predeterminado de escalon y moviendo sus centroides de cuantificador de celosla con un vector de desplazamiento sincronizado con al menos uno de dichos mensajes reconstruidos y la clave secreta (K);
    - el extraer una pluralidad de bits de cada mensaje de los valores proyectados se calcula sometiendo dicho valor proyectado de mensaje a una cuantificacion empleando un cuantificador de celosla con un tamano predeterminado de escalon moviendo sus centroides de cuantificador de celosla con un vector de desplazamiento sincronizado con la clave secreta y
    - sincronizar el insertar y el extraer de la informacion de integridad (150) por inicialisar un generador de integridad pseudoaleatorio con un valor que es una funcion de una referencia temporal (130) y de la clave secreta (K).
  8. 8. - Metodo segun la reivindicacion 7, caracterizado por que cada coeficiente de la pluralidad de coeficientes predeterminados usado para descodificar el mensaje reconstruido es seleccionado pseudoaletoriamente con la clave secreta (K).
  9. 9. - Metodo segun la reivindicacion 7, caracterizado por que cada valor de dicho vector dependiente de mensaje teniendo una posicion especlfica en dicho vector dependiente de mensaje y cada valor del vector dependiente de la clave secreta teniendo una posicion especlfica en el vector dependiente de la clave secreta se ponderan por un factor, donde dicho factor se deriva de dicha posicion especlfica de cada valor en el vector.
  10. 10. - Metodo segun la reivindicacion 9, caracterizado por que dicha imagen digital se codifica con un estandar de imagen digital obteniendo una imagen digital codificada, donde dicho estandar de imagen digital es seleccionado del grupo constituido por el estandar JPEG y cualquiera de los estandares MPEG; cada coeficiente se codifica dividiendolo por un valor de la tabla de cuantificacion del estandar, donde dicho valor de la tabla de cuantificacion es una funcion de la posicion del coeficiente en el bloque concreto al que pertenece; y el valor de cada factor que pondera a un valor concreto del vector dependiente es funcion del valor de la tabla de cuantificacion que divide a un coeficiente concreto en la imagen codificada,
    donde dicho coeficiente concreto multiplica dicho valor concreto del vector dependiente al proyectar en los pasos de obtencion de las pluralidades de valores proyectados.
  11. 11. - Metodo segun la reivindicacion 7, caracterizado por que uno de dichos mensajes es una referencia 5 temporal (130) que es usada para decidir si la imagen digital con marca de agua fue obtenida en un
    periodo valido de tiempo o sufrio una manipulacion temporal.
  12. 12. - Metodo segun la reivindicacion 7, caracterizado por que uno de dichos mensajes es un identificador unico de un dispositivo, donde dicho dispositivo capturo dicha imagen; dicho identificador unico es usado
    10 para verificar si la imagen digital fue alterada o no.
  13. 13. - Camara digital de red (1300), que esta caracterizada por que comprende:
    - una lente (1301) para focalizar una imagen sobre un sensor de imagen (1302);
    - un circuito de generacion de imagen (1303) para generar una imagen digital a partir de una imagen
    15 capturada por dicho sensor de imagen (1302);
    - un circuito de control (1304) para controlar las comunicaciones entre la camara digital (1300) y la red (1306) a la que esta conectada; y dicho circuito de control (1304) esta preparado para para llevar a cabo un metodo acorde con alguna de las reivindicaciones de 1 a 6.
  14. 14. - Sistema de computacion incluyendo un procesador (1401) y una memoria (1403), caracterizado por 20 que esta preparado para llevar a cabo un metodo acorde con alguna de las reivindicaciones de 1 a 6 y/o
    acorde con alguna de las reivindicaciones de 7 a 12.
  15. 15. - Sistema de computacion segun la reivindicacion 14, caracterizado por que esta integrado en un sistema de video supervision
ES07856751.8T 2006-12-14 2007-12-14 Método de marcado de un documento digital Active ES2583927T3 (es)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
ES200603214 2006-12-14
ES200603214A ES2321363B2 (es) 2006-12-14 2006-12-14 Sistema de marcado de agua digital en particular de un sistema de marcado de aguadigital para la deteccion y localizacion de alteraciones en imagenes digitales.
DE102007017525 2007-04-13
DE102007017525 2007-04-13
PCT/EP2007/011013 WO2008071442A1 (de) 2006-12-14 2007-12-14 Verfahren zur kennzeichnung eines digitalen bildes mit einem digitalen wasserzeichen

Publications (1)

Publication Number Publication Date
ES2583927T3 true ES2583927T3 (es) 2016-09-22

Family

ID=39167489

Family Applications (1)

Application Number Title Priority Date Filing Date
ES07856751.8T Active ES2583927T3 (es) 2006-12-14 2007-12-14 Método de marcado de un documento digital

Country Status (6)

Country Link
US (1) US8472528B2 (es)
EP (1) EP2122569B1 (es)
JP (1) JP4944966B2 (es)
DE (1) DE102007060345A1 (es)
ES (1) ES2583927T3 (es)
WO (1) WO2008071442A1 (es)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108805943B (zh) * 2017-04-27 2022-12-09 腾讯科技(深圳)有限公司 图片转码方法和装置

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6944298B1 (en) * 1993-11-18 2005-09-13 Digimare Corporation Steganographic encoding and decoding of auxiliary codes in media signals
US7366908B2 (en) * 1996-08-30 2008-04-29 Digimarc Corporation Digital watermarking with content dependent keys and autocorrelation properties for synchronization
CN101079295A (zh) * 1997-01-27 2007-11-28 皇家飞利浦电子股份有限公司 记录信号的复制保护系统
JP3137022B2 (ja) * 1997-02-24 2001-02-19 日本電気株式会社 動画像エンコード装置
PL346276A1 (en) * 1998-08-27 2002-01-28 Ibm System for embedding additional information in video data, and embedding method
DE69916749T2 (de) 1998-11-10 2005-03-31 Canon K.K. Einbettung eines Wasserzeichens in ein komprimiertes Bildsignal
US6802074B1 (en) * 1999-05-31 2004-10-05 Matsushita Electric Industrial Co., Ltd. Recording apparatus, transmitting apparatus, and computer-readable recording medium
US6633654B2 (en) * 2000-06-19 2003-10-14 Digimarc Corporation Perceptual modeling of media signals based on local contrast and directional edges
GB2369949B (en) * 2000-12-07 2005-03-16 Sony Uk Ltd Embedding data in material
US20040071311A1 (en) 2000-12-09 2004-04-15 Jong-Uk Choi Network camera apparatus, network camera server and digital video recorder for preventing forgery and alteration of a digital image, and apparatus for authenticating the digital image from said apparatus, and method thereof
US7421082B2 (en) * 2000-12-28 2008-09-02 Sony Corporation Data delivery method and data delivery system using sets of passkeys generated by dividing an encryption key
US7133443B2 (en) * 2001-08-06 2006-11-07 Broadcom Corporation Multi-tone transmission
KR20040029029A (ko) * 2001-08-24 2004-04-03 코닌클리케 필립스 일렉트로닉스 엔.브이. 비디오 프레임의 필드들을 부가
US20030095180A1 (en) * 2001-11-21 2003-05-22 Montgomery Dennis L. Method and system for size adaptation and storage minimization source noise correction, and source watermarking of digital data frames
US8059815B2 (en) * 2001-12-13 2011-11-15 Digimarc Corporation Transforming data files into logical storage units for auxiliary data through reversible watermarks
JP4086103B2 (ja) * 2002-01-25 2008-05-14 財団法人大阪産業振興機構 画像データ作成方法、改竄検出方法、画像データ作成装置、改竄検出装置、コンピュータプログラム、及び記録媒体
KR20030073369A (ko) 2002-03-11 2003-09-19 한국전자통신연구원 양자화를 이용한 실시간 블라인드 워터마킹 방법
WO2004019336A1 (en) * 2002-08-21 2004-03-04 Thomson Licensing S.A. Watermarking digital data at a user device
US7409556B2 (en) 2002-11-19 2008-08-05 My Ez Communications, Llc Hybrid digital watermarking for video authentication
US7302573B2 (en) * 2003-01-14 2007-11-27 Kabushiki Kaisha Toshiba Computer system and method for controlling output of reproduced video data
US20060075424A1 (en) * 2003-02-10 2006-04-06 Koninklijke Philips Electronics N.V. Import control of content
US7460684B2 (en) * 2003-06-13 2008-12-02 Nielsen Media Research, Inc. Method and apparatus for embedding watermarks
US7676055B2 (en) * 2004-10-15 2010-03-09 Panasonic Corporation Information-detecting apparatus and method
US7672373B2 (en) * 2005-04-11 2010-03-02 Cisco Technology, Inc. Digital watermarking of a media stream using coded macroblock types
GB2425425B (en) * 2005-04-22 2011-01-19 Sony Uk Ltd Data processing apparatus
US20090235303A1 (en) * 2005-08-08 2009-09-17 Masaru Yamaoka Encrypted content and decryption key providing system
BRPI0520528A2 (pt) * 2005-09-09 2009-05-12 Thomson Licensing detecção de marca d'água em vìdeo
US7831111B2 (en) * 2005-10-31 2010-11-09 Yahoo! Inc. Method and mechanism for retrieving images

Also Published As

Publication number Publication date
US8472528B2 (en) 2013-06-25
DE102007060345A1 (de) 2008-10-16
EP2122569B1 (de) 2016-05-04
EP2122569A1 (de) 2009-11-25
JP2010528493A (ja) 2010-08-19
JP4944966B2 (ja) 2012-06-06
US20100045794A1 (en) 2010-02-25
WO2008071442A1 (de) 2008-06-19

Similar Documents

Publication Publication Date Title
CN105263024B (zh) 一种抗量化转码的hevc视频流零水印的注册和检测方法
ES2431595T3 (es) Método y sistema de incorporación y de extracción de una marca de agua digital de imagen
CN105634732B (zh) 一种密文域多比特可逆信息隐藏方法
US11418677B2 (en) Method for preventing image modification, image capturing device and image verification method
CN102547297B (zh) 基于dc系数的mpeg2视频水印实现方法
Tagliasacchi et al. Hash-based identification of sparse image tampering
Esen et al. Robust video data hiding using forbidden zone data hiding and selective embedding
CN101409813A (zh) 防止和识别图像篡改的图像编码方法
Yin et al. A semi-fragile watermarking system for MPEG video authentication
WO2013149579A1 (zh) 一种基于连续矢量图形描述的数字水印系统及实现方法
He et al. A semi-fragile object based video authentication system
ES2583927T3 (es) Método de marcado de un documento digital
Zhi-yu et al. Integrity authentication scheme of color video based on the fragile watermarking
Elrowayati et al. Robust HEVC video watermarking scheme based on repetition-BCH syndrome code
Cao et al. Using image sensor PUF as root of trust for birthmarking of perceptual image hash
US8818019B2 (en) Robust watermark
ES2321363B2 (es) Sistema de marcado de agua digital en particular de un sistema de marcado de aguadigital para la deteccion y localizacion de alteraciones en imagenes digitales.
CN103996162B (zh) 一种基于人眼视频特征的柔性图像水印方法和装置
Yin et al. Classification of video tampering methods and countermeasures using digital watermarking
US20050129268A1 (en) Method and system for watermarking an electrically depicted image
Wei et al. Trustworthy authentication on scalable surveillance video with background model support
Tew et al. HEVC video authentication using data embedding technique
Sarreshtedari et al. Source-channel coding approach to generate tamper-proof images
Pramateftakis et al. Authentication of MPEG-4-based surveillance video
CN106851436A (zh) Dct域内视频分形脆弱水印算法