ES2856823T3 - Dispositivo de procesamiento de imágenes y método de procesamiento de imágenes - Google Patents

Dispositivo de procesamiento de imágenes y método de procesamiento de imágenes Download PDF

Info

Publication number
ES2856823T3
ES2856823T3 ES11846148T ES11846148T ES2856823T3 ES 2856823 T3 ES2856823 T3 ES 2856823T3 ES 11846148 T ES11846148 T ES 11846148T ES 11846148 T ES11846148 T ES 11846148T ES 2856823 T3 ES2856823 T3 ES 2856823T3
Authority
ES
Spain
Prior art keywords
section
filter
filtering
horizontal
vertical
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES11846148T
Other languages
English (en)
Inventor
Masaru Ikeda
Junichi Tanaka
Yoshitaka Morigami
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Group Corp
Original Assignee
Sony Group Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Group Corp filed Critical Sony Group Corp
Application granted granted Critical
Publication of ES2856823T3 publication Critical patent/ES2856823T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/36Scalability techniques involving formatting the layers as a function of picture distortion after decoding, e.g. signal-to-noise [SNR] scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

Un dispositivo de procesamiento de imágenes (60) que comprende: una sección de decodificación (62, 63, 64) configurada para decodificar un flujo codificado para generar una imagen; una primera sección de determinación (110, 112) configurada para realizar procesos de determinación de filtrado horizontal en paralelo a través de una pluralidad de límites de bloques verticales entre una pluralidad de bloques de 8x8 pixels dentro de la imagen generada por la sección de decodificación, determinando cada proceso de determinación de filtrado horizontal, sin depender de los procesos de determinación de filtrado horizontal para otros límites de bloques verticales, ya sea para aplicar un filtro de desbloqueo a los pixels adyacentes a un límite de bloque vertical; una sección de filtrado horizontal (130, 132) configurada para realizar el filtrado horizontal a través de la aplicación de un filtro horizontal en paralelo a los pixels próximos a través de todos los límites verticales para los cuales los procesos de determinación de filtrado horizontal determinaron que se aplique el filtro de desbloqueo, para generar una imagen filtrada; una segunda sección de determinación (110, 114) configurada para realizar procesos de determinación de filtrado vertical en paralelo a través de una pluralidad de límites de bloques horizontales entre una pluralidad de bloques de 8x8 pixels dentro de la imagen generada por la sección de decodificación, determinando cada proceso de determinación de filtrado vertical, sin depender de los procesos de determinación de filtrado vertical para otros límites de bloques horizontales, si aplicar, o no, un filtro de desbloqueo a los pixels adyacentes a un límite de bloque horizontal; y una sección de filtrado vertical configurada para realizar el filtrado vertical aplicando un filtro vertical en paralelo a los pixels próximos a través de todos los límites horizontales en la imagen filtrada para la cual los procesos de determinación del filtrado vertical determinaron que se aplicará el filtro de desbloqueo.

Description

DESCRIPCIÓN
Dispositivo de procesamiento de imágenes y método de procesamiento de imágenes
CAMPO TÉCNICO
La presente descripción se refiere a un dispositivo de procesamiento de imágenes y a un método de procesamiento de imágenes.
ANTECEDENTES DE LA INVENCIÓN
H.264/AVC, una de las especificaciones estándar para el sistema de codificación de imágenes, aplica un filtro de desbloqueo a un límite de bloque en unidades de bloques que contienen cada una 4x4 pixels, por ejemplo, con el fin de impedir la degradación de la calidad de la imagen debido a la distorsión del bloque mientras se codifica una imagen. El filtro de desbloqueo requiere una gran cantidad de procesamiento y puede representar el 50% de la cantidad total de procesamiento en la decodificación de imágenes, por ejemplo.
Las normas funcionan para la codificación de vídeo de alta eficiencia (HEVC), un sistema de codificación de imagen de la siguiente generación, propone la aplicación del filtro de desbloqueo en unidades de bloques que contienen cada una 8x8 pixels o más de conformidad con JCTVC-A119 (véase Referencia de no Patentes 1). La técnica propuesta en JCTVC-A119 aumenta el tamaño del bloque como una unidad mínima para aplicar el filtro de desbloqueo para realizar procesos de filtrado en paralelo en los límites del bloque en la misma dirección dentro de un macrobloque.
Lista de referencias
El documento WO 2008/118562 se refiere al filtrado de desbloqueo simplificado para acceso reducido a la memoria y complejidad de cálculo informático.
Referencia de no Patentes
Referencia de no Patentes 1: K. Ugur (Nokia), KR Andersson (LM Ericsson), A. Fuldseth (Tandberg Telecom), "JCTVC-A119: Propuesta de tecnología de codificación de vídeo de Tandberg, Nokia y Ericsson", Documentos de la primera reunión del equipo conjunto de colaboración sobre codificación de vídeo (JCT-VC), Dresden, Alemania, del 15 al 23 de abril de 2010.
SUMARIO DE LA INVENCIÓN
Problema técnico
Sin embargo, la técnica propuesta en JCTVC-A119 no resuelve la dependencia entre el proceso en los límites de bloques verticales y el proceso en los límites de bloques horizontales. Todavía es difícil habilitar el procesamiento en paralelo en los límites de bloques en diferentes direcciones dentro de un macrobloque (o una unidad de codificación) y habilitar el procesamiento en paralelo entre macrobloques. En consecuencia, la técnica descrita con anterioridad puede no resolver, de manera satisfactoria, los problemas de un retardo y una disminución en las tasas de datos debido a una gran cantidad de procesamiento mientras se aplica el filtro de desbloqueo.
La tecnología, de conformidad con la invención, tiene como objetivo proporcionar un dispositivo de procesamiento de imágenes y un método de procesamiento de imágenes capaz de proporcionar procesamiento en paralelo cuando se aplica un filtro de desbloqueo.
Solución al problema
Los aspectos particulares y preferidos de la invención se exponen en las reivindicaciones adjuntas.
De conformidad con una forma de realización de la presente invención, se proporciona un dispositivo de procesamiento de imágenes que incluye una sección de decodificación configurada para decodificar una imagen desde un flujo codificado, una sección de determinación configurada para realizar procesos de determinación para determinar si aplicar, o no, un filtro de desbloqueo a los bloques próximos adyacentes a través de un límite de bloque dentro de una imagen que será decodificada por la sección de decodificación, una sección de filtrado configurada para aplicar un filtro de desbloqueo a bloques próximos a los que la sección de determinación ha determinado aplicar un filtro de desbloqueo, y una sección de control configurada para permitir a la sección de determinación realizar los procesos de determinación para un límite de bloque vertical y par un límite de bloque horizontal utilizando pixels de los bloques próximos de una imagen de reconstrucción como pixels de referencia.
El dispositivo de procesamiento de imágenes puede realizarse, por lo general, como un dispositivo de decodificación de imágenes para decodificar una imagen.
Además, de conformidad con una forma de realización de la presente invención, se proporciona un método de procesamiento de imágenes que incluye la decodificación de una imagen desde un flujo codificado, realizando procesos de determinación para determinar si se aplica, o no, un filtro de desbloqueo a los bloques próximos a través de un límite de bloque dentro de una imagen para ser decodificada, aplicando un filtro de desbloqueo a los bloques próximos a los que se ha determinado en los procesos de determinación para aplicar un filtro de desbloqueo, y controlando los procesos de determinación de manera que los procesos de determinación para un límite de bloque vertical y un límite de bloque horizontal se realicen utilizando pixels de los bloques próximos de una imagen de reconstrucción como pixels de referencia.
Además, de conformidad con una forma de realización de la presente invención, se proporciona un dispositivo de procesamiento de imágenes que incluye una sección de determinación configurada para realizar procesos de determinación para determinar si se aplica, o no, un filtro de desbloqueo a los bloques próximos a través de un límite de bloque dentro de una imagen para decodificar, de manera local, cuando se codifica una imagen a codificar, una sección de filtrado configurada para aplicar un filtro de desbloqueo a los bloques próximos a los que la sección de determinación ha determinado aplicar un filtro de desbloqueo, una sección de control configurada para permitir que la sección de determinación realice los procesos de determinación para un límite de bloque vertical y un límite de bloque horizontal utilizando pixels de los bloques próximos de una imagen de reconstrucción como pixels de referencia, y una sección de codificación configurada para codificar la imagen a codificar utilizando una imagen filtrada por la sección de filtrado.
El dispositivo de procesamiento de imágenes puede realizarse, por lo general, como un dispositivo de codificación de imágenes para codificar una imagen.
De conformidad con una forma de realización de la presente invención, se da a conocer un método de procesamiento de imágenes que incluye realizar procesos de determinación para determinar si se aplica, o no, un filtro de desbloqueo a bloques próximos a través de un límite de bloque dentro de una imagen para decodificar de manera local cuando se codifica una imagen a codificar, aplicando un filtro de desbloqueo a los bloques próximos a los que se ha determinado en los procesos de determinación para aplicar un filtro de desbloqueo, controlando los procesos de determinación de manera que los procesos de determinación para un límite de bloque vertical y un límite de bloque horizontal se realicen utilizando pixels de los bloques próximos de una imagen de reconstrucción como pixels de referencia, y codificando la imagen a codificar utilizando una imagen filtrada por el filtro de desbloqueo.
La invención se expone en el conjunto de reivindicaciones adjunto.
Efectos ventajosos de la invención
Tal como se describió con anterioridad, el dispositivo de procesamiento de imágenes y el método de procesamiento de imágenes, de conformidad con la presente invención, mejora aún más el procesamiento en paralelo cuando se aplica un filtro de desbloqueo.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
La Figura 1 es un diagrama de bloques que muestra un ejemplo de una configuración de un dispositivo de codificación de imágenes según una forma de realización.
La Figura 2 es un diagrama de bloques que muestra un ejemplo de una configuración de un dispositivo de decodificación de imágenes de conformidad con una forma de realización.
La Figura 3 es un diagrama explicativo que muestra un ejemplo de pixels próximos alrededor de un límite.
La Figura 4 es un diagrama explicativo que ilustra los pixels de referencia durante el proceso de determinación de necesidades de filtrado de conformidad con una técnica existente.
La Figura 5 es un diagrama explicativo que ilustra los pixels actualizados a través de procesos de filtrado.
La Figura 6 es un diagrama explicativo que ilustra la identificación de bordes para la descripción de la forma de realización.
La Figura 7 es un diagrama explicativo que ilustra un proceso paralelo de conformidad con una técnica existente. La Figura 8 es un primer diagrama explicativo que ilustra la dependencia entre procesos de conformidad con una técnica existente.
La Figura 9 es un segundo diagrama explicativo que ilustra la dependencia entre procesos de conformidad con una técnica existente.
La Figura 10 es un diagrama explicativo que ilustra una secuencia de procesos de conformidad con una técnica existente.
La Figura 11 es un primer diagrama explicativo que ilustra los pixels de referencia durante el proceso de determinación de necesidades de filtrado de conformidad con un primer ejemplo práctico.
La Figura 12 es un segundo diagrama explicativo que ilustra los pixels de referencia durante los procesos de determinación de necesidades de filtrado de conformidad con el primer ejemplo práctico.
La Figura 13 es un diagrama explicativo que ilustra un primer ejemplo de secuencia de proceso.
La Figura 14 es un diagrama explicativo que ilustra un segundo ejemplo de secuencia de proceso.
La Figura 15 es un diagrama de bloques que ilustra una configuración detallada de un filtro de desbloqueo de conformidad con el primer ejemplo práctico.
La Figura 16 es un diagrama de bloques que ilustra una configuración detallada de una sección de determinación. La Figura 17 es un diagrama explicativo que ilustra los bloques próximos alrededor de un límite de segmento de corte. La Figura 18 es un diagrama explicativo que ilustra un primer ejemplo de una secuencia de procesos para cada segmento de corte.
La Figura 19 es un diagrama explicativo que ilustra un segundo ejemplo de una secuencia de procesos para cada segmento de corte.
La Figura 20 es un diagrama de flujo que ilustra un primer ejemplo de un flujo de procesos para el filtro de desbloqueo de conformidad con una forma de realización.
La Figura 21 es un diagrama de flujo que ilustra un segundo ejemplo de un flujo de procesos para el filtro de desbloqueo de conformidad con una forma de realización.
La Figura 22 es un diagrama de flujo que ilustra un flujo de procesos de determinación de necesidades de filtrado de conformidad con una forma de realización.
La Figura 23 es un diagrama de bloques que ilustra una configuración detallada del filtro de desbloqueo de conformidad con un segundo ejemplo práctico.
La Figura 24 es un diagrama explicativo que ilustra los primero y segundo ejemplos de una técnica de determinación proporcionada por el segundo ejemplo práctico.
La Figura 25 es un diagrama explicativo que ilustra los tercero y cuarto ejemplos de la técnica de determinación proporcionada por el segundo ejemplo práctico.
La Figura 26 es un diagrama explicativo que ilustra los quinto y sexto ejemplos de la técnica de determinación proporcionada por el segundo ejemplo práctico.
La Figura 27 es un diagrama explicativo que ilustra una secuencia de proceso para cada unidad LCU.
La Figura 28 es un diagrama de flujo que ilustra un flujo de proceso para cada unidad LCU.
La Figura 29 es un diagrama explicativo que ilustra una visión general de un tercer ejemplo práctico.
La Figura 30 es un diagrama de bloques que ilustra una configuración detallada de un filtro de desbloqueo de conformidad con el tercer ejemplo práctico.
La Figura 31 es un diagrama explicativo que ilustra la determinación de un peso de ponderación para una media ponderada.
La Figura 32 es un diagrama explicativo que ilustra un ejemplo de un peso de ponderación para una media ponderada. La Figura 33 es un diagrama explicativo que ilustra un valor de píxel de salida desde una sección de cálculo de conformidad con el tercer ejemplo práctico.
La Figura 34 es un diagrama explicativo que ilustra un primer ejemplo de secuencia de proceso para comparación.
La Figura 35 es un diagrama explicativo que ilustra un primer ejemplo de secuencia de proceso proporcionado por el tercer ejemplo práctico.
La Figura 36 es un diagrama explicativo que ilustra un segundo ejemplo de secuencia de proceso para comparación. La Figura 37 es un diagrama explicativo que ilustra un segundo ejemplo de secuencia de proceso proporcionado por el tercer ejemplo práctico.
La Figura 38 es un diagrama de flujo que ilustra un primer ejemplo de un flujo de proceso para el filtro de desbloqueo de conformidad con el tercer ejemplo práctico.
La Figura 39 es un diagrama de flujo que ilustra un flujo de un proceso de cálculo del valor de píxel que se muestra en la Figura 38.
La Figura 40 es un diagrama explicativo que ilustra el códec multivista.
La Figura 41 es un diagrama explicativo que ilustra un proceso de codificación de imágenes de conformidad con una forma de realización aplicada al códec multivista.
La Figura 42 es un diagrama explicativo que ilustra un proceso de decodificación de imágenes de conformidad con una forma de realización aplicada al códec multivista.
La Figura 43 es un diagrama explicativo que ilustra un códec escalable.
La Figura 44 es un diagrama explicativo que ilustra un proceso de codificación de imagen según una forma de realización aplicada a un códec escalable.
La Figura 45 es un diagrama explicativo que ilustra un proceso de decodificación de imágenes según una forma de realización aplicada a códec escalable.
La Figura 46 es un diagrama de bloques que ilustra una configuración esquemática de un aparato de televisión. La Figura 47 es un diagrama de bloques que ilustra una configuración esquemática de un teléfono móvil.
La Figura 48 es un diagrama de bloques que ilustra una configuración esquemática de un dispositivo de grabación/reproducción.
La Figura 49 es un diagrama de bloques que ilustra una configuración esquemática de un dispositivo de captura de imágenes.
DESCRIPCIÓN DE LAS FORMAS DE REALIZACIÓN
A continuación, se describirán en detalle formas de realización preferidas de la presente invención con referencia a los dibujos adjuntos. Conviene señalar que, en esta especificación y en los dibujos, los elementos que tienen prácticamente la misma función y estructura se indican con las mismas referencias numéricas, y así se omite una explicación repetida.
La descripción de la forma de realización se describirá en la siguiente secuencia.
1. Descripción general de los aparatos
1-1. Dispositivo de codificación de imagen
1- 2. Dispositivo de decodificación de imagen
2. Técnica existente
2- 1. Configuración básica del filtro de desbloqueo
2- 2. Dependencia entre procesos según una técnica existente
3. Primer ejemplo práctico
3- 1. Ejemplo de configuración de filtro de desbloqueo
3- 2. Flujo de proceso
4. Segundo ejemplo práctico
4- 1. Ejemplo de configuración del filtro de desbloqueo
4-2. Flujo del proceso
4- 3. Ejemplo de proceso para cada unidad LCU
5. Tercer ejemplo práctico
5- 1. Descripción general
5-2. Ejemplo de configuración del filtro de desbloqueo
5-3. Ejemplo de secuencia de proceso
5- 4. Flujo de proceso
6. Aplicación a varios códecs
6- 1. Códec multivista
6-2. Códec escalable
7. Ejemplos de aplicaciones
8. Resumen
1. Descripción general de los aparatos
Haciendo referencia a las Figuras 1 y 2, a continuación, se describe una visión general de un aparato al que se aplica la tecnología descrita en esta especificación. La tecnología descrita en esta especificación es aplicable a un dispositivo de codificación de imagen y a un dispositivo de decodificación de imagen, por ejemplo.
1-1. Dispositivo de codificación de imagen
La Figura 1 es un diagrama de bloques que muestra un ejemplo de una configuración de un dispositivo de codificación de imágenes 10 según una forma de realización. Haciendo referencia a la Figura 1, el dispositivo de codificación de imagen 10 incluye una sección de conversión A/D (analógico a digital) 11, una memoria intermedia de reordenamiento 12, una sección de sustracción 13, una sección de transformación ortogonal 14, una sección de cuantización 15, una sección de codificación sin pérdidas 16, una memoria intermedia de acumulación 17, una sección de control de tasas 18, una sección de cuantización inversa 21, una sección de transformación ortogonal inversa 22, una sección de adición 23, un filtro de desbloqueo 24a, una memoria de trama 25, un selector 26, una sección de predicción intra 30, una sección de estimación de movimiento 40 y una sección de selección de modo 50.
La sección de conversión A/D 11 convierte una entrada de señal de imagen en un formato analógico en datos de imagen en un formato digital, y proporciona una serie de datos de imagen digital a la memoria intermedia de reordenamiento 12.
La memoria intermedia de reordenamiento 12 reordena las imágenes incluidas en la serie de entrada de datos de imagen desde la sección de conversión A/D 11. Después de reordenar las imágenes de conformidad con una estructura GOP (Grupo de Imágenes) de conformidad con el proceso de codificación, la memoria intermedia de reordenamiento 12 proporciona los datos de imagen que se han reordenado en la sección de sustracción 13, la sección de predicción intra 30 y la sección de estimación de movimiento 40.
La entrada de datos de imagen desde la memoria intermedia de reordenamiento 12 y los datos de imagen previstos seleccionados por la sección de selección de modo 50 que se describe más adelante se suministran a la sección de sustracción 13. La sección de sustracción 13 calcula los datos de error predichos que son una diferencia entre la entrada de datos de imagen desde la memoria intermedia de reordenamiento 12 y la entrada de datos de imágenes previstos se introducen desde la sección de selección de modo 50, y proporciona los datos de error predichos calculados a la sección de transformación ortogonal 14.
La sección de transformación ortogonal 14 realiza la transformación ortogonal en la entrada de datos de error prevista desde la sección de sustracción 13. La transformación ortogonal a realizar por la sección de transformación ortogonal 14 puede ser una transformación de coseno discreta (DCT) o una transformación de Karhunen-Loeve, por ejemplo. La sección de transformación ortogonal 14 proporciona los datos del coeficiente de transformación adquiridos por el proceso de transformación ortogonal a la sección de cuantización 15.
La entrada de datos del coeficiente de transformación desde la sección de transformación ortogonal 14 y una señal de control de tasas desde la sección de control de tasas 18, descrita a continuación, se suministran a la sección de cuantización 15. La sección de cuantización 15 cuantifica los datos del coeficiente de transformación y proporciona los datos del coeficiente de transformación que han sido cuantizados (en adelante, referidos como los datos cuantizados) a la sección de codificación sin pérdidas 16 y a la sección de cuantización inversa 21. Además, la sección de cuantización 15 conmutad un parámetro de cuantización (una escala de cuantización) basado en la señal de control de tasas desde la sección de control de tasas 18 para cambiar de ese modo la tasa binaria de los datos cuantizados a introducir a la sección de codificación sin pérdidas 16.
La entrada de datos cuantizados desde la sección de cuantización 15 y la información descrita a continuación sobre la predicción intra o predicción inter generada por la sección de predicción intra 30 o la sección de estimación de movimiento 40 y seleccionada por la sección de selección de modos 50 se suministran a la sección de codificación sin pérdida 16. La información sobre predicción intra puede incluir información del modo de predicción que indica un modo de predicción intra óptimo para cada bloque, por ejemplo. Además, la información sobre predicción inter puede incluir información del modo de predicción para la predicción de un vector de movimiento para cada bloque, información de vector de movimiento de diferencia, información de imagen de referencia y similares, por ejemplo.
La sección de codificación sin pérdida 16 genera un flujo codificado realizando un proceso de codificación sin pérdida en los datos cuantizados. La codificación sin pérdida por la sección de codificación sin pérdida 16 puede ser codificación de longitud variable o codificación aritmética, por ejemplo. Además, la sección de codificación sin pérdida 16 multiplexa la información sobre predicción intra o la información sobre predicción inter mencionada con anterioridad en la cabecera del flujo codificado (por ejemplo, una cabecera de bloque, una cabecera de segmento o similar). A continuación, la sección de codificación sin pérdidas 16 emite el flujo codificado generado a la memoria intermedia de acumulación 17.
La memoria intermedia de acumulación 17 almacena temporalmente la entrada de flujo codificado desde la sección de codificación sin pérdida 16 utilizando un medio de almacenamiento, tal como una memoria de semiconductores. A continuación, la memoria intermedia de acumulación 17 proporciona el flujo codificado acumulado a una tasa de conformidad con la banda de una línea de transmisión (o una línea de salida del dispositivo de codificación de imagen 10).
La sección de control de tasas 18 supervisa el espacio libre de la memoria intermedia de acumulación 17. A continuación, la sección de control de tasas 18 genera una señal de control de tasas de conformidad con el espacio libre en la memoria intermedia de acumulación 17, y emite la señal de control de tasas generada a la sección de cuantización 15. A modo de ejemplo, cuando no hay mucho espacio libre en la memoria intermedia de acumulación 17, la sección de control de tasas 18 genera una señal de control de tasas para reducir la tasa binaria de los datos cuantizados. Además, por ejemplo, cuando el espacio libre en la memoria intermedia de acumulación 17 es suficientemente grande, la sección de control de tasas 18 genera una señal de control de tasas para aumentar la tasa binaria de los datos cuantizados.
La sección de cuantización inversa 21 realiza un proceso de cuantización inversa en la entrada de datos cuantizados desde la sección de cuantización 15. A continuación, la sección de cuantización inversa 21 emite los datos del coeficiente de transformación adquiridos por el proceso de cuantización inversa a la sección de transformación ortogonal inversa 22.
La sección de transformación ortogonal inversa 22 realiza un proceso de transformación ortogonal inversa en la entrada de datos del coeficiente de transformación desde la sección de cuantización inversa 21 para restaurar, de ese modo, los datos de error previstos. A continuación, la sección de transformación ortogonal inversa 22 envía los datos de error previstos restaurados a la sección de adición 23.
La sección de adición 23 añade la entrada de datos de errores previstos restaurados desde la sección de transformación ortogonal inversa 22 y la entrada de datos de imagen previstos desde la sección de selección de modo 50 para generar así datos de imagen decodificados. A continuación, la sección de adición 23 proporciona los datos de imagen decodificados generados al filtro de desbloqueo 24a y a la memoria de trama 25.
Un filtro de desbloqueo 24a realiza procesos de filtrado para disminuir la distorsión de bloque que ocurre durante la codificación de la imagen. A modo de ejemplo, el filtro de desbloqueo 24a determina la necesidad de filtrar para cada límite de bloque de datos de imagen decodificados suministrados desde una sección de adición 23 y aplica el filtro de desbloqueo a un límite que se determina que requiere el filtro. El filtro de desbloqueo 24a también se suministra con información utilizada para determinar la necesidad de filtrado (por ejemplo, información de modo, información de coeficiente de transformación e información de vector de movimiento), así como datos de imagen decodificados desde la sección de adición 23. Después del filtrado, la distorsión de bloque se elimina de los datos de imagen decodificados y el filtro de desbloqueo 24a envía los datos de imagen decodificados a la memoria de tramas 25. El proceso para el filtro de desbloqueo 24a se describirá con más detalle a continuación.
La memoria de tramas 25 almacena, utilizando un medio de almacenamiento, la entrada de datos de imagen decodificada desde la sección de adición 23 y los datos de imagen decodificada después de filtrar la entrada desde el filtro de desbloqueo 24a.
El selector 26 efectúa la lectura, desde la memoria de tramas 25, de los datos de imagen decodificados antes del filtrado que se utilizarán para la predicción intra, y suministra los datos de imagen decodificados que han sido objeto de lectura a la sección de predicción intra 30 como datos de imagen de referencia. Además, el selector 26 realiza la lectura, desde la memoria de tramas 25, de los datos de imagen decodificados después del filtrado para ser utilizados para la predicción inter, y suministra los datos de imagen decodificados que han sido objeto de lectura a la sección de estimación de movimiento 40 como datos de imagen de referencia.
La sección de predicción intra 30 realiza un proceso de predicción intra en cada modo de predicción intra, basado en los datos de imagen a codificar que se introducen desde la memoria intermedia de reordenamiento 12 y los datos de imagen decodificados suministrados a través del selector 26. A modo de ejemplo, la sección de predicción intra 30 evalúa el resultado de la predicción de cada modo de predicción intra utilizando una función de coste predeterminada. A continuación, la sección de predicción intra 30 selecciona un modo de predicción intra por el cual el valor de la función de coste es el más pequeño, es decir, un modo de predicción intra por el cual la relación de compresión es la más alta, tal como el modo óptimo de predicción intra. Además, la sección de predicción intra 30 proporciona, a la sección de selección de modo 50, información del modo de predicción que indica el modo de predicción intra óptimo, los datos de imagen previstos y la información sobre la predicción intra tal como el valor de la función de coste.
Una sección de estimación de movimiento 40 realiza un proceso de predicción inter (proceso de predicción entre tramas) basado en datos de imagen para la codificación suministrada desde una memoria intermedia de reordenamiento 12 y datos de imagen decodificados suministrados a través de un selector 26. A modo de ejemplo, la sección de estimación de movimiento 40 evalúa el resultado de predicción de cada modo de predicción utilizando una función de coste predeterminada. A continuación, la sección de estimación de movimiento 40 selecciona un modo de predicción óptimo, a saber, un modo de predicción que minimiza el valor de la función de coste o maximiza la relación de compresión. La sección de estimación de movimiento 40 genera datos de imagen previstos de conformidad con el modo de predicción óptimo. La sección de estimación de movimiento 40 proporciona información sobre la predicción inter, tal como información del modo de predicción que indica el modo óptimo de predicción intra, los datos de imagen previstos y el valor de la función de coste a una sección de selección de modo 50.
La sección de selección de modo 50 compara el valor de la función de coste relacionado con la entrada de predicción intra desde la sección de predicción intra 30 y el valor de la función de coste relacionado con la entrada de predicción inter desde la sección de estimación de movimiento 40. A continuación, la sección de selección de modo 50 selecciona un método de predicción con un valor de función de coste menor, desde la predicción intra y desde la predicción inter. En el caso de seleccionar la predicción intra, la sección de selección de modo 50 proporciona la información sobre la predicción intra a la sección de codificación sin pérdida 16, y también, proporciona los datos de imagen predichos a la sección de sustracción 13 y a la sección adición 23. Además, en el caso de seleccionar la predicción inter, la sección de selección de modo 50 proporciona la información sobre la predicción inter descrita con anterioridad a la sección de codificación sin pérdida 16, y también, proporciona los datos de imagen previstos a la sección de sustracción 13 y a la sección de adición 23.
1-2. Dispositivo de decodificación de imágenes
La Figura 2 es un diagrama de bloques que muestra un ejemplo de una configuración de un dispositivo de decodificación de imágenes 60 de conformidad con una forma de realización. Haciendo referencia a la Figura 2, el dispositivo de decodificación de imágenes 60 incluye una memoria intermedia de acumulación 61, una sección de decodificación sin pérdidas 62, una sección de cuantización inversa 63, una sección de transformación ortogonal inversa 64, una sección de adición 65, un filtro de desbloqueo 24b, una memoria intermedia de reordenamiento 67, una sección de conversión D/A (digital a analógico) 68, una memoria de tramas 69, selectores 70 y 71, una sección de predicción intra 80 y una sección de compensación de movimiento 90.
La memoria intermedia de acumulación 61 almacena temporalmente una entrada de flujo codificado a través de una línea de transmisión utilizando un medio de almacenamiento.
La sección de decodificación sin pérdida 62 decodifica una entrada de flujo codificado desde la memoria intermedia de acumulación 61 de conformidad con el método de codificación utilizado en el momento de la codificación. Además, la sección de decodificación sin pérdida 62 decodifica información multiplexada para la zona de cabecera del flujo codificado. La información que se multiplexa a la zona de cabecera del flujo codificado puede incluir información sobre predicción intra e información sobre predicción inter en la cabecera de bloque, por ejemplo. La sección de decodificación sin pérdida 62 proporciona la información sobre predicción intra a la sección de predicción intra 80. Además, la sección de decodificación sin pérdida 62 proporciona la información sobre predicción inter a la sección de compensación de movimiento 90.
La sección de cuantización inversa 63 cuantifica inversamente los datos cuantizados que han sido decodificados por la sección de decodificación sin pérdida 62. La sección de transformación ortogonal inversa 64 genera datos de error previstos al realizar la transformación ortogonal inversa en la entrada de datos de coeficiente de transformación desde la sección de cuantización inversa 63 de conformidad con el método de transformación ortogonal utilizado en el momento de la codificación. A continuación, la sección de transformación ortogonal inversa 64 proporciona los datos de error predichos generados a la sección de adición 65.
La sección de adición 65 añade la entrada de datos de error prevista desde la sección de transformación ortogonal inversa 64 y la entrada de datos de imagen prevista desde el selector 71 para generar así datos de imagen decodificados. A continuación, la sección de adición 65 proporciona los datos de imagen decodificados generados al filtro de desbloqueo 24b y a la memoria de tramas 69.
El filtro de desbloqueo 24b realiza procesos de filtrado para disminuir la distorsión de bloque que aparece en una imagen decodificada. El filtro de desbloqueo 24b determina la necesidad de filtrar en cada límite de bloque para la entrada de datos de imagen decodificada desde la sección de adición 65, por ejemplo, y aplica el filtro de desbloqueo a un límite que se determina que requiere el filtro. El filtro de desbloqueo 24b también se suministra con información utilizada para determinar la necesidad de filtrado, así como datos de imagen decodificados desde la sección de adición 65. Después del filtrado, la distorsión de bloque se elimina de los datos de imagen decodificados y el filtro de desbloqueo 24b proporciona los datos decodificados de imágenes a la memoria intermedia de reordenamiento 67 y a la memoria de tramas 69. El proceso para el filtro de desbloqueo 24b se describirá en detalle a continuación.
La memoria intermedia de reordenamiento 67 genera una serie de datos de imagen en una secuencia de tiempo reordenando las imágenes introducidas desde el filtro de desbloqueo 24b. A continuación, la memoria intermedia de reordenamiento 67 proporciona los datos de imagen generados a la sección de conversión D/A 68.
La sección de conversión D/A 68 convierte los datos de imagen en una entrada de formato digital desde la memoria intermedia de reordenamiento 67 en una señal de imagen en un formato analógico. A continuación, la sección de conversión D/A 68 hace que se visualice una imagen enviando la señal de imagen analógica a una pantalla (no ilustrada) conectada al dispositivo de decodificación de imagen 60, por ejemplo.
La memoria de tramas 69 utiliza un medio de almacenamiento para almacenar la entrada de datos de imagen decodificada de la sección de adición 65 antes del filtrado y la entrada de datos de imagen decodificada del filtro de desbloqueo 24b después del filtrado.
El selector 70 conmuta el destino de salida de los datos de imagen desde la memoria de tramas 69 entre la sección de predicción intra 80 y la sección de compensación de movimiento 90 para cada bloque en la imagen según la información de modo adquirida por la sección de decodificación sin pérdida 62. A modo de ejemplo, en el caso de que se especifique el modo de predicción intra, el selector 70 proporciona los datos de imagen decodificados antes del filtrado que se suministra desde la memoria de tramas 69 a la sección de predicción intra 80 como datos de imagen de referencia. Además, en el caso de que se especifique el modo de predicción inter, el selector 70 proporciona los datos de imagen decodificados después del filtrado que se suministra desde la memoria de tramas 69 a la sección de compensación de movimiento 90 como los datos de imagen de referencia.
El selector 71 conmuta la fuente de salida de los datos de imagen previstos para ser suministrados a la sección de adición 65 entre la sección de predicción intra 80 y la sección de compensación de movimiento 90 para cada bloque en la imagen de conformidad con la información de modo adquirida por la sección de decodificación sin pérdida 62. A modo de ejemplo, en el caso de que se especifique el modo de predicción intra, el selector 71 suministra a la sección de adición 65 la salida de datos de imagen prevista desde la sección de predicción intra 80. En el caso de que se especifique el modo de predicción inter, el selector 71 suministra, a la sección de adición 65, la salida de los datos de imagen prevista desde la sección de compensación de movimiento 90.
La sección de predicción intra 80 realiza la predicción en pantalla de un valor de píxel basado en la información sobre la entrada de predicción intra desde la sección de decodificación sin pérdida 62 y los datos de imagen de referencia desde la memoria de tramas 69, y genera datos de imagen previstos. A continuación, la sección de predicción intra 80 proporciona los datos de imagen previstos generados al selector 71.
La sección de compensación de movimiento 90 realiza un proceso de compensación de movimiento basado en la información sobre la entrada de predicción inter desde la sección de decodificación sin pérdida 62 y los datos de imagen de referencia desde la memoria de tramas 69, y genera datos de imagen previstos. A continuación, la sección de compensación de movimiento 90 proporciona los datos de imagen previstos generados al selector 71.
2. Técnica existente
2-1. Configuración básica del filtro de desbloqueo
En general, los procesos que utilizan el filtro de desbloqueo en un sistema de codificación de imagen existente tal como H.264/AVC o HEVC incluyen dos tipos de procesos, a saber, procesos de determinación de necesidades de filtrado y procesos de filtrado. A continuación, se describen estos dos procesos en HEVC, a modo de ejemplo.
(1) Procesos de determinación de necesidades de filtrado
Los procesos de determinación de necesidades de filtrado determinan si el filtro de desbloqueo necesita aplicarse a cada límite de bloques dentro de una imagen de entrada. Los límites de bloques incluyen un límite vertical entre bloques horizontalmente adyacentes entre sí y un límite horizontal entre bloques verticalmente adyacentes entre sí. JCTVC-A119 utiliza un tamaño de bloque de 8x8 pixels como unidad mínima de procesamiento.
A modo de ejemplo, un macrobloque de 16x16 pixels incluye cuatro bloques de 8x8 pixels. El proceso se aplica a un límite vertical (izquierdo) y un límite horizontal (superior) para cada bloque, a saber, cuatro límites más cuatro límites iguales a ocho límites en total. La especificación supone que el macrobloque como término técnico incluye una unidad de codificación (CU) en el contexto de HEVC.
La Figura 3 es un diagrama explicativo que muestra un ejemplo de pixels en dos bloques (bloques próximos) Ba y Bb adyacentes entre sí alrededor de un límite. A continuación, se describe el límite vertical como un ejemplo y la descripción es obviamente aplicable al límite horizontal. El ejemplo de la Figura 3 utiliza el símbolo P¡j para representar un píxel en el bloque Ba. En este símbolo, i indica un índice de columna y j indica un índice de fila. El índice de columna i se numera como 0, 1, 2 y 3 en orden (de derecha a izquierda) desde la columna más cercana al límite vertical. El índice de fila j se numera como 0, 1,2, ..., 7 de la parte superior a la inferior. La mitad izquierda del bloque Ba se omite del dibujo. El símbolo qkj se utiliza para representar un píxel en el bloque Bb. En este símbolo, k indica un índice de columna y j indica un índice de fila. El índice de columna k se numera como 0, 1, 2 y 3 en orden (de izquierda a derecha) desde la columna más cercana al límite vertical. La mitad derecha del bloque Bb se omite del dibujo.
Las siguientes condiciones se pueden utilizar para determinar la necesidad de aplicar el filtro de desbloqueo al límite vertical entre los bloques Ba y Bb que se muestran en la Figura 3.
Condición de determinación del componente luma (Luma)... El filtro de desbloqueo se aplica si las condiciones A y B son verdaderas.
Condición A:
(A1) El bloque Ba o Bb se introduce al modo de predicción intra;
(A2) El bloque Ba o Bb tiene un coeficiente de transformación ortogonal distinto de cero; o
(A3) |MVAx-MVBx|> 4 o |MVAy-MVBy|> 4
Condición B:
lp22-2pi2+Po2l+lq22-2qi2+qo2l+lp25-2pi5+Po5l+lq25-2qi5+qo5l<P
La condición A3 supone un vector de movimiento para que el bloque Ba sea (MVAx,MVAy) y un vector de movimiento para que el bloque Bb sea (MVBx,MVBy) de conformidad con la precisión de Qpel (1/4 pixels). La condición B utiliza b como valor de umbral de determinación de borde. Se proporciona un valor inicial de b de conformidad con un parámetro de cuantización. El valor de b es especificable por el usuario utilizando un parámetro dentro de la cabecera de segmento de corte.
Condición de determinación del componente de croma (Croma)... El filtro de desbloqueo se aplica si la condición A1 es verdadera.
Condición A1: El bloque Ba o Bb se introduce al modo de predicción intra.
Tal como lo indican las tramas de línea discontinua L3 y L6 en la Figura 4, los procesos de determinación de la necesidad de filtrado en los límites verticales generales (en particular bajo la condición de determinación B del componente luma) establecen los pixels de referencia en la tercera y sexta filas (suponiendo que la fila superior sea la primera) en cada bloque. De manera similar, los procesos de determinación de la necesidad de filtrado en los límites horizontales establecen pixels de referencia (no ilustrados en la Figura 4) en la tercera y sexta columnas en cada bloque. Las condiciones de determinación descritas con anterioridad se utilizan para determinar que el filtro de desbloqueo debe aplicarse a un límite en donde se realizan los procesos de filtrado descritos a continuación.
(2) Procesos de filtrado
Si se determina que el filtro de desbloqueo debe aplicarse a un límite, los procesos de filtrado se realizan en pixels a la derecha y a la izquierda del límite vertical y en pixels por encima y por debajo del límite horizontal. En componentes luma, la intensidad del filtro se conmuta entre un filtro fuerte y un filtro débil de conformidad con los valores de pixels. Filtrado de componentes de luma
Selección de la intensidad... La intensidad del filtro se selecciona para cada fila o columna. El filtro fuerte se selecciona si se cumplen todas las siguientes condiciones de C1 a C3, inclusive. El filtro débil se selecciona si incluso alguna de las condiciones no se cumple.
( C l ) d < ( P » 2 )
(C2)(|p3j-poJ|+!qoJ-q3j|)< (P » 3 )
(C3)[por qoj|<((5tc+l)»l)
donde j indica un índice de fila para el límite vertical o un índice de columna para el límite horizontal. d=|p22-2p12+po2|+|q22-2qi2+qo2|+|p25-2pi5+po5|+|q2s-2qi5+qo5]
Filtrado débil
A=Clip(-tc,tc,(13(qoj-poJ)+4(qij-pij)-5(q2j-p2 j)+ 16 )» 5 ))
P0j=ClÍp0-255(P0j+A)
qoj= Clipo-255(qorA)
p lj=C lip0.255(pij+A/2)
q 1 j=ciipo- 25 5(q ij-A/2)
Filtrado fuerte
Poj=Clipo-255((P2j+2piJ+2poJ+2q0j+ q i j+ 4 )» 3 )
qoj=C 1 ip0-255((p i j+2p0j+2qoj+2q ij+q2j 4 ) » 3 )
Plj~ClÍp0-255((P2j+Plj+P0j+q0j+2) » 2)
qij=Clipo-255((Poj+qoj+qij+q2j+2 ) » 2 )
P2j=ClÍpo.255((2p3j+3p2j+Plj+POj+qOj+4 ) » 3 )
q2j=Clipo-255((poj+qOj+qij+3 q2j+2 q3j+4 ) » 3 )
donde Clip(a,b,c) indica un proceso para recortar el valor c dentro del margen de a<c<b y Clip0.255(c) indica un proceso para recortar el valor c dentro del margen de 0<c<255.
Filtrado de componentes de croma
A=Clip(-tc,tc,((((qoj-Poj)«2)+pij-qij+4)»3))
p0j=C lÍp0-255(POj+A)
qor C lip o 2-5(q.i]-A )
Tal como lo indican las tramas de línea discontinua C6 a C8 y C1 a C3 en la Figura 5, los procesos de filtrado (en particular el filtrado fuerte en componentes luma) en los límites verticales generales actualizan los valores de pixels en las columnas primera a tercera y sexta a octava en cada bloque. Del mismo modo, los procesos de filtrado en los límites horizontales actualizan los valores de pixels en las filas primera a tercera y sexta a octava en cada bloque.
2-2. Dependencia entre procesos según una técnica existente
Para fines de descripción, tal como se ilustra en la Figura 6, el macrobloque MBx (MB0, MB1...), cada uno con un tamaño de 16x16 pixels, incluye el límite vertical superior izquierdo representado como Vx,0, el límite vertical superior central representado como Vx,1, el límite vertical inferior izquierdo representado como Vx,2, el límite vertical central inferior representado como Vx,3, el límite horizontal superior izquierdo representado como Hx,0, el límite horizontal superior derecho representado como Hx,1, el límite horizontal central izquierdo representado como Hx,2, y el límite horizontal central derecho representado como Hx,3. Con respecto al límite Z, por ejemplo, el proceso de determinación de necesidad de filtrado se representa como Jz y el proceso de filtrado se representa como Fz.
La técnica existente descrita con anterioridad no causa dependencia entre procesos en límites en la misma dirección dentro de un macrobloque. Por lo tanto, la técnica puede realizar un filtrado paralelo en límites verticales y límites horizontales dentro de un macrobloque, por ejemplo. A modo de ejemplo, la Figura 7 deja claro que no hay dependencia entre cuatro procesos de filtrado Fv0,0, Fv0,1, Fvü,2, y Fvü,3 (sin pixels actualizados de forma redundante) dentro del macrobloque MB0 y los procesos de filtrado pueden ser realizados en paralelo.
Sin embargo, la técnica existente descrita con anterioridad deja la dependencia entre los procesos de filtrado en los límites verticales y los procesos de determinación de necesidad de filtrado en los límites horizontales. La técnica existente también deja la dependencia entre los procesos de filtrado en los límites horizontales y los procesos de determinación de necesidad de filtrado en los límites verticales. Si un límite vertical se procesa antes que un límite horizontal, por ejemplo, los procesos de determinación de necesidad de filtrado deben realizarse en límites horizontales dentro de un macrobloque dado después de la finalización de los procesos de filtrado en límites verticales. A modo de ejemplo, la Figura 8 muestra que, dentro del macrobloque MB0, el proceso de determinación de la necesidad de filtrado Jho,o depende de los resultados de los procesos de filtrado Fvo,o y Fvo,1 y el proceso de determinación de la necesidad de filtrado Jho,1 depende del resultado de los procesos de filtrado Fvo,1. De manera similar, los procesos de determinación de la necesidad de filtrado deben realizarse en límites verticales dentro de un macrobloque dado después de la finalización del proceso de filtrado en el límite horizontal para el macrobloque adyacente. A modo de ejemplo, la Figura 9 muestra que el proceso de determinación de la necesidad de filtrado Jv 1,o para el macrobloque MB1 depende de los resultados de los procesos de filtrado Fho,1 y Fho,3 para el macrobloque MB0 y el proceso de determinación de la necesidad de filtrado Jv1,2 para el macrobloque MB1 depende en un resultado del proceso de filtrado Fho,3 para el macrobloque MB0.
La técnica existente implica la dependencia entre procesos y, por lo tanto, proporciona un procesamiento en paralelo del filtro de desbloqueo en un grado muy limitado, incluso si se utiliza la técnica propuesta en JCTVC-A119.
La Figura 10 es un diagrama explicativo que ilustra una secuencia de procesos de filtro de desbloqueo de conformidad con una técnica existente. El ejemplo supone que el filtro de desbloqueo se suministra con una imagen que tiene el tamaño de 32x32 pixels. La imagen de entrada incluye cuatro macrobloques MB0 a MB3, cada uno con un tamaño de 16x16 pixels.
En la Figura 10, cada trama de línea discontinua representa un proceso a realizar en paralelo. A modo de ejemplo, La primera etapa realiza, en paralelo, los procesos de determinación de necesidades de filtrado Jvo,o, Jvo,1, Jvo,2 y Jvo,3 en cuatro límites verticales en el macrobloque MB0. La segunda etapa realiza, en paralelo, los procesos de filtrado Fvo,o, Fvo,1, Fvo,2 y Fvo,3 en cuatro límites verticales en el macrobloque MB0. Después de la finalización de la segunda etapa, la tercera etapa realiza, en paralelo, los procesos de determinación de necesidades de filtrado Jho,o, Jho,1, Jho,2 y Jho,3 en cuatro límites horizontales en el macrobloque MB0. La cuarta etapa realiza, en paralelo, los procesos de filtrado Fho,o, Fho,1, Fho,2 y Fho,3 en cuatro límites horizontales en el macrobloque MB0. Después de la terminación de la cuarta etapa, los procesos (etapas quinta a octava) para el macrobloque MB1 se realizan de manera sucesiva. Después de la finalización de los procesos en el macrobloque MB1, los procesos (etapas novena a duodécima) para el macrobloque MB2 se realizan de manera sucesiva. Después de la finalización de los procesos en el macrobloque MB2, los procesos (etapas trece a dieciséis) para el macrobloque MB3 se realizan de manera sucesiva.
Dicho procesamiento en paralelo dentro de la extensión limitada no puede resolver de manera satisfactoria el problema del retardo o la degradación de la tasa de datos debido a una gran cantidad de procesamiento cuando se aplica el filtro de desbloqueo. Tres ejemplos prácticos descritos a continuación mejoran aún más el procesamiento en paralelo cuando se aplica la definición.
3. Primer ejemplo práctico
3-1. Ejemplo de configuración del filtro de desbloqueo
A continuación, se describen configuraciones ejemplo del filtro de desbloqueo 24a para el dispositivo de codificación de imagen 10 que se muestra en la Figura 1 y el filtro de desbloqueo 24b para el dispositivo de decodificación de imagen 60 que se muestra en la Figura 2 según el primer ejemplo práctico. Las configuraciones del filtro de desbloqueo 24a y del filtro de desbloqueo 24b pueden ser comunes entre sí. En la siguiente descripción, el filtro de desbloqueo 24a y el filtro de desbloqueo 24b se suelen referir, de forma genérica, como filtro de desbloqueo 24 cuando no hay necesidad de distinción entre ellos.
(1) Dependencia entre nuevos procesos
Según el ejemplo práctico, los procesos que utilizan el filtro de desbloqueo 24 también incluyen dos tipos de procesos, a saber, los procesos de determinación de necesidades de filtrado y los procesos de filtrado. Sin embargo, el filtro de desbloqueo 24 utiliza valores de un píxel de referencia diferente de la técnica existente para determinar si se aplica, o no, el filtro de desbloqueo a los límites verticales y horizontales. Concretamente, para la determinación de límites verticales, el filtro de desbloqueo 24 utiliza un píxel de referencia, es decir, un píxel que se incluye en pixels de bloques adyacentes alrededor del límite vertical y que pertenece a una fila a la que no se aplica el filtro de desbloqueo para límites horizontales. Para la determinación de límites horizontales, el filtro de desbloqueo 24 utiliza otro píxel de referencia, es decir, un píxel que se incluye en pixels de bloques adyacentes alrededor del límite horizontal y que pertenece a una fila a la que no se aplica el filtro de desbloqueo para límites verticales. También en la siguiente descripción, el filtro de desbloqueo 24 realiza procesos basados en un tamaño de bloque de 8x8 pixels como una unidad de procesamiento, por ejemplo.
La Figura 11 es un diagrama explicativo que ilustra los pixels de referencia durante los procesos de determinación de necesidad de filtrado realizados por el filtro de desbloqueo 24 en límites verticales. Haciendo referencia a la Figura 11, el macrobloque MB0 tiene el tamaño de 16x16 pixels. El filtro de desbloqueo 24 determina si se aplica, o no, el filtrado a cuatro límites verticales del macrobloque MB0 utilizando el píxel de referencia que pertenece al menos a una de las filas cuarta y quinta (L4 y L5) de cada bloque. El filtro de desbloqueo para límites horizontales no se aplica a estas dos filas (véase Figura 9). Esta configuración resuelve la dependencia entre los procesos de filtrado en límites horizontales y los procesos de determinación de la necesidad de filtrado en límites verticales.
La Figura 12 es un diagrama explicativo que ilustra los pixels de referencia durante los procesos de determinación de necesidad de filtrado realizados por el filtro de desbloqueo 24 en los límites horizontales. La Figura 12 también muestra el macrobloque MB0. El filtro de desbloqueo 24 determina si se aplica, o no, el filtrado a cuatro límites horizontales del macrobloque MB0 utilizando el píxel de referencia que pertenece al menos a una de las columnas cuarta y quinta (C4 y C5) de cada bloque. El filtro de desbloqueo para límites verticales no se aplica a estas dos columnas (véase Figura 7 u 8). Esta configuración resuelve la dependencia entre los procesos de filtrado en límites verticales y los procesos de determinación de la necesidad de filtrado en límites horizontales.
Resolver la dependencia entre procesos puede, en consecuencia, paralelizar los procesos de determinación de la necesidad de filtrado para límites verticales y para límites horizontales dentro de un macrobloque. Los procesos pueden ser paralelos entre macrobloques. Los procesos de determinación de necesidades de filtrado se pueden realizar en paralelo en los límites verticales y en los límites horizontales de todos los macrobloques dentro de una imagen de entrada.
La Figura 13 es un diagrama explicativo que ilustra un primer ejemplo de secuencia de proceso disponible en el filtro de desbloqueo 24. El ejemplo también supone que el filtro de desbloqueo se suministra con una imagen que tiene un tamaño de 32x32 pixels. La imagen de entrada incluye cuatro macrobloques MB0 a MB3, cada uno con un tamaño de 16x16 pixels.
En la Figura 13, cada trama de línea discontinua representa un proceso a realizar en paralelo. Mientras que el ejemplo en la Figura 10 requiere 16 etapas de proceso para una secuencia de procesos, el ejemplo en la Figura 13 agrega el mismo número de procesos en tres etapas de proceso. La primera etapa realiza, en paralelo, los procesos de determinación de necesidades de filtrado Jv0,0 a Jv3,3 y Jh0,0 a Jh3,3 en todos los límites verticales y en todos los límites horizontales de todos los macrobloques MB0 a MB3. La segunda etapa realiza, en paralelo, los procesos de filtrado Fv0,0 a Fv3,3 inclusive en 16 límites verticales de todos los macrobloques MB0 a MB3. La tercera etapa realiza, en paralelo, los procesos de filtrado Fh0,0 a Fh3,3 inclusive en 16 límites horizontales de todos los macrobloques MB0 a MB3. La segunda etapa y la tercera etapa pueden realizarse en el orden inverso.
El ejemplo en la Figura 13 maximiza el paralelismo (la cantidad de procesos realizados en paralelo) basado en el procesamiento en paralelo entre macrobloques. Sin embargo, según el ejemplo de la Figura 14, el filtro de desbloqueo 24 puede realizar un proceso en cada macrobloque.
El ejemplo en la Figura 14 agrega el mismo número de procesos ilustrados en las Figuras 10 y 13 en 12 etapas del proceso. La primera etapa realiza, en paralelo, los procesos de determinación de necesidades de filtrado Jv0,0 a Jvü,3 inclusive y Jho,o a Jho,3 inclusive en cuatro límites verticales y en cuatro límites horizontales de macrobloque MB0. La segunda etapa realiza, en paralelo, los procesos de filtrado Fvo,o a Fvo,3 inclusive en cuatro límites verticales en el macrobloque MB0. La tercera etapa realiza, en paralelo, los procesos de determinación de necesidades de filtrado Jv1,o a Jv 1,3 inclusive y Jh1,o a Jh1,3 inclusive en cuatro límites verticales y en cuatro límites horizontales del macrobloque MB1. La cuarta etapa realiza, en paralelo, los procesos de filtrado Fv 1,o a Fv 1,3 inclusive en cuatro límites verticales en el macrobloque MB1. La quinta etapa realiza, en paralelo, los procesos de filtrado Fho,o a Fho,3 inclusive en cuatro límites horizontales en el macrobloque MB0. La sexta etapa realiza, en paralelo, los procesos de determinación de necesidades de filtrado Jv2,o a Jv2,3 inclusive y Jh2,o a Jh2,3 inclusive en cuatro límites verticales y en cuatro límites horizontales del macrobloque MB2. La séptima etapa realiza, en paralelo, los procesos de filtrado Fv2,o a Fv2,3 inclusive en cuatro límites verticales en el macrobloque MB2. La octava etapa realiza, en paralelo, los procesos de filtrado Fh i,0 a Fh1,3 inclusive en cuatro límites horizontales en el macrobloque MB1. La novena etapa realiza, en paralelo, los procesos de determinación de necesidades de filtrado Jv3,0 a Jv3,3 inclusive y Jh3,0 a Jh3,3 inclusive en cuatro límites verticales y en cuatro límites horizontales del macrobloque MB3. La décima etapa realiza, en paralelo, los procesos de filtrado Fv3,0 a Fv3.3 inclusive en cuatro límites verticales en el macrobloque MB3. La undécima etapa realiza, en paralelo, los procesos de filtrado de Fh2,0 a Fh2,3 inclusive en cuatro límites horizontales en el macrobloque MB2. La duodécima etapa realiza, en paralelo, los procesos de filtrado Fh3,0 a Fh3,3 inclusive en cuatro límites horizontales en el macrobloque MB3. En este caso, el filtro de desbloqueo 24 puede realizar un proceso en toda la imagen de entrada utilizando etapas de proceso menores que los de la técnica existente, mientras que el paralelismo es menor que el ejemplo de la Figura 13.
(2) Configuración básica del filtro de desbloqueo
La Figura 15 es un diagrama de bloques que ilustra una configuración detallada del filtro de desbloqueo 24 según el primer ejemplo práctico para realizar los procesos paralelos descritos con anterioridad. Haciendo referencia a la Figura 15, el filtro de desbloqueo 24 incluye un bloque de determinación 110, un bloque de filtrado horizontal 130, un bloque de filtrado vertical 140 y una sección de control de paralelización 150.
(2-1) Bloque de determinación
El bloque de determinación 110 incluye las secciones de determinación de límite vertical 112-1 a 112-n y las secciones de determinación de límite horizontal 114-1 a 114-n inclusive. Las secciones de determinación de límite vertical 112 y las secciones de determinación de límite horizontal 114 se suministran con imágenes introducidas en el filtro de desbloqueo 24 y la información de determinación utilizada para determinar la necesidad de filtrado.
Las secciones de determinación de límite vertical 112 determinan si se aplica, o no, el filtro de desbloqueo a los límites verticales utilizando valores de pixels de pixels de referencia que pertenecen a una fila a la que el filtro de desbloqueo para límites horizontales no se aplica tal como se ilustra en la Figura 11. En este ejemplo, un valor de píxel del píxel de referencia se introduce en el filtro de desbloqueo 24. Las secciones de determinación de límite vertical 112 envían, al bloque de filtrado horizontal 130, información que indica un resultado de determinación sobre cada límite vertical (por ejemplo, información binaria cuyo valor "1" indica un resultado de determinación de que el filtro de desbloqueo debe aplicarse).
Las secciones de determinación de límites horizontales 114 determinan si se aplica, o no, el filtro de desbloqueo a los límites horizontales utilizando valores de pixels de pixels de referencia que pertenecen a una fila a la que el filtro de desbloqueo para límites verticales no se aplica tal como se ilustra en la Figura 12. En este ejemplo, un valor de píxel del píxel de referencia también se introduce en el filtro de desbloqueo 24. El proceso de determinación realizado por cada una de las secciones de determinación de límite horizontal 114 se realiza en paralelo al proceso de determinación realizado por cada una de las secciones de determinación de límite vertical 112. Las secciones de determinación de límite horizontal 114 proporcionan, al bloque de filtrado vertical 140, información que indica un resultado de determinación sobre cada límite horizontal.
La Figura 16 es un diagrama de bloques que ilustra una configuración detallada de cada una de las secciones de determinación de límite vertical 112 y de las secciones de determinación de límite horizontal 114. Haciendo referencia a la Figura 16, cada sección de determinación incluye una sección de constitución de derivación 121, una sección de cálculo 122, una sección de comparación de umbral 123, una sección de evaluación de distorsión 124 y una sección de determinación de filtrado 125.
La sección de constitución de derivación 121 adquiere un valor de píxel de referencia a partir de valores de píxel de dos bloques próximos alrededor de un límite enfocado en la imagen de entrada y constituye una derivación (un conjunto de valores de píxel de referencia) para determinar la condición de determinación B para el componente luma descrito con anterioridad. A modo de ejemplo, un límite vertical puede enfocarse en los bloques, cada uno de los cuales tiene el tamaño de 8x8 pixels. En este caso, la sección de constitución de derivación 121 constituye una derivación de un valor de píxel que pertenece a la cuarta y/o quinta filas de dos bloques a la derecha y a la izquierda. Si se enfoca un límite horizontal, la sección de constitución de derivación 121 constituye una derivación de un valor de píxel que pertenece a la cuarta y/o quinta columna de dos bloques en la parte superior e inferior. La sección de cálculo 122 asigna la derivación constituida por la sección de constitución de derivación 121 al lado izquierdo de la expresión de determinación en la condición de determinación B y calcula un valor de borde para comparar con el valor de umbral de determinación de borde p. La sección de comparación de umbral 123 compara el valor calculado por la sección de cálculo 122 con el valor de umbral de determinación de borde p y proporciona un resultado de comparación a la sección de determinación de filtrado 125.
La sección de evaluación de distorsión 124 evalúa la condición de determinación A del componente luma descrito con anterioridad utilizando información de modo (modo MB), información de coeficiente de transformación e información de vector de movimiento suministrada como información de determinación. La sección de evaluación de distorsión 124 proporciona un resultado de evaluación a la sección de determinación de filtrado 125. La sección de evaluación de distorsión 124 evalúa solamente la condición de determinación A1 de un componente de croma basado en la información de modo.
La sección de determinación de filtrado 125 determina si se aplica, o no, el filtro de desbloqueo a un límite enfocado basado en un resultado de comparación de la condición de determinación B suministrada desde la sección de comparación de umbral 123 y un resultado de evaluación de la condición de determinación A suministrada desde la sección de evaluación de distorsión 124. La sección de determinación de filtrado 125 emite información que indica el resultado de la determinación.
(2-2) Bloque de filtrado horizontal
Haciendo referencia de nuevo a la Figura 15, la configuración del filtro de desbloqueo 24 se describirá más detalladamente. El bloque de filtrado horizontal 130 incluye secciones de filtrado horizontal 132-1 a 132-n inclusive. Las secciones de filtrado horizontal 132 se suministran con una imagen de entrada y un resultado de determinación con respecto a cada límite vertical desde el bloque de determinación 110.
Las secciones de filtrado horizontal 132 aplican el filtro de desbloqueo para los límites verticales a los pixels derecho e izquierdo alrededor del límite vertical correspondiente si el resultado de la determinación de la sección de determinación del límite vertical 112 indica que el filtro necesita ser aplicado. Las secciones de filtrado horizontal 132 proporcionan, al bloque de filtrado vertical 140, un valor de píxel después del filtrado en función del píxel filtrado o un valor de píxel de la imagen de entrada en función de los otros pixels.
(2-3) Bloque de filtrado vertical
El bloque de filtrado vertical 140 incluye secciones de filtrado vertical 142-1 a 142-n inclusive. Las secciones de filtrado vertical 142 se suministran con una imagen de entrada y un resultado de determinación con respecto a cada límite horizontal desde el bloque de determinación 110.
Las secciones de filtrado vertical 142 aplican el filtro de desbloqueo para los límites horizontales a los pixels superiores e inferiores alrededor del límite horizontal correspondiente si el resultado de la determinación de la sección de determinación del límite horizontal 114 indica que el filtro necesita ser aplicado. Las secciones de filtrado vertical 142 generan un valor de píxel después del filtrado en función del píxel filtrado o un valor de píxel suministrado desde el bloque de filtrado horizontal 130 en función de los otros pixels. Una salida de cada una de las secciones de filtrado vertical 142 puede estar contenida en una imagen de salida desde el filtro de desbloqueo 24.
(2-4) Sección de control de paralelización
La sección de control de paralelización 150 controla el paralelismo de los procesos de determinación de necesidad de filtrado en el bloque de determinación 110 y el paralelismo de los procesos de filtrado en el bloque de filtrado horizontal 130 y en el bloque de filtrado vertical 140.
A modo de ejemplo, la sección de control de paralelización 150 puede controlar el paralelismo de procesos para cada bloque basándose en un tamaño de imagen de entrada. Más concretamente, la sección de control de paralelización 150 aumenta el paralelismo de procesos para cada bloque si el tamaño de la imagen de entrada es relativamente grande. Lo que antecede puede evitar, de forma adaptativa, el retardo o la degradación de la tasa de datos debido a una cantidad de procesamiento que aumenta según los tamaños de imagen. A modo de ejemplo, la sección de control de paralelización 150 puede controlar el paralelismo de procesos para cada bloque en función de un conjunto de parámetros de secuencia, de un conjunto de parámetros de imagen o de parámetros contenidos en la cabecera del segmento de corte. Lo que antecede permite configurar, de forma flexible, el paralelismo de conformidad con los requisitos de los usuarios que desarrollan aparatos. A modo de ejemplo, el paralelismo puede configurarse de conformidad con restricciones en el entorno de instalación, tal como la cantidad de núcleos de procesador o la cantidad de subprocesos de software.
El ejemplo práctico puede paralelizar procesos entre macrobloques. Lo que antecede significa que cualquier secuencia de procesos en bloques dentro de una imagen no tiene ningún efecto en un resultado final. En consecuencia, la sección de control de paralelización 150 puede controlar una secuencia de procesos de determinación de necesidad de filtrado en el bloque de determinación 110 y una secuencia de procesos de filtrado en el bloque de filtrado horizontal 130 y en el bloque de filtrado vertical 140 sobre una base de bloque.
Más concretamente, la sección de control de paralelización 150 puede controlar una secuencia de procesos de filtrado de conformidad con la dependencia de los procesos de filtrado entre macrobloques. Según una técnica existente, por ejemplo, la dependencia de procesos entre macrobloques próximos alrededor de un límite de segmento de corte puede retardar procesos paralelos en cada corte dentro de una imagen. Sin embargo, la sección de control de paralelización 150, según el ejemplo práctico, puede realizar procesos de filtrado en macrobloques próximos alrededor del límite de corte antes de los otros macrobloques.
A modo de ejemplo, la Figura 17 ilustra ocho macrobloques MB10 a MB13 y MB20 a MB23 alrededor de un límite de corte. Los macrobloques MB10 a MB13 pertenecen al segmento de corte SL1. Los macrobloques MB20 a MB23 pertenecen al segmento de corte SL2. Con respecto a estos macrobloques, los procesos de filtrado para los límites horizontales en el macrobloque MB20 en el segmento de corte SL2 dependen de los procesos de filtrado para los límites verticales en el macrobloque MB12 en el segmento de corte SL1. De manera similar, los procesos de filtrado para límites horizontales en el macrobloque MB21 en el segmento de corte SL2 dependen de los procesos de filtrado para límites verticales en el macrobloque MB13 en el segmento de corte SL1.
Según un ejemplo en la Figura 18, en estas condiciones, la sección de control de paralelización 150 realiza procesos de filtrado en los límites verticales de los macrobloques MB12 y MB13 fuera de los procesos de filtrado para el segmento de corte SL1 con preferencia a los procesos en los otros límites. El resultado es evitar que ocurra un importante retardo en los procesos de filtrado en los límites horizontales de los macrobloques MB20 y MB21 fuera de los procesos de filtrado para el segmento de corte SL2. Un ejemplo en la Figura 19 inicialmente realiza procesos de filtrado en paralelo en límites verticales para todos los macrobloques incluidos en el segmento de corte SL1. También en este caso, no se produce ningún retardo en el proceso de filtrado en los límites horizontales de los macrobloques MB20 y MB21 en el segmento de corte SL2.
3-2. Flujo del proceso
Haciendo referencia a las Figuras 20 a 22, se describirá un flujo de proceso para el filtro de desbloqueo 24.
(1) Primer escenario operativo
La Figura 20 es un diagrama de flujo que ilustra un ejemplo de flujo de proceso para el filtro de desbloqueo 24 según el primer escenario operativo. El primer escenario corresponde al ejemplo de gran paralelismo tal como se ilustra en la Figura 13.
Haciendo referencia a la Figura 20, las secciones de determinación de límites verticales 112-1 a 112-n determinan en paralelo si se necesita filtrado para todos los límites verticales incluidos en macrobloques dentro de una imagen de entrada (etapa S102). Las secciones de determinación de límites horizontales 114-1 a 114-n determinan, en paralelo, si se necesita, o no, filtrado para todos los límites horizontales incluidos en macrobloques dentro de una imagen de entrada (etapa S104). Las etapas S102 y S104 también se realizan en paralelo.
Las secciones de filtrado horizontal 132-1 a 132-n aplican el filtro de desbloqueo en paralelo a todos los límites verticales determinados en la etapa S102 para requerir que se aplique el filtro de desbloqueo (etapa S110). Las secciones de filtrado vertical 142-1 a 142-n aplican el filtro de desbloqueo en paralelo a todos los límites horizontales determinados en la etapa S104 para requerir que se aplique el filtro de desbloqueo (etapa S120).
(2) Segundo escenario operativo
La Figura 21 es un diagrama de flujo que ilustra un ejemplo de flujo de proceso para el filtro de desbloqueo 24 según el segundo escenario operativo. El segundo escenario corresponde al ejemplo de paralelismo más pequeño tal como se ilustra en la Figura 14.
Haciendo referencia a la Figura 21, las secciones de determinación de límites verticales 112-1 a 112-n determinan, en paralelo, si se necesita filtrado para todos los límites verticales incluidos en un macrobloque enfocado dentro de una imagen de entrada (etapa S202). Las secciones de determinación de límites horizontales 114-1 a 114-n determinan, en paralelo, si se necesita, o no, filtrado para todos los límites horizontales incluidos en el macrobloque enfocado (etapa S204). Las etapas S202 y S204 también se realizan en paralelo.
Las secciones de filtrado horizontal 132-1 a 132-n aplican el filtro de desbloqueo en paralelo a los límites verticales en el macrobloque enfocado determinado en la etapa S202 para requerir que se aplique el filtro de desbloqueo (etapa S210).
El proceso en la etapa S220 se refiere a un macrobloque enfocado en el ciclo más reciente. El proceso en la etapa S220 puede omitirse para el primer macrobloque enfocado. Las secciones de filtrado vertical 142-1 a 142-n aplican el filtro de desbloqueo en paralelo a los límites horizontales determinados, en la etapa S204 en el bucle más reciente, para requerir que se aplique el filtro de desbloqueo (etapa S220).
El proceso en las etapas S202 a S220 se repite para un macrobloque recientemente enfocado si los macrobloques enfocados permanecen sin procesar en la imagen de entrada (etapa S230).
Si no queda ningún macrobloque enfocado sin procesar, las secciones de filtrado vertical 142-1 a 142-n aplican el filtro de desbloqueo en paralelo a los límites horizontales determinados para requerir que el filtro de desbloqueo se aplique en el macrobloque enfocado para el último bucle (etapa S240). El proceso termina entonces.
Si bien se han descrito los dos escenarios operativos típicos para paralelizar procesos en unidades de imágenes y macrobloques, los dos escenarios operativos son simples ejemplos para la descripción. Los procesos del filtro de desbloqueo 24 pueden ser paralelos en varias unidades, tales como un número dado de macrobloques (dos o cuatro macrobloques) o un grupo de bloques colocados horizontal o verticalmente, por ejemplo.
(3) Proceso de determinación de necesidad de filtrado
La Figura 22 es un diagrama de flujo que ilustra un flujo de procesos de determinación de necesidades de filtrado correspondientes a las etapas S102 y S104 en la Figura 20 y a las etapas S202 y S204 en la Figura 21.
Haciendo referencia a la Figura 22, la sección de evaluación de distorsión 124 evalúa la distorsión de cada límite basándose en la información del modo, la información del coeficiente de transformación y la información del vector de movimiento (etapa S130). El proceso continúa con la etapa S134 si la evaluación da como resultado la presencia de distorsión (la condición de determinación A es verdadera). El proceso continúa a la etapa S140 si la evaluación resulta en ausencia de distorsión (etapa S132).
En la etapa S134, la sección de cálculo 122 calcula un valor de borde basado en una derivación de pixels de referencia constituida por la sección de constitución de derivación 121 (etapa S134). La sección de comparación de umbral 123 compara el valor calculado con el valor de umbral de determinación de borde b (etapa S136). El proceso pasa a la etapa S138 si el valor de borde es menor que el valor de umbral b (la condición de determinación B es verdadera). El proceso pasa a etapa S140 si el valor de borde no es menor que el valor umbral b.
En la etapa S138, la sección de determinación de filtrado 125 determina aplicar el filtro de desbloqueo a un límite a determinar (etapa S138). En la etapa S140, la sección de determinación de filtrado 125 determina no aplicar el filtro de desbloqueo a un límite a determinar (etapa S140).
4. Segundo ejemplo práctico
El primer ejemplo práctico realiza el proceso de determinación de necesidad de filtrado en un bloque dado utilizando el valor de píxel de un píxel no actualizado por los procesos de filtrado en los otros bloques. Por el contrario, el segundo ejemplo práctico descrito a continuación proporciona memoria para almacenar la entrada de valores de pixels en el filtro de desbloqueo y, por lo tanto, permite eliminar las restricciones en los procesos de determinación de necesidad de filtrado y utilizar condiciones de determinación más versátiles.
4-1. Ejemplo de configuración del filtro de desbloqueo
(1) Descripción de secciones
La Figura 23 es un diagrama de bloques que ilustra una configuración detallada del filtro de desbloqueo 24 según el segundo ejemplo práctico. Haciendo referencia a la Figura 23, el filtro de desbloqueo 24 incluye la memoria de línea 208, un bloque de determinación 210, el bloque de filtrado horizontal 130, el bloque de filtrado vertical 140 y la sección de control de paralelización 150.
La memoria de línea 208 almacena valores de píxel para una imagen de entrada suministrada al filtro de desbloqueo 24. Los procesos de filtrado en el bloque de filtrado horizontal 130 y el bloque de filtrado vertical 140 no actualizan los valores de píxel almacenados en la memoria de línea 208. Los procesos de determinación de la necesidad de filtrado realizados por secciones descritas a continuación en el bloque de determinación 210, se refieren a valores de pixels de referencia almacenados en la memoria de línea 208. El aparato incluye otra memoria para fines diferentes de los procesos del filtro de desbloqueo 24. Esta memoria puede reutilizarse (compartirse) como la memoria de línea 208.
El bloque de determinación 210 incluye las secciones de determinación de límite vertical 212-1 a 212-n y las secciones de determinación de límite horizontal 214-1 a 214-n. Las secciones de determinación de límite vertical 212 y las secciones de determinación de límite horizontal 214 se suministran con valores de pixels almacenados en la memoria de línea 208 para una entrada de imagen al filtro de desbloqueo 24 y la información de determinación utilizada para determinar la necesidad de filtrado.
Las secciones de determinación de límite vertical 212 utilizan valores de pixels introducidos al filtro de desbloqueo 24 para determinar si se aplica el filtro de desbloqueo a cada límite vertical. Las secciones de determinación de límite vertical 212 proporcionan, al bloque de filtrado horizontal 130, información que indica un resultado de determinación sobre cada límite vertical.
Las secciones de determinación de límite horizontal 214 también utilizan valores de pixels introducidos al filtro de desbloqueo 24 para determinar si se aplica el filtro de desbloqueo a cada límite horizontal. Las secciones de determinación de límite horizontal 214 realizan procesos de determinación en paralelo a los procesos de determinación realizados por las secciones de determinación de límite vertical 212. Las secciones de determinación de límite horizontal 214 proporcionan, al bloque de filtrado vertical 140, información que indica un resultado de determinación sobre cada límite horizontal.
(2) Condiciones de determinación versátiles
De manera similar, a la técnica existente tal como se ilustra en la Figura 4, las secciones de determinación de límite vertical 212, según el ejemplo práctico, pueden hacer referencia a pixels en las filas tercera y sexta de un bloque para determinar la necesidad de filtrar en un límite vertical de cada bloque. En este caso, sin embargo, los valores de píxel a los que se hace referencia se almacenan en la memoria de línea 208 y se atribuyen a una entrada de imagen al filtro de desbloqueo 24. De manera similar, las secciones de determinación de límite horizontal 214 pueden hacer referencia a pixels en la tercera y sexta filas de un bloque para determinar la necesidad de filtrar en un límite horizontal de cada bloque. En este caso, la configuración, de conformidad con el ejemplo práctico, se puede proporcionar fácilmente sin cambiar las condiciones de determinación para los procesos de determinación de necesidad de filtrado instalados en un aparato existente.
Las secciones de determinación de límite vertical 212 pueden hacer referencia a pixels de tres o más filas en un bloque durante la determinación. De manera similar, las secciones de determinación de límite horizontal 214 pueden hacer referencia a pixels de tres o más columnas en un bloque durante la determinación. Las secciones de determinación de límite vertical 212 y las secciones de determinación de límite horizontal 214 pueden utilizar expresiones de condición de determinación diferentes de la técnica existente. Haciendo referencia a las Figuras 24 a 26, a continuación, se describen seis ejemplos de la técnica de determinación de conformidad con el ejemplo práctico.
(2-1) Primer ejemplo
La Figura 24 es un diagrama explicativo que ilustra el primer y segundo ejemplos de la técnica de determinación. En el primer y segundo ejemplos, los procesos de determinación de la necesidad de filtrado (en particular la determinación que utiliza la condición de determinación B para componentes de luma) para los pixels de referencia de límites verticales de todas las filas L1 a L8 inclusive desde la primera a la octava en cada bloque. Los procesos de determinación de necesidad de filtrado para límites horizontales también hacen referencia a pixels de todas las columnas desde la primera hasta la octava en cada bloque.
El primer ejemplo puede definir condiciones de determinación para componentes de luma de la siguiente manera. Condición de determinación del componente luma (Luma)... El filtro de desbloqueo se aplica si las condiciones A y B son verdaderas.
Condición A:
(A1) El bloque Ba o Bb se introduce al modo de predicción intra;
(A2) El bloque Ba o Bb tiene un coeficiente de transformación ortogonal distinto de cero; o
(A3) |MVAx-MVBx|> 4 o |MVAy-MVBy|> 4
Condición B:
ÍDoHp20-2piO+Pool+ lq20-2q]0+ qoo|+|P27-2pi7+Po7l+|q27-2qi7+ q<i7¡
iD|=|p2i-2p1i+poi|+|q2i-2qn+qoi|+|p26-2pi6+Pü6|+|q2S-2qi6+qo6l
iD 2=[p22-2pi2+Po2|+|q22-2qi2+qo2l+|p25-2pi5+Po5|+ |q25-2qi5+qo5|
ÍD 3 =|P 23 - 2 pi 3 +P 03 |+|q 23 - 2 qi 3 +q 03 |+|P 24 - 2 pi 4 +P 04 |+|q 24 - 2 qi 4 +q 04 |
iDave=(ÍDo+iDi+iD2+iD3) » 2
Bajo esta condición, iDave<b
La condición de determinación para los componentes de croma puede ser igual a la técnica existente descrita con anterioridad. Se puede calcular una media ponderada para calcular el iDave medio para cuatro parámetros de determinación iDü a iD3.
(2-2) Segundo ejemplo
El segundo ejemplo puede definir la condición de determinación B para componentes de luma de la siguiente manera.
Condición B:
¡I)o=lP20-2pio+Poo|+|q2o-2qio+qooMP27-2pi7+po7|+|q27-2qi7+qo7|
iDi=lp2i-2pn+poi|+|q2i-2qii+qoi|+|p26-2pi6+Po(¡l+ |q2ó-2q16+qoó|
iD2=|p22-2pi2+po2|+|q22-2qn+qo2|+|p25-2p15+po5|+ |q25-2qi5+qo5|
ÍD3=|p23-2pi3+pO3l+!q23-2qi3+q03|+!P24-2pl4+P04|+ |q24-2qi4+q04|
Bajo esta condición, iÜ0<P y iDi<b y iÜ2<P y iÜ3<P
Una ecuación para calcular cuatro parámetros de determinación iD0 a iD3 es igual a la del primer ejemplo. Una condición disponible es que no todos, pero al menos tres, dos o uno de los cuatro parámetros de determinación iD0 a iD3 son menores que el valor umbral de determinación de borde p.
(2-3) Tercer ejemplo
La Figura 25 es un diagrama explicativo que ilustra los ejemplos tercero y cuarto de la técnica de determinación. En los tercero y cuarto ejemplos, los procesos de determinación de la necesidad de filtrado (en particular la determinación que utiliza la condición de determinación B para componentes de luma) para los pixels de referencia de límites verticales de cuatro filas L1, L3, L6 y L8 en cada bloque. Los procesos de determinación de necesidad de filtrado para límites horizontales también hacen referencia a pixels de cuatro columnas en cada bloque.
El tercer ejemplo puede definir condiciones de determinación para componentes de luma de la siguiente manera. Condición de determinación del componente luma (Luma)... El filtro de desbloqueo se aplica si las condiciones A y B son verdaderas.
Condición A:
(A1) El bloque Ba o Bb se introduce al modo de predicción intra;
(A2) El bloque Ba o Bb tiene un coeficiente de transformación ortogonal distinto de cero; o
(A3) |MVAx-MVBx|>4 o |MVAy-MVBy|>4
Condición B:
iDo=|p2o-2pio+PooMq2Q-2qicf,“qooMP27-2pi7+po7!+iq27-2qi7','qo7|
iD 2=|p22-2pi2+po2|+|q22-2qi2+qo2|+|p25-2pi5+Po5¡+|q25-2qi5+qo5|
iDave=( i D0+ i D2) » 1
Bajo esta condición, iDave<P
La condición de determinación para los componentes de croma puede ser igual a la técnica existente descrita con anterioridad. Se puede calcular una media ponderada para calcular el iDave medio para dos parámetros de determinación i D0 e iD2.
(2-4) Cuarto ejemplo
El cuarto ejemplo puede definir la condición de determinación B para componentes de luma de la siguiente manera. Condición B:
iDo=|P20-2pio+Poo|+|c[2(r2qio+qoo|+|p27-2pi7+Po7|+|c|27-2qi7+e)o7|
iD 2=|p22-2pi2+Po2|+|q22-2qi2+qo2|+|p25-2pi5+po5|+|q2s-2qt5+qos|
Bajo esta condición, iD0<P e iD2<P
Una ecuación para calcular dos parámetros de determinación iD0 e iD2 es igual a la del tercer ejemplo. Una condición disponible es que no ambos, sino uno de los dos parámetros de determinación iDü e iD2 son menores que el valor umbral de determinación de borde p.
Si bien se ha descrito el ejemplo de hacer referencia a la primera, tercera, sexta y octava filas (o columnas) L1, L3, L6 y L8 en un bloque durante la determinación, se puede hacer referencia a las otras combinaciones de filas o columnas.
(2-5) Quinto ejemplo
La Figura 26 es un diagrama explicativo que ilustra los ejemplos quinto y sexto de la técnica de determinación. En los ejemplos quinto y sexto, los procesos de determinación de la necesidad de filtrado para los límites de referencia de pixels verticales de cuatro filas L1, L3, L5 y L7 en cada bloque. Los procesos de determinación de necesidad de filtrado para límites horizontales también hacen referencia a pixels de cuatro columnas en cada bloque.
El quinto ejemplo puede definir condiciones de determinación para componentes de luma de la siguiente manera. Condición de determinación del componente luma (Luma)... El filtro de desbloqueo se aplica si las condiciones A y B son ambas verdaderas.
Condición A:
(A1) El bloque Ba o Bb se introduce al modo de predicción intra;
(A2) El bloque Ba o Bb tiene un coeficiente de transformación ortogonal distinto de cero; o
(A3) |MVAx-MVBx|>4 o |MVAy-MVBy|>4
Condición B:
Figure imgf000020_0001
Bajo esta condición, iDave<b
La condición de determinación para los componentes de croma puede ser igual a la técnica existente descrita con anterioridad. Se puede calcular una media ponderada para calcular el iDave medio para dos parámetros de determinación i D0 e iD2.
(2-6) Sexto ejemplo
El sexto ejemplo puede definir la condición de determinación B para componentes de luma de la siguiente manera. Condición B:
iD 0=|p2o-2pio+Poo|+|q20-2qio+qoo|+ÍP2<5-2pi6+Po6[+ |q26-2qi6+q06|
ÍD 2=|p22-2pi2+Po2|+|q22-2qi2+q02|+|P24-2p14+p04Í+|q24
-2q i4+q04|
Bajo esta condición, iD0<b e iD2<b
Una ecuación para calcular dos parámetros de determinación iD0 e iD2 es igual a la del quinto ejemplo. Una condición disponible es que no ambos, sino uno u otro de los dos parámetros de determinación iD0 e iD2 son menores que el valor umbral de determinación de borde p.
En general, aumentar el número de filas y columnas a las que se hará referencia para la determinación mejora la precisión de la determinación. Por lo tanto, los ejemplos primero y segundo de referenciar ocho filas y columnas pueden minimizar la posibilidad de filtrado de un bloque originalmente no considerado como objetivo para que se aplique el filtro de desbloqueo y la posibilidad de no filtrar un bloque originalmente destinado para que se aplique el filtro de desbloqueo. El resultado es mejorar la calidad de una imagen para codificar y decodificar. Por otro lado, disminuir el número de filas y columnas a las que se hará referencia para la determinación puede reducir los costes de procesamiento. Dado que existe una solución de compromiso entre la calidad de la imagen y el coste de procesamiento, puede ser ventajoso seleccionar, de manera adaptativa, el número de filas y columnas a las que se hará referencia para la determinación, dependiendo del uso del aparato o de las restricciones en la instalación. Puede ser ventajoso seleccionar, de manera adaptativa, combinaciones de filas y columnas a las que se hará referencia.
Tal como se describe en los ejemplos primero, tercero y quinto, el valor medio iDave de los parámetros de determinación puede compararse con el valor de umbral de determinación de borde b para realizar adecuadamente la determinación en bloque sin un efecto excesivo de las variaciones de parámetros para cada fila o columna.
4-2. Flujo del proceso
Según el segundo ejemplo práctico, así como el primer ejemplo práctico, el filtro de desbloqueo 24 puede funcionar en diferentes paralelismos.
En el primer escenario operativo que utiliza un gran paralelismo, las secciones de determinación de límites verticales 212-1 a 212-n determinan en paralelo si el filtrado es necesario para todos los límites verticales incluidos en macrobloques dentro de una imagen de entrada. Las secciones de determinación de límites horizontales 214-1 a 214-n determinan en paralelo si se necesita filtrado para todos los límites horizontales incluidos en macrobloques dentro de una imagen de entrada. Los procesos de determinación de límites verticales y de límites horizontales también se realizan en paralelo. Las secciones de filtrado horizontal 132-1 a 132-n y las secciones de filtrado vertical 142-1 a 142-n aplican el filtro de desbloqueo a un límite vertical y a un límite horizontal determinado para requerir que se aplique el filtro de desbloqueo (véase Figura 20).
En el segundo escenario operativo utilizando un pequeño paralelismo, las secciones de determinación de límites verticales 212-1 a 212-n determinan, en paralelo, si el filtrado es necesario para todos los límites verticales incluidos en un macrobloque enfocado dentro de una imagen de entrada. Las secciones de determinación de límites horizontales 214-1 a 214-n determinan, en paralelo, si se necesita filtrado para todos los límites horizontales incluidos en el macrobloque enfocado. Los procesos de determinación de límites verticales y de límites horizontales también se realizan en paralelo. Las secciones de filtrado horizontal 132-1 a 132-n luego aplican el filtro de desbloqueo en paralelo a un límite vertical determinado para requerir que se aplique el filtro de desbloqueo. Las secciones de filtrado vertical 142-1 a 142-n aplican el filtro de desbloqueo en paralelo a un límite horizontal determinado para requerir que se aplique el filtro de desbloqueo. Este proceso se realiza de manera repetida en todos los macrobloques dentro de una imagen de entrada (véase Figura 21).
Lo que antecedes son dos escenarios operativos a modo de ejemplo para la descripción. También en el segundo ejemplo práctico, los procesos del filtro de desbloqueo 24 pueden ser paralelos en varias unidades, tal como un número dado de macrobloques (dos o cuatro macrobloques) o un grupo de bloques colocados horizontal o verticalmente, por ejemplo. También en el segundo ejemplo práctico, así como en el primer ejemplo práctico, la sección de control de paralelización 150 puede controlar el paralelismo y el flujo de procesos en el filtro de desbloqueo 24.
4-3. Ejemplo de proceso para cada unidad LCU
Como ya se mencionó con anterioridad, la tecnología, de conformidad con varios ejemplos prácticos descritos en esta especificación, se puede proporcionar como un proceso basado en una unidad de codificación HEVC (CU). Según HEVC, una unidad de codificación que tiene el tamaño mayor se denomina unidad de codificación mayor (LCU) que se puede seleccionar como 64x64 pixels, por ejemplo. El tamaño mínimo de CU seleccionable es de 8x8 pixels. Por regla general, una imagen se codifica y decodifica correspondiente a cada unidad LCU de conformidad con una secuencia de barrido de exploración desde la LCU en la parte superior izquierda de una imagen (o un segmento de corte). A continuación, se describen ejemplos de procesos correspondientes a las unidades LCUs en el filtro de desbloqueo 24.
La Figura 27 es un diagrama explicativo que ilustra una secuencia de proceso para cada unidad LCU de conformidad con el segundo ejemplo práctico descrito con anterioridad. El ejemplo supone que el tamaño de la LCU es de 16x16 pixels y el tamaño de la CU es de 8x8 pixels.
Haciendo referencia a la Figura 27, la primera etapa se muestra en la parte superior izquierda del dibujo e indica que el filtrado en las LCUs se ha completado hasta la (n-1)-ésima LCU. Los pixels sombreados están destinados a filtrar en límites verticales. Los pixels rellenos están destinados a filtrar en límites horizontales.
Los procesos para la segunda etapa en la parte superior derecha de la Figura 27 y la tercera etapa en la parte inferior izquierda de la misma están dirigidos a la enésima LCU. Antes de la segunda etapa, los valores de pixels introducidos en el filtro de desbloqueo 24 se utilizan para realizar los procesos de determinación de la necesidad de filtrado en paralelo en todos los límites verticales y horizontales que pertenecen a la enésima LCU. En la segunda etapa, los valores de pixels introducidos al filtro de desbloqueo 24 se utilizan para realizar el proceso de filtrado en paralelo en un límite vertical que pertenece a la enésima LCU y se determina que requiere que se aplique el filtro de desbloqueo. Los valores de pixels procesados en la segunda etapa se utilizan luego para realizar el proceso de filtrado en paralelo en un límite horizontal que pertenece a la enésima LCU y se determina que requiere que se aplique el filtro de desbloqueo.
Un proceso para la cuarta etapa en la parte inferior derecha de la Figura 27 está dirigido a la (n+1 )-ésima LCU. En la cuarta etapa, el proceso de filtrado se realiza en paralelo en un límite vertical determinado para requerir que se aplique el filtro de desbloqueo después de que el proceso de determinación de necesidad de filtrado se realice en paralelo en todos los límites verticales y horizontales que pertenecen a la (n+1)-ésima LCU.
Si bien el ejemplo supone que el tamaño de la unidad LCU es de 16x16 pixels, puede establecerse en 32x32 o 64x64 pixels. El efecto de acortar el tiempo de procesamiento de conformidad con la paralelización se mejora aún más porque al aumentar el tamaño de una LCU a seleccionar también aumenta el número de límites verticales y límites horizontales que pertenecen a una unidad LCU.
La Figura 28 es un diagrama de flujo que ilustra un flujo de proceso del filtro de desbloqueo 24 para cada unidad LCU.
Haciendo referencia a la Figura 28, las secciones de determinación de límite vertical 212-1 a 212-n determinan, en paralelo, si se necesita filtrado para todos los límites verticales incluidos en una unidad LCU enfocada dentro de una imagen de entrada (etapa S252). Las secciones de determinación de límites horizontales 214-1 a 214-n determinan, en paralelo, si se necesita filtrado para todos los límites horizontales incluidos en la unidad LCU enfocada (etapa S254). Las etapas S252 y S254 también se realizan en paralelo.
Las secciones de filtrado horizontal 132-1 a 132-n aplican el filtro de desbloqueo en paralelo a los límites verticales en la unidad LCU enfocada, determinada en la etapa S252, para requerir que se aplique el filtro de desbloqueo (etapa S260).
Las secciones de filtrado vertical 142-1 a 142-n aplican el filtro de desbloqueo en paralelo a los límites horizontales en la LCU enfocada, determinada en la etapa S254, para requerir que se aplique el filtro de desbloqueo (etapa S270).
El proceso en las etapas S252 a S270 se repite para una unidad LCU recién enfocada si una LCU permanece sin procesar en la imagen de entrada (etapa S280). El proceso finaliza si no queda una unidad LCU sin procesar.
5. Tercer ejemplo práctico
5-1. Visión general
Según el segundo ejemplo práctico, los procesos de determinación de la necesidad de filtrado en los límites verticales y horizontales que hacen referencia a una entrada de valor de píxel al filtro de desbloqueo y, por lo tanto, eliminan la dependencia entre los procesos de determinación de necesidad de filtrado y hacen posible la paralelización de los procesos de determinación. El tercer ejemplo práctico descrito a continuación aplica el concepto del segundo ejemplo práctico también al proceso de filtrado. Los procesos de filtrado para límites verticales y para los límites horizontales también filtran los valores de pixels introducidos al filtro de desbloqueo.
La Figura 29 es un diagrama explicativo que ilustra una visión general del ejemplo práctico. En la parte inferior izquierda de la Figura 29, se muestra una forma que representa los pixels de entrada (también referidos como pixels de reconstrucción) antes de ser procesados por el filtro de desbloqueo. El ejemplo práctico permite que los valores de pixels introducidos en el filtro de desbloqueo sean referenciados no solamente por los procesos de determinación de necesidad de filtrado para límites verticales y para límites horizontales, sino también por procesos de filtrado para límites verticales y procesos de filtrado para límites horizontales. Por lo tanto, se elimina la dependencia entre los dos procesos de filtrado. Los dos procesos de filtrado se realizan en paralelo.
Los procesos de filtrado para límites verticales y los procesos de filtrado para límites horizontales pueden actualizar valores de pixels duplicados. Los pixels rellenos en la Figura 29 ilustran las posiciones de los pixels que probablemente se duplicarán. El filtro de desbloqueo, de conformidad con el ejemplo práctico, calcula un valor de píxel de salida a partir de dos salidas de filtro en función de pixels que se actualizan por duplicado por dos filtros que funcionan en paralelo.
5-2. Ejemplo de configuración del filtro de desbloqueo
La Figura 30 es un diagrama de bloques que ilustra una configuración detallada del filtro de desbloqueo 24 según el tercer ejemplo práctico. Haciendo referencia a la Figura 30, el filtro de desbloqueo 24 incluye la memoria de línea 208, el bloque de determinación 210, un bloque de filtrado horizontal 330, un bloque de filtrado vertical 340, la sección de control de paralelización 150, una sección de cálculo 360. El bloque de determinación 210 incluye secciones de determinación de límites verticales 212-1 a 212-n y secciones de determinación de límites horizontales 214-1 a 214-n. Las secciones de determinación de límite vertical 212 y las secciones de determinación de límite horizontal 214 pueden determinar la necesidad de filtrar los límites de conformidad con las diversas condiciones de determinación tal como se describe en el segundo ejemplo práctico.
El bloque de filtrado horizontal 330 incluye secciones de filtrado horizontal 332-1 a 332-n. Las secciones de filtrado horizontal 332 se suministran con un valor de imagen de entrada desde la memoria de línea 208 y un resultado de determinación con respecto a cada límite vertical desde el bloque de determinación 210.
Las secciones de filtrado horizontal 332 aplican el filtro de desbloqueo para los límites verticales a los pixels derecho e izquierdo alrededor del límite vertical correspondiente si el resultado de la determinación de la sección de determinación del límite vertical 212 indica que el filtro necesita ser aplicado. Las secciones de filtrado horizontal 332 proporcionan, a la sección de cálculo 360, un valor de píxel después del filtrado en función del píxel filtrado o un valor de píxel de entrada en función de los otros pixels.
El bloque de filtrado vertical 340 incluye secciones de filtrado vertical 342-1 a 342-n. Las secciones de filtrado vertical 342 se suministran con un valor de píxel de entrada desde la memoria de línea 208 y un resultado de determinación con respecto a cada límite horizontal desde el bloque de determinación 210.
Las secciones de filtrado vertical 342 aplican el filtro de desbloqueo para los límites horizontales a los pixels superiores e inferiores alrededor del límite horizontal correspondiente si el resultado de la determinación de la sección de determinación del límite horizontal 214 indica que el filtro necesita ser aplicado. Los procesos de filtrado de las secciones de filtrado vertical 342-1 a 342-n se realizan en paralelo a los procesos de filtrado de las secciones de filtrado horizontal 332-1 a 332-n. Las secciones de filtrado vertical 342 envían, a la sección de cálculo 360, un valor de píxel después del filtrado en función del píxel filtrado o un valor de píxel de entrada en función de los otros pixels.
La sección de cálculo 360 se suministra con un valor de píxel de salida desde el bloque de filtrado horizontal 330 y un valor de píxel de salida desde el bloque de filtrado vertical 340 en paralelo. Además, la sección de cálculo 360 se suministra con los resultados de determinación desde la sección de determinación de límite vertical 212 y la sección de determinación de límite horizontal 214. Según un resultado de determinación, la sección de cálculo 360 calcula los valores de pixels de salida para los pixels filtrados desde el bloque de filtrado horizontal 330 y desde el bloque de filtrado vertical 340 basado en salidas de filtro del bloque de filtrado horizontal 330 y del bloque de filtrado vertical 340.
Según el ejemplo práctico, por ejemplo, la sección de cálculo 360 calcula un promedio de dos salidas de filtro para pixels filtrados por duplicado. La sección de cálculo 360 puede calcular un promedio simple de dos salidas de filtro. En cambio, la sección de cálculo 360 puede calcular una media ponderada de dos salidas de filtro. A modo de ejemplo, la sección de cálculo 360 puede determinar un peso para medias ponderadas de pixels en función de la distancia desde cada píxel al límite vertical y al límite horizontal.
La Figura 31 es un diagrama explicativo que ilustra la determinación de un peso de ponderación para una media ponderada calculado por la sección de cálculo 360. La Figura 31 muestra el píxel enfocado Pz en negro, correspondiente a una de las posiciones duplicadas ilustradas en la Figura 29. Existen tres pixels correspondientes a la distancia Dv entre el píxel enfocado Pz y el límite vertical más cercano Vz . Existen dos pixels correspondientes a la distancia Dh entre el píxel enfocado Pz y el límite horizontal más cercano Hz . La distancia Dh es menor que la distancia Dv . En este caso, la sección de cálculo 360 puede establecer un peso para la salida del filtro de desbloqueo aplicado al límite horizontal Hz para que sea mayor que un peso para la salida del filtro de desbloqueo aplicado al límite vertical Vz . El ejemplo de la Figura 31 supone que una relación entre la salida del filtro Vout para el límite vertical Vz y la salida del filtro Hout para el límite horizontal Hz es 2:3.
Tal como se ilustra en la Figura 31, el cálculo de una media ponderada de dos salidas de filtro puede proporcionar a cada píxel enfocado un valor de píxel de salida similar al caso de aplicar un filtro bidimensional que tenga una derivación de filtro a lo largo de la dirección horizontal y una derivación de filtro a lo largo de la dirección vertical. Los procesos de filtrado en paralelo en el límite vertical y el límite horizontal también pueden reducir, de manera adecuada, la distorsión de bloque que aparece en el límite vertical y el límite horizontal. Como otro ejemplo práctico, el filtro de desbloqueo 24 puede incluir un filtro bidimensional que calcula, de manera simultánea, el filtrado horizontal, el filtrado vertical y una media ponderada. En este caso, sin embargo, la instalación es muy complicada debido a que los coeficientes del filtro necesitan cambiarse de manera correspondiente a pixels. Por otro lado, el tercer ejemplo práctico realiza dos filtros unidimensionales en paralelo y luego calcula una media ponderada. Lo que antecede puede proporcionar fácilmente procesos prácticamente iguales a un filtro bidimensional al mismo tiempo que garantiza la funcionalidad de los filtros de desbloqueo existentes.
La Figura 32 es un diagrama explicativo que ilustra un ejemplo del peso para medias ponderadas calculado en base al ejemplo de la Figura 31. La Figura 32 muestra 36 pixels (6x6) alrededor de una intersección entre el límite vertical y el límite horizontal. Los pixels corresponden a las posiciones duplicadas descritas con anterioridad. La relación entre el peso para la salida del filtro Vout y el peso para la salida del filtro Hout es 1:1 (2:2 o 3:3) para los pixels situados a una distancia igual desde el límite vertical y desde el límite horizontal. El peso para la salida del filtro Vout es mayor que el peso para la salida del filtro Hout para los pixels más cercanos al límite vertical. A modo de ejemplo, la relación de pesos para el píxel P1 es Vout:Hout = 3:1. El peso para la salida del filtro Vout es menor que el peso para la salida del filtro Hout para los pixels más cercanos al límite horizontal. A modo de ejemplo, la relación de pesos para el píxel P2 es Vout:Hout=1:3.
La distorsión del bloque se puede suprimir de manera más efectiva y la calidad de la imagen se puede mejorar variando el peso para las medias ponderadas dependiendo de la distancia entre cada píxel y el límite.
Los pesos descritos con anterioridad son meros ejemplos. A modo de ejemplo, la sección de cálculo 360 puede determinar el peso de las medias ponderadas para pixels de conformidad con las intensidades de borde del límite vertical y del límite horizontal correspondiente a cada píxel en lugar de, o además de, la distancia entre cada píxel y el límite. La resistencia del borde puede representarse con un parámetro tal como un valor de borde calculado a partir de la sección de cálculo 122 tal como se ilustra en la Figura 16, por ejemplo. En este caso, el peso para la salida del filtro en un límite que tiene un borde más fuerte puede configurarse para ser mayor que el peso para la salida del filtro en un límite que tiene un borde más débil. Variando el peso de las medias ponderadas, de conformidad con la intensidad del borde, se puede mejorar, de manera adaptativa, el efecto del filtro de desbloqueo en un límite que causa notablemente la distorsión del bloque.
La sección de cálculo 360 selecciona salidas de bloques realmente filtrados en función de pixels filtrados por uno de los bloques de filtrado horizontal 330 y el bloque de filtrado vertical 340. La sección de cálculo 360 genera directamente un valor de píxel de entrada que se enviará al filtro de desbloqueo 24 en función de pixels no filtrados por el bloque de filtrado horizontal 330 o por el bloque de filtrado vertical 340. Una tabla en la Figura 33 enumera los valores de pixels de salida desde la sección de cálculo 360 en función de los resultados de la determinación de si se requiere el filtrado.
5-3. Ejemplo de secuencia de proceso
A continuación, se describen dos ejemplos de secuencias de proceso disponibles para el filtro de desbloqueo 24 según el ejemplo práctico. El ejemplo también supone que el filtro de desbloqueo se suministra con una imagen que tiene el tamaño de 32x32 pixels. La imagen de entrada incluye cuatro macrobloques MB0 a MB3, cada uno con un tamaño de 16x16 pixels.
(1) Primer ejemplo
A modo de comparación, la Figura 34 ilustra una secuencia de proceso cuando la dependencia permanece entre un proceso de filtrado en el límite vertical y un proceso de filtrado en el límite horizontal. El flujo del proceso en la Figura 34 es prácticamente igual a el flujo del proceso en la Figura 13 según el primer ejemplo práctico. En la Figura 34, la primera etapa realiza, en paralelo, los procesos de determinación de necesidades de filtrado Jv0,0 a Jv3,3 y Jh0,0 a Jh3,3 inclusive en todos los límites verticales y en todos los límites horizontales de los cuatro macrobloques MB0 a MB3. La segunda etapa realiza los procesos de filtrado de Fv0,0 a Fv3,3 inclusive en 16 límites verticales de los cuatro macrobloques MB0 a MB3. La tercera etapa realiza los procesos de filtrado Fh0,0 a Fh3,3 en 16 límites horizontales de los cuatro macrobloques MB0 a MB3. La cuarta etapa (omitida de la Figura 13) almacena los valores de pixels después del proceso de filtrado en el límite horizontal en la memoria utilizada para las salidas del filtro de desbloqueo 24.
La Figura 35 ilustra un primer ejemplo de secuencia de proceso proporcionada por el ejemplo práctico. En la Figura 35, la primera etapa realiza, en paralelo, los procesos de determinación de necesidades de filtrado Jv0,0 a Jv3,3 y Jh0,0 a Jh3,3 inclusive en todos los límites verticales y en todos los límites horizontales de los cuatro macrobloques MB0 a MB3. La segunda etapa realiza, en paralelo, los procesos de filtrado Fv0,0 a FV3,3 y Fh0,0 a Fh3,3 inclusive en todos los límites verticales y en todos los límites horizontales de los cuatro macrobloques MB0 a MB3. En realidad, la segunda etapa filtra solamente un límite determinado para requerir el filtrado. La tercera etapa almacena valores de pixels en la memoria utilizada para las salidas del filtro de desbloqueo 24. Se puede calcular una media ponderada de dos salidas de filtro como un valor de pixels de salida en función de pixels filtrados por el bloque de filtrado horizontal 330 y el bloque de filtrado vertical 340.
(2) Segundo ejemplo
Mientras que el primer ejemplo maximiza el paralelismo, el filtro de desbloqueo 24, según el segundo ejemplo, también puede realizar un proceso para cada macrobloque.
A modo de comparación, la Figura 36 ilustra una secuencia de proceso para cada macrobloque cuando la dependencia permanece entre un proceso de filtrado en el límite vertical y un proceso de filtrado en el límite horizontal. El flujo del proceso en la Figura 36 es prácticamente igual a el flujo del proceso en la Figura 14 según el primer ejemplo práctico. La Figura 36 muestra explícitamente las cuatro etapas del proceso (sexta, décima, 14-ésima y 16-éxima) que almacenan valores de pixels en la memoria para la salida y se omiten de la Figura 14 por simplicidad. Dieciséis etapas del proceso, incluyendo las cuatro etapas del proceso, configuran el proceso en la Figura 36.
La Figura 37 ilustra un segundo ejemplo de secuencia de proceso proporcionada por el ejemplo práctico. En la Figura 37, la primera etapa realiza, en paralelo, los procesos de determinación de necesidades de filtrado Jv0,0 a Jvü,3 y Jh0,0 a Jho,3 inclusive en cuatro límites verticales y en cuatro límites horizontales de macrobloque MB0. La segunda etapa realiza, en paralelo, los procesos de filtrado Fvo,o a Fvo,3 y Fho,o a Fho,3 inclusive en cuatro límites verticales y en cuatro límites horizontales de macrobloque MB0. La tercera etapa almacena valores de pixels del macrobloque MB0 en la memoria utilizada para salidas del filtro de desbloqueo 24. Una media ponderada de dos salidas de filtro puede calcularse como un valor de píxel de salida en función de pixels filtrados por duplicado por dos filtros. Las etapas cuarta a sexta procesan, de manera similar, el macrobloque MB1. Las etapas séptima a novena procesan, de manera similar, el macrobloque MB2. Las etapas décima a duodécima procesan, de manera similar, el macrobloque MB3. El proceso en la Figura 37 incluye doce etapas de proceso menos que las del proceso en la Figura 36.
El tercer ejemplo práctico elimina la dependencia entre los procesos de filtrado para límites verticales y un proceso de filtrado para límites horizontales. El proceso del filtro de desbloqueo 24 se puede realizar utilizando menos etapas de proceso que las utilizadas para el primer y segundo ejemplos prácticos. Una de las ventajas de permitir que un proceso de filtrado haga referencia solamente a la entrada de pixels al filtro de desbloqueo es que cualquier configuración de derivaciones de filtro no causa dependencia entre los procesos de filtrado para límites verticales y los procesos de filtrado para límites horizontales. El tercer ejemplo práctico puede mejorar la calidad de la imagen configurando una derivación de filtro que utiliza más pixels que los utilizados para las técnicas existentes. A modo de ejemplo, la técnica existente utiliza una derivación de filtro de tres pixels para cada lado de cada límite tal como se describe con referencia a la Figura 7. El ejemplo práctico no causa dependencia entre procesos, incluso si se utiliza una derivación de filtro de cinco pixels o más en cada perímetro. No se produce dependencia entre procesos, incluso al disminuir aún más el tamaño del bloque como unidad de proceso para el filtro de desbloqueo.
También en el tercer ejemplo práctico, así como en el primer y segundo ejemplos prácticos, la sección de control de paralelización 150 puede controlar el paralelismo y el flujo de procesos en el filtro de desbloqueo 24.
5-4. Flujo del proceso
La Figura 38 es un diagrama de flujo que ilustra un ejemplo de un flujo de proceso para el filtro de desbloqueo de conformidad con el tercer ejemplo práctico. La Figura 39 es un diagrama de flujo que ilustra un flujo del proceso de cálculo del valor de píxel que se muestra en la Figura 38.
Haciendo referencia a la Figura 38, las secciones de determinación de límite vertical 212-1 a 212-n determinan, en paralelo, si se necesita filtrado para todos los límites verticales dentro de una imagen de entrada o un macrobloque (etapa S302). Las secciones de determinación de límites horizontales 214-1 a 214-n determinan, en paralelo, si se necesita filtrado para todos los límites horizontales dentro de la imagen de entrada o el macrobloque (etapa S304). Las etapas S302 y S304 también se realizan en paralelo.
Las secciones de filtrado horizontal 332-1 a 332-n aplican el filtro de desbloqueo en paralelo a todos los límites verticales determinados en la etapa S302 para requerir que se aplique el filtro de desbloqueo (etapa S306). Las secciones de filtrado vertical 342-1 a 342-n aplican el filtro de desbloqueo en paralelo a todos los límites horizontales determinados en la etapa S304 para requerir que se aplique el filtro de desbloqueo (etapa S308). Las etapas S306 y S308 también se realizan en paralelo.
La sección de cálculo 360 realiza entonces el proceso de cálculo del valor de píxel tal como se ilustra en la Figura 39 (etapa S310). Haciendo referencia a la Figura 39, el proceso desde la etapa S314 a la etapa S326 se repite para cada píxel a procesar (etapa S312).
En la etapa S314, la sección de cálculo 360 determina si dos filtros para límites verticales y par límites horizontales han filtrado un píxel enfocado (etapa S314). El proceso continúa con la etapa S322 si los dos filtros han filtrado el píxel enfocado. El proceso continúa con la etapa S316 si los dos filtros no han filtrado el píxel enfocado.
En la etapa S316, la sección de cálculo 360 determina si uno de los dos filtros para límites verticales y para límites horizontales ha filtrado el píxel enfocado (etapa S316). El proceso continúa con la etapa S320 si uno de los dos filtros ha filtrado el píxel enfocado. El proceso continúa con la etapa S318 si ninguno de los filtros ha filtrado el píxel enfocado.
En la etapa S318, la sección de cálculo 360 adquiere un valor de píxel de entrada al filtro de desbloqueo 24 (etapa S318). En la etapa S320, la sección de cálculo 360 adquiere una salida de filtro desde el filtro que realmente filtra el píxel enfocado (etapa S320).
En la etapa S322, la sección de cálculo 360 determina los valores de peso para calcular una media ponderada de las salidas de filtro desde los dos filtros que se relacionan con el píxel enfocado en función de las distancias desde el píxel enfocado al límite vertical y al límite horizontal o las intensidades de borde del límite vertical y del límite horizontal correspondiente al píxel enfocado (etapa S322). La sección de cálculo 360 calcula una media ponderada de salidas de filtro desde los dos filtros utilizando el peso determinado (etapa S324).
La sección de cálculo 360 almacena el valor de píxel del píxel enfocado en la memoria, mientras que el valor de píxel se adquiere en la etapa S318 o en la etapa S320 o se calcula en la etapa S324 (etapa S326). Las secuencias de procesos que se muestran en las Figuras 38 y 39 finalizan cuando el proceso se realiza en todos los pixels que serán procesados.
6. Aplicación a varios códecs
La tecnología según la invención es aplicable a varios códecs relacionados con la codificación y decodificación de imágenes. A continuación, se describen ejemplos de aplicación de la tecnología de conformidad con la invención de códec multivista y códec escalable.
6-1. Códec multivista
El códec multivista es un sistema de codificación de imágenes que codifica y decodifica vídeo de perspectiva múltiple. La Figura 40 es un diagrama explicativo que ilustra el códec multivista. La Figura 40 ilustra secuencias de tramas para tres vistas capturadas en tres puntos de observación. Cada vista dispone de un identificador ID de vista (view_id). Una de las vistas se especifica como una vista base. Las vistas distintas a la vista base se denominan vistas no base. El ejemplo en la Figura 40 representa una vista base con identificador ID de vista "0" y dos vistas no base con identificador ID de vista "1" o "2". La codificación de datos de imagen multivista puede comprimir el tamaño de datos del flujo codificado en su conjunto codificando tramas de la vista no base en función a la información de codificación sobre tramas de la vista base.
El filtro de desbloqueo se puede aplicar a cada vista durante el proceso de codificación y el proceso de decodificación de conformidad con el códec multivista descrito con anterioridad. Cuando se aplica el filtro de desbloqueo a cada vista, los procesos de determinación de la necesidad de filtrado de los límites de bloques verticales y de los límites de bloques horizontales para cada vista pueden ser paralelos en función de la tecnología de conformidad con la invención. Un proceso de determinación de necesidad de filtrado y un proceso de filtrado para cada vista pueden ser paralelos. El parámetro (tal como el descrito en el párrafo anterior 0094) para controlar un proceso de determinación de necesidad de filtrado o un proceso de filtrado puede proporcionarse para cada vista. Un parámetro proporcionado para la vista base puede reutilizarse para la vista no base.
Los procesos de determinación de necesidades de filtrado o los procesos de filtrado pueden ser paralelos a las vistas. Las vistas pueden compartir el parámetro (tal como el descrito en el párrafo anterior 0094) para controlar los procesos de determinación de necesidades de filtrado o procesos de filtrado. Puede ser ventajoso especificar además un indicador que muestre si las vistas comparten el parámetro.
La Figura 41 es un diagrama explicativo que ilustra un proceso de codificación de imagen aplicado a un códec multivista descrito con anterioridad. La Figura 41 muestra una configuración de un dispositivo de codificación multivista 710 como ejemplo. El dispositivo de codificación multivista 710 incluye una primera sección de codificación 720, una segunda sección de codificación 730 y una sección de multiplexación 740.
La primera sección de codificación 720 codifica una imagen de vista base y genera un flujo codificado para la vista base. La segunda sección de codificación 730 codifica una imagen de vista no base y genera un flujo codificado para la vista no base. La sección de multiplexación 740 multiplexa un flujo codificado para la vista base generada a partir de la primera sección de codificación 720 y uno o más flujos codificados para la vista no base generada a partir de la segunda sección de codificación 730 para generar un flujo multiplexado para multivista.
La primera sección de codificación 720 y la segunda sección de codificación 730 ilustradas en la Figura 41 están configuradas de manera similar al dispositivo de codificación de imagen 10 de conformidad con la forma de realización descrita con anterioridad. La aplicación del filtro de desbloqueo a las vistas permite paralelizar los procesos de determinación de necesidades de filtrado para los límites de bloques verticales y para los límites de bloques horizontales o para paralelizar los procesos de determinación de necesidades de filtrado y los procesos de filtrado. Se puede insertar un parámetro para controlar estos procesos en una zona de cabecera del flujo codificado para cada vista o en una zona de cabecera común en el flujo multiplexado.
La Figura 42 es un diagrama explicativo que ilustra un proceso de decodificación de imágenes aplicado al códec multivista descrito con anterioridad. La Figura 42 muestra una configuración de un dispositivo de decodificación multivista 760 como ejemplo. El dispositivo de decodificación multivista 760 incluye una sección de demultiplexación 770, una primera sección de decodificación 780 y una segunda sección de decodificación 790.
La sección de demultiplexación 770 demultiplexa un flujo multiplexado para multivista en un flujo codificado para la vista base y un flujo codificado para una o más vistas no base. La primera sección de decodificación 780 decodifica una imagen de vista base desde un flujo codificado para la vista base. La segunda sección de decodificación 790 decodifica una imagen de vista no base de un flujo codificado para la vista no base.
La primera sección de decodificación 780 y la segunda sección de decodificación 790 ilustradas en la Figura 42 están configuradas de manera similar al dispositivo de decodificación de imágenes 60 de conformidad con la forma de realización descrita con anterioridad. La aplicación del filtro de desbloqueo a las vistas permite paralelizar los procesos de determinación de necesidades de filtrado para los límites de bloques verticales y para los límites de bloques horizontales o para paralelizar los procesos de determinación de necesidades de filtrado y los procesos de filtrado. Se puede adquirir un parámetro para controlar estos procesos desde una zona de cabecera del flujo codificado para cada vista o desde una zona de cabecera común en el flujo multiplexado.
6-2. Códec escalable
El códec escalable es un sistema de codificación de imágenes para proporcionar codificación jerárquica. La Figura 43 es un diagrama explicativo que ilustra el códec escalable. La Figura 43 ilustra secuencias de tramas para tres capas de diferentes resoluciones espaciales, resoluciones de tiempo o calidades de imagen. Cada capa está provista con un identificador ID de capa (layer_ID). Estas capas incluyen una capa base que tiene la resolución más baja (o calidad de imagen). Las capas distintas de la capa base se denominan capas de ampliación. El ejemplo de la Figura 43 representa una capa base con ID de capa "0" y dos capas de ampliación con ID de capa "1" o "2". La codificación de datos de imagen de múltiples capas puede comprimir el tamaño de datos del flujo codificado en su conjunto codificando tramas de la capa de ampliación en función de la información de codificación sobre tramas de la capa base.
El filtro de desbloqueo se puede aplicar a cada capa durante el proceso de codificación y el proceso de decodificación de conformidad con el códec escalable descrito con anterioridad. Cuando el filtro de desbloqueo se aplica a cada vista, los procesos de determinación de la necesidad de filtrado en los límites de bloques verticales y en los límites de bloques horizontales para cada capa pueden ser paralelos según la tecnología de conformidad con la invención. Un proceso de determinación de necesidad de filtrado y un proceso de filtrado para cada capa puede ser paralelo. El parámetro (tal como el descrito en el párrafo anterior 0094) para controlar un proceso de determinación de necesidad de filtrado o un proceso de filtrado puede proporcionarse para cada capa. Un parámetro proporcionado para la capa base puede reutilizarse para la capa de ampliación.
Los procesos de determinación de la necesidad de filtrado o los procesos de filtrado pueden ser paralelos sobre capas. Las capas pueden compartir el parámetro (tal como el descrito en el párrafo anterior 0094) para controlar los procesos de determinación de la necesidad de filtrado o los procesos de filtrado. Puede ser ventajoso especificar, de manera adicional, un indicador que muestre si las capas comparten el parámetro.
La Figura 44 es un diagrama explicativo que ilustra un proceso de codificación de imagen aplicado al códec escalable descrito con anterioridad. La Figura 44 muestra una configuración de un dispositivo de codificación escalable 810 como ejemplo. El dispositivo de codificación escalable 810 incluye una primera sección de codificación 820, una segunda sección de codificación 830 y una sección de multiplexación 840.
La primera sección de codificación 820 codifica una imagen de capa base y genera un flujo codificado para la capa base. La segunda sección de codificación 830 codifica una imagen de capa de ampliación y genera un flujo codificado para la capa de ampliación. La sección de multiplexación 840 multiplexa un flujo codificado para la capa base generado a partir de la primera sección de codificación 820 y una o más flujos codificados para la capa de ampliación generados a partir de la segunda sección de codificación 830 para generar un flujo multiplexado para múltiples capas.
La primera sección de codificación 820 y la segunda sección de codificación 830 ilustradas en la Figura 44 están configuradas de manera similar al dispositivo de codificación de imágenes 10 de conformidad con la forma de realización descrita con anterioridad. La aplicación del filtro de desbloqueo a las capas permite paralelizar los procesos de determinación de necesidades de filtrado para los límites de bloques verticales y para los límites de bloques horizontales o para paralelizar los procesos de determinación de necesidades y procesos de filtrado. Se puede insertar un parámetro para controlar estos procesos en una zona de cabecera del flujo codificado para cada capa o en una zona de cabecera común en el flujo multiplexado.
La Figura 45 es un diagrama explicativo que ilustra un proceso de decodificación de imágenes aplicado al códec escalable descrito con anterioridad. La Figura 45 muestra una configuración de un dispositivo de decodificación escalable 860 como ejemplo. El dispositivo de decodificación escalable 860 incluye una sección de demultiplexación 870, una primera sección de decodificación 880 y una segunda sección de decodificación 890.
La sección de demultiplexación 870 demultiplexa un flujo multiplexado para múltiples capas en un flujo codificado para la capa base y un flujo codificado para una o más capas de ampliación. La primera sección de decodificación 880 decodifica una imagen de capa base a partir de un flujo codificado para la capa base. La segunda sección de decodificación 890 decodifica una imagen de capa de ampliación de un flujo codificado para la capa de ampliación.
La primera sección de decodificación 880 y la segunda sección de decodificación 890 ilustradas en la Figura 45 están configuradas de manera similar al dispositivo de decodificación de imágenes 60 de conformidad con la forma de realización descrita con anterioridad. La aplicación del filtro de desbloqueo a las capas permite paralelizar los procesos de determinación de necesidades de filtrado para los límites de bloques verticales y para los límites de bloques horizontales o para paralelizar los procesos de determinación de necesidades de filtrado y los procesos de filtrado. Se puede adquirir un parámetro para controlar estos procesos desde una zona de cabecera del flujo codificado para cada capa o desde una zona de cabecera común en el flujo multiplexado.
7. Aplicación ejemplo
El dispositivo de codificación de imagen 10 y el dispositivo de decodificación de imagen 60 de conformidad con la forma de realización descrita con anterioridad se pueden aplicar a diversos dispositivos electrónicos tales como un transmisor y un receptor para transmisión por satélite, transmisión por cable tal como televisión por cable, distribución en Internet, distribución a terminales a través de comunicación celular, y similares, un dispositivo de grabación que graba imágenes en un medio tal como un disco óptico, un disco magnético o una memoria instantánea, un dispositivo de reproducción que reproduce imágenes de dicho medio de almacenamiento, y similares. A continuación, se describirán cuatro ejemplos de aplicaciones.
7-1. Primer ejemplo de aplicación
La Figura 46 es un diagrama de bloques que muestra un ejemplo de una configuración esquemática de un televisor que adopta la forma de realización descrita con anterioridad. Un televisor 900 incluye una antena 901, un sintonizador 902, un demultiplexor 903, un decodificador 904, una sección de procesamiento de señal de vídeo 905, una sección de visualización 906, una sección de procesamiento de señal de audio 907, un altavoz 908, una interfaz externa 909, una sección de control 910, una interfaz de usuario 911 y un bus 912.
El sintonizador 902 extrae una señal de un canal deseado de las señales de difusión recibidas a través de la antena 901, y demodula la señal extraída. A continuación, el sintonizador 902 proporciona un flujo binario codificado obtenido por demodulación al demultiplexor 903. Es decir, el sintonizador 902 sirve como medio de transmisión de los televisores 900 para recibir un flujo codificado en donde se codifica una imagen.
El demultiplexor 903 separa un flujo de vídeo y un flujo de audio de un programa para ser visto a partir del flujo binario codificado, y proporciona cada flujo que ha sido separado al decodificador 904. Además, el demultiplexor 903 extrae datos auxiliares tales como una EPG (Guía de Programa Electrónica) desde el flujo binario codificado, y suministra los datos extraídos a la sección de control 910. Además, el demultiplexor 903 puede realizar descifrado en el caso de que el flujo binario codificado esté cifrado.
El decodificador 904 decodifica el flujo de vídeo y la entrada de flujo de audio desde el demultiplexor 903. A continuación, el decodificador 904 emite datos de vídeo generados por el proceso de decodificación a la sección de procesamiento de señal de vídeo 905. Además, el decodificador 904 proporciona los datos de audio generados por el proceso de decodificación a la sección de procesamiento de señal de audio 907.
La sección de procesamiento de señal de vídeo 905 reproduce la entrada de datos de vídeo desde el decodificador 904, y hace que la sección de visualización 906 muestre el vídeo. La sección de procesamiento de señal de vídeo 905 también puede hacer que la sección de visualización 906 muestre una pantalla de aplicación suministrada a través de una red. Además, la sección de procesamiento de señal de vídeo 905 puede realizar un proceso adicional tal como eliminación de ruido, por ejemplo, en los datos de vídeo de conformidad con la configuración. Además, la sección de procesamiento de señal de vídeo 905 puede generar una imagen de una GUI (interfaz gráfica de usuario) tal como un menú, un botón, un cursor o similar, por ejemplo, y superponer la imagen generada en una imagen de salida.
La sección de visualización 906 es excitada por una señal de activación suministrada por la sección de procesamiento de señal de vídeo 905, y muestra un vídeo o una imagen en una pantalla de vídeo de un dispositivo de visualización (por ejemplo, una pantalla de cristal líquido, una pantalla de plasma, un OLED, o similar).
La sección de procesamiento de señal de audio 907 realiza procesos de reproducción tales como conversión D/A y amplificación en la entrada de datos de audio desde el decodificador 904, y proporciona audio desde el altavoz 908. Además, la sección de procesamiento de señal de audio 907 puede realizar un proceso adicional tal como eliminación de ruido en los datos de audio.
La interfaz externa 909 es una interfaz para conectar el televisor 900 y un dispositivo externo o una red. A modo de ejemplo, un decodificador 904 puede decodificar un flujo de vídeo o un flujo de audio recibido a través de la interfaz externa 909, es decir, la interfaz externa 909 también sirve como medio de transmisión de los televisores 900 para recibir un flujo codificado en donde se muestra una imagen codificada.
La sección de control 910 incluye un procesador como una unidad CPU (Unidad de Procesamiento Central) y una memoria tal como una memoria RAM (Memoria de Acceso Aleatorio), una memoria ROM (Memoria de Solamente Lectura) o similares. La memoria almacena un programa para ser ejecutado por la unidad CPU, datos del programa, datos EPG, datos adquiridos a través de una red y similares. El programa almacenado en la memoria es objeto de lectura y ejecutado por la unidad CPU en el momento de la activación del televisor 900, por ejemplo. La unidad CPU controla el funcionamiento del televisor 900 de conformidad con una entrada de señal de funcionamiento desde la interfaz de usuario 911, por ejemplo, ejecutando el programa.
La interfaz de usuario 911 está conectada a la sección de control 910. La interfaz de usuario 911 incluye un botón y un interruptor utilizado por un usuario para operar el televisor 900, y una sección de recepción para una señal de control remoto, por ejemplo. La interfaz de usuario 911 detecta la operación de un usuario a través de estos elementos estructurales, genera una señal de operación y envía la señal de operación generada a la sección de control 910.
El bus 912 interconecta el sintonizador 902, el demultiplexor 903, el decodificador 904, la sección de procesamiento de señal de vídeo 905, la sección de procesamiento de señal de audio 907, la interfaz externa 909 y la sección de control 910.
En el televisor 900, configurado de esta manera, el decodificador 904 tiene una función del dispositivo de decodificación de imagen 60 de conformidad con la forma de realización descrita con anterioridad. Por consiguiente, también en el caso de la decodificación de imágenes en el televisor 900, es posible mejorar el paralelismo de los procesos de filtro de desbloqueo y garantizar el procesamiento a alta velocidad.
7-2. Segundo ejemplo de aplicación
La Figura 47 es un diagrama de bloques que muestra un ejemplo de una configuración esquemática de un teléfono móvil que adopta la forma de realización descrita con anterioridad. Un teléfono móvil 920 incluye una antena 921, una sección de comunicación 922, un códec de audio 923, un altavoz 924, un micrófono 925, una sección de cámara 926, una sección de procesamiento de imágenes 927, una sección de demultiplexación 928, una sección de grabación/reproducción 929, una sección de visualización 930, una sección de control 931, una sección de operación 932 y un bus 933.
La antena 921 está conectada a la sección de comunicación 922. El altavoz 924 y el micrófono 925 están conectados al códec de audio 923. La sección de operación 932 está conectada a la sección de control 931. El bus 933 interconecta la sección de comunicación 922, el códec de audio 923, la sección de cámara 926, la sección de procesamiento de imagen 927, la sección de demultiplexación 928, la sección de grabación/reproducción 929, la sección de visualización 930 y la sección de control 931.
El teléfono móvil 920 realiza operaciones tales como transmisión/recepción de señal de audio, transmisión/recepción de correos electrónicos o datos de imagen, captura de imágenes, grabación de datos, y similares, en varios modos de operación que incluyen un modo de comunicación de audio, un modo de comunicación de datos, un modo de captura de imagen y un modo de videoteléfono.
En el modo de comunicación de audio, se suministra una señal de audio analógica generada por el micrófono 925 al códec de audio 923. El códec de audio 923 convierte la señal de audio analógica en datos de audio, y A/D convierte y comprime los datos de audio convertidos. A continuación, el códec de audio 923 envía los datos de audio comprimidos a la sección de comunicación 922. La sección de comunicación 922 codifica y modula los datos de audio, y genera una señal de transmisión. A continuación, la sección de comunicación 922 transmite la señal de transmisión generada a una estación base (no ilustrada) a través de la antena 921. Además, la sección de comunicación 922 amplifica una señal inalámbrica recibida a través de la antena 921 y convierte la frecuencia de la señal inalámbrica, y adquiere una señal recibida. A continuación, la sección de comunicación 922 demodula y decodifica la señal recibida y genera datos de audio, y envía los datos de audio generados al códec de audio 923. El códec de audio 923 se extiende y D/A convierte los datos de audio y genera una señal de audio analógica. A continuación, el códec de audio 923 suministra la señal de audio generada al altavoz 924 y hace que se emita el audio.
Además, en el modo de comunicación de datos, la sección de control 931 genera datos de texto que constituyen un correo electrónico, de conformidad con una operación de un usuario a través de la sección de operación 932, por ejemplo. Además, la sección de control 931 hace que el texto se muestre en la sección de visualización 930. Asimismo, la sección de control 931 genera datos de correo electrónico de conformidad con una instrucción de transmisión del usuario a través de la sección de operación 932, y envía los datos de correo electrónico generados a la sección de comunicación 922. A continuación, la sección de comunicación 922 codifica y modula los datos del correo electrónico y genera una señal de transmisión. Luego, la sección de comunicación 922 transmite la señal de transmisión generada a una estación base (no ilustrada) a través de la antena 921. Además, la sección de comunicación 922 amplifica una señal inalámbrica recibida a través de la antena 921 y convierte la frecuencia de la señal inalámbrica, y adquiere una señal recibida. A continuación, la sección de comunicación 922 demodula y decodifica la señal recibida, restaura los datos de correo electrónico y envía los datos de correo electrónico restaurados a la sección de control 931. La sección de control 931 hace que la sección de visualización 930 muestre el contenido del correo electrónico, y también, hace que los datos del correo electrónico se almacenen en el medio de almacenamiento de la sección de grabación/reproducción 929.
La sección de grabación/reproducción 929 incluye un medio de almacenamiento arbitrario legible y grabable. A modo de ejemplo, el medio de almacenamiento puede ser un medio de almacenamiento incorporado, tal como una memoria RAM, una memoria instantánea o similar, o un medio de almacenamiento montado externamente, tal como un disco duro, un disco magnético, un disco magneto-óptico, un disco óptico, una memoria USB, una tarjeta de memoria o similar.
Además, en el modo de captura de imagen, la sección de cámara 926 captura una imagen de un sujeto, genera datos de imagen y envía los datos de imagen generados a la sección de procesamiento de imagen 927, por ejemplo. La sección de procesamiento de imagen 927 codifica la entrada de datos de imagen desde la sección de cámara 926, y hace que el flujo codificado se almacene en el medio de almacenamiento de la sección de grabación/reproducción 929.
Además, en el modo de videoteléfono, la sección de demultiplexación 928 multiplexa un flujo de vídeo codificado por la sección de procesamiento de imagen 927 y una entrada de flujo de audio desde el códec de audio 923, y proporciona el flujo multiplexado a la sección de comunicación 922, por ejemplo. La sección de comunicación 922 codifica y modula el flujo, y genera una señal de transmisión. A continuación, la sección de comunicación 922 transmite la señal de transmisión generada a una estación base (no ilustrada) a través de la antena 921. Además, la sección de comunicación 922 amplifica una señal inalámbrica recibida a través de la antena 921 y convierte la frecuencia de la señal inalámbrica, y adquiere una señal recibida. Estas señales de transmisión y señales recibidas pueden incluir un flujo binario codificado. A continuación, la sección de comunicación 922 demodula y decodifica la señal recibida, restaura el flujo y envía el flujo restaurado a la sección de demultiplexación 928. La sección de demultiplexación 928 separa un flujo de vídeo y un flujo de audio del flujo de entrada, y proporciona el flujo de vídeo a la sección de procesamiento de imagen 927 y el flujo de audio al códec de audio 923. La sección de procesamiento de imagen 927 decodifica el flujo de vídeo y genera datos de vídeo. Los datos de vídeo se suministran a la sección de visualización 930, y la sección de visualización 930 muestra una serie de imágenes. El códec de audio 923 extiende y D/A convierte el flujo de audio y genera una señal de audio analógica. A continuación, el códec de audio 923 suministra la señal de audio generada al altavoz 924 y hace que se emita el audio.
En el teléfono móvil 920 configurado de esta manera, la sección de procesamiento de imagen 927 tiene una función del dispositivo de codificación de imagen 10 y el dispositivo de decodificación de imagen 60 de conformidad con la forma de realización descrita con anterioridad. En consecuencia, también en el caso de la decodificación y codificación de imágenes en el teléfono móvil 920, es posible mejorar el paralelismo de los procesos de filtro de desbloqueo y garantizar un procesamiento de alta velocidad.
7-3. Tercer ejemplo de aplicación
La Figura 48 es un diagrama de bloques que muestra un ejemplo de una configuración esquemática de un dispositivo de grabación/reproducción que adopta la forma de realización descrita con anterioridad. Un dispositivo de grabación/reproducción 940 codifica y graba en un soporte de grabación, datos de audio y datos de vídeo de un programa de transmisión recibido, por ejemplo. El dispositivo de grabación/reproducción 940 también puede codificar y grabar en el soporte de grabación, datos de audio y datos de vídeo adquiridos de otro dispositivo, por ejemplo. Además, el dispositivo de grabación/reproducción 940 reproduce, utilizando un monitor o un altavoz, datos grabados en el soporte de grabación, de conformidad con las instrucciones de un usuario, por ejemplo. En este momento, el dispositivo de grabación/reproducción 940 decodifica los datos de audio y los datos de vídeo.
El dispositivo de grabación/reproducción 940 incluye un sintonizador 941, una interfaz externa 942, un codificador 943, una HDD (unidad de disco duro) 944, una unidad de disco 945, un selector 946, un decodificador 947, un OSD (visualización en pantalla) 948, una sección de control 949 y una interfaz de usuario 950.
El sintonizador 941 extrae una señal de un canal deseado de las señales de difusión recibidas a través de una antena (no ilustrada), y demodula la señal extraída. A continuación, el sintonizador 941 emite un flujo binario codificado obtenido por demodulación al selector 946. Es decir, el sintonizador 941 sirve como medio de transmisión del dispositivo de grabación/reproducción 940.
La interfaz externa 942 es una interfaz para conectar el dispositivo de grabación/reproducción 940 y un dispositivo externo o una red. A modo de ejemplo, la interfaz externa 942 puede ser una interfaz IEEE 1394, una interfaz de red, una interfaz USB, una interfaz de memoria instantánea o similar. A modo de ejemplo, los datos de vídeo y los datos de audio recibidos por la interfaz externa 942 son introducidos al codificador 943. Es decir, la interfaz externa 942 sirve como medio de transmisión del dispositivo de grabación/reproducción 940.
En el caso de que los datos de vídeo y los datos de audio introducidos desde la interfaz externa 942 no estén codificados, el codificador 943 codifica los datos de vídeo y los datos de audio. A continuación, el codificador 943 emite el flujo binario codificado al selector 946.
La unidad de disco duro HDD 944 graba en un disco duro interno un flujo binario codificado, que es información de contenido comprimido de un vídeo o de un audio, varios programas y otros elementos de datos. Además, el disco duro HDD 944 efectúa la lectura de estos elementos de datos desde el disco duro al momento de reproducir un vídeo o audio.
La unidad de disco 945 graba o efectúa la lectura de datos en un soporte de grabación que está montado. Un soporte de grabación montado en la unidad de disco 945 puede ser un disco DVD (un DVD-Vídeo, un DVD-RAM, un DVD-R, un DVD-RW, un DVD , un DVD RW o similar), un disco Blu-Ray (marca registrada) o similar, por ejemplo.
El selector 946 selecciona, en el momento de grabar un vídeo o un audio, una entrada de flujo binario codificado desde el sintonizador 941 o el codificador 943, y proporciona el flujo binario codificado seleccionado al disco duro HDD 944 o a la unidad de disco 945. Además, el selector 946 emite, en el momento de reproducir un vídeo o un audio, una entrada de flujo binario codificada desde el disco duro HDD 944 o la unidad de disco 945 al decodificador 947.
El decodificador 947 decodifica el flujo binario codificado y genera datos de vídeo y de audio. A continuación, el decodificador 947 emite los datos de vídeo generados al OSD 948. Además, el decodificador 904 emite los datos de audio generados a un altavoz externo.
El OSD 948 reproduce la entrada de datos de vídeo del decodificador 947 y muestra un vídeo. Además, el OSD 948 puede superponer una imagen de una GUI, tal como un menú, un botón, un cursor o similar, por ejemplo, en un vídeo visualizado.
La sección de control 949 incluye un procesador tal como una unidad CPU y una memoria tal como una memoria RAM o una memoria ROM. La memoria almacena un programa para ser ejecutado por la unidad CPU, los datos del programa y similares. La unidad CPU efectúa la lectura y ejecuta un programa almacenado en la memoria en el momento de la activación del dispositivo de grabación/reproducción 940, por ejemplo. La unidad CPU controla el funcionamiento del dispositivo de grabación/reproducción 940 de conformidad con una entrada de señal de funcionamiento desde la interfaz de usuario 950, por ejemplo, ejecutando el programa.
La interfaz de usuario 950 está conectada a la sección de control 949. La interfaz de usuario 950 incluye un botón y un interruptor utilizado por un usuario para operar el dispositivo de grabación/reproducción 940, y una sección de recepción para una señal de control remoto, por ejemplo. La interfaz de usuario 950 detecta la operación de un usuario a través de estos elementos estructurales, genera una señal de operación y envía la señal de operación generada a la sección de control 949.
En el dispositivo de grabación/reproducción 940 configurado de esta manera, el codificador 943 tiene una función del dispositivo de codificación de imagen 10 de conformidad con la forma de realización descrita con anterioridad. Además, el decodificador 947 tiene una función del dispositivo de decodificación de imágenes 60 de conformidad con la forma de realización descrita con anterioridad. En consecuencia, también en el caso de la decodificación y codificación de imágenes en el dispositivo de grabación/reproducción 940, es posible mejorar el paralelismo de los procesos de filtro de desbloqueo y garantizar el procesamiento a alta velocidad.
7-4. Cuarto ejemplo de aplicación
La Figura 49 es un diagrama de bloques que muestra un ejemplo de una configuración esquemática de un dispositivo de captura de imágenes que adopta la forma de realización descrita con anterioridad. Un dispositivo de captura de imágenes 960 captura una imagen de un sujeto, genera una imagen, codifica los datos de la imagen y graba los datos de la imagen en un soporte de grabación.
El dispositivo de captura de imágenes 960 incluye un bloque óptico 961, una sección de captura de imágenes 962, una sección de procesamiento de señales 963, una sección de procesamiento de imágenes 964, una sección de visualización 965, una interfaz externa 966, una memoria 967, una unidad de medios 968, un OSD 969, una sección de control 970, una interfaz de usuario 971 y un bus 972.
El bloque óptico 961 está conectado a la sección de captura de imagen 962. La sección de captura de imagen 962 está conectada a la sección de procesamiento de señal 963. La sección de visualización 965 está conectada a la sección de procesamiento de imagen 964. La interfaz de usuario 971 está conectada a la sección de control 970. El bus 972 interconecta la sección de procesamiento de imágenes 964, la interfaz externa 966, la memoria 967, la unidad de medios 968, el OSD 969 y la sección de control 970.
El bloque óptico 961 incluye una lente de enfoque, un mecanismo de apertura/parada y similar. El bloque óptico 961 forma una imagen óptica de un sujeto en una superficie de captura de imágenes de la sección de captura de imágenes 962. La sección de captura de imágenes 962 incluye un sensor de imagen tal como un CCD, un CMOS o similar, y convierte, por conversión fotoeléctrica, la imagen óptica formada en la superficie de captura de imagen en una señal de imagen que es una señal eléctrica. A continuación, la sección de captura de imagen 962 envía la señal de imagen a la sección de procesamiento de señal 963.
La sección de procesamiento de señal 963 realiza varios procesos de señal de cámara, tales como corrección de codo, corrección de gamma, corrección de color y similares, en la entrada de señal de imagen desde la sección de captura de imagen 962. La sección de procesamiento de señal 963 emite los datos de imagen después del proceso de la señal de cámara a la sección de procesamiento de imágenes 964.
La sección de procesamiento de imagen 964 codifica la entrada de datos de imagen desde la sección de procesamiento de señal 963, y genera datos codificados. A continuación, la sección de procesamiento de imágenes 964 emite los datos codificados generados a la interfaz externa 966 o a la unidad de medios 968. Además, la sección de procesamiento de imágenes 964 decodifica la entrada de datos codificados desde la interfaz externa 966 o la unidad de medios 968, y genera datos de imágenes. A continuación, la sección de procesamiento de imagen 964 emite los datos de imagen generados a la sección de visualización 965. Además, la sección de procesamiento de imagen 964 puede emitir la entrada de datos de imagen desde la sección de procesamiento de señal 963 a la sección de visualización 965, y hacer que se visualice la imagen. Asimismo, la sección de procesamiento de imágenes 964 puede superponer datos para la visualización adquiridos desde el OSD 969 en una imagen que se enviará a la sección de visualización 965.
El OSD 969 genera una imagen de una GUI, tal como un menú, un botón, un cursor o similar, por ejemplo, y envía la imagen generada a la sección de procesamiento de imágenes 964.
La interfaz externa 966 está configurada como un terminal de entrada/salida USB, por ejemplo. La interfaz externa 966 conecta el dispositivo de captura de imágenes 960 y una impresora en el momento de imprimir una imagen, por ejemplo. Además, se conecta una unidad a la interfaz externa 966 según sea necesario. Un medio extraíble, tal como un disco magnético, un disco óptico o similar, por ejemplo, está montado en la unidad, y puede instalarse un programa objeto de lectura desde el medio extraíble en el dispositivo de captura de imágenes 960. Además, la interfaz externa 966 puede configurarse como una interfaz de red para conectarse a una red tal como una red LAN, Internet o similares. Es decir, la interfaz externa 966 sirve como medio de transmisión del dispositivo de captura de imágenes 960.
Un soporte de grabación que se montará en la unidad de medios 968 puede ser un medio extraíble arbitrario legible y grabable, tal como un disco magnético, un disco magneto-óptico, un disco óptico, una memoria de semiconductores o similares, por ejemplo. Además, un soporte de grabación puede montarse de forma fija en la unidad de medios 968, configurando una sección de almacenamiento no transportable, tal como una unidad de disco duro incorporada o una SSD (Unidad de Estado Sólido), por ejemplo.
La sección de control 970 incluye un procesador tal como una unidad CPU y una memoria tal como una memoria RAM o una memoria ROM. La memoria almacena un programa para ser ejecutado por la unidad CPU, los datos del programa y similares. La unidad CPU efectúa la lectura y ejecuta un programa almacenado en la memoria en el momento de la activación del dispositivo de captura de imágenes 960, por ejemplo. La unidad CPU controla el funcionamiento del dispositivo de captura de imágenes 960 de conformidad con una entrada de señal de funcionamiento desde la interfaz de usuario 971, por ejemplo, ejecutando el programa.
La interfaz de usuario 971 está conectada a la sección de control 970. La interfaz de usuario 971 incluye un botón, un interruptor y similares utilizados por un usuario para operar el dispositivo de captura de imágenes 960, por ejemplo. La interfaz de usuario 971 detecta la operación de un usuario a través de estos elementos estructurales, genera una señal de operación y envía la señal de operación generada a la sección de control 970.
En el dispositivo de captura de imágenes 960 configurado de esta manera, la sección de procesamiento de imágenes 964 tiene una función del dispositivo de codificación de imágenes 10 y del dispositivo de decodificación de imágenes 60 de conformidad con la forma de realización descrita con anterioridad. En consecuencia, en el caso de la decodificación y codificación de imágenes en el dispositivo de captura de imágenes 960, es posible mejorar el paralelismo de los procesos de filtro de desbloqueo y garantizar el procesamiento a alta velocidad.
8. Resumen
Haciendo referencia a las Figuras 1 a 49 inclusivo, se han descrito tres ejemplos prácticos de los filtros de desbloqueo para el dispositivo de codificación de imagen 10 y el dispositivo de decodificación de imagen 60 de conformidad con una forma de realización. Los tres ejemplos prácticos utilizan valores de pixels introducidos a los filtros de desbloqueo para determinar si los filtros de desbloqueo, para un límite vertical y para un límite horizontal, necesitan aplicarse o no. Los procesos de determinación pueden realizarse en paralelo de manera independiente de los resultados del proceso de filtrado. La dependencia de los procesos entre macrobloques se elimina para permitir la paralelización de procesos en macrobloques. Como resultado, es posible evitar la demora o la degradación de la tasa de datos debido a una gran cantidad de procesamiento de los filtros de desbloqueo y garantizar un procesamiento de alta velocidad. El paralelismo y las secuencias de los procesos de filtro de desbloqueo se pueden configurar de manera flexible de conformidad con diversas condiciones, tal como el tamaño de las imágenes o el entorno de instalación.
Según el primer ejemplo práctico, la determinación de si se aplica el filtro de desbloqueo a los límites verticales utiliza valores de pixels de pixels que pertenecen a filas a las que no se aplica la definición de límites horizontales. La determinación de si se aplica el filtro de desbloqueo a los límites horizontales utiliza valores de pixels de pixels que pertenecen a filas a las que no se aplica la definición de límites verticales. El proceso de filtrado en un bloque no actualiza un valor de píxel utilizado para el proceso de determinación de necesidad de filtrado en otro bloque. Los valores de pixels introducidos al filtro de desbloqueo no necesitan almacenarse en memoria adicional, incluso si un proceso de determinación de necesidad de filtrado en un bloque dado sigue a un proceso de filtrado en otro bloque. Lo que antecede puede ahorrar costes de hardware necesarios para la instalación del aparato.
Según el segundo ejemplo práctico, la memoria no actualizada por el proceso de filtrado almacena una entrada de valor de píxel en el filtro de desbloqueo. Los procesos de determinación de necesidad de filtrado hacen referencia al valor de píxel de entrada. En este caso, los procesos de determinación de necesidad de filtrado hacen referencia a un píxel cuya posición está libre de restricciones. Lo que antecede permite utilizar condiciones de determinación flexibles apropiadas para diversos fines, tal como una determinación más precisa de la necesidad de filtrado o la determinación con costes de procesamiento reducidos.
Según el tercer ejemplo práctico, los procesos de filtrado para límites verticales y límites horizontales filtran la entrada de pixels al filtro de desbloqueo. Esta configuración puede paralelizar procesos de filtrado para límites verticales y para límites horizontales entre sí. Lo que antecede puede acelerar aún más los procesos del filtro de desbloqueo. Un valor de un píxel de salida se calcula en función de dos salidas de filtro en función de un píxel actualizado por dos procesos de filtrado realizados en paralelo. Paralelizar dos procesos de filtrado también puede reducir, de manera adecuada, la distorsión de bloque que aparece en el límite vertical y en el límite horizontal. Un valor de píxel de salida se puede calcular como una media ponderada de dos salidas de filtro. Lo que antecede puede permitir que el filtro de desbloqueo elimine más eficazmente la distorsión del bloque y mejore aún más la calidad de la imagen.
La especificación ha descrito principalmente ejemplos en donde los procesos de filtrado para límites verticales preceden a los procesos de filtrado para límites horizontales. Además, los efectos descritos con anterioridad de la tecnología según la invención están igualmente disponibles para un caso en donde los procesos de filtrado para límites horizontales preceden a los procesos de filtrado para límites verticales. La unidad de procesamiento del filtro de desbloqueo o el macrobloque pueden tener un tamaño diferente al descrito en la especificación. Una técnica disponible puede omitir los procesos de determinación de necesidad de filtrado y paralelizar la aplicación del filtro de desbloqueo a los límites verticales y horizontales.
Una técnica de transmisión de información utilizada para desbloquear la paralelización del proceso de filtro desde el lado de codificación al lado de decodificación no se limita a la técnica de multiplexar la información en la cabecera del flujo codificado. A modo de ejemplo, la información puede no multiplexarse en un flujo binario codificado, sino que puede transmitirse o grabarse como datos separados asociados con el flujo binario codificado. El término "asociación" significa garantizar la posibilidad de vincular una imagen (o parte de una imagen, tal como un segmento de corte o un bloque) contenida en el flujo binario con información correspondiente a la imagen. A saber, la información puede transmitirse a través de una ruta de transmisión diferente de la utilizada para imágenes (o flujos binarios). La información puede grabarse en un soporte de grabación (o en una zona de grabación diferente en el mismo soporte de grabación) diferente de la utilizada para imágenes (o flujos binarios). La información y la imagen (o flujo binario) pueden asociarse entre sí en función de cualquier unidad, tal como tramas múltiples, una sola trama o parte de una trama.
La especificación presenta procesos de filtrado para límites verticales tales como "filtrado horizontal" y procesos de filtrado para límites horizontales tales como "filtrado vertical". En general, los procesos de filtrado para límites verticales utilizan tomas de filtro posicionadas de manera horizontal. Los procesos de filtrado para límites horizontales utilizan derivaciones de filtro posicionadas de forma vertical. Por este motivo, la nomenclatura descrita con anterioridad se utiliza para los procesos de filtrado.
LISTA DE REFERENCIAS NUMÉRICAS
10, 60 Dispositivo de procesamiento de imágenes
112-1 a 112-n, 212-1 a 212-n Primera sección de determinación (sección de determinación de límite vertical)
114-1 a 114-n, 214-1 a 214-n Segunda sección de determinación (sección de determinación de límite horizontal)
132-1 a 132-n, 332-1 a 332-n Primera sección de filtrado (sección de filtrado horizontal)
142-1 a 142-n, 342-1 a 342-n Segunda sección de filtrado (sección de filtrado vertical)
150 Sección de control de paralelización
208 Memoria de línea (memoria)
360 Sección de cálculo

Claims (2)

REIVINDICACIONES
1. Un dispositivo de procesamiento de imágenes (60) que comprende:
una sección de decodificación (62, 63, 64) configurada para decodificar un flujo codificado para generar una imagen;
una primera sección de determinación (110, 112) configurada para realizar procesos de determinación de filtrado horizontal en paralelo a través de una pluralidad de límites de bloques verticales entre una pluralidad de bloques de 8x8 pixels dentro de la imagen generada por la sección de decodificación, determinando cada proceso de determinación de filtrado horizontal, sin depender de los procesos de determinación de filtrado horizontal para otros límites de bloques verticales, ya sea para aplicar un filtro de desbloqueo a los pixels adyacentes a un límite de bloque vertical;
una sección de filtrado horizontal (130, 132) configurada para realizar el filtrado horizontal a través de la aplicación de un filtro horizontal en paralelo a los pixels próximos a través de todos los límites verticales para los cuales los procesos de determinación de filtrado horizontal determinaron que se aplique el filtro de desbloqueo, para generar una imagen filtrada;
una segunda sección de determinación (110, 114) configurada para realizar procesos de determinación de filtrado vertical en paralelo a través de una pluralidad de límites de bloques horizontales entre una pluralidad de bloques de 8x8 pixels dentro de la imagen generada por la sección de decodificación, determinando cada proceso de determinación de filtrado vertical, sin depender de los procesos de determinación de filtrado vertical para otros límites de bloques horizontales, si aplicar, o no, un filtro de desbloqueo a los pixels adyacentes a un límite de bloque horizontal; y
una sección de filtrado vertical configurada para realizar el filtrado vertical aplicando un filtro vertical en paralelo a los pixels próximos a través de todos los límites horizontales en la imagen filtrada para la cual los procesos de determinación del filtrado vertical determinaron que se aplicará el filtro de desbloqueo.
2. Un método de procesamiento de imágenes que comprende:
decodificar un flujo codificado para generar una imagen;
realizar procesos de determinación de filtrado horizontal en paralelo a través de una pluralidad de límites de bloques verticales entre una pluralidad de bloques de 8x8 pixels dentro de la imagen generada, determinando cada proceso de determinación de filtrado horizontal, sin depender de los procesos de determinación de filtrado horizontal para otros límites de bloques verticales, si aplicar, o no, un filtro de desbloqueo a los pixels adyacentes a un límite de bloque vertical;
realizar el filtrado horizontal aplicando un filtro horizontal en paralelo a los pixels próximos a través de todos los límites verticales para los cuales los procesos de determinación del filtrado horizontal determinaron que se aplicará el filtro de desbloqueo para generar una imagen filtrada;
realizar procesos de determinación de filtrado vertical en paralelo a través de una pluralidad de límites de bloques horizontales entre una pluralidad de bloques de 8x8 pixels dentro de la imagen generada, determinando cada proceso de determinación de filtrado vertical, sin depender de los procesos de determinación de filtrado vertical para otros límites de bloques horizontales, si aplicar, o no, un filtro de desbloqueo a los pixels adyacentes a un límite de bloque horizontal;
realizar el filtrado vertical aplicando un filtro vertical en paralelo a los pixels próximos a través de todos los límites horizontales en la imagen filtrada para los cuales los procesos de determinación del filtrado vertical determinaron que ha de aplicar el filtro de desbloqueo.
ES11846148T 2010-12-07 2011-12-02 Dispositivo de procesamiento de imágenes y método de procesamiento de imágenes Active ES2856823T3 (es)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP2010272907 2010-12-07
JP2011004391 2011-01-12
JP2011045652 2011-03-02
JP2011117557 2011-05-26
PCT/JP2011/077953 WO2012077607A1 (ja) 2010-12-07 2011-12-02 画像処理装置及び画像処理方法

Publications (1)

Publication Number Publication Date
ES2856823T3 true ES2856823T3 (es) 2021-09-28

Family

ID=46207095

Family Applications (1)

Application Number Title Priority Date Filing Date
ES11846148T Active ES2856823T3 (es) 2010-12-07 2011-12-02 Dispositivo de procesamiento de imágenes y método de procesamiento de imágenes

Country Status (14)

Country Link
US (4) US9973763B2 (es)
EP (4) EP3748962A1 (es)
JP (3) JP6011341B2 (es)
KR (3) KR101879890B1 (es)
CN (4) CN106454359B (es)
AU (1) AU2011339460B2 (es)
BR (1) BR112013013509B1 (es)
CA (1) CA2815819C (es)
ES (1) ES2856823T3 (es)
MX (3) MX2013006131A (es)
MY (1) MY163146A (es)
RU (2) RU2585662C2 (es)
TW (4) TWI569627B (es)
WO (1) WO2012077607A1 (es)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7295609B2 (en) 2001-11-30 2007-11-13 Sony Corporation Method and apparatus for coding image information, method and apparatus for decoding image information, method and apparatus for coding and decoding image information, and system of coding and transmitting image information
JP5359657B2 (ja) 2009-07-31 2013-12-04 ソニー株式会社 画像符号化装置および方法、記録媒体、並びにプログラム
JP5914962B2 (ja) 2010-04-09 2016-05-11 ソニー株式会社 画像処理装置および方法、プログラム、並びに、記録媒体
TWI508534B (zh) 2010-05-18 2015-11-11 Sony Corp Image processing apparatus and image processing method
EP3185559B1 (en) 2010-06-04 2020-02-19 Sony Corporation Coding of a qp and a delta qp for image blocks larger than a minimum size
EP3582496B1 (en) 2010-12-07 2021-10-27 Sony Group Corporation Image processing device and image processing method
CN106454359B (zh) 2010-12-07 2020-05-19 索尼公司 图像处理设备和图像处理方法
JP5741076B2 (ja) 2010-12-09 2015-07-01 ソニー株式会社 画像処理装置及び画像処理方法
JP5884313B2 (ja) 2011-01-18 2016-03-15 ソニー株式会社 画像処理装置、画像処理方法、プログラム及び記録媒体
US9706205B2 (en) 2011-02-10 2017-07-11 Velos Media, Llc Image processing device and image processing method
CN106454381B (zh) 2011-03-11 2019-05-28 索尼公司 图像处理装置和方法
TWI530161B (zh) 2011-06-07 2016-04-11 Sony Corp Image processing apparatus and method
CN110611810B (zh) 2011-06-28 2021-06-01 索尼公司 图像处理装置和图像处理方法
JP5907367B2 (ja) 2011-06-28 2016-04-26 ソニー株式会社 画像処理装置および方法、プログラム、並びに記録媒体
TWI569625B (zh) * 2012-04-06 2017-02-01 Sony Corp Image processing apparatus and method, program, and recording medium
WO2014087861A1 (ja) * 2012-12-06 2014-06-12 ソニー株式会社 画像処理装置、画像処理方法、およびプログラム
CN105451025B (zh) * 2014-07-31 2019-03-01 富士通株式会社 图像处理方法以及装置
US20160173897A1 (en) * 2014-12-10 2016-06-16 Haihua Wu High Parallelism Dependency Pattern for GPU Based Deblock
KR102597231B1 (ko) * 2016-09-30 2023-11-03 삼성디스플레이 주식회사 영상 처리 장치, 표시 장치 및 두부 장착 표시 장치
WO2018137190A1 (en) 2017-01-25 2018-08-02 Shanghai United Imaging Healthcare Co., Ltd. System and method for image reconstruction
TWI833248B (zh) * 2017-04-06 2024-02-21 美商松下電器(美國)知識產權公司 解碼方法及編碼方法
JP2019074967A (ja) * 2017-10-17 2019-05-16 キヤノン株式会社 フィルタ処理装置およびその制御方法
US11153607B2 (en) * 2018-01-29 2021-10-19 Mediatek Inc. Length-adaptive deblocking filtering in video coding
JP7155568B2 (ja) 2018-03-26 2022-10-19 東洋製罐グループホールディングス株式会社 金属加工物
AU2018416684B2 (en) * 2018-03-29 2022-12-01 Sony Corporation Image processing apparatus and image processing method
BR112021014861A2 (pt) 2019-02-27 2021-10-05 Telefonaktiebolaget Lm Ericsson (Publ) Método e aparelho para desbloquear pelo menos um contorno vertical ou horizontal de uma unidade de codificação, e, portadora
KR20210127709A (ko) * 2019-03-07 2021-10-22 디지털인사이트 주식회사 영상 부호화/복호화 방법 및 장치
JP7026065B2 (ja) * 2019-03-12 2022-02-25 Kddi株式会社 画像復号装置、画像復号方法及びプログラム
CN110213579A (zh) * 2019-06-11 2019-09-06 上海富瀚微电子股份有限公司 双核心计算单元实现环路滤波的方法
JP7200074B2 (ja) * 2019-09-20 2023-01-06 Kddi株式会社 画像復号装置、画像復号方法及びプログラム
CN113965764B (zh) * 2020-07-21 2023-04-07 Oppo广东移动通信有限公司 图像编码方法、图像解码方法及相关装置
CN116114245A (zh) 2021-09-02 2023-05-12 辉达公司 在视频编码过程中视频帧的并行处理
CN116097649A (zh) * 2021-09-06 2023-05-09 辉达公司 无滤波相依性的视频帧的并行编码
JPWO2023047950A1 (es) * 2021-09-22 2023-03-30

Family Cites Families (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0832030B2 (ja) * 1986-10-21 1996-03-27 ソニー株式会社 ブロツク符号化された画像信号の復号装置
FR2757297B1 (fr) * 1996-12-18 1999-03-05 Thomson Multimedia Sa Procede et dispositif d'etiquetage de region
KR100746821B1 (ko) * 2000-04-21 2007-08-06 소니 가부시끼 가이샤 정보 처리 장치와 방법, 기록매체
US7295609B2 (en) 2001-11-30 2007-11-13 Sony Corporation Method and apparatus for coding image information, method and apparatus for decoding image information, method and apparatus for coding and decoding image information, and system of coding and transmitting image information
CN101448162B (zh) * 2001-12-17 2013-01-02 微软公司 处理视频图像的方法
EP1484134B1 (en) 2002-02-15 2019-05-01 Sony Corporation Leg device for leg type movable robot, and method of controlling leg type movable robot
JP4114494B2 (ja) * 2002-03-07 2008-07-09 セイコーエプソン株式会社 画像処理装置及び画像処理プログラム、並びに画像処理方法
US7620109B2 (en) * 2002-04-10 2009-11-17 Microsoft Corporation Sub-pixel interpolation in motion estimation and compensation
CN1669318A (zh) * 2002-05-20 2005-09-14 索尼株式会社 图像信号处理装置及方法
US8068723B2 (en) * 2003-02-19 2011-11-29 Panasonic Corporation Recording medium, playback apparatus, recording method, program, and playback method
KR100644618B1 (ko) * 2004-07-02 2006-11-10 삼성전자주식회사 블록 단위로 부호화된 영상의 블록경계에서의 불연속성제거필터 및 방법
US8116379B2 (en) 2004-10-08 2012-02-14 Stmicroelectronics, Inc. Method and apparatus for parallel processing of in-loop deblocking filter for H.264 video compression standard
JP4270125B2 (ja) 2004-12-16 2009-05-27 ソニー株式会社 データ処理装置、画像処理装置、それらの方法およびプログラム
KR100843196B1 (ko) * 2004-12-17 2008-07-02 삼성전자주식회사 H.264/avc 비디오 디코더의 디블록킹 필터
KR100679035B1 (ko) * 2005-01-04 2007-02-06 삼성전자주식회사 인트라 bl 모드를 고려한 디블록 필터링 방법, 및 상기방법을 이용하는 다 계층 비디오 인코더/디코더
US7792385B2 (en) * 2005-01-25 2010-09-07 Globalfoundries Inc. Scratch pad for storing intermediate loop filter data
JP2006270851A (ja) * 2005-03-25 2006-10-05 Victor Co Of Japan Ltd 画像符号化装置及び画像復号装置
CN100420269C (zh) * 2005-12-09 2008-09-17 逐点半导体(上海)有限公司 一种图像增强处理***和处理方法
JP4591405B2 (ja) * 2006-05-10 2010-12-01 ソニー株式会社 情報処理装置及び情報処理方法、並びにコンピュータ・プログラム
JP4712642B2 (ja) * 2006-08-17 2011-06-29 富士通セミコンダクター株式会社 デブロッキングフィルタ、画像符号化装置および画像復号化装置
US20080123750A1 (en) * 2006-11-29 2008-05-29 Michael Bronstein Parallel deblocking filter for H.264 video codec
US8326064B2 (en) * 2007-01-22 2012-12-04 Nec Corporation Image re-encoding method to decode image data which is orthogonally transformed per first block and encoded by a first encoding method
US8204129B2 (en) * 2007-03-27 2012-06-19 Freescale Semiconductor, Inc. Simplified deblock filtering for reduced memory access and computational complexity
US20110002395A1 (en) * 2008-03-31 2011-01-06 Nec Corporation Deblocking filtering processor and deblocking filtering method
US20090304086A1 (en) * 2008-06-06 2009-12-10 Apple Inc. Method and system for video coder and decoder joint optimization
JP2010014513A (ja) 2008-07-03 2010-01-21 Fuji Electric Holdings Co Ltd はんだフラックス中の金属成分分析方法
CN101321290B (zh) * 2008-07-17 2010-12-15 北京数码视讯科技股份有限公司 基于数字信号处理器的去块滤波方法
JPWO2010035403A1 (ja) * 2008-09-25 2012-02-16 パナソニック株式会社 フィルタ装置およびフィルタ方法
US8861586B2 (en) * 2008-10-14 2014-10-14 Nvidia Corporation Adaptive deblocking in a decoding pipeline
JP2010136245A (ja) * 2008-12-08 2010-06-17 Toshiba Corp 動画像処理装置及び方法
JP2010141513A (ja) * 2008-12-10 2010-06-24 Toshiba Corp 演算装置及び動画像符号化装置
JP5359657B2 (ja) 2009-07-31 2013-12-04 ソニー株式会社 画像符号化装置および方法、記録媒体、並びにプログラム
JP5344238B2 (ja) 2009-07-31 2013-11-20 ソニー株式会社 画像符号化装置および方法、記録媒体、並びにプログラム
JP5793511B2 (ja) * 2010-02-05 2015-10-14 テレフオンアクチーボラゲット エル エム エリクソン(パブル) デブロッキングフィルタリング制御
US9185430B2 (en) * 2010-03-15 2015-11-10 Mediatek Singapore Pte. Ltd. Deblocking filtering method and deblocking filter
JP5914962B2 (ja) 2010-04-09 2016-05-11 ソニー株式会社 画像処理装置および方法、プログラム、並びに、記録媒体
US8606036B2 (en) 2010-04-13 2013-12-10 Panasonic Corporation Coding artifacts removing method, coding method, decoding method, coding artifacts removing apparatus, coding apparatus, and decoding apparatus
TWI508534B (zh) 2010-05-18 2015-11-11 Sony Corp Image processing apparatus and image processing method
EP3185559B1 (en) 2010-06-04 2020-02-19 Sony Corporation Coding of a qp and a delta qp for image blocks larger than a minimum size
CN106454359B (zh) * 2010-12-07 2020-05-19 索尼公司 图像处理设备和图像处理方法
EP3582496B1 (en) 2010-12-07 2021-10-27 Sony Group Corporation Image processing device and image processing method
JP5741076B2 (ja) 2010-12-09 2015-07-01 ソニー株式会社 画像処理装置及び画像処理方法
US9706205B2 (en) 2011-02-10 2017-07-11 Velos Media, Llc Image processing device and image processing method
CN106454381B (zh) 2011-03-11 2019-05-28 索尼公司 图像处理装置和方法
TWI530161B (zh) 2011-06-07 2016-04-11 Sony Corp Image processing apparatus and method
JP5907367B2 (ja) 2011-06-28 2016-04-26 ソニー株式会社 画像処理装置および方法、プログラム、並びに記録媒体
WO2014002899A1 (ja) 2012-06-29 2014-01-03 ソニー株式会社 符号化装置および符号化方法

Also Published As

Publication number Publication date
CN106454358A (zh) 2017-02-22
MX338737B (es) 2016-04-29
RU2016105120A3 (es) 2019-05-23
RU2013125498A (ru) 2014-12-10
KR101963097B1 (ko) 2019-03-27
CN103229506B (zh) 2016-11-09
EP3748962A1 (en) 2020-12-09
RU2016105120A (ru) 2018-11-22
KR20180085040A (ko) 2018-07-25
JPWO2012077607A1 (ja) 2014-05-19
TWI580249B (zh) 2017-04-21
KR20180085039A (ko) 2018-07-25
TW201233188A (en) 2012-08-01
TW201528780A (zh) 2015-07-16
MY163146A (en) 2017-08-15
TWI580250B (zh) 2017-04-21
EP2651127B1 (en) 2021-02-03
CA2815819A1 (en) 2012-06-04
US9973763B2 (en) 2018-05-15
CN106385586A (zh) 2017-02-08
KR20130129381A (ko) 2013-11-28
BR112013013509B1 (pt) 2021-12-28
CN103229506A (zh) 2013-07-31
US20180184095A1 (en) 2018-06-28
TW201528778A (zh) 2015-07-16
JP6011341B2 (ja) 2016-10-19
TWI520504B (zh) 2016-02-01
KR101963096B1 (ko) 2019-03-27
MX355896B (es) 2018-05-04
EP3748963A1 (en) 2020-12-09
US20130259142A1 (en) 2013-10-03
CN106454358B (zh) 2020-03-17
JP2016208533A (ja) 2016-12-08
TW201528779A (zh) 2015-07-16
CN106454359A (zh) 2017-02-22
US10931955B2 (en) 2021-02-23
AU2011339460A2 (en) 2013-07-11
MX2013006131A (es) 2013-06-28
TWI569627B (zh) 2017-02-01
RU2691962C2 (ru) 2019-06-19
BR112013013509A2 (pt) 2020-07-28
JP6471787B2 (ja) 2019-02-20
EP2651127A4 (en) 2015-03-25
US10582202B2 (en) 2020-03-03
US20200092568A1 (en) 2020-03-19
US20190253721A1 (en) 2019-08-15
EP2651127A1 (en) 2013-10-16
CA2815819C (en) 2019-12-24
KR101879890B1 (ko) 2018-07-18
RU2585662C2 (ru) 2016-06-10
AU2011339460B2 (en) 2015-10-29
EP3748964A1 (en) 2020-12-09
AU2011339460A1 (en) 2013-06-13
JP6222305B2 (ja) 2017-11-01
US10362318B2 (en) 2019-07-23
WO2012077607A1 (ja) 2012-06-14
JP2018014743A (ja) 2018-01-25
CN106454359B (zh) 2020-05-19
EP3748963B1 (en) 2022-03-02

Similar Documents

Publication Publication Date Title
ES2856823T3 (es) Dispositivo de procesamiento de imágenes y método de procesamiento de imágenes
JP6819702B2 (ja) テレビジョン装置、携帯電話機、再生装置、カメラ及び方法
AU2017202277B2 (en) Image processing device and image processing method