Marca de agua para una señal de información comprimida.
CAMPO DE LA INVENVCIÓN La invención trata acerca de un método para empotrar una marca de agua en una señal de información la cual esta comprimida para asi incluir las primeras muestras de señal teniendo un primer valor dado y muestras futuras de señal teniendo un valor diferente. Un tipico ejemplo de una señal de información comprimida es una señal de video MPEG2 en cuyas imágenes de video están representadas por coeficientes de transformación, un número significante el cual tienen como primer valor cero. ANTECEDENTES DE LA INFORMACIÓN Un método conocido para empotrar una marca de agua en una señal de video comprimida es expuesto en F. Hartung y B. Girod: Marca de Agua Digital de Video Codificado MPEG2 en el Dominio de Doble Flujo, publicado en ICASSP, Vol. 4, 1997, pp. 2621-2624. La marca de agua es una secuencia de pseudo ruido en el dominio original de la señal. La marca de agua es un cociente discreto transformado antes del empotramiento. Los coeficientes que no son cero DCT de la señal comprimida son modificados al adicionar ahi mismo los coeficientes correspondientes de la secuencia transformada de la marca de agua. El esquena anterior de empotramiento de la marca de agua tiene algunas desventajas. Al ser aplicadas a un código compensado en movimiento, como una MPEG2, la modificación de los coeficientes de transformación puede propagarse en tiempo. La marcas de agua de los esquemas anteriores pueden acumularse en el esquema actual y resultar en una distorsión visual. Para evitar esto, el empotrador de marca de agua anterior requiere una compensación de impulso. Más aún, la modificación de los coeficientes DCT en el flujo de bit ya comprimido afecta la tasa de bit. El empotrador anterior entonces checa si la transmisión de los coeficientes de las maraes de agua aumenta la tasa de bit, y transmite el coeficiente original si ese es el caso. OBJETO Y RESUMEN DE LA INVENCIÓN Es un objeto de la invención el proporcionar un método para empotrar una marca, de agua la cual resuelve las desventajas mencionadas arriba. Para este fin, el método de acuerdo con la "invención se caracteriza en que el paso de modificación es aplicado a muestras de una señal si la muestra de la señal asume el primer valor dada esta modificación. Es entonces logrado que el número de muestras de señal para en verdad probar el impacto de la modificación de la prueba en el número de bits. Preferentemente, las muestras de señal calificadas para modificaciones son muestras teniendo el valor de no-cero menor
(ej . MPEG video coeficientes siendo cuantificados como +1 o -1) . Como estos coeficientes representan un tipo de información de ruido y los cambios son muy pequeños (+/- paso de cuantificación) , la compensación de impulso no es necesaria, y la marca de agua empotrada es imperceptible pero aún detectable. BREVE DESCRIPCIÓN DE LOS DIBUJOS La FIGURA 1 muestra esquemáticamente un arreglo para llevar a cabo el método de acuerdo con la invención. Las FIGURAS 2A-2C y 3A-3G muestran diagramas para ilustrar la operación del arreglo que es mostrado en la FIGURA 1. DESCRIPCIÓN DE LA MODALIDAD PREFERIDA La invención será descrita ahora en referencia a un arreglo para empotrar una marca de agua en una señal de video la cual está comprimida de acuerdo con el patrón MPEG2, a pesar de que la invención no está restringida a señales de video tampoco a una compresión en particular. Nótese que la señal comprimida puede ya tener una marca de agua empotrada. En este caso, una marca de agua adicional es empotrada en la señal. Este proceso de mareaje de agua y una señal de maraca de agua es usualmente referido como "re-marcaje". La FIGURA 1 muestra un diagrama de un arreglo llevando a cabo el método de acuerdo con la invención. El arreglo incluye una unidad de serie de palabras 110, una unidad procesadora VLC
120, un puerto de salida 130, y un buffer de marca de agua 140. Su operación será descrita en referencia a las FIGURAS 2A-2C y El arreglo recibe un flujo elemental de video MGEG MP en el cual representa una secuencia de imágenes de video. Una de tales imágenes de video es mostrada en la FIGURA 2A por medio de un ejemplo ilustrativo. La imágenes de video son divididas en bloques de pixeles de 8x8, uno de ellos es denotado 201 en la FIGURA 2A. Los bloques de pixeles están representados por bloques respectivos de 8x8 DCT (transformación de cociente discreto) coeficientes. El coeficiente de transformación de la izquierda superior de tal bloque DCT representa la luminancia promedio del bloque de pixeles correspondiente y es comúnmente nombrado como coeficiente DC. Los otros coeficientes representan frecuencias espaciales y son referidos como coeficientes AC. Los coeficientes AC de la izquierda superior representan detalles de curso de la imagen, los coeficientes de la derecha inferior representan los detalles. Los coeficientes AC han sido cuantificados. Este proceso de cuantificación causa que muchos coeficientes AC de un bloque DCT asuman el valor cero. La FIGURA 3A muestra un ejemplo tipico de un bloque DCT 300, correspondiente al bloque de pixeles 201 en la FIGURA 2A. Los coeficientes del bloque DCT han sido examinados subsecuentemente de acuerdo con un patrón de zigzag (301 en la FIGURA 3A) y una longitud variable codificada. El esquema de longitud variable es una combinación de la codificación Huffman y de la codificación de recorrido de longitud. Más en particular, cada recorrido de cero de los coeficientes AC y los coeficientes AC de no cero subsecuentes constituyen un par de nivel de recorrido el cual es codificado dentro de una sola palabra codificada de longitud variable. La FIGURA 3B muestra los pares de nivel de recorrido del bloque DCT 300. Un término de código de bloque (EOB) denota la ausencia de coeficientes no cero posteriores en el bloque DCT. La FIGURA 3C muestra las series de palabras de código de longitud variable representando el bloque DCT 300 como es recibido por el arreglo. En un flujo de video elemental MPEG2, cuatro de dichos bloques DCT de luminancia y dos bloques DCT de crominancia constituyen un macro bloque, un número de macro bloques constituye un pedazo, un número de pedazos constituye una imagen (campo del esquema) , y una serie de imágenes constituyen una secuencia de video. Algunas imágenes son autónomamente codificadas (imágenes I), otras imágenes son codificadas predectiblemente con compensación de movimiento (imágenes P y B) . En el caso anterior, los coeficientes DCT representan diferencias entre pixeles de la imagen actual y los pixeles de las imágenes de referencia preferentemente que los pixeles por si mismos. El flujo de video elemental MGEG2 MP es aplicado a la unidad de serie de palabras 110 (FIGURA 1) . Esta unidad de serie de palabras interpreta parcialmente el flujo de bit MPEG y divide el flujo dentro de palabras de código de longitud variable representando coeficientes de luminancia DCT (aqui anteriormente: VLC's) y otros códigos MPEG . La unidad también comparte información como las coordenadas de los bloques, el tipo de codificación (campo del esquema), el tipo de examinación (zigzag o alternado). Los VLC 's e información asociada son aplicados a la unidad de procesamiento VLC 120. Los otros códigos MPEG son directamente aplicados a la unidad de salida 130. La marca de agua a ser empotrada es una secuencia de pseudo ruido aleatoria en el dominio espacial. En esta modalidad del arreglo, un patrón de marca de agua básico 128x129 es metida sobre la extensión de la imagen. Esta operación es ilustrada en la FIGURA 2B. El patrón de marca de agua pseudo aleatorio básico 128x128 es aqui representado por un simbolo W para una mejor visualización. Los valores de pixeles espaciales de la marca de agua básica son transformados a la misma representación que el video contenido en el flujo MPEG. Para este fin, el patrón básico de la marca de agua 128x128 es dividido en bloques de 8x8, uno de los cuales es denotado 2002 en la FIGURA 2B. Los bloques son un cociente discreto transformado y cuantificado. Nótese que la transformación y la cuantificación de la operación necesita ser realizada solamente una vez. Los coeficientes DCT por lo tanto calculados son almacenados en el buffer 128x128 de la marca de agua 140 del arreglo.
El buffer de la marca de agua 140 está conectado a la unidad de procesamiento VLC 120, en la cual el empotramiento actual de la marca de agua ocurre. La unidad de procesamiento VLC decodifica (121) palabras de código de longitud variable seleccionadas representando la imagen del video en pares de nivel de ejecución, y convierte (122) las series de los pares de nivel de ejecución en un arreglo de dos dimensiones de 8x8 coeficientes DCT. La marca de agua es empotrada, en una etapa de modificación 123, al adicionar a cada bloque DCT de video el bloque DCT de marca de agua correspondiente espaciada. El bloque DCT representando la marca de agua 201 en la FIGURA 2A. Sin embrago, de acuerdo con una modalidad preferida de la invención, solo los coeficientes DCT son convertidos en coeficientes cero mediante esta operación son seleccionados para el propósito del mareaje de agua. Por ejemplo, los coeficientes AC teniendo el valor 2 en la FIGURA 3a serán modificados solo si el coeficiente de la marca de agua correspondiente tiene el valor 2. En notación matemática: Si c?n (i,j) + w(i,j) =0 Entonces cout(i/j) =0 En donde c?n es un coeficiente de un bloque de video DCT, w es un coeficiente de la marca de agua espaciada correspondiente del bloque DCT, y cout es un coeficiente del video con marca de agua del bloque DCT. Debe ser apreciado que el número de coeficientes del bloque DCT es aumentado por esta operación, de manera que el bloque de video DCT pueda ser más eficientemente codificado que el bloque DCT original. Este es un caso en particular para señales comprimidas de MPEG, porque el nuevo coeficiente cero será incluido en la ejecución de otro par de niveles de ejecución (ejecución surgida) . La re-codificación es realizada por un codificador de variable de longitud 124 (FIGURA 1) . Al copiarse los códigos de MPEG proporcionados por la unidad des serie de palabras 110 e insertando VCL ' s regenerados proporcionados por la unidad de procesamiento VCL 120. Posteriormente, la etapa de salida 130 puede insertar bits de relleno para que la salida de la tasa de bit sea igual a la tasa de bit del video original. En una modalidad ventajosa de la invención, solo las señales de los coeficientes DCT del patrón de marca de agua son almacenados en el buffer de la marca de agua 140, de manera que el buffer almacena valores +1 y -1 solamente. Esto reduce la capacidad e memoria del buffer a 1 bit por coeficiente (128x128 bits en total) . Más aún, experimentos han mostrado que es suficiente el aplicar una marca de agua empotrada a los coeficientes DCT más significativos solamente (los coeficientes más significativos son aquellos que ocurren primero en la examinación en zigzag) . Esto reduce los requerimientos de memoria aún más. La FIGURA 3D muestra un tipico ejemplo de una marca de agua de bloque DCT 302 correspondiente al " bloque espacial de la marca de agua 202 en la FIGURA 2B. La FIGURA 3E muestra un video de marca de agua de bloque DCT 303 obtenido en adición de un bloque DCT de marca de agua 302 a bloque de video DCT300. En este ejemplo en especifico, uno de los coeficientes de no cero (el del valor -1 en la FIGURA 3A) es convertido en un coeficiente cero, porque el coeficiente espaciado correspondiente de la marca de agua tiene un valor de +1. La FIGURA 3F muestra los pares de nivel de ejecución del bloque de DCT del mareaje de agua. Nótese que los pares anteriores de nivel de ejecución (1,-1) y (0,2) han sido reemplazados por el par de nivel de ejecución (2,2). La FIGURA 3G muestra el flujo de bit de salida correspondiente. La operación de ejecución surgida aparece para salvar un bit en este ejemplo. La FIGURA 2C muestra la imagen del mareaje de agua mediante la señal de salida, salidaMP del arreglo. El bloque de pixeles denotado 203 en esta FIGURA corresponde al bloque de video DCT del mareaje de agua 303 en la FIGURA 3F. Como ha sido intencionado a expresarse en la FIGURA 2C, la cantidad de marca de agua empotrando varia de bloque en bloque. En el ejemplo descrito arriba, solamente los coeficientes más pequeños (+1, -1) están calificados para la modificación. Esto habla acerca de la necesidad para la > compensación del impulso y vuelve a la marca de agua imperceptible, en particular si el número de coeficientes que es modificado es asegurado a un máximo dado (por ejemplo, 3). Debe se notado que los valores modificados de la marca
de agua +1 y -1 en la modalidad descrita arriba también puede ser asignada para decir la dirección (positiva y negativa respectivamente) en la cual el coeficiente de la imagen correspondiente está por ser modificado. Por ejemplo, puede ser prescrito que un rango dado de coeficientes negativos DCT (por
ejemplo, -2 y -1) son cambiados en ceros por el valor del coeficiente de la marca de agua +1, en donde como un rango de coeficientes DCT (por ejemplo, +2 y +1) son cambiados en ceros por un valore de coeficiente -1. Debe ser notado posteriormente que un flujo de video
elemental MPEG2 puede incluir bloques de campo modificado DCT y esquema de bloques DCT. De acuerdo a esto, el buffer de la marca de agua 140 puede estar arreglado para contener dos patrones de marca de agua, uno para bloques de campo codificado y otro para bloques de esquema codificado. El patrón siendo
utilizado para empotrar la marca de agua es entonces seleccionado por la selección campo/esquema de identificación de señal acomodada en la entrada del flujo de video. En el arreglo arriba descrito para empotrar una marca de agua en una señal codificada MPEG, la parte del "nivel" de los
pares de ejecución esta cambiada. Sin embargo, un nivel no es un valor actual de un coeficiente AC, pero una versión cuantificada de este. Por ejemplo, el para de nivel de ejecución (1,-1) en la FIGURA 3B puede de hecho representar un coeficiente X= -104. En otro bloque, el mismo para (1,-1) puede representar un coeficiente X= ' 6, " dependiendo del tamaño del paso cuantificador . No es necesario decir que el efecto en la perceptibilidad de la maraca de agua empotrada que cambiar el mismo coeficiente AC de -6 a 0. Por lo tanto puede haber una necesidad de control del proceso del empotramiento de la marca de agua de manera que el efecto ahi mismo en visibilidad es reducido. Para este fin, una modalidad posterior del método de empotramiento incluye el paso de controlar el número y/o posiciones de los coeficientes siendo modificados en dependencia sobre el tamaño del paso de cuantificación. En un decodificador MPEG, la cuantificación inversa es alcanzada al multiplicar el nivel recibido x(n) con el tamaño del paso de cuantificación. El tamaño del paso de cuantificación es controlado por una matriz de peso W(n) la cual modifica el tamaño del paso dentro del bloque y un factor de escala QS el cual modifica el tamaño del paso de (macro-) bloque a (macro-) bloque. La siguiente ecuación especifica la aritmética MPEG para reconstruir un coeficiente AC X(n) del nivel de decodificación x(n): X(n) =x(n) x W(n) xQS » En donde n denota el Índice para la examinación en zigzag . Hay varias maneras para generar un destino para el número de coeficientes que son permitidos a ser modificados. En '5 u'ríá modalidad, 'un nivel x(n)' puede solo ser m?dí'ficado" si el' tamaño del paso de cuantificación correspondiente Q(n) = W(n)x QS es menor que una entrada predeterminada. Diferentes entradas pueden entonces ser utilizadas para diferentes posiciones en un bloque DCT (ej . para diferentes índices n) . 10 En otra modalidad, el número máximo N de coeficientes que son permitidos a ser modificados en un bloque es una función del factor de escala cuantificador QS de manera que N disminuye mientras que QS aumenta. La credibilidad de esta modalidad puede ser entendida fácilmente si uno se da cuenta 15 que el factor de escala, ej . mientras más grande sea el paso de cuantificación, menos coeficientes pueden ser cambiados pa-ra leer el efecto imprescindible. Un ejemplo de aicha función es: N= c QS 20 En donde c es un valor constante dado. El factor de escala cuantificador QS es acomodado en flujos de bit MPEG como una combinación de un parámetro código_de escala y un parámetro q_escala_ tipo. El parámetro cuan tif i cador_de código_de escala es un código de bit-5. El
parámetro q_de tipo de_escala indica si dicho código representa un rango lineal de valores QS entre 2 y 62, o un rango exponente de valores entre 1 y 112. En ambos casos, el código es indicativo para el tamaño del paso. De acuerdo a esto, el término QS en la función arriba mencionada también puede ser reemplazado por el parámetro cuan ti f i cador_de código . También es ventajoso el controlar las posiciones de los coeficientes siendo modificados por el proceso de la marca de agua en dependencia sobre el tamaño del paso cuantificador . Mientras más grande sea el tamaño del paso cuantificador, más tarde se llevarán a cabo las modificaciones deseadas de la examinación en zigzag. Esto deja a los coeficientes de baja frecuencia in-afectados y restringe la visibilidad de la marca del proceso de empotramiento de la marca de agua a los coeficientes de alta frecuencia. La característica de controlar el máximo número y/o de posiciones de coeficientes modificables en dependencia sobre el tamaño del paso cuantíficador requiere solamente una modificación menoi del arreglo. Dicha modificación puede ser llevada a cabo de manera fácil por una persona con habilidad y por lo tanto no es mostrada. Un método y un arreglo son expuestos para empotrar una marca de agua en un flujo de video comprimido MPEG. La marca de agua (un patrón espaciado de ruido) es empotrada al descartar selectivamente los coeficientes cuantificados DCT más pequeños. Los coeficientes descartados son subsecuentemente surgidos en las ejecuciones de los coeficientes restantes. La decisión de di un coeficiente es descartado o no es hecha en base a un buffer de marca de agua pre-calculado y a un número de coeficientes ya descartados por bloque DCT de 8x8. Las ventajas de este método son (i) un sistema de control de tasa de bit (ii) y la no necesidad de la compensación del impulso. El algoritmo puede ser implementado en una manera muy eficiente, con . respecto a los requerimientos, de memoria y complejidad computacionai .