ES2389899T3 - Método y aparato para la codificación y decodificación de imágenes basadas en bordes - Google Patents
Método y aparato para la codificación y decodificación de imágenes basadas en bordes Download PDFInfo
- Publication number
- ES2389899T3 ES2389899T3 ES04100993T ES04100993T ES2389899T3 ES 2389899 T3 ES2389899 T3 ES 2389899T3 ES 04100993 T ES04100993 T ES 04100993T ES 04100993 T ES04100993 T ES 04100993T ES 2389899 T3 ES2389899 T3 ES 2389899T3
- Authority
- ES
- Spain
- Prior art keywords
- image
- edge
- coding
- esi
- eoe
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 title claims abstract description 76
- 238000007906 compression Methods 0.000 claims abstract description 16
- 230000006835 compression Effects 0.000 claims abstract description 15
- 238000003708 edge detection Methods 0.000 claims abstract description 10
- 238000005070 sampling Methods 0.000 claims abstract description 6
- 238000001514 detection method Methods 0.000 claims abstract description 4
- 238000007493 shaping process Methods 0.000 claims abstract 2
- 230000006978 adaptation Effects 0.000 claims description 9
- 238000012937 correction Methods 0.000 claims description 9
- 238000013459 approach Methods 0.000 claims description 8
- 230000008569 process Effects 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 5
- 235000019646 color tone Nutrition 0.000 claims description 4
- 230000003213 activating effect Effects 0.000 claims description 2
- 238000000605 extraction Methods 0.000 claims description 2
- 239000000243 solution Substances 0.000 description 29
- 238000001914 filtration Methods 0.000 description 24
- 230000006870 function Effects 0.000 description 15
- 230000033001 locomotion Effects 0.000 description 14
- 238000012545 processing Methods 0.000 description 10
- 230000009466 transformation Effects 0.000 description 9
- 230000008901 benefit Effects 0.000 description 8
- 238000000354 decomposition reaction Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000002441 reversible effect Effects 0.000 description 6
- 239000002699 waste material Substances 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 5
- 238000006073 displacement reaction Methods 0.000 description 5
- 230000009977 dual effect Effects 0.000 description 5
- 230000007704 transition Effects 0.000 description 5
- 230000000007 visual effect Effects 0.000 description 4
- 239000003086 colorant Substances 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 238000013213 extrapolation Methods 0.000 description 2
- 230000004927 fusion Effects 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000036961 partial effect Effects 0.000 description 2
- 230000008447 perception Effects 0.000 description 2
- 229920006395 saturated elastomer Polymers 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000011049 filling Methods 0.000 description 1
- 238000005194 fractionation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 238000010422 painting Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 238000007670 refining Methods 0.000 description 1
- 230000002040 relaxant effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000011426 transformation method Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 239000012224 working solution Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
- H04N19/14—Coding unit complexity, e.g. amount of activity or edge presence estimation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Método para la codificación de imágenes y vídeo basada en bordes, apta para un cifrado selectivo, caracterizadopor que comprende descomponer imágenes originales (I-I) de acuerdo con las siguientes etapas:- detección de bordes, para regularización, refinación de ampliaciones, y generación de una imagen de conjunto debordes (ESI);- descripción de bordes a través del posicionamiento y la conformación de la imagen de conjunto de bordes (ESI),para el muestreo de tono de gris/luminancia y/o color en la imagen de conjunto 10 de bordes (ESI), con el fin degenerar flujos continuos de bits de codificación (EdgeC) que describen la imagen de conjunto de bordes (ESI);- extracción de la imagen residual como la diferencia entre la imagen original (I-I) y la imagen basada en bordes ycodificación de acuerdo con cualquier norma de descripción/compresión de imágenes para generar uno o másflujos continuos de bits de codificación que describen el residuo (ResC);caracterizado por que dichos flujos continuos de bits de codificación (EdgeC) y dicho flujo continuo de bits decodificación que describe el residuo (ResC) alimentan un motor de cifrado (EE) para cifrado selectivo, en el que eltipo del cifrado aplicado a cada componente de la imagen se puede activar/desactivar y seleccionar, y por que dichadescripción de bordes comprende la detección de un contorno de un borde (EoE) que incluye píxeles que soncontiguos en cuanto a posición y con color/tono y codificación diferencial a la de dicho contorno de la dirección delborde (EoE) y por que se logra un nivel alto de cifrado únicamente ocultando los bits de la ubicación del punto departida o la dirección de partida del contorno.
Description
Método y aparato para la codificación y decodificación de imágenes basadas en bordes.
La presente invención se refiere a un método y a un aparato para la codificación y decodificación de imágenes y vídeo basadas en bordes, especialmente para una aplicación selectiva del cifrado y para servicios de redes flexibles.
La codificación de vídeo se conoce en general desde hace tiempo como una forma de manipular imágenes con el fin de obtener una versión comprimida digital de las mismas. La primera etapa, en caso de ser necesaria, es la conversión de la señal de vídeo analógica en una imagen digital adecuada (fija o en movimiento). La segunda fase es comprimir la imagen de vídeo digital, con el fin de reducir la cantidad de información necesaria para describir el contenido visual, a través de acciones adecuadas como reducción de la redundancia, adaptaciones del formato, cifrado de vídeo, de manera que sea posible transmitirla y/o almacenarla con unos costes menores. La compresión puede ser o bien sin pérdidas o bien con pérdidas.
Las técnicas de compresión existentes actualmente hacen un uso extenso de la transformación de imágenes: en particular, las soluciones más usadas (por ejemplo, MPEG, H.264 para vídeo, JPEG para imágenes) usan transformadas DCT aplicadas sobre bloques de píxeles de formas fijas. Las mismas presentan varias ventajas aunque conducen también a algunas limitaciones; por ejemplo:
- -
- no son planteamientos de codificación “naturales” y no tienen un buen rendimiento (en cuanto a calidad y ocupación) en algunos casos, tales como: imágenes con bordes fuertes, imágenes sintéticas;
- -
- gestionan de la misma manera todas las contribuciones de alta frecuencia (tanto los bordes reales como los elementos de textura);
- -
- tienden a crear bordes artificiales (artefactos) en los límites de los bloques: estos se pueden superar solamente de forma parcial usando etapas de procesado adicionales (filtros de desbloqueo);
- -
- no son siempre eficaces en la realización de una predicción “intra-cuadro” (es decir, la codificación de un bloque de manera diferencial con respecto a bloques contiguos): esto no es aplicable cuando existen bordes fuertes dentro del bloque;
- -
- no son siempre eficaces en la realización de la estimación y compensación de movimiento, en la predicción “intercuadro” (es decir, la codificación de un bloque de manera diferencial con respecto a un cuadro transmitido previamente): no presenta un buen rendimiento con contornos de imágenes, puesto que funciona usando bloques de píxeles de formas fijas;
- -
- no pueden soportar fácilmente la estimación y la compensación de movimiento basadas en información de bordes (lo cual haría que mejorasen las limitaciones del punto previo): en la actualidad ninguna información de bordes se codifica y se puede usar como referencia para este tipo de estimación de movimiento;
- -
- resultan difíciles de cifrar de una manera normalizada: se han propuesto varios algoritmos de cifrado con el fin de garantizar imágenes y vídeos comprimidos, especialmente en el formato JPEG y MPEG. Algunos de ellos garantizan una alta seguridad de datos en detrimento del tiempo de procesado, cifrando el flujo continuo de bits completo, mientras que otros aplican varias técnicas de cifrado selectivo. Habitualmente, dichos métodos determinan la porción del flujo continuo de bits a cifrar aprovechando diferentes analizadores sintácticos de flujos, en función de los componentes que se deben cifrar. Algunos algoritmos garantizan la seguridad de los flujos continuos de bits procesando los datos más importantes, tales como los cuadros I o Macrobloques I en vídeos de tipo MPEG o los coeficientes DC de la transformada DCT en el marco JPEG, mientras que algunos otros algoritmos cifran los encabezamientos que preceden a los datos, aunque la mayoría de estos métodos requieren un decodificador no normalizado;
- -
- se pueden mejorar con el fin de ser procesadas eficazmente mediante una etapa de aplicación digital de marcas de agua (para el SE – Cifrado Selectivo): típicamente, la soluciones más flexibles hacen uso de una etapa adicional para el reconocimiento de las regiones más significativas desde el punto de vista de la percepción, es decir, aquellas que transportan la mayor parte de la información visual, típicamente formas y bordes, con el fin de aplicarles marcas de agua de manera más intensa;
- -
- no son adecuadas para una calidad satisfactoria desde el punto de vista de la percepción, conocida a priori: no se puede saber cuál es el grado de la compresión DCT a usar (es decir, el número de componentes DCT a especificar) con el fin de disponer de una descripción mínima, suficiente para el reconocimiento de la imagen, a no ser que se vea el resultado final de la codificación. Esto es debido a una fuerte dependencia del resultado de la codificación con respecto a la naturaleza de la imagen, y en particular a la correlación entre bordes (y la conservación de bordes) y frecuencias espaciales elevadas.
Por lo tanto, el estado de la técnica para la codificación de vídeo presenta algunas carencias críticas y margen de mejora en su rendimiento, especialmente desde el punto de vista del cifrado (y el SE): sigue requiriendo operaciones complicadas, en términos de procesado y capacidad de memoria, en el estado actual de la técnica. El cifrado es de hecho un procesado que consume muchos recursos, el cual hace un uso frecuente de operaciones computacionales complejas, y resulta particularmente crítico de manera especial si se ven implicados dispositivos y terminales pequeños y móviles: es importante limitarlo sin comprometer la gestión de derechos digitales (DRM).
Por lo tanto, el objetivo principal de la presente invención es resolver los problemas antes mencionados y proporcionar un método y un aparato para la codificación y decodificación de imágenes y vídeo basadas en bordes, especialmente para la aplicación selectiva del cifrado y servicios de redes flexibles, que codifiquen información basada en bordes de manera independiente, lo cual, a partir de la explicación anterior, parece ser el aspecto más crítico (por la importancia, la necesidad de recursos y la dificultad de codificación).
La idea básica de la presente invención se refiere a la descomposición de imágenes en los siguientes componentes “naturales” básicos:
- -
- posición de los bordes;
- -
- muestreo de tonos de gris/luminancia y/o color a lo largo de los bordes (de manera independiente o en conjunto con lo anterior);
- -
- imagen “uniforme” residual codificada de acuerdo con cualquier norma de descripción/compresión de imágenes.
El documento de J. K. YAN ET AL., “ENCODING OF IMAGES BASED ON A TWO-COMPONENT SOURCE MODEL”, IEEE TRANSACTIONS ON COMMUNICATIONS, IEEE INC., NUEVA YORK, US, vol. 25, n.º 11, 1 de Noviembre de 1977, páginas 1315 a 1322, ISSN: 0090-6778, proporciona una exposición de la descomposición antes mencionada.
El procedimiento anterior se corresponde conceptualmente con el método “humano” usado para dibujar: el punto de partida consta de las formas (bordes) que se rellenan sucesivamente con colores.
La primera etapa es necesaria para distinguir entre áreas con transiciones uniformes (correlación espacial fuerte) y áreas con bordes definidos (frecuencias espaciales altas).
Por otro lado, esto permite suprimir las transiciones bruscas de color, las cuales son difíciles de describir mediante codificadores de imágenes tradicionales (como los basados en la DCT): por esta razón, la segunda etapa consta de las muestras de color a lo largo de y en el interior de las áreas de bordes.
Las dos primeras etapas ofrecen una vista aproximada de la vista original (extrapolando y relajando la información de color provista de los bordes).
Lo que queda es una imagen de bajo contenido que es, esencialmente, la diferencia entre la imagen construida mediante las dos primeras etapas y la imagen original (residuo). Por lo tanto, el residuo se debe procesar adicionalmente con el fin de codificarlo con un método tradicional de codificación de imágenes, por ejemplo los basados en la DCT o los basados en Ondículas.
La invención es adecuada para varias aplicaciones, en primer lugar para el cifrado selectivo SE, ya que la mayor parte de la información visual se codifica de manera independiente en el borde, y este tipo de información resulta más sencilla de ocultar, tal como se mostrará.
La codificación de vídeo debe ser también adecuada para un uso eficaz de recursos de red (en particular en el IP y en una red de paquetes generalizada): el esquema de descomposición que se propone en la invención también puede ayudar a una transmisión eficaz a través de la Capa de Adaptación de Red (NAL).
Por lo tanto, el método para la codificación y decodificación de imágenes y vídeo basadas en bordes, según la invención, mejora los esquemas de codificación existentes en términos de facilidad de cifrado (Encr) y cifrado selectivo (SE), de soporte de capa de adaptación de red (NAL) flexible, y de descomposición “perceptiva” de la imagen en componentes complementarios e intrínsecamente diferentes.
Por otra parte, la invención presenta la ventaja de ser retrocompatible y de integrarse fácilmente en cualquier solución (existente o futura) de codificación y decodificación, en forma de un bloque de pre-procesado o postprocesado.
Estos y otros objetivos se logran por medio de un aparato y un método según se describe en las reivindicaciones adjuntas, que se consideran una parte integrante de la presente descripción.
La invención se pondrá totalmente de manifiesto a partir de la siguiente descripción detallada, proporcionando a título de mero ejemplo ejemplificativo y no limitativo, que debe ser leída en referencia a las figuras de los dibujos adjuntos, en los que:
la Fig. 1 muestra un diagrama de bloques del codificador según la invención;
la Fig. 2 muestra un diagrama de bloques del decodificador según la invención;
las Figuras 3, 4, 5 y 6 muestran ejemplos de implementación de las etapas del procesado de áreas de borde en el
codificador;
las Figuras 7 y 8 muestran ejemplos de implementación de las etapas del procesado de bordes fila-a-fila en el codificador; la Figura 9 muestra un ejemplo de implementación de la etapa del procesado de bordes fila-a-fila en el
decodificador;
las Figuras 10, 11 y 12 muestran ejemplos de implementación de la etapa del procesado de propagación de bordes;
la Figura 13 muestra un diagrama que representa una forma para tratar la transformación del residuo;
las Figuras 14-0 a 14-7 muestran ejemplos de codificación y decodificación de una imagen de muestra obtenida en
las diversas etapas del método de la invención.
En lo sucesivo, se describirá, en referencia a los dibujos adjuntos con una descripción bloque a bloque, el método
para la codificación y decodificación de imágenes y vídeos, basadas en bordes, objeto de la invención.
En la fig. 1, se muestra un diagrama de bloques del codificador de imágenes de vídeo, dividido en bloques funcionales principales. A continuación se proporciona una descripción general.
Cualquier formato de imagen, no comprimido o descomprimido, (o formato de cuadro, en caso de que se considere una secuencia de vídeo) es adecuado para el esquema de compresión propuesto. El formato usado en el ejemplo no limitativo que se describe a continuación es el formato YUV ampliamente conocido, en el cual la imagen en color se descompone en un componente de luminancia (Y) y dos componentes de crominancia (U, V).
Para simplificar, el método se presentará en referencia a una imagen de entrada I-I con las siguientes
características:
-imagen fija;
-formato digital YUV no comprimido;
-la luminancia es el único componente no trivial (se hará referencia al mismo como tono de gris o color).
Se explicará por separado cómo aplicar y ampliar las técnicas inventadas a los otros posibles casos.
La idea básica de este bloque es, no solamente identificar los bordes, sino también proporcionar una “vista de
bordes”, que sea:
-sencilla de codificar de una “manera comprimida”;
-capaz de aceptar todas las frecuencias espaciales altas y dejar imágenes “uniformes”;
-capaz de identificar los colores de la imagen a ambos lados del borde.
Por tanto, este bloque:
-acepta una imagen de entrada I-I;
-detecta los bordes, creando un conjunto de bordes ES, una colección de los puntos de borde de la imagen;
- -
- amplía el ES, de modo que se tienen en cuenta los dos lados de cualquier transición de color fuerte;
- -
- hace que el ES y su contorno sean lo más regulares posibles; -opcionalmente puede añadir al ES algunos puntos y líneas (por ejemplo, para eliminar más detalles de la imagen o para interrumpir un área grande sin borde y evitar la saturación en el Bloque B); -muestrea la I-I dentro del ES, creando una imagen de conjunto de bordes ESI, que es la salida final del bloque A.
Este bloque está destinado a proporcionar una codificación para la imagen de conjunto de bordes ESI, de modo que:
-acepta una ESI como entrada;
-genera uno, o más, flujos continuos de bits de codificación EdgeC que describen el borde y alimentan un Motor de
Cifrado EE opcional; -genera una salida adicional OB, obtenida a partir de la refinación de ESI, para alimentación del bloque C: puede
ser la propia ESI o una ESI con una clasificación adicional de contorno de ESI. Para codificar la ESI se pueden usar varios métodos. Los métodos de codificación tradicionales no funcionan bien con imágenes de bordes: los formatos tales como el
BMP, el RAW y el PGM requieren demasiados bits, mientras que los métodos basados en la DCT empeoran su rendimiento sobre imágenes tales como una ESI y similares (el número de transiciones fuertes es aproximadamente tres veces el de I-I); por otro lado, los formatos tales como el JBIG y el PBM no pueden comprimir la suficiente información de posición de bordes.
Por esta razón, se proporcionan dos métodos alternativos:
-(Ba) el método explicado en la descripción detallada posterior, concretamente, codificación independiente de:
- 1.
- ubicación de bordes,
- 2.
- color sin pérdidas/con pérdidas a lo largo del contorno del borde;
- 3.
- color dentro del borde;
- -
- (Bb) un método de codificación híbrido que usa soluciones existentes de codificación de imágenes: se construye una imagen constituida por bordes y su relajación uniforme. Por ejemplo, con este fin, se puede usar una imagen basada en bordes, por ejemplo la imagen basada en bordes EBI producida por medio del bloque C, o (mejor) una imagen obtenida de la misma manera pero usando bordes antes de su filtrado. Dichas imágenes se pueden codificar fácilmente con codificadores existentes (incluyendo métodos basados en la DCT).
Puesto que el segundo método (Bb) se obtiene a partir del primero (Ba), el mismo no se explicará adicionalmente de forma detallada. Además, el primer método presenta la ventaja de generar códigos sencillos de cifrar (únicamente es necesario cifrar algunos bits) y parece tener un rendimiento global y acepta menos bits. Por esta razón, se considera la solución preferida para el Bloque B.
Este bloque está destinado a proporcionar la codificación de la información visual que no se puede extrapolar a partir de la imagen de conjunto de bordes ESI. Con este fin, el Bloque C: -acepta como entradas información OB sobre la imagen de conjunto de bordes ESI obtenida a partir del bloque B y la imagen original I-I; -extrapola la información ESI y genera una Imagen Basada en Bordes EBI; -genera el Residuo RES como una especia de “corrección” de la imagen que se puede extrapolar por los bordes individuales con respecto a la imagen original I-I; -modifica el RES de manera que se pueda codificar fácilmente; -codifica esta información, generando un (o más) flujo continuo de bits de codificación ResC que describe el residuo
y alimenta un Motor de Cifrado opcional.
Por lo tanto, el residuo tiene la finalidad principal de proporcionar una corrección para la predicción de imágenes basadas en bordes, nuevamente, en este caso, se pueden usar dos métodos alternativos:
- -
- (Ca) el método explicado a continuación: el residuo se define aquí como la diferencia entre la imagen original I-I y la imagen basada en bordes EBI; este método se aplica a ambos métodos Ba y Bb para la codificación de la ESI descrita anteriormente;
- -
- (Cb) un método de codificación diferencial (aplicable únicamente al caso Ba): este es nuevamente un método híbrido. Mientras se usan métodos de extrapolación para la información de bordes lo que se codifica es la diferencia entre esta última y la imagen original. Por tanto, los colores originales en ese instante pueden ser conocidos virtualmente también en el receptor y se usan para predecir la siguiente etapa.
Esto se corresponde con un tipo de método de derivación que conduce a imágenes muy deficientes que se pueden transformar de acuerdo con métodos de transformación del residuo descritos posteriormente y se pueden codificar con cualquier técnica de codificación de imágenes.
Puesto que el método Cb parece ser menos estable (cualquier codificación, con pérdidas, del residuo generado mediante Cb arruina de forma fatal la reconstrucción), el mismo no se describe en profundidad.
Por el contrario, el método Ca se considera el preferido y se describirá de forma más detallada.
En ambos casos (Ca y Cb), el Residuo RES contiene valores positivos y negativos, muy bajos en cuanto su “promedio” (bastante próximo a cero): puesto que la invención pretende ser compatible con cualquier codificador de imágenes existente o futuro, es necesario conseguir un residuo adecuado para ellos.
Por esta razón, se prevé también un bloque de transformación que realice principalmente las siguientes acciones:
- -
- elevar las diferencias con el fin de tener únicamente valores positivos;
- -
- amplificar los valores de una manera lineal o no lineal, para ayudar al codificador a gestionarlos;
- -
- saturar los valores fuera de escala.
Finalmente, con el fin de mejorar el comportamiento global de la cadena, se prevé la selección de alguna área para codificarla mejor (en el caso de la codificación con pérdidas): estos bloques se pueden seleccionar sobre la base del interés del área, de la posición o con cualesquiera criterios.
Los componentes de imagen independientes, EdgeC y ResC, descritos anteriormente y generados mediante los bloques B y C, se pueden cifrar de modo eficaz y selectiva en una capa de aplicación: esto habilita la mayoría de las aplicaciones industriales que se describen posteriormente.
En particular, el selector S representado en la Fig. 1 tiene la función de activar y desactivar y seleccionar el tipo de cifrado sobre cada componente de imagen.
De forma más detallada, se puede usar un planteamiento diferente para cifrar las diferentes contribuciones de la imagen:
- -
- puesto que el residuo tiene muchas características de imágenes naturales, el mismo se puede tanto codificar como cifrar con varias técnicas típicas de Multimedia (por ejemplo, marcas de aguas digitales, métodos numéricos, …); evidentemente se cumple lo mismo para bordes cuando se describen por medio de la imagen basada en bordes EBI (Bb).
- -
- el método de descripción de bordes de (Ba) se puede cifrar en cambio fácilmente con un esfuerzo reducido. Resultará más claro después de los detalles proporcionados para las soluciones preferidas, aunque ocultando solamente algunos bits (incluso solamente las coordenadas del punto de inicio del borde) se hace difícil recuperar otra información. Resulta todavía más complicado si se cifran selectivamente más bits (algunas direcciones).
La Capa de Adaptación de Red (NAL) tiene la función de adaptar los datos codificados y cifrados, recibidos del bloque EE, a recursos de la red. Por ejemplo, en el caso de una red por paquetes, la NAL segmenta los datos y proporciona una forma de rellenar todos los campos accesorios para completar cada paquete.
Puesto que se puede usar cualquier red y norma o solución de transmisión, esta sección pretende mostrar cómo se puede usar opcionalmente el desensamblaje de la imagen en componentes independientes para lograr un beneficio adicional, es decir, un uso más eficaz de recursos de la red (en particular una red IP y por paquetes), proporcionándose selectivamente de esta manera una prioridad diferenciada y un grado de flexibilidad para los componentes de la imagen codificados.
De forma más detallada, la invención puede mejorar la eficaz adaptación NAL del vídeo hacia los recursos de transmisión puesto que:
- -
- la imagen se desensambla de manera natural en unidades independientes más pequeñas;
- -
- la información relacionada con bordes (es decir proveniente del bloque B) se puede asignar a una importancia de red superior (por ejemplo, una prioridad superior, una menor política de descartes de tramas/paquetes correspondientes) de manera que, incluso en caso de congestión de la red, los mismos sigan estando disponibles para un servicio parcial aunque todavía continuo;
- -
- de manera similar se puede forzar por medio de algún mecanismo de redundancia;
- -
- en caso de que no se realice un cifrado (de manera completa o parcial) en la capa de aplicación (Motor de Cifrado), la NAL puede seleccionar qué paquetes se pueden cifrar en la capa de red (solución de cifrado multicapa).
La codificación final que se obtiene como resultado del bloque de NAL se puede considerar la salida final del codificador y puede entregar de manera flexible servicios protegidos multimedia (MPS) mejorados. Posteriormente se ilustran algunas aplicaciones industriales posibles.
En la fig. 2 se muestra un diagrama de bloques del decodificador de imágenes de vídeo, dividido en bloques funcionales principales. A continuación se proporciona una descripción general.
La mayoría de las etapas que se realizan en el lado del codificador son conceptualmente reversibles (excepto para las codificaciones con pérdidas) y se pueden realizar dualmente en el decodificador: el decodificador está destinado a la reconstrucción de imágenes y puede calcular contribuciones de EdgeC y ResC con el fin de volver a ensamblar una imagen de salida O-I que sea la versión decodificada de I-I y se pueda visualizar.
En la fig. 2, se muestra un diagrama de bloques del decodificador de imágenes de vídeo. El mismo es prácticamente simétrico al codificador y difiere con respecto a este último únicamente de forma leve, siendo las diferencias principales las siguientes:
- -
- en el lado del receptor no se realiza detección de bordes (se recibe información de bordes), de modo que no se proporciona un bloque correspondiente al bloque A del codificador;
- -
- el bloque B’ realiza las funciones inversas del bloque B: acepta EdgeC y lo decodifica para generar una imagen de conjunto de bordes ESI’;
- -
- el bloque C’ realiza las funciones inversas del bloque C: acepta la ESI’ de B’ y genera una imagen basada en bordes EBI’, acepta ResC y construye Residuo RES’, finalmente, vuelve a ensamblar RES’ y EBI’ en la salida, por ejemplo, hacia una unidad de visualización O-I;
- -
- por regla general, todas las etapas de cálculo realizadas en el codificador sobre cada uno de los componentes de la imagen se realizan dualmente en el decodificador: esto se cumple también para la solución preferida del decodificador, como dual de la solución preferida de decodificador;
- -
- adicionalmente, algunos artefactos provenientes de aproximaciones y del nuevo ensamblaje se pueden suprimir mediante etapas de filtrado “inteligente” y “no lineal”.
Por lo que a los bloques opcionales se refiere, los mismos también se gestionan de forma simétrica:
- -
- el Motor de Descifrado DE es simétrico al Motor de Cifrado, y recibe una señal de NAL y suministra contribuciones de EdgeC y ResC a los bloques B’ y C’ respectivamente;
- -
- NAL vuelve a ensamblar información de MPS (en el codificador la desensamblaba) e interpreta información de red (tal como redundancia y cifrado de la capa de red) aunque podría ser transparente a la información de prioridad fijada por la NAL en el codificador.
A continuación se describe una implementación preferida para el codificador (fig. 1) y el decodificador (fig. 2).
Cuando resulte posible, los dos bloques correspondientes del codificador y del decodificador se describirán simultáneamente.
A este bloque se le alimenta la imagen de entrada I-I, preferentemente en el formato YUV digital, y el mismo devuelve un mapa que contiene la posición de los bordes detectados y una imagen generada mediante el muestreo de la I-I según el mapa de bordes.
Para producir la salida deseada, son necesarias las siguientes acciones:
- -
- a la imagen de entrada I-I (por ejemplo, la imagen de la fig. 14-0) se le aplica un algoritmo de detección de bordes: se puede usar cualquier operador de detección de bordes (por ejemplo, Canny, Sobel, no lineal – para fomentar bordes largos, Mumford-Shah-Euler): esto produce una primera versión del conjunto de bordes ES; típicamente, estos operadores se deben activar en sus parámetros, de manera que existen dos posibilidades: o bien estos parámetros se miden una vez y a continuación se establecen (fijan) o bien los mismos pueden cambiar en función del ES (por ejemplo, su medición): esto implica una realimentación opcional en forma de señal de activación de umbral t-t, por ejemplo de los bloques SER y RTDC (véase posteriormente);
- -
- a continuación el conjunto de bordes ES se ensancha, de manera que se tengan en cuenta por lo menos ambos píxeles de una transición de bordes fuertes (en el caso de una línea, se aceptan sus dos lados – por ejemplo, superior e inferior). Esta situación se representa en la fig. 3, en donde el área de bordes original ES se ensancha con una vecindad de 1 píxel ES-AW.
- -
- La imagen de entrada I-I se muestrea en píxeles pertenecientes a ES, produciendo como resultado la imagen de la fig. 14.1A.
El conjunto de bordes ES y la imagen muestreada producida por el DED-S se deben regularizar con el fin de hacer que el proceso de codificación de la información de bordes resulte más sencillo.
El bloque SER realiza las siguientes operaciones.
- -
- Llenado de agujeros del área de bordes HF-EA. La idea es incluir en el área de bordes aquellos píxeles que tienen un número significativo de píxeles vecinos que pertenecen a bordes: por ejemplo, sean N los píxeles en torno al píxel bajo prueba (P), en su cruz, que pertenecen a la imagen (habitualmente 4; 3 en el marco de la imagen, …), si N-1 de ellos pertenecen al borde, P se incluye también en el borde (véase la figura 4). Esta etapa se puede realizar más de una vez y está destinada a conseguir que las áreas de bordes sean más continuas y regulares: esto es útil para disponer de bordes más largos (pocos puntos de partida) con contornos estadísticamente “uniformes” y proporciona una gran ventaja en el bloque de Descripción de Bordes (B). El método se ilustra en la fig. 4.
- -
- Estrechamiento de bordes EA-N, es decir eliminación de singularidades aisladas (bordes constituidos por píxeles individuales) y esquinas afiladas (ángulos <90º). El último caso, en particular, es para conseguir que el contorno del borde (Borde de Borde – EoE) sea “uniformes”, y consecuentemente es un truco para obtener un mejor rendimiento del EoE-DE en el bloque B: un píxel perteneciente a EoE se descarta cuando dos píxeles vecinos en torno al mismo en su cruz pertenecen al propio EoE. Este último caso se muestra en la fig. 5; véase también el ejemplo de la imagen de la fig. 14-1B.
El bloque SER devuelve el conjunto de bordes ES procesado y la imagen de conjunto de bordes ESI regularizados que alimentan el bloque B.
En caso de imágenes en movimiento, el mismo puede alimentar opcionalmente un sistema de predicción de movimiento MP (véase más abajo); una opción adicional prevé que el SER realimente al DED-S con su información t-t sobre una medición del ES para activar parámetros de detección del DED-S.
Opcionalmente se pueden añadir algunas fases de manipulación adicionales: por ejemplo, podría resultar deseable interrumpir áreas grandes sin ningún borde detectado con el fin de incrementar la información basada en bordes, es decir reducir una posible “saturación” en el bloque RTDC, o eliminar más detalles de la señal RES o incluso reconstruir (puzzle) RES. Por este motivo, ES y ESI se pueden ensanchar arbitrariamente.
La entrada del bloque EoE-IE-S está constituida por el conjunto de bordes ES y la imagen de conjunto de bordes ESI regularizados, y su objetivo es descomponer adicionalmente la imagen, distinguiendo dos tipos de información dentro de las áreas de borde, Borde de Borde EoE y Borde Interno IE:
- -
- el Borde de Borde EoE está constituido por los píxeles del borde que se sitúan en el límite entre bordes y áreas uniformes. Esta información es muy importante para el proceso proporcionado por el bloque de EBI-E y se le debe dotar de una precisión mayor. Por otra parte, EoE permite localizar los bordes dentro de la imagen y es la información estrictamente necesaria para describir la forma y la posición del ES completo.
De forma más detallada, cuando se especifica el contorno del área de bordes, está disponible la información completa sobre la posición de los bordes: todavía podría surgir alguna ambigüedad por una imagen de tipo anillo que pudiera hacer confusa la clasificación (por ejemplo, dudas sobre qué lado entre el int/ex pertenece al borde): de todos modos esta duda se supera si se decide que el EoE debe incluir los píxeles de la primera fila del cuadro (límite superior de la imagen), que pertenecen al área de borde.
Una topología de EoE de este tipo puede resolver cualquier situación ambigua: cuando todos los EoE están disponibles, la clasificación de las áreas surge a partir de una simple exploración columna-a-columna, conmutando entre Borde (E) y No Borde (NE) siempre que se encuentra un píxel de EoE (prestando atención a los EoE verticales, en los cuales únicamente conmuta el primer píxel), y con la inicialización con la información proveniente de la primera fila.
Finalmente el EoE incluye píxeles que son contiguos en cuanto a posición y color/tono por construcción, de modo que se pueden codificar fácilmente juntos. El EoE alimenta EoE-DE y EoE-CE; en la imagen de la fig. 14.2A se muestra un ejemplo.
- -
- en cambio, el Borde Interno IE describe el área de bordes que está rodeada por el EoE y la posición de cada píxel perteneciente a cada área se determina automáticamente, conocida la posición de los píxeles de EoE; por esta razón, se debe especificar únicamente el valor del tono de gris de los píxeles pertenecientes a esta área. El IE alimenta al IE-CE, tal como se muestran en la imagen de la fig. 14.2B.
El EoE-IE-S tiene un bloque correspondiente en el decodificador, dentro del bloque B’ (fig. 2): se denomina Reensamblaje de Bordes (ER) y lleva a cabo el reensamblaje de las contribuciones de EoE e IE recibidas y decodificadas.
En el caso de imágenes en movimiento, puede alimentar opcionalmente a un sistema de predicción de movimiento en MP.
El EoE se ha construido de tal manera que:
- -
- tiende a abarcar conjuntos grandes y regulares de píxeles conectados (que segmentan la imagen);
- -
- cada conjunto conectado de EoE, con el que se entra en contacto en el orden de exploración de trama, se puede describir como una parte de la ubicación global de EoE;
- -
- cada conjunto conectado de EoE tiende a ser conservador en sus direcciones y es inhabitual que su dirección se mantenga cambiándose de manera continua píxel-tras-píxel. Por otra parte, cuando la dirección cambia en un píxel, es probable que se obtengan las últimas direcciones. En otras palabras, el EoE tiene “memoria”.
Por tanto, la codificación preferida se basa en una codificación diferencial de la dirección del EoE, por ejemplo, por medio de un planteamiento de cadena de Markov: el símbolo “0” se asigna a la última dirección (o a la dirección horizontal derecha si no hubiera ninguna), el “1” a la dirección próxima a la dirección “0” y más próxima a la penúltima dirección. Los otros símbolos se asignan en un sentido de las agujas del reloj o contrario a estas últimas, en concordancia con los 2 primeros símbolos.
Gracias a esta elección, el EoE está constituido por secuencias largas de 0, 1 y 7 (el 4 nunca se usa, por definición).
Estos criterios se representan en la fig. 6 (los píxeles previos se rellenan con gris claro; los píxeles actuales con gris oscuro).
El resultado final se puede codificar por entropía en el bloque EC con el fin de obtener un buen nivel de compresión.
Las operaciones realizadas por el EoE-DE se pueden ejecutar en orden inverso en el decodificador por medio de un bloque correspondiente denominado Decodificador de Direcciones de Contornos de Bordes – (EoE-DD).
El tono de gris del borde se debe lograr en un compromiso entre la precisión de la información codificada y su ocupación.
Por esta razón, opcionalmente se han implementado algunos trucos:
- -
- no se ha usado la totalidad de los 8 bits de base para codificar el gris;
- -
- el número de bits usado es diferente para el contorno (EoE) y la parte interna del borde (IE) (debido a que los píxeles del contorno influyen considerablemente en el residuo, a través de la propagación): se logran buenos resultados usando respectivamente 4 y 2 bits (o bien truncando o bien redondeando los números); se hará referencia a estas aproximaciones respectivamente como H4 y H2.
- -
- en los bordes (bloque EF) se aplica una especie de filtro no lineal (por lo menos en el decodificador) para superar los artefactos provocados por las aproximaciones.
El gris de EoE se codifica de manera coherente como topología EoE: en el comienzo de cada EoE, habrá un símbolo de partida (símbolo dedicado) y el tono de gris inicial (tono de gris en el punto de partida); a continuación se sigue el contorno en cuanto a codificación direccional (EoE-DE), aunque en este momento para codificar de forma diferencial el tono de gris (en otras palabras, se codifica la diferencia entre el tono de gris del píxel actual y el previo).
Por definición del EoE, los píxeles contiguos en el contorno de los bordes adoptan valores contiguos de tonos de gris: consecuentemente, la codificación diferencial del tono de gris generará principalmente valores pequeños centrados en torno a cero; en el caso de H4, por ejemplo, la codificación podría variar virtualmente en [-16, +16], aunque típicamente [-8, +8] (siempre en ese intervalo, con algunas aproximaciones) con un pico estadístico afilado en cero.
En otras palabras, el resultado final es particularmente adecuado para la codificación por entropía y se envía al bloque EC.
En el decodificador son necesarias operaciones duales con respecto a las realizadas en el codificador. De forma más detallada, un bloque correspondiente denominado Decodificador de Colores de Contornos de Bordes EoE-CD las realiza en el decodificador. La única diferencia significativa es que mientras que el EoE-CE puede realizar una aproximación con pérdidas, el EoE-CD obviamente no puede recuperarla.
Para describir completamente el área de bordes, en esta fase falta la información sobre el tono de gris dentro del área de bordes, y la misma no se ha codificado todavía: esto lo realiza el IE-CE.
Puesto que todavía hay cierta información sobre la correlación de la imagen que se puede aprovechar (en el interior de un borde sigue existiendo una fuerte relación entre píxeles) la idea es la de intentar suponer los valores de gris y transmitir (es decir, codificar) solamente la corrección de la “predicción”.
En esta fase la aproximación H2 previamente mencionada se realiza sobre el tono de gris.
El método adoptado funciona explorando fila-a-fila: en primer lugar, en cada fila, los bordes que se encuentran se clasifican de acuerdo con su posición con respecto a la posición de los bordes en la línea previa, excepto en la primera fila.
Defínase la superposición del Borde1 (fila X1, columna [Y1a, Y1b]) y el Borde2 (fila X1+1, columna [Y2a, Y2b]), la intersección [Y1a, Y1b]n[Y1a, Y1b]. Defínase también el Borde1 (fila X1) “progenitor” del Borde2 (fila X1+1), si el Borde1 y el Borde2 se solapan. En este caso el Borde2 es hijo del Borde1.
Se diferencian los siguientes casos, y los mismos se muestran en la fig. 7 en donde se presentan dos filas consecutivas:
- -
- Nacimiento (o Nuevo): ningún solapamiento con ningún borde de la línea previa;
- -
- Muerte: ningún solapamiento con ningún borde de la línea siguiente; -División: un borde en la fila X1 (parcialmente) se solapa con dos (o más) bordes en la fila X1+1 (denominados borde hijo izquierdo y derecho);
- -
- Fusión: un borde en la fila X1 (parcialmente) se solapa con dos (o más) bordes en la fila X1-1 (denominados borde progenitor izquierdo y derecho);
- -
- Normal: los otros casos.
Con el fin de mejorar adicionalmente el comportamiento, se añaden los siguientes casos, y los mismos se muestran en la fig. 8, en donde se representan nuevamente dos filas:
- -
- Nuevo: también la segunda línea (Normal) después de un Nacimiento;
- -
- Ensanchamiento: un sub-caso del borde Normal; cuando el borde en la fila X1 es más ancho – por lo menos L píxeles (L=3) – que su borde progenitor en la fila previa (X1-1);
- -
- Estrechamiento: un sub-caso del borde Normal; cuando el borde en la fila X1 es más estrecho – por lo menos M píxeles (M=3) – que su borde progenitor en la fila previa (X1-1);
- -
- Salto: siempre que se intercalen menos de J píxeles (por ejemplo, J=3) entre dos bordes (Ea, Eb) en la misma línea, Ea y Eb se consideran como un todo (el mismo borde), a clasificar de acuerdo con criterios previamente establecidos.
Una vez que los bordes de una línea se han clasificado, los mismos se asocian a operadores de desplazamiento Gc_sx, Gc_dx, Gc_D, Gg_sx, Gg_dx, Gg_D definidos de la siguiente manera:
Gc_D: es el desplazamiento de la línea actual que minimiza la SAD (suma de diferencias absolutas) entre el borde bajo evaluación y su “progenitor”, de acuerdo con la siguiente fórmula:
Gc_sx: igual que Gc_D aunque aplicado a las mitades izquierdas del Borde y de su progenitor. Gc_dx: igual que Gc_D aunque aplicado a las mitades derechas del Borde y de su progenitor
Gg_sx: el desplazamiento entre el píxel más a la izquierda en el borde y el píxel más a la izquierda en el borde de su
progenitor.
Gg_dx: el desplazamiento entre el píxel más a la derecha en el borde y el píxel más a la derecha en el borde de su
progenitor.
Gg_D: el promedio de Gg_sx y Gg_dx.
Para realizar la predicción que se describe a continuación se pueden usar Gc’s del borde “progenitor” de la línea
previa (extrapolación de la pendiente), Gg’s del borde de la línea actual, o un promedio de los mismos; por esta
razón se hace referencia genéricamente a G_D, G_sx, G_dx.
A continuación la predicción se realiza de esta manera:
-Normal: el Borde E2 actual se predice como el desplazamiento G_D de su borde progenitor.
-División: el Borde hijo izquierdo se predice usando G_sx (de su progenitor); el Borde hijo derecho se predice
usando G_dx (de su progenitor).
- -
- Fusión: la mitad izquierda y la mitad derecha se predicen respectivamente a partir del progenitor izquierdo (con su G_D1) y a partir del progenitor derecho (con su G_D2). -Ensanchamiento: la mitad izquierda y la mitad derecha se predicen ambas a partir del borde progenitor aunque
usando respectivamente G_sx y G_dx.
- -
- Estrechamiento: igual que para el Ensanchamiento.
- -
- Nuevo. La primera línea se proporciona de una manera diferencial: el primer píxel viene dado mientras que los siguientes se especifican como la diferencia con respecto al previo; la segunda línea se puede describir de la misma manera o, alternativamente, como una corrección a la predicción realizada usando el Operador de Desplazamiento Geométrico.
- -
- En caso de que todavía falten algunos píxeles o los mismos no se puedan predecir, se “extrapolan”.
La información a codificar es entonces la diferencia entre el valor de H2 real del píxel y su predicción H2.
Finalmente, para mejorar la codificación global y comprimir mejor el Borde Interno IE, la descripción de bordes se puede especificar opcionalmente solo para algunas líneas. Por ejemplo, se obtiene un buen resultado aceptando y descartando alternativamente la descripción de bordes de forma respectiva en líneas impares y pares de un borde (atención: ¡par/impar no se refiere a la fila de la imagen sino a la fila de ese borde particular, comenzando desde su nacimiento!). Evidentemente, las 3 primeras líneas no se pueden descartar.
Para ser coherente en el codificador y en el decodificador, cada vez que “se descarta” una fila, la misma se calcula como si no fuera necesaria ninguna corrección para la predicción.
En el decodificador son necesarias operaciones duales con respecto a las realizadas en el codificador: de forma más detallada, en el decodificador las realiza un bloque correspondiente denominado Decodificador de Color de Borde Interno IE-CD. La única diferencia significativa es que mientras el IE-CE puede realizar aproximaciones con pérdidas, evidentemente el IE-CD no puede recuperarlas.
De hecho, dentro del decodificador, se deban reconstruir las filas de bordes descartadas: una vez más se usa un operador de desplazamiento basado en la SAD; el mismo se aplica a las dos filas de borde que son conocidas (líneas superior e inferior) para extraer un desplazamiento de color medio (o pendiente) con el fin de ejecutar una predicción de interpolación.
El proceso se representa en la fig. 9.
Las salidas de EOE-DE, EOE-CE, IE-CE se comprimen usando cualquier técnica de codificación por entropía: las mismas se aceptan como entradas del bloque EC que las comprime y produce el Código de Borde (EdgeC), constituido por los tres códigos de compresión correspondientes de EOE-DE, EOE-CE, IE-CE.
Los mejores resultados se obtienen usando una compresión de Huffman (modificada para comprimir secuencias largas de los mismos símbolos): es por lo tanto la solución preferida cuando se configura de las siguientes maneras.
-Símbolos usados para las direcciones (0 a 7, 4 excluido);
-Símbolo de partida: 4; viene seguido por las coordenadas del punto de partida (por ejemplo en formato binario);
-Símbolos Totales: 8 para una secuencia larga de “0” (por ejemplo, 14 veces “0”, en nuestro prototipo; 9 para una
secuencia larga de “1” (por ejemplo, 4 veces “1”, en nuestro prototipo.
-Desplazamiento inicial de +8 (para tener solamente números positivos);
-Símbolos usados para diferencias de color/tono de gris (16);
-Un Símbolo de Partida;
-Un Símbolo Total: secuencia larga de “0” (por ejemplo, para 5 veces “0”, en nuestro prototipo).
-Desplazamiento inicial de +8 (para tener solamente números positivos);
-Símbolos usados para corrección de errores del tono de gris predicho (9);
-Un símbolo de “Retorno de Carro”;
-Símbolos Totales: para secuencia larga de “0” (en nuestro prototipo 3 total para secuencias respectivamente de:
25-15 y 10 “0”s).
Se usan de manera correspondiente los mismos ajustes en un Decodificador de Entropía ED de un bloque dual en el
decodificador, el cual invierte el bloque EC y descomprime los tres componentes de la descripción de bordes.
En los bordes es necesario algún tipo de filtrado para eludir los artefactos provocados por las aproximaciones H2-H4 (por ejemplo en el IE-CE): esto lo realiza el EF.
Este filtrado de bordes debe ser no lineal (con el fin de no cortar las frecuencias espaciales altas dentro del área de bordes) y comprende:
- -
- más etapas de filtrado con tamaños de máscaras decrecientes, centradas en el píxel P (a filtrar);
- -
- filtrado con pesos en función de la distancia con respecto a P y con un peso mayor para contribuciones de EoE (si es H4 en lugar de H2 son “menos incorrectas”);
- -
- comprobación de admisión: un píxel contiguo del borde (respectivamente EoE) participa en el filtrado del píxel P si su tono de gris no difiere en más de 2*H2 (respectivamente 2*H4) con respecto al tono de gris de P.
Esta etapa de filtrado de bordes se puede realizar en IE y, opcionalmente, en EoE (en este caso o bien antes o bien después de la propagación de bordes, en cualquier caso antes del cálculo del residuo).
Para ser coherente en el codificador y en el decodificador, la entrada de EF no debe ser el borde original sino la versión “codificada”, incluyendo todas las aproximaciones usadas dentro de EoE-CE e IE-CE. Por esta razón, las entradas de EF en el codificador son las salidas de EoE-CE e IE-CE.
En la imagen de la fig. 14.2C se muestra un ejemplo de los resultados.
El filtrado de bordes se realiza también en el decodificador: esta función no se “invierte” y puede aceptar directamente la salida de ER (el bloque que vuelve a ensamblar los componentes de bordes independientes, según están decodificados).
La Propagación de Bordes es de hecho la etapa principal para realizar la descomposición de la imagen.
La propagación de bordes crea una vista previa basándose en la información de bordes previamente codificada. Se
emite en dos fases:
-Propagación.
-Filtrado no lineal y sensible a los bordes.
La primera fase crea una imagen que no es uniforme y requiere de relajación.
La segunda etapa elude este problema filtrando de una manera “inteligente”.
La propagación es un método sencillo e iterativo: partiendo de una base constituida por píxeles de EoE, a los píxeles
contiguos se les asigna un tono de gris que es cierto valor promedio de los 2-3 píxeles contiguos pertenecientes a
EoE. En la siguiente etapa, la base no es EoE sino los píxeles recién incluidos.
Hay disponibles varias opciones tanto para el cálculo del promedio como para el concepto de vecindad (por ejemplo:
en una cruz o en el cuadrado completo – véanse opciones en la fig. 10).
El ejemplo de la imagen de la Fig. 14.3A muestra el resultado de esta etapa.
En referencia a continuación a la etapa de filtrado no lineal y sensible a los bordes, en los píxeles del área fuera de
bordes, el filtrado se realiza para suavizar el color, que se puede restar fácilmente en la imagen original sin crear discontinuidades artificiales. Por otro lado, si el filtrado no considerase bordes de imágenes, esto arruinaría esta valiosa información. Por este
motivo, la forma de las máscaras que controlan el filtrado se adapta dinámicamente a la ubicación de los bordes. De forma más detallada (véase la figura 11) por ejemplo, para una etapa de filtrado de amplitud 9*9, las 8
direcciones principales (N, NE, E, SE, S, NO, O, SO) en torno al píxel a filtrar se exploran hasta la distancia 4; cada vez que se encuentra un borde, la máscara se detiene en esa dirección. Finalmente, a la máscara M se le proporciona una forma regular juntando e interpolando estas muestras
direccionales (por ejemplo, en el sector N-NO, se puede usar el mínimo entre distancias muestreadas en N y NO – véase la fig. 12).
La imagen de la fig. 14.3B muestra el resultado de esta etapa.
Para conseguir que el filtrado sea más eficaz, a los píxeles dentro de la máscara M se le pueden asignar pesos
variables: en particular, el peso puede depender de las siguientes condiciones:
-la distancia desde el píxel “central” bajo filtrado;
-si el píxel pertenece o no al borde (condición de EoE).
Por lo tanto, la Propagación de Bordes (EP) prevé el cálculo de:
a) propagación iterativa del Borde de Borde (EoE), promediando los píxeles vecinos conocidos;
b) filtrado no lineal y sensible a los bordes, del área fuera de bordes, realizándose dicho filtrado por medio de
máscaras de forma variable que detectan bordes, de modo que el filtrado no supere los bordes, y más etapas de filtrado como la anterior y con tamaños de máscaras decrecientes, por lo tanto:
-centrando una máscara cuadrada en el píxel (P) a filtrar;
-explorando las 8 direcciones principales (N, NE, E, SE, S, SO, O, SO) en torno al píxel a filtrar hasta los límites de
la máscara cuadrada; cada vez que se encuentre un borde la máscara se detiene en esa dirección;
-dando una forma regular a la máscara que junta e interpola las muestras direccionales;
-los pesos dentro de la máscara posiblemente dependen de la distancia con respecto al píxel (P) y de la condición
de EoE.
La propagación de bordes se realiza también en el decodificador (fig. 2), donde es necesario reconstruir la imagen
original: esta función no se “invierte” y puede aceptar directamente la salida del bloque ER (el bloque que vuelve a ensamblar los componentes de borde independientes, según estén codificados).
El residuo según se calcula en el método Ba, genera una imagen uniforme como la diferencia entre la imagen
original y la predicha en cuanto a bordes.
A continuación, el RE realiza las siguientes acciones:
-vuelve a ensamblar resultados del EF y el EP selectivamente – el resultado es una imagen basada en bordes EBI
que acepta los valores de salida del EF en píxeles pertenecientes al conjunto de bordes ES y acepta los valores de
la salida de EP fuera de ES;
-obtiene el residuo RES como la diferencia entre EBI y la imagen original I-I;
El residuo se puede calcular:
-únicamente en el área fuera de bordes (en ese caso, el área de bordes se rellenará con un tono de gris de
semiescala);
- -
- también en el área de bordes: en este caso, presenta las ventajas de recuperar muchas aproximaciones introducidas en el procesado de bordes en las etapas anteriores.
En la solución preferida propuesta, se usa el segundo planteamiento: con el fin de no tener un residuo demasiado variable dentro del borde (incluiría bits menos significativos), el área de bordes se filtra por separado antes del cálculo del residuo (EF).
En la imagen de la fig. 14.4A se muestra un ejemplo del resultado (residuo RES).
En el decodificador también son necesarias operaciones duales con respecto a las realizadas en el codificador: de forma más detallada, en el decodificador las realiza un bloque correspondiente denominado Corrección del Residuo (RC).
El RC realiza entonces las siguientes acciones:
- -
- vuelve a ensamblar resultados del EF y el EP selectivamente – el resultado es una imagen basada en bordes EBI’ que acepta los valores de la salida de EF en píxeles pertenecientes al conjunto de bordes ES y acepta los valores de la salida de EP fuera de ES;
- -
- acepta el residuo según se decodifica (RES’) y lo suma a la imagen basada en bordes EBI para construir la imagen.
El bloque RTDC tiene la función de transformar el Residuo con el fin de hacerlo adecuado para una codificación
tradicional (por ejemplo, para la codificación MPEG).
Si la imagen original adopta tonos de gris en [0-255], el residuo puede adoptar valores en [-255, +255], aunque
tendrá la mayoría de sus valores en torno a 0. Esto presenta los siguientes inconvenientes principales:
-los valores no están en el intervalo original (por otro lado, es lo mismo que un desplazamiento 256 transforme el
intervalo en [0, +512], centrado en torno a 256).
-cualquier codificador podría descargar que la mayoría de “correcciones” están disponibles en el residuo,
considerándolas como “no significativas”.
Una solución buena consiste en “transformar” valores del RES para:
-amplificar valores en torno 0;
-disponer de una transformación “mayormente” reversible;
-comprimir valores en el intervalo original;
-prever un mecanismo de “saturación” para valores fuera del intervalo.
La solución más sencilla es la de una función simétrica como la representada en la fig. 13 donde:
-[0, R] se corresponde con el intervalo de valores que pueden adoptar los píxeles de la imagen original (por ejemplo,
[0, 255]);
-[-R, R] el intervalo de valores que puede adoptar RES;
-A es un valor dentro de [0, R] que determina el intervalo [-A, A] en el cual se amplifican valores de RES por medio
de la función;
-B/A es la relación de amplificación de la función en el intervalo [-A, A]: en este caso la función es lineal con un
desplazamiento de R/2 con el fin de tener únicamente valores positivos;
-para valores mayores que R y menores que R, la función se satura (respectivamente R y 0);
-para valores en [-R, -A] y [A, R], la pendiente se determina con el fin de conectar los intervalos antes descritos.
Como inconveniente final, el número de los píxeles cuyo color/tono se satura por medio de la transformación podría
ser demasiado alto: para eludir esto, el RTDC también puede opcionalmente: -contar este número;
- -
- compararlo con un umbral (por ejemplo, el 5% de píxeles totales en el cuadro)
- -
- opcionalmente realimentar esta información al detector de bordes (DED-S) para activar los umbrales y parámetros del detector.
Algunos codificadores de imágenes (tales como el descrito en la norma H.264) pueden codificar una imagen con una calidad variable en función del área a la que se apliquen: por ejemplo la H.264 puede codificar cada macro-bloque con una calidad diferente (en función de un parámetro denominado QP).
Por este motivo, el RTDC puede medir/estimar opcionalmente la calidad final lograda y decidir cuándo se debería incrementar la calidad.
Desde un punto de vista práctico, debido a que dentro de los bordes (por causa de las aproximaciones H2, H4) se localizan pérdidas de PSNR (Relación Señal de Pico/Ruido) mayores, el RTDC puede etiquetar los macrobloques que contienen más píxeles de bordes, con el fin de lograr que los mismos se codifiquen mejor y de mejorar la PSNR total (si el VC/IC soporta esta opción).
En las figs. 14-4B y 14-4C se muestran ejemplos de imágenes en la salida del bloque RTDC.
La función de RTDC se invierte en el decodificador por medio de RIT (Transformación Inversa del Residuo). Fig. 2.
En particular, la RIT debe invertir la transformación realizada en el decodificador sobre RES (por ejemplo, la función presentada en la fig. 13).
Finalmente, el bloque VC/IC:
-acepta la salida de RTDC (el RES según es transformado por RTDC)
-la codifica y la comprime.
Cualquier codificador de imágenes puede realizar esta función: por otra parte, el procesado basado en el DCT (u
ondículas) resulta más sencillo sobre el RES que sobre la I-I puesto que la imagen es “uniforme” y está desprovista
de bordes.
Esta etapa de codificación tiene su homólogo en el decodificador en el VD/ID (el decodificador correspondiente).
Véase el ejemplo de las imágenes de la Fig. 14-5A y 14-5B.
Este bloque adicional puede realizar otra etapa de filtrado por diversos motivos, por ejemplo:
-uniformizar las contribuciones independientes de la imagen;
-eludir cualesquiera artefactos generados por la codificación diferencial (en caso de que la calidad de codificación
no se uniforme dentro de la imagen).
Esta etapa no se corresponde con ningún bloque dentro del codificador.
En la Fig. 14-6 se muestra un ejemplo de imagen en la salida de IF. Por razones de comparación, en la Fig. 14-7 se
proporciona un ejemplo de la misma imagen que la Fig. 14-6 cuando se codifica en una codificación tradicional basada en la DCT.
Para simplificar, el método se ha explicado en referencia a una imagen fija (I-I) con la luminancia como el único componente no trivial.
De cualquier modo, para el esquema de compresión propuesto es adecuado cualquier formato de imagen, no comprimido o descomprimido (o formato de cuadro, en caso de que se considere una secuencia de vídeo). En esta sección, se explica cómo aplicar la misma técnica a otros formatos. La explicación se proporciona para el codificador: se aplican de forma simétrica los mismos cambios al decodificador.
Imagen Analógica: en primer lugar se digitalizan (se muestrean y se cuantifican).
Imagen Coloreada (YUV): en el caso de YUV (en donde Y es luminancia y U-V son los componentes de crominancia) existen varias opciones; por ejemplo:
- 1.
- El método completo se aplica a solamente Y, puesto que Y incluye los bordes finales más fuertes, mientras que los componentes de color U-V se tratan de forma tradicional.
- 2.
- El método completo se aplica por separado a cualquiera de los componentes.
- 3.
- La Detección de Bordes dentro del bloque A se aplica al único componente Y, puesto que Y incluye los bordes más fuertes, y los componentes independientes de la imagen se muestrean sobre el mismo conjunto de bordes (ES) para producir componentes de ESI independientes. Por tanto, los bloques B y C se ejecutan basándose en la ESI controlada por Y, aunque considerando todos los componentes independientes implicados: por ejemplo, EoE-CE, IE-CE, EF, EP, EBI-E, RE producen una descripción múltiple para dichos componentes. Este planteamiento mejora el rendimiento puesto que permite describir el conjunto de bordes (por ejemplo, EoE-DE) solamente una vez.
- 4.
- Igual que el punto 3 aunque la Detección de Bordes se aplica a todos los componentes. Así, se obtienen tres ES (ESy, ESu y ESv) que es probable que sean (por lo menos) parcialmente coincidentes y se pueden fusionar en un único ES: este es el OR de los mismos (un píxel pertenece al ES final si pertenece por lo menos a uno de entre ESy, ESu, ESv).
Las soluciones 3. y 4. son las preferidas.
Se aplica lo mismo a otras descripciones de imágenes, tales como formatos RGB en los que se proporcionan componentes independientes.
Imagen Coloreada (otros formatos) – por ejemplo, el espacio RGB: se pueden aplicar los métodos 2 y 4 de los formatos YUV.
Codificación de Vídeo (Imágenes en Movimiento): se puede aplicar la solución trivial a cada cuadro. Para una mejor solución, se recuperan algunos conceptos de las técnicas de codificación de vídeo más usadas (por ejemplo, MPEG, H.264).
Para imágenes en movimiento, el aprovechamiento de la redundancia entre imágenes proporcionar un factor de compresión mayor. Por tanto, la solución adoptada consiste en describir completamente un cuadro “de partida” (cuadro I) y, a continuación, describir una cierta cantidad de cuadros sucesivos únicamente en el sentido en el que difieren con respecto al anterior (a este conjunto se le denomina Grupo de imágenes – GOP).
La secuencia comienza con una imagen I (intra-codificada) como punto de anclaje, y a la misma le sigue un número de imágenes P o predichas en sentido directo. También es posible realizar una predicción en sentido inverso (cuadros B).
Según este planteamiento, la solución preferida consiste en aplicar la invención a únicamente las tramas I.
El caso de las imágenes en movimiento permite también la evolución de la Predicción de Movimiento (MP) y la compensación. La predicción antes descrita dentro del GOP se basa también en la predicción del movimiento y la compensación.
En el MPEG la imagen se descompone en macrobloques (áreas con forma fija), cada una de las cuales tiene su vector de movimiento estimado, que se usa para la predicción.
El problema es si el borde de un objeto en movimiento se sitúa cruzando un macrobloque: esto conduce a un mal rendimiento de la técnica: típicamente solo parte del macrobloque se está moviendo.
La solución propuesta, cuando se aplica a imágenes en movimiento, puede superar también esta limitación. De hecho, nuevos estudios intentan establecer correspondencias del movimiento de las formas (y por tanto de los bordes) en el interior de un cuadro, con macrobloques. Esto conduce a soluciones complicadas que típicamente requieren la transmisión de información adicional (sobre la ubicación de los bordes y las formas de los bordes).
En cualquier caso, el problema resulta más sencillo cuando se aplica a la invención, puesto que EdgeC ya proporciona el borde (en su forma, posición y color). Por otra parte, la descripción de bordes adoptada (EoE-DE) es específicamente adecuada para la estimación y predicción de movimiento entre dos cuadros de una secuencia de vídeo: en el caso de un movimiento de translación y rígido, es suficiente con especificar la posición nueva del punto de partida de cada borde implicado en el movimiento (o, por ejemplo, el desplazamiento y la rotación). En el caso de movimientos más complejos, tales como deformaciones, se pueden aplicar algoritmos más elaborados con el fin de modificar los bordes. En cualquier caso, también estas soluciones son más sencillas y escalables cuando se aplican a la invención propuesta.
Por este motivo, tanto en la Fig. 1 como en la Fig. 2 se representa un bloque opcional que realiza la MP.
Así, la invención es innovadora por varios motivos; se pueden mencionar:
- -
- no es solo cuestión de proporcionar de manera independiente información adicional y redundante sino que se trata de una especie de “descomposición” de la imagen en bordes (y contenido relacionado con los bordes) y un residuo, después de la extracción de los bordes – por lo tanto, conceptualmente difiere con respecto a soluciones existentes por la descripción múltiple y la transmisión de información lateral;
- -
- crea satisfactoriamente una imagen residual que “suprime” bordes y es uniforme, rica en detalles aunque, al mismo tiempo, sencilla de codificar eficazmente (por ejemplo, usando métodos basados en la DCT);
- -
- conserva la calidad lograda total al mismo tiempo que proporciona una descripción compacta para una codificación basal;
- -
- no solamente se “adoptan” la segmentación y la codificación de “bordes coloreados”, sino que las mismas también se personalizan para adecuarse correctamente a la arquitectura total, para integrarse en ella y no resultar demasiado pesada con respecto a las representaciones tradicionales;
- -
- proporciona una solución de trabajo completa y una gran cantidad de soluciones novedosas para resolver cuestiones abiertas dentro de cada bloque, según se describe en la descripción detallada de la solución preferida;
- -
- es compatible con la mayoría de normas existentes de codificación de vídeo e imágenes, (por ejemplo, las basadas en la DCT, tales como la H-264), y, por otra parte, se puede usar con y/o se puede adaptar a cualquier codificador (respectivamente, decodificador) existente o futuro en forma de un bloque de pre-procesado (respectivamente, postprocesado);
- -
- ayuda al procesador basado en la DCT a trabajar bien con unas pocas contribuciones que simultáneamente extraen y conservan bordes;
- -
- se usa de una manera innovadora para resolver el problema del cifrado de vídeo, habilitando también otros servicios (por ejemplo, cifrado parcial para vista previa);
- -
- posibilita una diferenciación de importancia de los componentes de vídeo hacia la Capa de Adaptación de Red (NAL).
La solución propuesta es de hecho particularmente interesante para cualquier aplicación práctica que pueda aprovechar sus características principales, es decir:
- -
- descripción “natural”;
- -
- desensamblaje de la imagen en componentes independientes;
- -
- fraccionamiento de la imagen en componentes complementarios.
La primera aplicación industrial que se reivindica es el cifrado selectivo (SE) de vídeo e imágenes: el cifrado es un procesado que consume muchos recursos, de modo que resulta particularmente crítico (especialmente si se usan dispositivos y terminales pequeños y móviles) y es importante limitarlo sin comprometer la gestión de derechos digitales (DRM).
En la solución propuesta:
- -
- en comparación con una técnica existente de codificación de imágenes basada en la DCT, incluso cuando la solución propuesta implica una ocupación total mayor, la información que es necesario cifrar es menor;
- -
- se puede seleccionar qué componente(s) cifrar: si se cifran tanto la ESI como el RES, la imagen está completamente cifrada; en caso de que se cifre la ESI, el RES pierde significado (EBI no se puede reconstruir) y se obtiene un cifrado selectivo; finalmente, si solamente se cifra el RES, hay disponible una vista aproximada de la imagen pero los detalles están ocultos (esta podría ser una especie de vista previa de los contenidos); -por otra parte, la información de bordes, según se implementa en la solución preferida, se cifra muy fácilmente; en particular, se puede lograr un nivel fuerte de cifrado simplemente ocultando los bits de la ubicación del punto de partida o la dirección de partida; sin localización de los bordes, la única cosa inteligible es el residuo, el cual es completamente insatisfactorio y desprovisto de color.
Otra aplicación puede ser para un uso eficaz de recursos de red (en particular, aunque no de forma única, para una red IP y por paquetes): se proporciona un desensamblaje natural de la imagen en “paquetes” independientes, y esto también se puede reflejar por medio de la Capa de Adaptación de Red (NAL);
- -
- por ejemplo, la información relacionada con bordes se puede asignar a una importancia de red mayor (por ejemplo, una mayor prioridad, una política menor de descartes de tramas/paquetes correspondientes) de manera que, incluso en un caso de congestión de red, es probable que estén disponibles para la continuidad del servicio (incluso si la calidad empeora);
- -
- esto parece particularmente interesante para la transmisión de vídeo a través de capas MAC; un sub-caso es el correspondiente a los medios inalámbricos (por ejemplo, WLAN). En las capas MAC, se pueden usar realimentaciones de protocolos y estadística de Detección de Colisiones (CD) y Evitación de Colisiones (CA) para tomar decisiones selectivamente sobre lo que se debería transmitir en la red (la imagen completa con respecto a solamente la EBI).
No se describirán otros detalles de la implementación, puesto que los expertos en la materia pueden llevar a la práctica la invención a partir de los aspectos dados a conocer en la descripción anterior.
La presente invención se puede implementar ventajosamente a través de un programa para ordenador que comprenda medios de codificación de programa para la implementación de una o más etapas del método, cuando este programa se ejecute en un ordenador. Por lo tanto, se entiende que el alcance de protección se amplía a dicho programa para ordenador y, adicionalmente, a unos medios legibles por ordenador que tienen un mensaje grabado en los mismos, comprendiendo dichos medios legibles por ordenador medios de codificación de programa para la implementación de una o más etapas del método, cuando este programa se ejecuta en un ordenador.
A los expertos en la materia les resultarán evidentes muchos cambios, modificaciones, variaciones y otros usos y aplicaciones de la invención en cuestión, después de considerar la memoria y los dibujos adjuntos que dan a conocer formas de realización preferidas de la misma. Todos estos cambios, modificaciones, variaciones y otros usos y aplicaciones que no se desvíen con respecto al espíritu y alcance de la invención se consideran cubiertos por esta invención.
Claims (12)
- REIVINDICACIONES1. Método para la codificación de imágenes y vídeo basada en bordes, apta para un cifrado selectivo, caracterizado por que comprende descomponer imágenes originales (I-I) de acuerdo con las siguientes etapas:
- -
- detección de bordes, para regularización, refinación de ampliaciones, y generación de una imagen de conjunto de bordes (ESI);
- -
- descripción de bordes a través del posicionamiento y la conformación de la imagen de conjunto de bordes (ESI), para el muestreo de tono de gris/luminancia y/o color en la imagen de conjunto de bordes (ESI), con el fin de generar flujos continuos de bits de codificación (EdgeC) que describen la imagen de conjunto de bordes (ESI);
- -
- extracción de la imagen residual como la diferencia entre la imagen original (I-I) y la imagen basada en bordes y codificación de acuerdo con cualquier norma de descripción/compresión de imágenes para generar uno o más flujos continuos de bits de codificación que describen el residuo (ResC);
caracterizado por que dichos flujos continuos de bits de codificación (EdgeC) y dicho flujo continuo de bits de codificación que describe el residuo (ResC) alimentan un motor de cifrado (EE) para cifrado selectivo, en el que el tipo del cifrado aplicado a cada componente de la imagen se puede activar/desactivar y seleccionar, y por que dicha descripción de bordes comprende la detección de un contorno de un borde (EoE) que incluye píxeles que son contiguos en cuanto a posición y con color/tono y codificación diferencial a la de dicho contorno de la dirección del borde (EoE) y por que se logra un nivel alto de cifrado únicamente ocultando los bits de la ubicación del punto de partida o la dirección de partida del contorno. -
- 2.
- Método según la reivindicación 1, en el que dicha codificación diferencial se lleva a cabo por medio de un planteamiento de cadena de Markov.
-
- 3.
- Método según la reivindicación 1, en el que el símbolo “0” se asigna a la última dirección o a la dirección horizontal derecha si no hubiera ninguna, “1” a la dirección próxima a la dirección “0” y más próxima a la penúltima dirección y en el que los otros símbolos se asignan en el sentido de las agujas del reloj o contrario a las agujas del reloj, conforme a los primeros dos símbolos.
-
- 4.
- Método según una de las reivindicaciones anteriores, caracterizado por que dichos flujos continuos de bits de codificación (EdgeC) que describen el borde se generan mediante las siguientes etapas:
- -
- División De Borde de Borde (EoE) y Borde Interno (IE) (EoE-IE-S), diferenciando dos tipos de información dentro de las áreas de borde, Borde de Borde (EoE) y Borde Interno (IE), siendo el Borde de Borde (EoE) los píxeles del borde que están situados en el límite entre bordes y áreas uniformes; describiendo el Borde Interno (IE) el área de borde que está rodeada por el Borde de Borde (EoE);
- -
- Codificación de la Dirección del Contorno de Borde de Borde (EoE-DE) y Codificación del Color del Contorno de Borde de Borde (EoE-CE);
- -
- Codificación de Color del Borde Interno (IE-CE);
- -
- Codificación por Entropía (EC), concretamente las salidas de EOE-DE, EOE-CE, IE-CE son comprimidas usando una técnica de codificación por entropía, y produciendo dichos flujos continuos de codificación (EdgeC) que describen el borde.
-
- 5.
- Método según la reivindicación 1, caracterizado por que las salidas del motor de cifrado se transmiten a través de una Capa de Adaptación de Red (NAL), que tiene la función de adaptar los datos codificados y cifrados a recursos de red y proporcionar selectivamente un grado diferenciado de prioridad y flexibilidad a los componentes codificados de la imagen.
-
- 6.
- Método según la reivindicación 1, caracterizado por que dicha etapa de descripción de bordes comprende:
- -
- recibir dicha imagen de conjunto de bordes (ESI);
- -
- generar dichos flujos continuos de bits de codificación (EdgeC) que describen el borde;
- -
- generar una salida adicional, obtenida a partir de la refinación de ESI, que puede ser la propia ESI o la ESI con una clasificación adicional de contorno de ESI.
- 7. Método según la reivindicación 1, caracterizado por que dicha etapa de codificación de imagen residual comprende
- -
- recibir dicha salida adicional a partir de dicha etapa de descripción de bordes, y dicha imagen de entrada (I-I);
- -
- extrapolar la información de la imagen de conjunto de bordes (ESI) y generar una Imagen Basada en Bordes (EBI);
- -
- generar el Residuo (RES) como una “corrección” en la imagen basada en bordes (EBI) con respecto a la imagen de entrada (I-I);
- -
- modificar el Residuo (RES) y codificarlo, generando uno o más flujos continuos de bits de codificación que describen el residuo (ResC).
- 8. Método para la decodificación de imágenes y vídeo basada en bordes, en particular para una codificación de imágenes y vídeo basada en bordes según la reivindicación 1, caracterizado por que comprende las etapas siguientes:
- -
- recibir información de bordes a partir de dicha codificación;
- -
- descifrar selectivamente la imagen y vídeo basados en bordes, codificados, como una función inversa de dicho cifrado selectivo, obteniendo dicho flujo continuo de bits de codificación (EdgeC) y dicho flujo continuo de bits que describe el residuo (ResC);
- -
- tomar dichos flujos continuos de bits de codificación (EdgeC), decodificarlos y procesarlos para generar una imagen de conjunto de bordes decodificada (ESI’);
- -
- tomar dicha imagen de conjunto de bordes decodificada (ESI’) y generar una Imagen Basada en Bordes decodificada (EBI’);
- -
- tomar dicho flujo continuo de bits que describe el residuo (ResC) y construir un residuo decodificado (RES’);
- -
- volver a ensamblar dicho residuo decodificado (RES’) y dicha Imagen Basada en Bordes (EBI) decodificada para generar una imagen decodificada.
-
- 9.
- Método según la reivindicación 8 anterior, caracterizado por que dicha señal de vídeo e imágenes es una de las siguientes: una imagen fija o una secuencia de vídeo; una señal analógica o digital; una imagen de tonos de gris o en color, como el formato YUV, RGB.
-
- 10.
- Aparato para la codificación de imágenes y vídeo basada en bordes, en particular para la implementación del método según cualquiera de las reivindicaciones 1 a 7, que comprende:
- -
- unos medios para descomponer vídeo e imágenes (I-I);
- -
- unos medios para la detección de bordes, con el fin de generar una imagen de conjunto de bordes (ESI);
- -
- unos medios para la descripción de bordes para el muestreo de tonos de gris/luminancia y/o color a lo largo de los bordes, con el fin de generar flujos continuos de bits de codificación (EdgeC) que describen la imagen de conjunto de bordes (ESI);
- -
- unos medios para la extracción de imágenes residuales como la diferencia entre la imagen original (I-I) y la imagen basada en bordes y la codificación de acuerdo con cualquier norma de descripción/compresión de imágenes con el fin de generar uno o más flujos continuos de bits de codificación que describen el residuo (ResC);
caracterizado por que comprende además un motor de cifrado (EE) para el cifrado selectivo de dichos flujos continuos de codificación (EdgeC) y dicho flujo continuo de codificación que describe el residuo (ResC), y unos medios para la activación/desactivación y selección del tipo de cifrado aplicado a cada componente de la imagen. - 11. Aparato para la decodificación de imágenes y vídeo basada en bordes, para la implementación del método según cualquiera de las reivindicaciones 8 a 9, caracterizado por que comprende:
- -
- unos medios para recibir información de bordes a partir de dicha codificación;
- -
- unos medios para descifrar selectivamente la imagen y vídeo basados en bordes, codificados, como una función inversa de dicho cifrado selectivo, con el fin de obtener dichos flujos continuos de bits de codificación (EdgeC) y dicho flujo continuo de bits que describe el residuo (ResC);
- -
- unos medios para tomar dichos flujos continuos de bits de codificación (EdgeC) y decodificarlos para generar una imagen de conjunto de bordes decodificada (ESI’);
- -
- unos medios para tomar dicha imagen de conjunto de bordes decodificada (ESI’) y generar una Imagen Basada en Bordes decodificada (EBI’);
- -
- unos medios para tomar dicho flujo continuo de bits que describe el residuo (ResC) y construir un residuo 5 decodificado (RES’);
- -
- unos medios para volver a ensamblar dicho residuo decodificado (RES’) y dicha Imagen Basada en Bordes decodificada (EBI’) para generar una imagen decodificada.
10 12. Programa de ordenador que comprende unos medios de código de programa de ordenador adaptados para realizar todas las etapas de las reivindicaciones 1 a 9, cuando dicho programa se ejecuta en un ordenador. - 13. Soporte legible por ordenador que tiene un programa grabado en el mismo, comprendiendo dicho soporte legiblepor ordenador unos medios de código de programa de ordenador adaptados para realizar todas las etapas de las 15 reivindicaciones 1 a 9, cuando dicho programa se ejecuta en un ordenador.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP04100993A EP1575297B1 (en) | 2004-03-11 | 2004-03-11 | Method and apparatus for edge-based image encoding and decoding |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2389899T3 true ES2389899T3 (es) | 2012-11-02 |
Family
ID=34814394
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES04100993T Expired - Lifetime ES2389899T3 (es) | 2004-03-11 | 2004-03-11 | Método y aparato para la codificación y decodificación de imágenes basadas en bordes |
Country Status (2)
Country | Link |
---|---|
EP (1) | EP1575297B1 (es) |
ES (1) | ES2389899T3 (es) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110026591A1 (en) * | 2009-07-29 | 2011-02-03 | Judit Martinez Bauza | System and method of compressing video content |
CN113904764B (zh) * | 2021-09-18 | 2023-06-16 | 大连大学 | 基于多尺度压缩感知和马尔科夫模型的图像加密方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IL100256A (en) * | 1991-12-06 | 1997-01-10 | Scitex Corp Ltd | Apparatus and method for preparing picture masks |
EP0625853B1 (en) * | 1993-05-21 | 1999-03-03 | Nippon Telegraph And Telephone Corporation | Moving image encoder and decoder |
US6226414B1 (en) * | 1994-04-20 | 2001-05-01 | Oki Electric Industry Co., Ltd. | Image encoding and decoding method and apparatus using edge synthesis and inverse wavelet transform |
KR960703481A (ko) * | 1994-04-22 | 1996-08-17 | 이데이 노부유키 | 비디오 신호 코딩 방법 및 장치와 비디오 신호 디코딩 장치(Method and device for encoding image signal and image signal decoding device) |
JP2842796B2 (ja) * | 1994-12-06 | 1999-01-06 | 富士通株式会社 | 動画像の暗号化処理方法及び装置及び暗号化された動画像の復号化処理方法及び装置 |
JP3423835B2 (ja) * | 1996-05-01 | 2003-07-07 | 沖電気工業株式会社 | スクランブル付き圧縮符号化装置及びその伸長再生装置 |
AU1285099A (en) * | 1997-11-07 | 1999-05-31 | Pipe Dream, Inc | Method for compressing and decompressing motion video |
SE513356C2 (sv) * | 1998-11-20 | 2000-08-28 | Ericsson Telefon Ab L M | Förfarande och anordning för kryptering av bilder |
-
2004
- 2004-03-11 EP EP04100993A patent/EP1575297B1/en not_active Expired - Lifetime
- 2004-03-11 ES ES04100993T patent/ES2389899T3/es not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP1575297B1 (en) | 2012-06-20 |
EP1575297A1 (en) | 2005-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113545064B (zh) | 用于处理视频内容的方法和装置及计算机可读存储介质 | |
JP7308983B2 (ja) | クロマのためのクロスコンポーネント適応(アダプティブ)ループフィルタ | |
CN111133476B (zh) | 包括多个点的点云的压缩和解压缩的系统、设备和方法 | |
ES2967198T3 (es) | Predicción intra utilizando píxeles de referencia de líneas adicionales | |
ES2794559T3 (es) | Codificación de nivel de coeficiente en codificación de vídeo | |
ES2844101T3 (es) | Procedimiento para codificar/decodificar información de bloques mediante el uso del árbol cuádruple y el dispositivo para usar el mismo | |
ES2952881T3 (es) | Codificación de mapas de significado y bloques de coeficiente de transformada | |
ES2752227T3 (es) | Codificación de vídeo que usa subdivisiones multi-árbol de imágenes | |
CN102939754B (zh) | 样本区域合并技术 | |
ES2677100T3 (es) | Filtrado de bucle alrededor de los límites de segmento o de límites de mosaico en la codificación de video | |
ES2986933T3 (es) | Herencia en subdivisión multiárbol de matriz de muestras | |
EP3646599A1 (en) | Encoding and decoding a picture block using a curved intra-prediction mode | |
ES2705357A2 (es) | Método para inducir un bloque candidato de fusión y dispositivo que usa el mismo | |
CN115398906B (zh) | 用信号通知视频编码数据的方法 | |
ES2389899T3 (es) | Método y aparato para la codificación y decodificación de imágenes basadas en bordes | |
CN105915919A (zh) | 跨平面预测 |