ES3028532T3 - Image processing device and image processing method - Google Patents
Image processing device and image processing method Download PDFInfo
- Publication number
- ES3028532T3 ES3028532T3 ES19186698T ES19186698T ES3028532T3 ES 3028532 T3 ES3028532 T3 ES 3028532T3 ES 19186698 T ES19186698 T ES 19186698T ES 19186698 T ES19186698 T ES 19186698T ES 3028532 T3 ES3028532 T3 ES 3028532T3
- Authority
- ES
- Spain
- Prior art keywords
- horizontal
- vertical
- section
- filtering
- boundaries
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/117—Filters, e.g. for pre-processing or post-processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/12—Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
- H04N19/122—Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/124—Quantisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/172—Methods 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 picture, frame or field
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/182—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods 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/436—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/597—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
- H04N19/86—Methods 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Discrete Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Electrotherapy Devices (AREA)
- Magnetic Treatment Devices (AREA)
Abstract
Se proporciona un dispositivo de procesamiento de imágenes que incluye una sección de decodificación configurada para decodificar una imagen de un flujo codificado, una sección de filtrado horizontal configurada para aplicar un filtro de desbloqueo a un límite de bloque vertical dentro de una imagen que será decodificada por la sección de decodificación, una sección de filtrado vertical configurada para aplicar un filtro de desbloqueo a un límite de bloque horizontal dentro de una imagen que será decodificada por la sección de decodificación, y una sección de control configurada para hacer que la sección de filtrado horizontal filtre en paralelo una pluralidad de límites de bloque verticales incluidos en una unidad de procesamiento que contiene una pluralidad de unidades de codificación y hacer que la sección de filtrado vertical filtre en paralelo una pluralidad de límites de bloque horizontales incluidos en la unidad de procesamiento. (Traducción automática con Google Translate, sin valor legal)
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 técnica
La H.264/AVC, una de las especificaciones estándar para el esquema de codificación de imágenes, aplica un filtro de desbloqueo a un límite de bloque en unidades de bloques, cada uno de los cuales contiene 4 * 4 píxeles, por ejemplo, a fin de evitar la degradación de la calidad de la imagen debido a la distorsión de bloques 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.
Los estándares funcionan para la codificación de vídeo de alta eficiencia (HEVC, por sus siglas en inglés), un esquema de codificación de imágenes de próxima generación, que propone la aplicación del filtro de desbloqueo en unidades de bloques, cada una de las cuales contiene 8 * 8 píxeles o más, según el documento JCTVC-A119 (véase la bibliografía no de patente 1). La técnica propuesta en el documento JCTVC-A119 aumenta el tamaño del bloque a una unidad mínima, lo que permite aplicar el filtro de desbloqueo para realizar procesos de filtrado en paralelo en los límites de los bloques en la misma dirección dentro de un macrobloque. El documento WO2008118562 A1 describe un método de filtrado de desbloqueo simplificado de bloques de vídeo para reducir el acceso a la memoria y reducir la complejidad computacional.
Lista de citas
Bibliografía no de patente
Bibliografía no de patente 1: K.Ugur (Nokia), K.R.Andersson (LM Ericsson), A.Fuldseth (Tandberg Telecom), “ JCTVC-A119: Video coding technology proposal by Tandberg, Nokia, and Ericsson” , documentos de la primera reunión del Joint Collaborative Team on Video Coding (JCT-VC), Dresde (Alemania), 15 a 23 de abril de 2010.
Resumen de la invención
Problema técnico
Incluso si se utiliza la técnica propuesta en el documento JCTVC-A119, sigue existiendo una dependencia entre un proceso en el límite vertical del bloque y un proceso en el límite horizontal del bloque. Específicamente, un proceso en el límite vertical para un macrobloque espera hasta que se lleve a cabo un proceso en el límite horizontal para un macrobloque vecino. Un proceso en el límite horizontal para un macrobloque espera hasta que se lleve a cabo un proceso en el límite vertical para el mismo macrobloque. La técnica descrita anteriormente solo puede proporcionar, de forma muy limitada, un proceso paralelo del filtro de desbloqueo. En consecuencia, la técnica descrita anteriormente puede no resolver satisfactoriamente los problemas de un retraso y disminución en las velocidades de datos debido a una gran cantidad de procesamiento mientras se aplica el filtro de desbloqueo.
La tecnología según la descripción tiene como objetivo proporcionar un dispositivo de procesamiento de imágenes y un método de procesamiento de imágenes capaces de proporcionar un procesamiento paralelo adicional cuando se aplique un filtro de desbloqueo.
Solución al problema
La invención se expone en las reivindicaciones adjuntas.
Efectos ventajosos de la invención
Según una realización de la presente descripción, se proporciona un método de procesamiento de imágenes que incluye realizar un filtrado horizontal para aplicar un filtro de desbloqueo a un límite vertical de bloque dentro de una imagen a decodificar localmente cuando se codifica una imagen a codificar, realizar un filtrado vertical para aplicar un filtro de desbloqueo a un límite horizontal de bloque dentro de la imagen, controlar el filtrado horizontal y el filtrado vertical para filtrar en paralelo una pluralidad de límites verticales de bloques incluidos en una unidad de procesamiento que contiene una pluralidad de unidades de codificación y filtrar en paralelo una pluralidad de límites de bloques horizontales incluidos en la unidad de procesamiento, y codificar la imagen a codificar utilizando una imagen filtrada mediante el filtrado horizontal y el filtrado vertical.
Como se describió anteriormente, el dispositivo de procesamiento de imágenes y el método de procesamiento de imágenes según la presente descripción mejoran aún más el procesamiento en paralelo cuando se aplica un filtro de desbloqueo.
Breve descripción de los dibujos
[Figura 1] 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 realización.
[Figura 2] 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 según una realización.
[Figura 3] La Figura 3 es un diagrama explicativo que muestra un ejemplo de píxeles vecinos alrededor de un límite.
[Figura 4] La Figura 4 es un diagrama explicativo que ilustra los píxeles de referencia durante los procesos de determinación de la necesidad de filtrado según una técnica existente.
[Figura 5] La Figura 5 es un diagrama explicativo que ilustra píxeles actualizados mediante procesos de filtrado. [Figura 6] La Figura 6 es un diagrama explicativo que ilustra la identificación de los bordes para
Efectos ventajosos de la invención
Como se describió anteriormente, el dispositivo de procesamiento de imágenes y el método de procesamiento de imágenes según la presente descripción mejoran aún más el procesamiento en paralelo cuando se aplica un filtro de desbloqueo.
Breve descripción de los dibujos
[Figura 1] 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 realización.
[Figura 2] 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 según una realización.
[Figura 3] La Figura 3 es un diagrama explicativo que muestra un ejemplo de píxeles vecinos alrededor de un límite.
[Figura 4] La Figura 4 es un diagrama explicativo que ilustra los píxeles de referencia durante los procesos de determinación de la necesidad de filtrado según una técnica existente.
[Figura 5] La Figura 5 es un diagrama explicativo que ilustra píxeles actualizados mediante procesos de filtrado. [Figura 6] La Figura 6 es un diagrama explicativo que ilustra la identificación de los bordes para la descripción de la realización.
[Figura 7] La Figura 7 es un diagrama explicativo que ilustra un proceso paralelo según una técnica existente.
[Figura 8] La Figura 8 es un primer diagrama explicativo que ilustra la dependencia entre procesos según una técnica existente.
[Figura 9] La Figura 9 es un segundo diagrama explicativo que ilustra la dependencia entre procesos según una técnica existente.
[Figura 10] La Figura 10 es un diagrama explicativo que ilustra una secuencia de procesos según una técnica existente.
[Figura 11] La Figura 11 es un diagrama explicativo que ilustra una secuencia de procesos según un primer ejemplo de funcionamiento.
[Figura 12] La Figura 12 es un diagrama de bloques que ilustra una configuración detallada de un filtro de desbloqueo según la primera realización.
[Figura 13] La Figura 13 es un diagrama que ilustra una configuración detallada de una sección de determinación.
[Figura 14] La Figura 14 es un diagrama explicativo que ilustra bloques vecinos alrededor de un límite de segmento.
[Figura 15] La Figura 15 es un diagrama explicativo que ilustra un primer ejemplo de una secuencia de procesos para cada segmento.
[Figura 16] La Figura 16 es un diagrama explicativo que ilustra un segundo ejemplo de una secuencia de procesos para cada segmento.
[Figura 17] La Figura 17 es un diagrama explicativo que ilustra un primer y un segundo ejemplos de una técnica de determinación proporcionada por una modificación.
[Figura 18] La Figura 18 es un diagrama explicativo que ilustra un tercer y un cuarto ejemplos de una técnica de determinación proporcionada por una modificación.
[Figura 19] La Figura 19 es un diagrama explicativo que ilustra un quinto y un sexto ejemplos de una técnica de determinación proporcionada por una modificación.
[Figura 20] La Figura 20 es un diagrama de flujo que ilustra un flujo de proceso para el filtro de desbloqueo según el primer ejemplo de funcionamiento.
[Figura 21] La Figura 21 es un diagrama de flujo que ilustra un flujo de un proceso de determinación de la necesidad de filtrado.
[Figura 22] La Figura 22 es un diagrama explicativo que ilustra una secuencia de procesos según un segundo ejemplo de funcionamiento.
[Figura 23] La Figura 23 es un diagrama de bloques que ilustra una configuración detallada del filtro de desbloqueo según el segundo ejemplo de funcionamiento.
[Figura 24] La Figura 24 es un diagrama de flujo que ilustra un flujo de proceso para el filtro de desbloqueo según el segundo ejemplo de funcionamiento.
[Figura 25] La Figura 25 es un diagrama explicativo que ilustra una secuencia de proceso para cada LCU.
[Figura 26] La Figura 26 es un diagrama de flujo que ilustra un flujo de proceso para cada LCU.
[Figura 27] La Figura 27 es un diagrama explicativo que ilustra una visión general de un tercer ejemplo de funcionamiento.
[Figura 28] La Figura 28 es un diagrama de bloques que ilustra una configuración detallada de un filtro de desbloqueo según el tercer ejemplo de funcionamiento.
[Figura 29] La Figura 29 es un diagrama explicativo que ilustra la determinación de una ponderación para la media ponderada.
[Figura 30] La Figura 30 es un diagrama que ilustra un ejemplo de una ponderación para la media ponderada. [Figura 31] La Figura 31 es un diagrama explicativo que ilustra un valor de píxel de salida de una sección de cálculo según el tercer ejemplo de funcionamiento.
[Figura 32] La Figura 32 es un diagrama explicativo que ilustra un primer ejemplo de una secuencia de proceso para comparación.
[Figura 33] La Figura 33 es un diagrama explicativo que ilustra un primer ejemplo de una secuencia de proceso proporcionada por el tercer ejemplo de funcionamiento.
[Figura 34] La Figura 34 es un diagrama explicativo que ilustra un segundo ejemplo de una secuencia de proceso para comparación.
[Figura 35] La Figura 35 es un diagrama explicativo que ilustra un segundo ejemplo de una secuencia de proceso proporcionada por el tercer ejemplo de funcionamiento.
[Figura 36] La Figura 36 es un diagrama de flujo que ilustra un primer ejemplo de un flujo de proceso para el filtro de desbloqueo según el tercer ejemplo de funcionamiento.
[Figura 37] La Figura 37 es un diagrama de flujo que ilustra un flujo de un proceso de cálculo del valor de píxel mostrado en la Figura 36.
[Figura 38] La Figura 38 es un diagrama explicativo que ilustra un códec multivista.
[Figura 39] La Figura 39 es un diagrama explicativo que ilustra un proceso de codificación de imágenes según una realización aplicada a un códec multivista.
[Figura 40] La Figura 40 es un diagrama explicativo que ilustra un proceso de decodificación de imágenes según una realización aplicada a un códec multivista.
[Figura 41] La Figura 41 es un diagrama explicativo que ilustra un códec escalable.
[Figura 42] La Figura 42 es un diagrama explicativo que ilustra un proceso de codificación de imágenes según una realización aplicada a un códec escalable.
[Figura 43] La Figura 43 es un diagrama explicativo que ilustra un proceso de decodificación de imágenes según una realización aplicada a un códec escalable.
[Figura 44] La Figura 44 es un diagrama de bloques que ilustra una configuración esquemática de un aparato de televisión.
[Figura 45] La Figura 45 es un diagrama de bloques que ilustra una configuración esquemática de un teléfono móvil.
[Figura 46] La Figura 46 es un diagrama de bloques que ilustra una configuración esquemática de un dispositivo de grabación/reproducción.
[Figura 47] La Figura 47 es un diagrama de bloques que ilustra una configuración esquemática de un dispositivo de captura de imágenes.
Descripción de la realización
A continuación en la memoria, se describirán en detalle realizaciones preferidas de la presente invención con referencia a los dibujos adjuntos. Cabe señalar que en esta memoria descriptiva y en los dibujos adjuntos, los elementos que tienen sustancialmente la misma función y estructura se indican con los mismos símbolos de referencia, y se omite la explicación repetida.
La descripción de la realización se describirá en la siguiente secuencia.
1. Descripción general del aparato
1-1. Dispositivo de codificación de imágenes
1- 2. Dispositivo de decodificación de imágenes
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 de funcionamiento
3- 1. Ejemplo de configuración del filtro de desbloqueo
3-2. Modificaciones de las condiciones de determinación
3- 3. Flujo del proceso
4. Segundo ejemplo de funcionamiento
4- 1. Ejemplo de configuración del filtro de desbloqueo
4-2. Flujo del proceso
4-3. Ejemplo de proceso para cada LCU
5. Tercer ejemplo de funcionamiento
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 del proceso
6. Aplicación a varios códecs
6- 1. Códec multivista
6-2. Códec escalable
7. Aplicaciones ilustrativas
8. Resumen
1. Descripción general del aparato
Con referencia a las Figuras 1 y 2, a continuación se describe una descripción general de un aparato al que es aplicable la tecnología descrita en esta memoria descriptiva. La tecnología descrita en esta memoria descriptiva es aplicable a un dispositivo de codificación de imágenes y a un dispositivo de decodificación de imágenes, por ejemplo.
[1-1. Dispositivo de codificación de imágenes]
La Figura 1 es un diagrama de bloques que muestra un ejemplo de una configuración de un dispositivo 10 de codificación de imágenes según una realización. Haciendo referencia a la Figura 1, el dispositivo 10 de codificación de imágenes incluye una sección 11 de conversión A/D (analógica a digital), un búfer 12 de reordenamiento, una sección 13 de sustracción, una sección 14 de transformación ortogonal, una sección 15 de cuantización, una sección 16 de codificación sin pérdidas, un búfer 17 de acumulación, una sección 18 de control de tasa, una sección 21 de cuantización inversa, una sección 22 de transformación ortogonal inversa, una sección 23 de adición, un filtro 24a de desbloqueo, una memoria 25 de tramas, un selector 26, una sección 30 de intrapredicción, una sección 40 de estimación de movimiento y una sección 50 de selección de modo.
La sección 11 de conversión A/D convierte una entrada de señal de imagen en formato analógico en datos de imagen en formato digital, y envía una serie de datos de imágenes digitales al búfer 12 de reordenamiento.
El búfer 12 de reordenamiento reordena las imágenes incluidas en la serie de datos de imágenes introducidos desde la sección 11 de conversión A/D. Después de reordenar las imágenes según la estructura GOP (grupo de imágenes, siglas del inglés “ Group of Pictures” ) según el proceso de codificación, el búfer 12 de reordenamiento envía los datos de imagen que se reordenaron a la sección 13 de sustracción, la sección 30 de intrapredicción y la sección 40 de estimación de movimiento.
Los datos de imagen introducidos desde el búfer 12 de reordenamiento y los datos de imagen predichos seleccionados por la sección 50 de selección de modo descrita más adelante, se suministran a la sección 13 de sustracción. La sección 13 de sustracción calcula los datos de error predichos, que son una diferencia entre los datos de imagen introducidos desde el búfer 12 de reordenamiento y los datos de imagen predichos introducidos desde la sección 50 de selección de modo, y envía los datos de error predichos calculados a la sección 14 de transformación ortogonal.
La sección 14 de transformación ortogonal realiza una transformación ortogonal en los datos de error predichos introducidos desde la sección 13 de sustracción. La transformación ortogonal a realizar por la sección 14 de transformación ortogonal puede ser una transformación discreta de coseno (DCT, por sus siglas en inglés) o una transformada de Karhunen-Loeve, por ejemplo. La sección 14 de transformación ortogonal envía a la sección 15 de cuantización los datos de coeficientes de transformación adquiridos por el proceso de transformación ortogonal.
Los datos de coeficientes de transformación introducidos desde la sección 14 de transformación ortogonal y una señal de control de tasa desde la sección 18 de control de tasa descrita más adelante, se suministran a la sección 15 de cuantización. La sección 15 de cuantización cuantiza los datos del coeficiente de transformación y envía los datos del coeficiente de transformación que se cuantizaron (en lo sucesivo, denominados datos cuantizados) a la sección 16 de codificación sin pérdidas y a la sección 21 de cuantización inversa. Además, la sección 15 de cuantización conmuta un parámetro de cuantización (una escala de cuantización) basándose en la señal de control de tasa de la sección 18 de control de tasa, para cambiar así la tasa de bits de los datos cuantizados a introducir en la sección 16 de codificación sin pérdidas.
Los datos cuantizados introducidos desde la sección 15 de cuantización y la información descrita más adelante sobre la intrapredicción o la interpredicción generada por la sección 30 de intrapredicción o la sección 40 de estimación de movimiento, y seleccionada por la sección 50 de selección de modo, se suministran a la sección 16 de codificación sin pérdidas. La información sobre la intrapredicción puede incluir información del modo de predicción que indique un modo de intrapredicción óptimo para cada bloque, por ejemplo. Además, la información sobre la interpredicción puede incluir información del modo de predicción para la predicción de un vector de movimiento para cada bloque, información del vector de movimiento de diferencia, información de imagen de referencia y similares, por ejemplo.
La sección 16 de codificación sin pérdidas genera un flujo codificado al realizar un proceso de codificación sin pérdidas en los datos cuantizados. La codificación sin pérdidas por la sección 16 de codificación sin pérdidas puede ser una codificación de longitud variable o una codificación aritmética, por ejemplo. Además, la sección 16 de codificación sin pérdidas multiplexa la información sobre la intrapredicción o la información sobre la interpredicción mencionada anteriormente, en la cabecera del flujo codificado (por ejemplo, una cabecera de bloque, una cabecera de segmento o similares). A continuación, la sección 16 de codificación sin pérdidas envía el flujo codificado generado al búfer 17 de acumulación.
El búfer 17 de acumulación almacena temporalmente la entrada de flujo codificado desde la sección 16 de codificación sin pérdidas utilizando un medio de almacenamiento, tal como una memoria de semiconductores. A continuación, el búfer 17 de acumulación envía el flujo codificado acumulado a una tasa según la banda de una línea de transmisión (o una línea de salida del dispositivo 10 de codificación de imágenes).
La sección 18 de control de tasa monitoriza el espacio libre del búfer 17 de acumulación. A continuación, la sección 18 de control de tasa genera una señal de control de tasa según el espacio libre en el búfer 17 de acumulación, y envía la señal de control de tasa generada a la sección 15 de cuantización. Por ejemplo, cuando no hay mucho espacio libre en el búfer 17 de acumulación, la sección 18 de control de tasa genera una señal de control de tasa para reducir la tasa de bits de los datos cuantizados. Además, por ejemplo, cuando el espacio libre en el búfer 17 de acumulación es lo suficientemente grande, la sección 18 de control de tasa genera una señal de control de tasa para aumentar la tasa de bits de los datos cuantizados.
La sección 21 de cuantización inversa realiza un proceso de cuantización inversa en los datos cuantizados introducidos desde la sección 15 de cuantización. A continuación, la sección 21 de cuantización inversa envía los datos de coeficientes de transformación adquiridos por el proceso de cuantización inversa a la sección 22 de transformación ortogonal inversa.
La sección 22 de transformación ortogonal inversa realiza un proceso de transformación ortogonal inversa en los datos de coeficientes de transformación introducidos desde la sección 21 de cuantización inversa para restaurar así los datos de error predichos. A continuación, la sección 22 de transformación ortogonal inversa envía los datos de error predichos restaurados a la sección 23 de adición.
La sección 23 de adición añade los datos de error predichos restaurados introducidos desde la sección 22 de transformación ortogonal inversa y los datos de imagen predichos introducidos desde la sección de selección 50 de modo, para generar así datos de imagen decodificados. A continuación, la sección 23 de adición envía los datos de imagen decodificados generados al filtro 24a de desbloqueo y a la memoria 25 de tramas.
Un filtro 24a de desbloqueo realiza procesos de filtrado para disminuir la distorsión del bloque que se produce durante la codificación de la imagen. Por ejemplo, el filtro 24a de desbloqueo determina la necesidad de filtrar para cada límite de bloque de datos de imagen decodificados suministrados desde una sección 23 de adición, y aplica el filtro de desbloqueo a un límite que se determina que requiere el filtro. El filtro 24a de desbloqueo también recibe información utilizada para la determinación de la necesidad de filtrado (p. ej., información de modo, información de coeficientes de transformación, e información de vectores de movimiento), así como datos de imagen decodificados de la sección 23 de adición. Tras el filtrado, la distorsión de bloque se elimina de los datos de imagen decodificados, y el filtro 24a de desbloqueo envía los datos de imagen decodificados a la memoria 25 de tramas. El proceso para el filtro 24a de desbloqueo se describirá en detalle más adelante.
La memoria 25 de tramas almacena, utilizando un medio de almacenamiento, los datos de imagen decodificados introducidos desde la sección 23 de adición y los datos de imagen decodificados después de filtrar la entrada del filtro 24a de desbloqueo.
El selector 26 lee, desde la memoria 25 de tramas, los datos de imagen decodificados antes del filtrado que se van a utilizar para la intrapredicción, y suministra los datos de imagen decodificados que se leyeron a la sección 30 de intrapredicción como datos de imagen de referencia. Además, el selector 26 lee, desde la memoria 25 de tramas, los datos de imagen decodificados después del filtrado que se van a utilizar para la interpredicción, y suministra los datos de imagen decodificados que se leyeron a la sección 40 de estimación de movimiento como datos de imagen de referencia.
La sección 30 de intrapredicción realiza un proceso de intrapredicción en cada modo de intrapredicción, basándose en los datos de imagen que se van a codificar que se introducen desde el búfer 12 de reordenamiento y en los datos de imagen decodificados suministrados a través del selector 26. Por ejemplo, la sección 30 de intrapredicción evalúa el resultado de predicción de cada modo de intrapredicción, utilizando una función de coste predeterminada. A continuación, la sección 30 de intrapredicción selecciona un modo de intrapredicción mediante el cual el valor de la función de coste es el más pequeño, es decir, un modo de intrapredicción mediante el cual la relación de compresión es la más alta, como el modo de intrapredicción óptimo. Además, la sección de 30 intrapredicción envía, a la sección 50 de selección de modo, información del modo de predicción que indica el modo de intrapredicción óptimo, los datos de imagen predichos y la información sobre la intrapredicción, tal como el valor de la función de coste.
Una sección 40 de estimación de movimiento realiza un proceso de interpredicción (proceso de predicción entre tramas) basándose en los datos de imagen para la codificación suministrados desde un búfer 12 de reordenamiento y en los datos de imagen decodificados suministrados a través de un selector 26. Por ejemplo, la sección 40 de estimación de movimiento 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 40 de estimación de movimiento selecciona un modo de predicción óptimo, es decir, un modo de predicción que minimice el valor de la función de coste o maximice la relación de compresión. La sección 40 de estimación de movimiento genera datos de imagen predichos, según el modo de predicción óptimo. La sección 40 de estimación de movimiento envía información sobre la interpredicción, tal como la información del modo de predicción que indica el modo de intrapredicción óptimo, los datos de imagen predichos y el valor de la función de coste, a una sección 50 de selección de modo.
La sección 50 de selección de modo compara el valor de la función de coste relacionado con la entrada de intrapredicción de la sección 30 de intrapredicción, y el valor de la función de coste relacionado con la entrada de interpredicción de la sección 40 de estimación de movimiento. A continuación, la sección 50 de selección de modo selecciona un método de predicción con un valor de función de coste más pequeño, a partir de la intrapredicción y la interpredicción. En el caso de seleccionar la intrapredicción, la sección 50 de selección de modo envía la información sobre la intrapredicción a la sección 16 de codificación sin pérdidas y, además, envía los datos de imagen predichos a la sección 13 de sustracción y a la sección 23 de adición. Además, en el caso de seleccionar la interpredicción, la sección 50 de selección de modo envía la información sobre la interpredicción descrita anteriormente, a la sección 16 de codificación sin pérdidas y, además, envía los datos de imagen predichos a la sección 13 de sustracción y a la sección 23 de adición.
[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 60 de decodificación de imágenes según una realización. Con referencia a la Figura 2, el dispositivo 60 de decodificación de imágenes incluye un búfer 61 de acumulación, una sección 62 de decodificación sin pérdidas, una sección 63 de cuantización inversa, una sección 64 de transformación ortogonal inversa, una sección 65 de adición, un filtro 24b de desbloqueo, un búfer 67 de reordenamiento, una sección 68 de conversión D/A (digital a analógico), una memoria 69 de tramas, selectores 70 y 71, una sección 80 de intrapredicción y una sección 90 de compensación de movimiento.
El búfer 61 de acumulación almacena temporalmente una entrada de flujo codificada a través de una línea de transmisión utilizando un medio de almacenamiento.
La sección 62 de decodificación sin pérdidas decodifica una entrada de flujo codificada desde el búfer 61 de acumulación según el método de codificación utilizado en el momento de la codificación. Además, la sección 62 de decodificación sin pérdidas decodifica la información multiplexada en la región de cabecera del flujo codificado. La información que se multiplexa en la región de cabecera del flujo codificado puede incluir información sobre la intrapredicción e información sobre la interpredicción en la cabecera del bloque, por ejemplo. La sección 62 de decodificación sin pérdidas envía la información sobre la intrapredicción a la sección 80 de intrapredicción. Además, la sección 62 de decodificación sin pérdidas envía la información sobre la interpredicción a la sección 90 de compensación de movimiento.
La sección 63 de cuantización inversa cuantifica inversamente los datos cuantizados que fueron decodificados por la sección 62 de decodificación sin pérdidas. La sección 64 de transformación ortogonal inversa genera datos de error predichos, realizando una transformación ortogonal inversa en los datos de coeficientes de transformación introducidos desde la sección 63 de cuantización inversa según el método de transformación ortogonal utilizado en el momento de la codificación. A continuación, la sección 64 de transformación ortogonal inversa envía los datos de error predichos generados a la sección 65 de adición.
La sección 65 de adición añade los datos de error predichos introducidos desde la sección 64 de transformación ortogonal inversa y los datos de imagen predichos introducidos desde el selector 71 para generar así datos de imagen decodificados. A continuación, la sección 65 de adición envía los datos de imagen decodificados generados al filtro 24b de desbloqueo y a la memoria 69 de tramas.
El filtro 24b de desbloqueo realiza procesos de filtrado para disminuir la distorsión de bloque que aparece en una imagen decodificada. El filtro 24b de desbloqueo determina la necesidad de filtrar en cada límite de bloque para los datos de imagen decodificados introducidos desde la sección 65 de adición, por ejemplo, y aplica el filtro de desbloqueo a un límite que se determina que requiere el filtro. El filtro 24b de desbloqueo también recibe información utilizada para la determinación de la necesidad de filtrado, así como datos de imagen decodificados de la sección 65 de adición. Tras el filtrado, la distorsión de bloque se elimina de los datos de imagen decodificados, y el filtro 24b de desbloqueo envía los datos de imagen decodificados al búfer 67 de reordenamiento y a la memoria 69 de tramas. El proceso para el filtro 24b de desbloqueo se describirá en detalle más adelante.
El búfer 67 de reordenamiento genera una serie de datos de imagen en una secuencia temporal al reordenar las imágenes introducidas desde el filtro 24b de desbloqueo. A continuación, el búfer 67 de reordenamiento envía los datos de imagen generados a la sección 68 de conversión D/A.
La sección 68 de conversión D/A convierte los datos de imagen en una entrada de formato digital, desde el búfer 67 de reordenamiento, en una señal de imagen en formato analógico. A continuación, la sección 68 de conversión D/A hace que se visualice una imagen emitiendo la señal de imagen analógica a una pantalla (no mostrada) conectada al dispositivo 60 de decodificación de imágenes, por ejemplo.
La memoria 69 de tramas utiliza un medio de almacenamiento para almacenar los datos de imagen decodificados introducidos desde la sección 65 de adición antes del filtrado, y los datos de imagen decodificados introducidos desde el filtro 24b de desbloqueo después del filtrado.
El selector 70 conmuta el destino de salida de los datos de imagen de la memoria 69 de tramas, entre la sección 80 de intrapredicción y la sección 90 de compensación de movimiento, para cada bloque de la imagen según la información de modo adquirida por la sección 62 de decodificación sin pérdidas. Por ejemplo, en el caso de que se especifique el modo de intrapredicción, el selector 70 emite los datos de imagen decodificados antes del filtrado, que se suministran desde la memoria 69 de tramas a la sección 80 de intrapredicción como datos de imagen de referencia. Además, en el caso de que se especifique el modo de interpredicción, el selector 70 emite los datos de imagen decodificados después del filtrado, que se suministran desde la memoria 69 de tramas a la sección 90 de compensación de movimiento como datos de imagen de referencia.
El selector 71 conmuta la fuente de salida de los datos de imagen predichos a suministrar a la sección 65 de adición, entre la sección 80 de intrapredicción y la sección 90 de compensación de movimiento, para cada bloque de la imagen según la información de modo adquirida por la sección 62 de decodificación sin pérdidas. Por ejemplo, en el caso de que se especifique el modo de intrapredicción, el selector 71 suministra a la sección 65 de adición los datos de imagen predichos emitidos desde la sección 80 de intrapredicción. En el caso de que se especifique el modo de interpredicción, el selector 71 suministra a la sección 65 de adición los datos de imagen predichos emitidos desde la sección 90 de compensación de movimiento.
La sección 80 de intrapredicción realiza la predicción en pantalla de un valor de píxel basándose en la información sobre la intrapredicción introducida desde la sección 62 de decodificación sin pérdidas y los datos de imagen de referencia de la memoria 69 de tramas, y genera datos de imagen predichos. A continuación, la sección 80 de intrapredicción envía los datos de imagen predichos generados al selector 71.
La sección 90 de compensación de movimiento realiza un proceso de compensación de movimiento basándose en la información sobre la entrada de interpredicción desde la sección 62 de decodificación sin pérdidas y los datos de imagen de referencia de la memoria 69 de tramas, y genera datos de imagen predichos. A continuación, la sección 90 de compensación de movimiento envía al selector 71 los datos de imagen predichos generados.
<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 esquema de codificación de imágenes existente, tal como H.264/AVC o HEVC, incluyen dos tipos de procesos, a saber, los procesos de determinación de la necesidad de filtrado y los procesos de filtrado. A continuación se describen estos dos procesos en HEVC, por ejemplo.
(1) Procesos de determinación de la necesidad de filtrado
Los procesos de determinación de la necesidad de filtrado determinan si el filtro de desbloqueo debe aplicarse a cada límite de bloques dentro de una imagen de entrada. Los límites de bloque incluyen un límite vertical entre bloques horizontalmente adyacentes entre sí, y un límite horizontal entre bloques verticalmente adyacentes entre sí. El documento JCTVC-A119 utiliza un tamaño de bloque de 8 * 8 píxeles como unidad de procesamiento mínima. Por ejemplo, un macrobloque de 16 * 16 píxeles incluye cuatro bloques de 8 * 8 píxeles. 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 que equivalen a ocho límites en total. La memoria descriptiva supone que el macrobloque, como término técnico, incluye una unidad de codificación (CU, por sus siglas en inglés) en el contexto de HEVC.
La Figura 3 es un diagrama explicativo que muestra un ejemplo de píxeles en dos bloques (bloques vecinos), Ba y Bb, adyacentes entre sí alrededor de un límite. A continuación se describe el límite vertical a modo de ejemplo, y la descripción es obviamente aplicable al límite horizontal. El ejemplo de la Figura 3 usa el símbolo py 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 arriba a abajo. La mitad izquierda del bloque Ba se omite en el dibujo. El símbolo qkj se usa 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 en el dibujo.
Las siguientes condiciones pueden usarse para determinar la necesidad de aplicar el filtro de desbloqueo al límite vertical entre los bloques Ba y Bb mostrados 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 ambas verdaderas.
Condición A:
(A1) El bloque Ba o Bb entra en el modo de intrapredicción;
(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:
Ip<22>-<2>pl<2>+p<02>¡+|q<22>-<2>qi<2>+q<02>|+|p<25>-<2>pl<5>+p<05>|+|q<25>“<2>qi<5>+q<05>|<p
La condición A3 supone que un vector de movimiento para el bloque Ba es (MVAx,MVAy) y un vector de movimiento para el bloque Bb es (MvBx,MVBy) según la precisión de Qpel (1/4 de píxel). La condición B usa p como valor umbral de determinación de borde. Se proporciona un valor inicial de p según un parámetro de cuantización. El valor de p se puede especificar por el usuario mediante un parámetro dentro de la cabecera del segmento.
Condición de determinación del componente croma (Chroma)... El filtro de desbloqueo se aplica si la condición A1 es verdadera.
Condición A1: El bloque Ba o Bb entra en el modo de intrapredicción.
Como indican las tramas con líneas discontinuas L3 y L6 en la Figura 4, los procesos de determinación de la necesidad de filtrado en los límites verticales generales (particularmente, bajo la condición B de determinación del componente de luminancia) hacen referencia a los píxeles de la tercera y sexta filas (suponiendo que la fila superior sea la primera) de cada bloque. De manera similar, los procesos de determinación de la necesidad de filtrado en los píxeles de referencia de los límites horizontales (no mostrados en la Figura 4) en las columnas tercera y sexta de cada bloque. Las condiciones de determinación descritas anteriormente se usan para determinar que el filtro de desbloqueo debe aplicarse a un límite en el que se realizan los procesos de filtrado que se describen 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 los píxeles a la derecha y a la izquierda del límite vertical, y en los píxeles por encima y por debajo del límite horizontal. En los componentes de luma, la intensidad del filtro se cambia entre un filtro fuerte y un filtro débil según los valores de los píxeles.
Filtrado de componentes de luminiscencia
Seleccionando 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 C1 a C3. El filtro débil se selecciona incluso si no se cumple alguna de las condiciones.
(Cl)d<((3»2)
(C2)(|p3j-poj|+ |qoj-q3j|)<(P»3)
(C 3)(po j-qo j|< ((5 tc+ 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+p02|+|q22-2q12+q02|+|p25-2p15+p05|+|q25-2q13+q05|
Filtrado débil
A=Clip(-tc,tc,(l 3(qoj-poj)+4(qij-pij)-5(q2j-p2j)+l 6)»5))
p0j=ClÍp0-255(p0j+A)
qoj—Clipo-255 (qoj-A)
P1 j—Clipo-255 (P1j+A/2)
qij=Clipo-255(qij~A/2)
Filtrado fuerte
poj-Clipo-255((p2j+2pij+2poj+2qoj+qij+4)»3)
qoj=Clipo-255((Pij+2poj+2qoj+2qij+q2j+ 4 )» 3 )
Plj=ClÍpO-255((p2j+Plj+POj+qOj+2) » 2)
qij=Clipo-255((poj+qoj+qij+q 2 j+ 2 )»2 )
p2j=Clip0-255((2p3j+3p2j+pij+p0j+q0j+ 4 )» 3 )
q2j=Clip0-255((poj+qoj+qij+3q2j+2q3j+4)»3)
donde Clip(a, b, c) indica un proceso para recortar el valor c dentro del rango de a < c < b, y Clipo<-255>(c) indica un proceso para recortar el valor c dentro del rango de 0 < c < 255.
Filtrado de componentes croma
A=Clip(-tc,tc,((((qoj-P oj)«2 )+ p ij-q ij+ 4)»3))
p0j=ClÍp0-255(p0j+A)
qo j=C lipo-255(qoj - A)
Como indican las tramas con líneas discontinuas C6 a C8 y C1 a C3 en la Figura 5, los procesos de filtrado (particularmente el filtrado fuerte en los componentes luma) en los límites verticales generales actualizan los valores de los píxeles en las columnas primera a tercera y sexta a octava de cada bloque. De manera similar, los procesos de filtrado en los límites horizontales actualizan los valores de los píxeles en las filas primera a tercera y sexta a octava de cada bloque.
[2-2. Dependencia entre procesos según una técnica existente]
Con fines de descripción, como se muestra en la Figura 6, el macrobloque MBx (MB0, MB1...), cada uno con un tamaño de 16 * 16 píxeles, 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 la necesidad de filtrado se representa como J<z>, y el proceso de filtrado se representa como F<z>.
La técnica existente descrita anteriormente no provoca ninguna dependencia entre los procesos con respecto a los límites en la misma dirección dentro de un macrobloque. Por lo tanto, la técnica puede realizar un filtrado paralelo en los límites verticales y los límites horizontales dentro de un macrobloque, por ejemplo. Como ejemplo, la Figura 7 deja claro que no hay dependencia entre cuatro procesos de filtrado Fvo,o, Fvo,i, F<vo,2>y F<vo>,3 (ningún píxel actualizado de forma redundante) dentro del macrobloque Mbo, y los procesos de filtrado se pueden realizar en paralelo.
Sin embargo, la técnica existente descrita anteriormente deja la dependencia entre los procesos de filtrado en los límites verticales y los procesos de determinación de la 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 la 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 la necesidad de filtrado deben realizarse en los límites horizontales dentro de un macrobloque determinado después de la finalización de los procesos de filtrado en los límites verticales. Como ejemplo, la Figura 8 muestra que, dentro del macrobloque MBo, el proceso de determinación de la necesidad de filtrado J<ho>,<o>depende de los resultados de los procesos de filtrado Fvo,o y Fvo,i, y el proceso de determinación de la necesidad de filtrado J<ho>,<i>depende del resultado de los procesos de filtrado Fvo,i. De manera similar, los procesos de determinación de la necesidad de filtrado deben realizarse en los límites verticales dentro de un macrobloque dado después de la finalización del proceso de filtrado en el límite horizontal del macrobloque adyacente. Como ejemplo, la Figura 9 muestra que el proceso de determinación de la necesidad de filtrado Jvi,o para el macrobloque MB1 depende de los resultados de los procesos de filtrado F<ho>,<i>y F<ho>,3 para el macrobloque MBo, y el proceso de determinación de la necesidad de filtrado Jv i<,2>para el macrobloque MB1 depende del resultado del proceso de filtrado F<ho>,3 para el macrobloque MBo.
La técnica existente implica la dependencia entre procesos y, por lo tanto, proporciona un procesamiento paralelo del filtro de desbloqueo de forma muy limitada, incluso si se usa la técnica propuesta en el documento JCTvC-A119.
La Figura io es un diagrama explicativo que ilustra una secuencia de procesos de filtro de desbloqueo según una técnica existente. El ejemplo supone que el filtro de desbloqueo se suministra con una imagen que tenga un tamaño de 32 * 32 píxeles. La imagen de entrada incluye cuatro macrobloques, MBo a MB3, cada uno con un tamaño de 16 * 16 píxeles.
En la Figura io , cada trama con líneas discontinuas representa un proceso a realizar en paralelo. Por ejemplo, la primera etapa realiza, en paralelo, los procesos de determinación de la necesidad de filtrado Jvo,o, Jvo,i, Jvo<,2>y Jvo,3 en cuatro límites verticales en el macrobloque MBo. La segunda etapa realiza, en paralelo, los procesos de filtrado Fvo,o, Fvo,i, F vo<,2>y Fvo,3 en cuatro límites verticales en el macrobloque MBo. Tras la finalización de la segunda etapa, la tercera etapa realiza, en paralelo, los procesos de determinación de la necesidad de filtrado J<ho>,<o>, J<ho>,<i>, J<ho,2>y J<ho>,3 en cuatro límites horizontales en el macrobloque MBo. La tercera etapa usa un valor de píxel después del proceso de filtrado en el límite vertical, en la segunda etapa para el proceso de determinación de la necesidad de filtrado en el límite horizontal. La cuarta etapa realiza, en paralelo, los procesos de filtrado F<ho>,<o>, F<ho>,<i>, F<ho,2>y F<ho>,3 en cuatro límites horizontales en el macrobloque MBo. Tras la finalización de la cuarta etapa, los procesos (etapas quinta a octava) para el macrobloque MB1 se realizan sucesivamente. La quinta etapa usa un valor de píxel después del proceso de filtrado en el límite horizontal del macrobloque MBo en la cuarta etapa para el proceso de determinación de la necesidad de filtrado en el límite vertical del macrobloque MB1. Tras la finalización del proceso en el macrobloque MB1, los procesos (etapas novena a duodécima) para el macrobloque MB2 se realizan sucesivamente. Tras la finalización del proceso en el macrobloque MB2, los procesos (etapas decimotercera a decimosexta) para el macrobloque MB3 se realizan sucesivamente.
Dicho procesamiento paralelo dentro de un alcance limitado no puede resolver satisfactoriamente el problema del retraso o la degradación de la tasa de datos, debido a una gran cantidad de procesamiento cuando se aplica el filtro de desbloqueo. Los tres ejemplos de funcionamiento que se describen a continuación mejoran aún más el procesamiento en paralelo cuando se aplica la definición.
<3. Primer ejemplo de funcionamiento>
[3-1. Ejemplo de configuración del filtro de desbloqueo]
A continuación se describen configuraciones ilustrativas del filtro 24a de desbloqueo para el dispositivo 10 de codificación de imágenes mostrado en la Figura 1 y del filtro 24b de desbloqueo para el dispositivo 60 de decodificación de imágenes mostrado en la Figura 2, según el primer ejemplo de funcionamiento. Las configuraciones del filtro 24a de desbloqueo y del filtro 24b de desbloqueo pueden ser comunes entre sí. En la siguiente descripción, el filtro 24a de desbloqueo y el filtro 24b de desbloqueo se denominan genéricamente filtro 24 de desbloqueo cuando no hay necesidad de distinguirlos.
(1) Dependencia entre nuevos procesos
Según el ejemplo de funcionamiento, los procesos que utilizan el filtro 24 de desbloqueo también incluyen dos tipos de procesos, a saber, un proceso de determinación de la necesidad de filtrado y un proceso de filtrado. El filtro 24 de desbloqueo usa valores de píxel para una imagen introducida en el filtro de desbloqueo para la determinación a través de una pluralidad de macrobloques en el proceso de determinación de la necesidad de filtrado en uno de los límites vertical y horizontal. Si el límite vertical se procesa antes que el límite horizontal, por ejemplo, el filtro 24 de desbloqueo puede realizar el proceso de determinación de la necesidad de filtrado en el límite vertical de un bloque dado, sin esperar al proceso de filtrado en el límite horizontal para los bloques vecinos. Si el límite horizontal se procesa antes que el límite vertical, por ejemplo, el filtro 24 de desbloqueo puede realizar el proceso de determinación de la necesidad de filtrado en el límite horizontal de un bloque dado, sin esperar al proceso de filtrado en el límite horizontal para los bloques vecinos. El resultado es aliviar la dependencia de los procesos entre macrobloques.
Aliviar la dependencia de los procesos entre macrobloques puede paralelizar los procesos entre la pluralidad de macrobloques dentro de una imagen. Por ejemplo, esto permite realizar procesos de determinación de la necesidad de filtrado en paralelo en los límites verticales de todos los bloques de una imagen de entrada. Esto también permite realizar procesos de determinación de la necesidad de filtrado en paralelo en los límites horizontales de todos los bloques de una imagen de entrada.
La Figura 11 es un diagrama explicativo que ilustra una secuencia de procesos disponibles para el ejemplo de funcionamiento. El ejemplo también supone que el filtro de desbloqueo se suministra con una imagen con un tamaño de 32 x 32 píxeles. La imagen de entrada incluye cuatro macrobloques, MB0 a MB3, cada uno con un tamaño de 16 x 16 píxeles.
En la Figura 11, cada trama con líneas discontinuas representa un proceso a realizar en paralelo. Mientras que el ejemplo de la Figura 10 requiere 16 etapas de proceso para una secuencia de procesos, el ejemplo de la Figura 11 agrega el mismo número de procesos en cuatro etapas de proceso. La primera etapa realiza, en paralelo, los procesos de determinación de la necesidad de filtrado Jvo,o a J<v>3,3 y J<ho>,<o>a J<h>3,3 en todos los límites verticales y todos los límites horizontales de todos los macrobloques MB0 a MB3. La segunda etapa realiza, en paralelo, los procesos de filtrado Fvo,o a F<v>3,3 en 16 límites verticales de todos los macrobloques MB0 a MB3. La tercera etapa realiza, en paralelo, los procesos de determinación de la necesidad de filtrado F<ho>,<o>a F<h>3,3 en todos los límites horizontales de todos los macrobloques MBo a MB3. La cuarta etapa realiza, en paralelo, los procesos de filtrado F<ho>,<o>a F<h>3,3 en 16 límites horizontales de todos los macrobloques MBo a MB3. Las etapas tercera y cuarta pueden preceder a las etapas primera y segunda si el límite horizontal se procesa antes que el límite vertical.
La Figura 11 proporciona el ejemplo de maximizar el paralelismo (procesos realizados en paralelo) mediante la paralelización de los procesos en todos los macrobloques de una imagen. Aunque no se limitan al ejemplo, los procesos pueden paralelizarse en algunos macrobloques en lugar de en todos los macrobloques de una imagen.
(2) Configuración detallada del filtro de desbloqueo
La Figura 12 es un diagrama de bloques que ilustra una configuración detallada del filtro 24 de desbloqueo según el primer ejemplo de funcionamiento para realizar los procesos paralelos descritos anteriormente. Con referencia a la Figura 12, el filtro 24 de desbloqueo incluye un bloque 11o de determinación vertical, un bloque 114 de determinación horizontal, un bloque 13o de filtrado horizontal, un bloque 14o de filtrado vertical y una sección 15o de control de paralelización.
(2-1) Bloque de determinación vertical
El bloque 11o de determinación vertical incluye una pluralidad de secciones 112-1 a 112-n de determinación del límite vertical. A cada sección 112 de determinación del límite vertical se le suministra imágenes introducidas en el filtro 24 de desbloqueo, y la información de determinación se utiliza para determinar si es necesario filtrar.
Las secciones 112-1 a 112-n de determinación del límite vertical determinan si se debe aplicar el filtro de desbloqueo a los límites verticales utilizando valores de píxel para una entrada de imagen al filtro 24 de desbloqueo a través de la pluralidad de macrobloques dentro de la imagen. Cada sección 112 de determinación del límite vertical suministra al bloque 13o de filtrado horizontal información que indica un resultado de determinación sobre cada límite vertical, tal como información binaria que indica un resultado de determinación en el que el valor “ 1” fuerza la aplicación del filtro de desbloqueo.
(2-2) Bloque de filtrado horizontal
El bloque 130 de filtrado horizontal incluye una pluralidad de secciones 132-1 a 132-n de filtrado horizontal. A cada sección 132 de filtrado horizontal se le suministra una imagen de entrada y el resultado de la determinación sobre cada límite vertical a partir del bloque 110 de determinación vertical.
Un resultado de determinación de la sección 112 de determinación del límite vertical correspondiente puede indicar que es necesario aplicar el filtro. En tal caso, cada sección 132 de filtrado horizontal aplica el filtro de desbloqueo para el límite vertical a los elementos derecho e izquierdo con referencia al límite vertical. Cada sección 132 de filtrado horizontal suministra al bloque 114 de determinación horizontal y al bloque 140 de filtrado vertical valores de píxeles después de filtrar los píxeles aplicados al filtro y los valores de píxel de la imagen de entrada para los demás píxeles.
(2-3) Bloque de determinación horizontal
El bloque 114 de determinación horizontal incluye una pluralidad de secciones 116-1 a 116-n de determinación del límite horizontal. A cada sección 116 de determinación del límite horizontal se le suministra valores de píxel después del filtrado realizado por el bloque 130 de filtrado horizontal y la información de determinación utilizada para determinar si el filtrado es necesario.
Las secciones 116-1 a 116-n de determinación del límite horizontal determinan si se debe aplicar el filtro de desbloqueo a los límites horizontales utilizando valores de píxel después del filtrado realizado por el bloque 130 de filtrado horizontal en la pluralidad de macrobloques dentro de la imagen. Cada sección 116 de determinación del límite horizontal suministra al bloque 140 de filtrado vertical información que indica un resultado de determinación sobre cada límite horizontal.
(2-4) Bloque de filtrado vertical
El bloque 140 de filtrado vertical incluye una pluralidad de secciones 142-1 a 142-n de filtrado vertical. A cada sección 142 de filtrado vertical se le suministran valores de píxel después del filtrado realizado por el bloque 130 de filtrado horizontal y un resultado de determinación sobre cada límite horizontal a partir del bloque 114 de determinación horizontal.
Un resultado de determinación de la sección 116 de determinación del límite horizontal correspondiente puede indicar que es necesario aplicar el filtro. En tal caso, cada sección 142 de filtrado vertical aplica el filtro de desbloqueo para el límite horizontal a los elementos superior e inferior con referencia al límite horizontal. Cada sección 142 de filtrado vertical suministra píxeles con filtro aplicado con valores de píxel después del filtrado, y a los otros píxeles valores de píxeles suministrados desde el bloque 130 de filtrado horizontal. Una salida de cada sección 142 de filtrado vertical puede configurar una imagen de salida del filtro 24 de desbloqueo.
(3) Configuración más detallada de la sección de determinación
La Figura 13 es un diagrama de bloques que ilustra una configuración detallada de cada una de las secciones 112 de determinación del límite vertical y las secciones 116 de determinación del límite horizontal. Con referencia a la Figura 13, cada sección de determinación incluye una sección 121 de constitución de derivaciones, una sección 122 de cálculo, una sección 123 de comparación de umbrales, una sección 124 de evaluación de distorsión y una sección 125 de determinación de filtrado.
La sección 121 de constitución de derivaciones adquiere un valor de píxel de referencia a partir de los valores de píxel de dos bloques contiguos a través de un límite focalizado en la imagen de entrada, y constituye una derivación (un conjunto de valores de píxel de referencia) para determinar la condición B de determinación para el componente luma descrito anteriormente. Por ejemplo, un límite vertical puede focalizarse en los bloques, cada uno de los cuales tiene un tamaño de 8 * 8 píxeles. En este caso, la sección 121 de constitución de derivaciones constituye una derivación a partir de valores de píxeles que pertenecen a la tercera y sexta filas de dos bloques a la derecha y a la izquierda. Si se focaliza un límite horizontal, la sección 121 de constitución de derivaciones constituye una derivación entre los valores de píxel que pertenecen a las columnas tercera y sexta de dos bloques en la parte superior e inferior. La sección 122 de cálculo asigna la derivación constituida por la sección 121 de constitución de derivaciones al lado izquierdo de la expresión de determinación en la condición B de determinación, y calcula un valor de borde para compararlo con el valor umbral p de determinación de bordes. La sección 123 de comparación de umbrales compara el valor calculado por la sección 122 de cálculo con el valor umbral p de determinación de bordes, y envía un resultado de comparación a la sección 125 de determinación de filtrado.
La sección 124 de evaluación de distorsión evalúa la condición A de determinación del componente luma descrito anteriormente, utilizando la información de modo (modo MB), la información del coeficiente de transformación, y la información del vector de movimiento suministradas como información de determinación. La sección 124 de evaluación de distorsión envía un resultado de evaluación a la sección 125 de determinación de filtrado. La sección 124 de evaluación de distorsión evalúa solo la condición A1 de determinación de un componente croma basándose en la información de modo.
La sección 125 de determinación de filtrado determina si aplicar el filtro de desbloqueo a un límite focalizado basándose en un resultado de comparación de la condición B de determinación suministrado desde la sección 123 de comparación de umbrales, y un resultado de evaluación de la condición A de determinación suministrado desde la sección 124 de evaluación de distorsión. La sección 125 de determinación de filtrado emite información que indica el resultado de la determinación.
(4) Sección de control de paralelización
La sección 150 de control de paralelización mostrada en la Figura 12 controla el paralelismo de los procesos de determinación de la necesidad de filtrado en el bloque 110 de determinación vertical y el bloque 114 de determinación horizontal, y el paralelismo de los procesos de filtrado en el bloque 130 de filtrado horizontal y el bloque 140 de filtrado vertical.
Por ejemplo, la sección de control 150 de paralelización puede controlar el paralelismo de los procesos para cada bloque basándose en el tamaño de la imagen de entrada. Más específicamente, la sección 150 de control de paralelización aumenta el paralelismo de los procesos para cada bloque si el tamaño de la imagen de entrada es relativamente grande. Esto puede evitar de forma adaptativa el retraso o la degradación de la tasa de datos debido a una cantidad de procesamiento que aumenta según el tamaño de las imágenes. Por ejemplo, la sección 150 de control de paralelización puede controlar el paralelismo de los procesos para cada bloque basándose en un conjunto de parámetros de secuencia, un conjunto de parámetros de imagen o los parámetros contenidos en la cabecera del segmento. Esto permite configurar de manera flexible el paralelismo según los requisitos de los usuarios que desarrollan aparatos. Por ejemplo, el paralelismo puede configurarse según las restricciones del entorno de instalación, tal como la cantidad de núcleos de procesador o la cantidad de subprocesos de software.
El ejemplo de funcionamiento puede paralelizar procesos entre macrobloques. Esto significa que cualquier secuencia de procesos en bloques dentro de una imagen no tiene ningún efecto en el resultado final obtenido. Por consiguiente, la sección 150 de control de paralelización puede controlar una secuencia de procesos de determinación de la necesidad de filtrado en el bloque 110 de determinación vertical y el bloque 114 de determinación horizontal, y una secuencia de procesos de filtrado en el bloque 130 de filtrado horizontal y el bloque 140 de filtrado vertical por bloques.
Más específicamente, la sección 150 de control de paralelización puede controlar una secuencia de procesos de filtrado según la dependencia de los procesos de filtrado entre macrobloques. Según una técnica existente, por ejemplo, la dependencia de los procesos entre macrobloques vecinos alrededor de un límite de segmento, puede retrasar los procesos paralelos en cada segmento dentro de una imagen. Sin embargo, la sección 150 de control de paralelización según el ejemplo de funcionamiento puede realizar procesos de filtrado en macrobloques vecinos alrededor del límite del segmento antes que en los otros macrobloques.
Por ejemplo, la Figura 14 ilustra ocho macrobloques, MB10 a MB13 y MB20 a MB23, alrededor de un límite de segmento. Los macrobloques MB10 a MB13 pertenecen al segmento SL1. Los macrobloques MB20 a MB23 pertenecen al segmento SL2. Con respecto a estos macrobloques, los procesos de filtrado para los límites horizontales en el macrobloque MB20 en el segmento SL2, dependen de los procesos de filtrado para los límites verticales en el macrobloque MB12 en el segmento SL1. De manera similar, los procesos de filtrado para los límites horizontales en el macrobloque MB21 en el segmento SL2, dependen de los procesos de filtrado para los límites verticales en el macrobloque MB13 en el segmento SL1.
Según un ejemplo de la Figura 15, en estas condiciones, la sección 150 de control de paralelización realiza procesos de filtrado en los límites verticales de los macrobloques MB12 y MB13 fuera de los procesos de filtrado para el segmento SL1, con preferencia a los procesos en los otros límites. El resultado es evitar que se produzca un gran retraso en los procesos de filtrado en los límites horizontales de los macrobloques MB20 y MB21 fuera de los procesos de filtrado del segmento SL2. Un ejemplo de la Figura 16 inicialmente realiza procesos de filtrado en paralelo en los límites verticales para todos los macrobloques incluidos en el segmento SL1. También en este caso, no se produce ningún retraso en el proceso de filtrado en los límites horizontales de los macrobloques MB20 y MB21 en el segmento SL2.
[3-2. Modificaciones de las condiciones de determinación]
Como se describió anteriormente, cada sección 112 de determinación del límite vertical hace referencia a los píxeles correspondientes a las filas tercera y sexta de un bloque, y de manera similar a la técnica existente determina, para los límites verticales de cada bloque, si se necesita un filtrado, tal como se ilustra en la Figura 4. Del mismo modo, cada sección 116 de determinación del límite horizontal hace referencia a los píxeles correspondientes a las columnas tercera y sexta de un bloque, y determina para los límites horizontales de cada bloque si es necesario un filtrado. En tal caso, la configuración según el ejemplo de funcionamiento se puede incorporar fácilmente sin cambiar las condiciones de determinación para el proceso de determinación de la necesidad de filtrado previsto para el aparato existente.
Cada sección 112 de determinación del límite vertical y cada sección 116 de determinación del límite horizontal pueden realizar la determinación usando condiciones de determinación diferentes de la técnica existente. Por ejemplo, cada sección 112 de determinación del límite vertical puede hacer referencia a los píxeles correspondientes a tres o más columnas de un bloque. Cada sección 116 de determinación del límite horizontal puede hacer referencia a los píxeles correspondientes a tres o más columnas de un bloque. Además, cada sección 112 de determinación del límite vertical y cada sección 116 de determinación del límite horizontal pueden usar expresiones de condiciones de determinación diferentes de la técnica existente. Con referencia a las Figuras 17 a 19, a continuación se describen seis ejemplos de la técnica de determinación según el ejemplo de funcionamiento.
(1) Primer ejemplo
La Figura 17 es un diagrama explicativo que ilustra los ejemplos primero y segundo de la técnica de determinación. En los ejemplos primero y segundo, los procesos de determinación de la necesidad de filtrado (particularmente, la determinación mediante la condición B de determinación para los componentes luma) para los límites verticales, hacen referencia a los píxeles de todas las filas L1 a L8 de la primera a la octava de cada bloque. Los procesos de determinación de la necesidad de filtrado para los límites horizontales también hacen referencia a los píxeles de todas las columnas, desde la primera hasta la octava de cada bloque.
El primer ejemplo puede definir las condiciones de determinación para los componentes 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 entra en el modo de intrapredicción;
(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=|p20-2pio+pooMq20-2qio+qoo|+|p27-2pi7+po7Mq27-2qi7+qo7|iDi=|p2i -2pi i+poi |+¡q2i -2qi j+qoi |+|p26-2pi6+p06|+|q26-2qi 6+qoól ÍD2” |p22-2p 12+P02 |+!q22-2q 12<+q>0 2<IP25>“2p 1<5+P05>1+|<q25-2qi 5+q05>1
ÍD3=|p23-2pi3+p03|+|q23-2qi3+q03|+|p24-2pi4+P04|+|q24-2qi4+q04| iDaVe=(iDo+iDi+iD2+iD3) » 2
Bajo esta condición, iDprom. < P
La condición de determinación de los componentes croma puede ser igual a la técnica existente descrita anteriormente. Se puede calcular un promedio ponderado para calcular el promedio de iDprom. para cuatro parámetros de determinación: iDo a iD3.
(2) Segundo ejemplo
El segundo ejemplo puede definir la condición B de determinación para los componentes luma de la siguiente manera. Condición B:
iDo=|p20-2pio+PooMq2o-2qio+ qoo|+|p27-2pi7+po7|+|q27-2qi7+qo7|
iDi=|p2i-2pii+poi |+|q2i -2qji qoi|+|p26~2pi6+p06|"Hq26-2qi6+qoólÍD<2>=|p<22>"<2>pi<2>+PO<2>|+|q<22>"<2>qi<2>+q<02>|+|p<25>-<2>pl<5>+PO<5>|+|q<25>"<2>qi<5>+qO<5>|
ÍD3=|p23-2pi3+P03|+|q23-2qi3+q03|+|P24-2pi4-+P04|+|q24-2qi4+q04|
Bajo esta condición, iDo < P e iDi < p e ÍD2 < P e ÍD3 < P
Una ecuación para calcular cuatro parámetros de determinación iDo a iD3 es igual a la del primer ejemplo. Una condición disponible es que no todos, sino al menos tres, dos o uno de cuatro parámetros de determinación iD0 a iD3 sean inferiores al valor umbral p de determinación de bordes.
(3) Tercer ejemplo
La Figura 18 es un diagrama explicativo que ilustra los ejemplos tercero y cuarto de la técnica de determinación. En los ejemplos tercero y cuarto, los procesos de determinación de la necesidad de filtrado (particularmente, la determinación mediante la condición B de determinación para los componentes luma) para los límites verticales, hacen referencia a píxeles de cuatro filas, L1, L3, L6 y L8, en cada bloque. Los procesos de determinación de la necesidad de filtrado para los límites horizontales también hacen referencia a los píxeles de cuatro columnas en cada bloque. El tercer ejemplo puede definir las condiciones de determinación para los componentes 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:
(A i) El bloque Ba o Bb entra en el modo de intrapredicción;
(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:
iD0-|p2o-2pio+poo|+|q20"2qio+qoo|+ |p27-2pi7+po7|+ |q27"2qi7+qo7|
ÍD2=|p22-2pl2+p02|+|q22-2qi2+ q02|+|p25-2pl5+ p05|+ iq25-2qi5+q05|
ÍD ave~(ÍDo‘HD2)'>'>l
Bajo esta condición, iDprom. < P
La condición de determinación de los componentes croma puede ser igual a la técnica existente descrita anteriormente. Se puede calcular un promedio ponderado para calcular el promedio de iDprom. para dos parámetros de determinación iDo e iD2.
(4) Cuarto ejemplo
El cuarto ejemplo puede definir la condición B de determinación para los componentes luma de la siguiente manera. Condición B:
iDo-|p20-2pio+poo|+|q20-2qio+qoo|+|p27-2pi7+Po7|+|q27-2qi7+qo7|
iD 2=|p22-2pi2+P02|+|q22-2qi2+q02|+|p25-2pi5+p05|+|q25-2qi5+q05| Bajo esta condición, iDo < P e ÍD<2>< P
Una ecuación para calcular dos parámetros de determinación iDo e ÍD<2>es igual a la del tercer ejemplo. Una condición disponible es que no ambos parámetros de determinación iD<0>e iD<2>, sino cualquiera de los dos parámetros de determinación, sea menor que el valor umbral P de determinación del borde.
Si bien se ha descrito el ejemplo de hacer referencia a las filas (o columnas) primera, tercera, sexta y octava, L1, L3, L6 y L8, de un bloque durante la determinación, se puede hacer referencia a las otras combinaciones de filas o columnas.
(5) Quinto ejemplo
La Figura 19 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 verticales hacen referencia a píxeles de cuatro filas, L1, L3, L5 y L7, en cada bloque. Los procesos de determinación de la necesidad de filtrado para los límites horizontales también hacen referencia a los píxeles de cuatro columnas en cada bloque. El quinto ejemplo puede definir las condiciones de determinación para los componentes 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 entra en el modo de intrapredicción;
(A2) El bloque Ba o Bb tiene un coeficiente de transformación ortogonal distinto de cero; o
(A3) |NWAx-MVBx|>4 o |MVAy-MVBy|>4
Condición B:
iDo=|p2o-2pio+poo|+|q20"2qio+qoo|+ |p26-2pi6+po6|+ |q26-2qi6+qo6|
ÍD<2>=|p<22>-<2>pl<2>+p<02>|+|q<22>-<2>qi<2>+q<02>|+|p<24>-<2>pi<4>+P<04>|+|q<24>-<2>qi<4>+q<04>|ÍDave=(ÍDo+ÍD2) » l
Bajo esta condición, iDprom. < P
La condición de determinación de los componentes croma puede ser igual a la técnica existente descrita anteriormente. Se puede calcular un promedio ponderado para calcular el promedio de iDprom. para dos parámetros de determinación iDo e iD<2>.
(6) Sexto ejemplo
El sexto ejemplo puede definir la condición B de determinación para los componentes luma de la siguiente manera. Condición B:
iDo=Íp20"2p!o+poo|+|q20"2qio+qoo|+|p26"2pi6+p06|+ |q26-2qi6+qo6| iD2= |p22-2pi<2>+p<02>| |q22-2qi<2>+q<02>| |p24-2pi 4+p04| |q24 -2qi4+q04|
Bajo esta condición, iDo < P e iD<2>< P
Una ecuación para calcular dos parámetros de determinación iDo e ÍD<2>es igual a la del quinto ejemplo. Una condición disponible es que no ambos parámetros de determinación iD<0>e iD<2>, sino cualquiera de los dos parámetros de determinación, sea menor que el valor umbral p de determinación del borde.
En general, aumentar el número de filas y columnas a las que se hace referencia para la determinación mejora la precisión de la determinación. Por lo tanto, los ejemplos primero y segundo de hacer referencia a ocho filas y columnas, pueden minimizar la posibilidad de filtrar un bloque originalmente no destinado al filtro de desbloqueo a aplicar, y la posibilidad de no filtrar un bloque originalmente destinado al filtro de desbloqueo a aplicar. El resultado es mejorar la calidad de la imagen que se va a codificar y decodificar. Por otro lado, reducir el número de filas y columnas a las que se hace referencia para la determinación puede reducir los costos de procesamiento. Dado que existe un equilibrio entre la calidad de la imagen y el coste de procesamiento, puede ser ventajoso seleccionar de forma adaptativa el número de filas y columnas a las que se hará referencia para la determinación basándose en el uso del aparato o de las restricciones de la instalación. Puede ser ventajoso seleccionar de forma adaptativa combinaciones de filas y columnas a las que hacer referencia.
Como se describe en los ejemplos primero, tercero y quinto, el valor promedio iDprom. de los parámetros de determinación se puede comparar con el valor umbral p de determinación de bordes para realizar la determinación de manera apropiada por bloques sin un efecto excesivo de las variaciones de los parámetros para cada fila o columna.
[3-3. Flujo de proceso]
Con referencia a las Figuras 20 y 21, se describirá un flujo de proceso para el filtro 24 de desbloqueo.
La Figura 20 es un diagrama de flujo que ilustra un flujo de proceso para el filtro 24 de desbloqueo según el primer ejemplo de funcionamiento. Con referencia a la Figura 20, las secciones 112-1 a 112-n de determinación del límite vertical determinan en paralelo para todos los límites verticales incluidos en una pluralidad de macrobloques dentro de una imagen de entrada, si es necesario filtrar (etapa S110). Las secciones 132-1 a 132-n de filtrado horizontal aplican en paralelo el filtro de desbloqueo a todos los límites verticales determinados en la etapa S110, para requerir la aplicación del filtro de desbloqueo (etapa S120). Las secciones 116-1 a 116-n de determinación del límite horizontal determinan en paralelo para todos los límites horizontales incluidos en una pluralidad de macrobloques dentro de una imagen de entrada, si es necesario un filtrado (etapa S130). Las secciones 142-1 a 142-n de filtrado vertical aplican en paralelo el filtro de desbloqueo a todos los límites horizontales determinados en la etapa S130 para requerir la aplicación del filtro de desbloqueo (etapa S140).
Los flujos de proceso descritos anteriormente son meros ejemplos. Por ejemplo, el filtro 24 de desbloqueo puede paralelizar procesos en dos o más macrobloques. La secuencia de los procesos puede cambiarse.
La Figura 21 es un diagrama de flujo que ilustra un flujo de proceso del proceso de determinación de la necesidad de filtrado correspondiente a las etapas S110 y S130 de la Figura 20. Con referencia a la Figura 21, la sección 124 de evaluación de distorsión evalúa los límites para la distorsión basándose en la información de modo, la información del coeficiente de transformación y la información del vector de movimiento (etapa S150). El proceso pasa a la etapa S154 si la evaluación da como resultado la presencia de distorsión (la condición A de determinación es verdadera). El proceso pasa a la etapa S160 si la evaluación da como resultado la ausencia de distorsión (etapa S152).
En la etapa S154, la sección 122 de cálculo calcula un valor de borde basándose en una derivación de píxeles de referencia constituida por la sección 121 de constitución de derivación (etapa S154). La sección 123 de comparación de umbrales compara el valor calculado con el valor umbral p de determinación de borde (etapa S156). El proceso pasa a la etapa S158 si el valor del borde no es menor que el valor umbral p (la condición B de determinación es verdadera). El proceso pasa a la etapa S160 si el valor del borde no es menor que el valor umbral p.
En la etapa S158, la sección 125 de determinación de filtrado determina aplicar el filtro de desbloqueo a un límite a determinar (etapa S158). En la etapa S140, la sección 125 de determinación de filtrado determina no aplicar el filtro de desbloqueo a un límite a determinar (etapa S160).
<4. Segundo ejemplo de funcionamiento>
[4-1. Ejemplo de configuración del filtro de desbloqueo]
A continuación se describen ejemplos de configuraciones del filtro 24 de desbloqueo según el segundo ejemplo de funcionamiento.
(1) Dependencia entre nuevos procesos
Según el ejemplo de funcionamiento, el filtro 24 de desbloqueo realiza el proceso de determinación de la necesidad de filtrado en los límites verticales de cada bloque, sin esperar a la aplicación del filtro de desbloqueo a los otros bloques del macrobloque al que pertenece el bloque. El filtro 24 de desbloqueo realiza el proceso de determinación de la necesidad de filtrado en los límites horizontales de cada bloque, sin esperar a la aplicación del filtro de desbloqueo a los otros bloques del macrobloque al que pertenece el bloque. Esto puede aliviar la dependencia de los procesos dentro de un macrobloque.
Como se describió anteriormente, aliviar la dependencia de los procesos puede, en consecuencia, paralelizar los procesos de determinación de la necesidad de filtrado en los límites verticales y los límites horizontales.
La Figura 22 es un diagrama explicativo que ilustra un primer ejemplo de secuencia de proceso disponible en el filtro 24 de desbloqueo. El ejemplo también supone que el filtro de desbloqueo se suministra con una imagen con un tamaño de 32 x 32 píxeles. La imagen de entrada incluye cuatro macrobloques, MB0 a MB3, cada uno con un tamaño de 16 x 16 píxeles.
En la Figura 22, cada trama con líneas discontinuas representa un proceso a realizar en paralelo. Mientras que el ejemplo de la Figura 10 requiere 16 etapas de proceso para una secuencia de procesos, el ejemplo de la Figura 22 agrega el mismo número de procesos en 12 etapas de proceso. La primera etapa realiza, en paralelo, los procesos de determinación de la necesidad de filtrado Jvo,o a J<vo>,3 y J<ho>,<o>a J<ho>,3 en cuatro límites verticales y cuatro límites horizontales del macrobloque MBo. La segunda etapa realiza, en paralelo, los procesos de filtrado Fvo,o a F<vo>,3 en cuatro límites verticales en el macrobloque MBo. La tercera etapa realiza, en paralelo, los procesos de determinación de la necesidad de filtrado Jv<1>,o a J<v>1,3 y Jm ,o a J<h>1,3 en cuatro límites verticales y cuatro límites horizontales del macrobloque MB1. La cuarta etapa realiza, en paralelo, los procesos de filtrado Fv<1>,o a F<v>1,3 en cuatro límites verticales en el macrobloque MB1. La quinta etapa realiza, en paralelo, los procesos de filtrado F<ho>,<o>a F<ho>,3 en cuatro límites horizontales en el macrobloque MBo. La sexta etapa realiza, en paralelo, los procesos de determinación de la necesidad de filtrado Jv<2>,o a J<v>2,3 y J<h2>,<o>a J<h>2,3 en cuatro límites verticales y cuatro límites horizontales del macrobloque MB2. La séptima etapa realiza, en paralelo, los procesos de filtrado Fv<2>,o a F<v>2,3 en cuatro límites verticales en el macrobloque MB2. La octava etapa realiza, en paralelo, los procesos de filtrado Fm,o a F<h>1,3 en cuatro límites horizontales en el macrobloque MB1. La novena etapa realiza, en paralelo, los procesos de determinación de la necesidad de filtrado J<v>3,<o>a J<v>3,3 y J<h>3,<o>a J<h>3,3 en cuatro límites verticales y cuatro límites horizontales del macrobloque MB3. La décima etapa realiza, en paralelo, los procesos de filtrado F<v>3,<o>a F<v>3,3 en cuatro límites verticales en el macrobloque MB3. La undécima etapa realiza, en paralelo, los procesos de filtrado F<h2>,<o>a F<h>2,3 en cuatro límites horizontales en el macrobloque MB2. La duodécima etapa realiza, en paralelo, los procesos de filtrado F<h>3,<o>a F<h>3,3 en cuatro límites horizontales en el macrobloque MB3. En este caso, el filtro 24 de desbloqueo puede realizar un proceso en toda la imagen de entrada utilizando menos etapas de proceso que los de la técnica existente.
(2) Configuración detallada del filtro de desbloqueo
La Figura 23 es un diagrama de bloques que ilustra una configuración detallada del filtro 24 de desbloqueo según el segundo ejemplo de funcionamiento para realizar los procesos paralelos descritos anteriormente. Con referencia a la Figura 23, el filtro 24 de desbloqueo incluye un bloque 21o de determinación vertical, un bloque 214 de determinación horizontal, el bloque 13o de filtrado horizontal, el bloque 14o de filtrado vertical y la sección 15o de control de paralelización.
(2-1) Bloque de determinación vertical
El bloque 21o de determinación vertical incluye una pluralidad de secciones 212-1 a 212-n de determinación del límite vertical. Cada sección 212 de determinación del límite vertical determina si se debe aplicar el filtro de desbloqueo a los límites verticales de cada bloque, sin esperar a que se aplique el filtro de desbloqueo a los demás bloques del macrobloque al que pertenece el bloque. Cada sección 212 de determinación del límite vertical suministra al bloque 13o de filtrado horizontal información que indica un resultado de determinación sobre cada límite vertical, tal como información binaria que indica un resultado de determinación en el que el valor “ 1” fuerza la aplicación del filtro de desbloqueo.
(2-2) Bloque de determinación horizontal
El bloque 214 de determinación horizontal incluye una pluralidad de secciones 216-1 a 216-n de determinación del límite horizontal. Cada sección 216 de determinación del límite horizontal determina si se debe aplicar el filtro de desbloqueo a los límites horizontales de cada bloque, sin esperar a que se aplique el filtro de desbloqueo a los demás bloques del macrobloque al que pertenece el bloque. Cada sección 216 de determinación del límite horizontal suministra al bloque 14o de filtrado vertical información que indica un resultado de determinación sobre cada límite horizontal.
También según el ejemplo de funcionamiento, cada sección 212 de determinación del límite vertical y cada sección 216 de determinación del límite horizontal pueden determinar para cada límite si es necesario filtrar haciendo referencia a píxeles en posiciones similares a las de la técnica existente. En cambio, cada sección 212 de determinación del límite vertical y cada sección 216 de determinación del límite horizontal pueden determinar para cada límite si es necesario filtrar según la técnica descrita en "3-2. Modificaciones de las condiciones de determinación».
2o
[3-2. Flujo de proceso]
La Figura 24 es un diagrama de flujo que ilustra un flujo de proceso para el filtro 24 de desbloqueo según el segundo ejemplo de funcionamiento. Con referencia a la Figura 24, las secciones 212-1 a 212-n de determinación del límite vertical determinan, en paralelo, para todos los límites verticales incluidos en macrobloques focalizados dentro de una imagen de entrada, si es necesario filtrar (etapa S202). Las secciones 214-1 a 214-n de determinación del límite horizontal determinan en paralelo si es necesario filtrar todos los límites horizontales incluidos en el macrobloque focalizado (etapa S204). Las etapas S202 y S204 también se realizan en paralelo.
Las secciones 132-1 a 132-n de filtrado horizontal aplican el filtro de desbloqueo, en paralelo, a los límites verticales en el macrobloque focalizado determinado en la etapa S202 para requerir la aplicación del filtro de desbloqueo (etapa S210).
El proceso en la etapa S220 apunta a un macrobloque focalizado en el bucle más reciente. El proceso de la etapa S220 puede omitirse para el primer macrobloque focalizado. Las secciones 142-1 a 142-n de filtrado vertical aplican el filtro de desbloqueo, en paralelo, a los límites horizontales determinados, en la etapa S204 del bucle más reciente, para requerir la aplicación del filtro de desbloqueo (etapa S220).
El proceso en las etapas S202 a S220 se repite para un macrobloque recién focalizado si los macrobloques focalizados permanecen sin procesar en la imagen de entrada (etapa S230).
Si no queda ningún macrobloque focalizado sin procesar, las secciones 142-1 a 142-n de filtrado vertical 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 focalizado para el último bucle (etapa S240).
El flujo de procesos descrito anteriormente también es un mero ejemplo. El paralelismo y la secuencia de los procesos pueden cambiarse. Además, la sección 150 de control de paralelización puede controlar el paralelismo y la secuencia de procesos.
[4-3. Ejemplo de proceso para cada LCU]
Como ya se mencionó, la tecnología según varios ejemplos de funcionamiento descritos en esta memoria descriptiva, puede proporcionarse como un proceso basado en una unidad de codificación (CU) de HEVC. Según la HEVC, una unidad de codificación que tiene el tamaño más grande se denomina unidad de codificación más grande (LCU, por sus siglas en inglés) que se puede seleccionar como 64 * 64 píxeles, por ejemplo. El tamaño mínimo seleccionable de la CU es de 8 * 8 píxeles. Normalmente, se codifica y decodifica una imagen correspondiente a cada LCU según una secuencia de escaneo rasterizado de la LCU en la parte superior izquierda de una imagen (o un segmento). A continuación se describen ejemplos de procesos correspondientes a las LCU en el filtro 24 de desbloqueo.
La Figura 25 es un diagrama explicativo que ilustra una secuencia de proceso para cada LCU según el segundo ejemplo de funcionamiento descrito anteriormente. El ejemplo supone que el tamaño de la LCU es de 16 * 16 píxeles, y que el tamaño de la CU es de 8 * 8 píxeles.
Con referencia a la Figura 25, la primera fase se muestra en la parte superior izquierda del dibujo e indica que el filtrado en las LCU se ha completado hasta la (n - 1)ésima LCU. Los píxeles sombreados están destinados al filtrado en los límites verticales. Los píxeles rellenos destinados al filtrado en los límites horizontales.
En la Figura 25, el segundo proceso en la parte superior derecha y el tercer proceso en la parte inferior izquierda están destinados a la enésima LCU. Antes del segundo proceso, los procesos de determinación de la necesidad de filtrado se realizan en paralelo en todos los límites verticales y horizontales que pertenecen a la enésima LCU. Es decir, el proceso de determinación de la necesidad de filtrado en los límites que pertenecen a las CU de la enésima LCU, se realiza sin esperar a la aplicación del filtro de desbloqueo a las otras CU de la enésima LCU. El segundo proceso realiza procesos de filtrado en paralelo en los límites verticales que pertenecen a la enésima LCU, y se determina que requieren la aplicación del filtro de desbloqueo. El segundo proceso realiza procesos de filtrado en paralelo en los límites horizontales que pertenecen a la enésima LCU, y se determina que requieren la aplicación del filtro de desbloqueo.
Un proceso para la cuarta fase en la parte inferior derecha de la Figura 25 está dirigido a la (n 1)ésima LCU. En la cuarta fase, el proceso de filtrado se realiza en paralelo en un límite vertical determinado para requerir la aplicación del filtro de desbloqueo después de que los procesos de determinación de la necesidad de filtrado se realicen en paralelo en los límites que pertenecen a todas las CU de la (n 1)ésima LCU.
Si bien el ejemplo supone que el tamaño de la LCU es de 16 * 16 píxeles, se puede establecer en 32 * 32 o 64 * 64 píxeles. El efecto de acortar el tiempo de procesamiento según la paralelización se mejora aún más porque el aumento del 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 LCU.
La Figura 26 es un diagrama de flujo que ilustra un flujo de proceso del filtro 24 de desbloqueo para cada LCU.
Con referencia a la Figura 26, las secciones 212-1 a 212-n de determinación del límite vertical determinan en paralelo si es necesario filtrar todos los límites verticales incluidos en una LCU focalizada dentro de una imagen de entrada (etapa S252). Las secciones 216-1 a 216-n de determinación del límite horizontal determinan en paralelo si es necesario filtrar todos los límites horizontales incluidos en la LCU focalizada (etapa S254). Las etapas S252 y S254 también se realizan en paralelo.
Las secciones 132-1 a 132-n de filtrado horizontal aplican el filtro de desbloqueo en paralelo a los límites verticales en la LCU focalizada determinada en la etapa S252, para requerir la aplicación del filtro de desbloqueo (etapa S260).
Las secciones 142-1 a 142-n de filtrado vertical aplican el filtro de desbloqueo en paralelo a los límites horizontales en la LCU focalizada determinada en la etapa S254, para requerir la aplicación del filtro de desbloqueo (etapa S270).
El proceso en las etapas S252 a S270 se repite para una LCU recién focalizada si una LCU permanece sin procesar en la imagen de entrada (etapa S280). El proceso finaliza si no queda ninguna LCU sin procesar.
<5. Tercer ejemplo de funcionamiento>
[5-1. Descripción general]
El primer y el segundo ejemplos de funcionamiento cambian la secuencia de procesos existente para el filtro de desbloqueo para mejorar el paralelismo de los procesos. En particular, el primer ejemplo de funcionamiento alivia la dependencia del proceso al ampliar el alcance de los valores de píxel para una imagen de entrada suministrada al filtro de desbloqueo cuando se determina la necesidad de filtrar. El tercer ejemplo de funcionamiento que se describirá mejora este concepto. El tercer ejemplo de funcionamiento paraleliza aún más los procesos al filtrar los valores de píxeles de entrada suministrados al filtro de desbloqueo durante un proceso de filtrado en límites verticales y límites horizontales.
La Figura 27 es un diagrama explicativo que ilustra una descripción general del ejemplo de funcionamiento. En la parte inferior izquierda de la Figura 27, se muestra una forma que representa los píxeles de entrada (también denominados píxeles de reconstrucción) antes de ser procesados por el filtro de desbloqueo. El ejemplo de funcionamiento permite hacer referencia a los valores de píxel introducidos en el filtro de desbloqueo desde un proceso de determinación de la necesidad de filtrado para los límites verticales y los límites horizontales, así como un proceso de filtrado para los límites verticales, y un proceso de filtrado para los límites horizontales. En consecuencia, esto permite resolver la dependencia entre los dos procesos de determinación de la necesidad de filtrado y la dependencia entre los dos procesos de filtrado.
Los procesos de filtrado para los límites verticales y los procesos de filtrado para los límites horizontales pueden actualizar los valores de los píxeles duplicados. Los píxeles rellenos de la Figura 27 ilustran las posiciones de los píxeles que es probable que se dupliquen. El filtro de desbloqueo según el ejemplo de funcionamiento calcula un valor de píxel de salida a partir de dos salidas de filtro en términos de píxeles que se actualizan por duplicado mediante dos filtros que funcionan en paralelo.
[5-2. Ejemplo de configuración del filtro de desbloqueo]
La Figura 28 es un diagrama de bloques que ilustra una configuración detallada del filtro 24 de desbloqueo según el tercer ejemplo de funcionamiento. Con referencia a la Figura 28, el filtro 24 de desbloqueo incluye la memoria 308 de línea, el bloque 310 de determinación, un bloque 330 de filtrado horizontal, un bloque 340 de filtrado vertical, la sección 150 de control de paralelización y una sección 360 de cálculo.
La memoria 308 de línea almacena valores de píxeles para una imagen de entrada suministrada al filtro 24 de desbloqueo. Los procesos de filtrado en el bloque 330 de filtrado horizontal y el bloque 340 de filtrado vertical no actualizan los valores de píxeles almacenados en la memoria 308 de línea. Los procesos de determinación de la necesidad de filtrado realizados por las secciones que se describen a continuación en el bloque 310 de determinación hacen referencia a los valores de píxeles almacenados en la memoria 308 de línea. El aparato incluye otra memoria para fines diferentes de los procesos del filtro 24 de desbloqueo. Esta memoria puede reutilizarse (compartirse) como la memoria 308 de línea.
El bloque 310 de determinación incluye las secciones 312-1 a 312-n de determinación del límite vertical y las secciones 314-1 a 314-n de determinación del límite horizontal. A las secciones 312 de determinación del límite vertical y a las secciones 314 de determinación del límite horizontal se les suministran valores de píxeles almacenados en la memoria 308 de línea para una entrada de imagen en el filtro 24 de desbloqueo, y la información de determinación utilizada para determinar la necesidad de filtrar.
Las secciones 312 de determinación del límite vertical utilizan los valores de píxel introducidos en el filtro 24 de desbloqueo para determinar si se debe aplicar el filtro de desbloqueo a cada límite vertical. Las secciones 312 de determinación del límite vertical envían, al bloque 330 de filtrado horizontal, información que indica un resultado de determinación sobre cada límite vertical.
Las secciones 314 de determinación del límite horizontal también usan los valores de píxel introducidos en el filtro 24 de desbloqueo para determinar si se debe aplicar el filtro de desbloqueo a cada límite horizontal. Las secciones 314 de determinación del límite horizontal realizan procesos de determinación en paralelo a los procesos de determinación realizados por las secciones 312 de determinación del límite vertical. Las secciones 314 de determinación del límite horizontal envían, al bloque 340 de filtrado vertical, información que indica un resultado de determinación sobre cada límite horizontal.
También según el ejemplo de funcionamiento, cada sección 312 de determinación del límite vertical y cada sección 314 de determinación del límite horizontal pueden determinar para cada límite si es necesario filtrar haciendo referencia a píxeles en posiciones similares a las de la técnica existente. En cambio, cada sección 312 de determinación del límite vertical y cada sección 314 de determinación del límite horizontal pueden determinar para cada límite si es necesario filtrar según la técnica descrita en “ 3-2. Modificaciones de las condiciones de determinación” .
El bloque 330 de filtrado horizontal incluye las secciones 332-1 a 332-n de filtrado horizontal. A las secciones 332 de filtrado horizontal se les suministra un valor de imagen de entrada desde la memoria 208 de línea y un resultado de determinación relativo a cada límite vertical del bloque 310 de determinación.
Las secciones 332 de filtrado horizontal aplican el filtro de desbloqueo para los límites verticales a los píxeles derecho e izquierdo alrededor del límite vertical correspondiente, si el resultado de la determinación de la sección 312 de determinación del límite vertical indica que es necesario aplicar el filtro. Las secciones 332 de filtrado horizontal envían, a la sección 360 de cálculo, un valor de píxel después del filtrado en términos del píxel filtrado o un valor de píxel de entrada en términos de los otros píxeles.
El bloque 340 de filtrado vertical incluye las secciones 342-1 a 342-n de filtrado vertical. A las secciones 342 de filtrado vertical se les suministra un valor de píxel de entrada desde la memoria 308 de línea y un resultado de determinación relativo a cada límite horizontal a partir del bloque 310 de determinación.
Las secciones 342 de filtrado vertical aplican el filtro de desbloqueo para los límites horizontales a los píxeles superiores e inferiores alrededor del límite horizontal correspondiente, si el resultado de la determinación de la sección 314 de determinación del límite horizontal indica que es necesario aplicar el filtro. Los procesos de filtrado de las secciones 342-1 a 342-n de filtrado vertical se realizan en paralelo a los procesos de filtrado de las secciones 332-1 a 332-n de filtrado horizontal. Las secciones 342 de filtrado vertical envían, a la sección 360 de cálculo, un valor de píxel después del filtrado en términos del píxel filtrado o un valor de píxel de entrada en términos de los demás píxeles.
A la sección 360 de cálculo se le suministra en paralelo un valor de píxel de salida del bloque 330 de filtrado horizontal y un valor de píxel de salida del bloque 340 de filtrado vertical. Además, a la sección 360 de cálculo se le suministran los resultados de determinación de la sección 312 de determinación del límite vertical y la sección 314 de determinación del límite horizontal. Según un resultado de determinación, la sección 360 de cálculo calcula los valores de píxel de salida para los píxeles filtrados del bloque 330 de filtrado horizontal y del bloque 340 de filtrado vertical, basándose en las salidas de filtro del bloque 330 de filtrado horizontal y del bloque 340 de filtrado vertical.
Según el ejemplo de funcionamiento, por ejemplo, la sección 360 de cálculo calcula un promedio de dos salidas de filtro para píxeles filtrados por duplicado. La sección 360 de cálculo puede calcular un promedio simple de dos salidas de filtro. En su lugar, la sección 360 de cálculo puede calcular un promedio ponderado de dos salidas de filtro. Por ejemplo, la sección 360 de cálculo puede determinar una ponderación para los promedios ponderados de píxeles según la distancia desde cada píxel al límite vertical y al límite horizontal.
La Figura 29 es un diagrama explicativo que ilustra la determinación de una ponderación para la media ponderada calculada por la sección 360 de cálculo. La Figura 29 muestra el píxel focalizado P<z>en negro, que corresponde a una de las posiciones duplicadas ilustradas en la Figura 27. Hay tres píxeles que corresponden a la distancia D<v>entre el píxel focalizado P<z>y el límite vertical más cercano V<z>. Hay dos píxeles que corresponden a la distancia D<h>entre el píxel focalizado P<z>y el límite horizontal más cercano H<z>. La distancia D<h>es menor que la distancia D<v>. En este caso, la sección 360 de cálculo puede establecer una ponderación para la salida del filtro de desbloqueo aplicado al límite horizontal H<z>para que sea mayor que una ponderación para la salida del filtro de desbloqueo aplicado al límite vertical V<z>. El ejemplo de la Figura 29 supone que la relación entre la salida del filtro Vsalida para el límite vertical V<z>, y la salida del filtro Hsalida para el límite horizontal H<z>es 2:3.
Como se ve en la Figura 29, el cálculo de un promedio ponderado de dos salidas de filtro puede, en consecuencia, proporcionar a cada píxel focalizado un valor de píxel de salida similar al caso de aplicar un filtro bidimensional con 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. La paralelización de los procesos de filtrado en el límite vertical y el límite horizontal también puede reducir adecuadamente la distorsión de bloques que aparece en el límite vertical y el límite horizontal. Como otro ejemplo de funcionamiento, el filtro 24 de desbloqueo puede incluir un filtro bidimensional que calcula simultáneamente el filtrado horizontal, el filtrado vertical y un promedio ponderado. Sin embargo, en este caso, la instalación es muy complicada porque los coeficientes de filtro deben cambiarse de diversas maneras en consecuencia a los píxeles. Por otro lado, el tercer ejemplo de funcionamiento realiza dos filtros unidimensionales en paralelo, y luego calcula un promedio ponderado. Esto puede proporcionar fácilmente procesos sustancialmente iguales a los de un filtro bidimensional y, al mismo tiempo, garantizar la funcionalidad de los filtros de desbloqueo existentes.
La Figura 30 es un diagrama explicativo que ilustra un ejemplo de la ponderación para los promedios ponderados calculada basándose en el ejemplo de la Figura 29. La Figura 30 muestra 36 píxeles (6 * 6) alrededor de una intersección entre el límite vertical y el límite horizontal. Los píxeles corresponden a las posiciones duplicadas descritas anteriormente. La relación entre la ponderación de la salida de filtro Vsalida y la ponderación de la salida de filtro Hsalida es de 1:1 (2:2 o 3:3) para los píxeles situados a la misma distancia del límite vertical y del límite horizontal. La ponderación de la salida de filtro Vsalida es mayor que la ponderación de la salida de filtro Hsalida para los píxeles más cercanos al límite vertical. Por ejemplo, la relación de ponderaciones para el píxel Pi es Vsalida: Hsalida = 3:1. La ponderación de la salida de filtro Vsalida es menor que la ponderación de la salida de filtro Hsalida para los píxeles más cercanos al límite horizontal. Por ejemplo, la relación de ponderaciones del píxel P<2>es Vsalida:Hsalida = 1:3.
La distorsión del bloque se puede suprimir de manera más eficaz y la calidad de la imagen se puede mejorar variando la ponderación de los promedios ponderados basándose en la distancia entre cada píxel y el límite.
Las ponderaciones descritas anteriormente son meros ejemplos. Por ejemplo, la sección 360 de cálculo puede determinar la ponderación de los promedios ponderados para los píxeles según las intensidades de los bordes del límite vertical y el límite horizontal correspondientes a cada píxel, en lugar de o además de la distancia entre cada píxel y el límite. La intensidad del borde puede representarse con un parámetro tal como un valor del borde calculado a partir de la sección 122 de cálculo, tal como se muestra en la Figura 13, por ejemplo. En este caso, la ponderación de la salida de filtro en un límite que tenga un borde más fuerte se puede establecer para que sea mayor que la ponderación de la salida de filtro en un límite que tenga un borde más débil. Variar la ponderación de los promedios ponderados según la intensidad del borde, puede mejorar de forma adaptativa el efecto del filtro de desbloqueo en un límite que provoca de manera notable una distorsión del bloque.
La sección 360 de cálculo selecciona las salidas de los bloques realmente filtrados en términos de píxeles filtrados por uno del bloque 330 de filtrado horizontal y el bloque 34o de filtrado vertical. La sección 360 de cálculo emite directamente un valor de píxel de entrada para enviarlo al filtro 24 de desbloqueo en términos de píxeles no filtrados por el bloque 330 de filtrado horizontal o el bloque 340 de filtrado vertical. Una tabla en la Figura 31 enumera los valores de píxeles de salida de la sección 360 de cálculo según 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 24 de desbloqueo según el ejemplo de funcionamiento. El ejemplo también supone que el filtro de desbloqueo se suministra con una imagen con un tamaño de 32 * 32 píxeles. La imagen de entrada incluye cuatro macrobloques, MB0 a MB3, cada uno con un tamaño de 16 * 16 píxeles.
(1) Primer ejemplo
A modo de comparación, la Figura 32 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. En la Figura 32, la primera etapa realiza, en paralelo, los procesos de determinación de la necesidad de filtrado J<v0,0>a J<v>3,3 y J<h0,0>a J<h>3,3 en todos los límites verticales y todos los límites horizontales de los cuatro macrobloques MB0 a MB3. La segunda etapa realiza los procesos de filtrado Fvo,o a F<v>3,3 en 16 límites verticales de los cuatro macrobloques MB0 a MB3. La tercera etapa realiza los procesos de filtrado F<ho>,<o>a F<h>3,3 en 16 límites horizontales de los cuatro macrobloques MB0 a MB3. La cuarta etapa almacena los valores de píxel después del proceso de filtrado en el límite horizontal de la memoria utilizada para las salidas del filtro 24 de desbloqueo.
La Figura 33 ilustra un primer ejemplo de secuencia de proceso proporcionada por el ejemplo de funcionamiento. En la Figura 33, la primera etapa realiza, en paralelo, los procesos de determinación de la necesidad de filtrado Jvo,o a J<v>3,3 y J<ho>,<o>a J<h>3,3 en todos los límites verticales y todos los límites horizontales de los cuatro macrobloques MB0 a MB3. La segunda etapa realiza, en paralelo, los procesos de filtrado Fvo,o a F<v>3,3 y F<ho>,<o>a F<h>3,3 en todos los límites verticales y todos los límites horizontales de los cuatro macrobloques MB0 a MB3. En realidad, la segunda etapa filtra solo un límite determinado para requerir el filtrado. La tercera etapa almacena los valores de píxel en la memoria utilizada para las salidas del filtro 24 de desbloqueo. Un promedio ponderado de dos salidas de filtro puede calcularse como un valor de píxel de salida en términos de píxeles filtrados por el bloque 330 de filtrado horizontal y el bloque 340 de filtrado vertical.
(2) Segundo ejemplo
Si bien el primer ejemplo maximiza el paralelismo, el filtro 24 de desbloqueo según el segundo ejemplo también puede realizar un proceso para cada macrobloque.
A modo de comparación, la Figura 34 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. La secuencia de proceso de la Figura 34 es sustancialmente igual a la secuencia de proceso de la Figura 22, según el primer ejemplo de funcionamiento. La Figura 36 muestra explícitamente las cuatro etapas del proceso (sexta, décima, 14a y 16a) que almacenan valores de píxeles en la memoria para su salida y se omiten en la Figura 22 por motivos de simplicidad. Dieciséis etapas del proceso, incluidas las cuatro etapas del proceso, configuran el proceso en la Figura 34.
La Figura 35 ilustra un segundo ejemplo de secuencia de proceso proporcionada por el ejemplo de funcionamiento. En la Figura 35, la primera etapa realiza, en paralelo, los procesos de determinación de la necesidad de filtrado Jvo,o a Jvo,3 y J<ho>,<o>a J<ho>,3 en cuatro límites verticales y cuatro límites horizontales del macrobloque MB0. La segunda etapa realiza, en paralelo, los procesos de filtrado Fvo,o a Fvo,3 y F<ho>,<o>a F<ho>,3 en cuatro límites verticales y cuatro límites horizontales del macrobloque MBo. La tercera etapa almacena los valores de píxel del macrobloque MBo en la memoria utilizada para las salidas del filtro 24 de desbloqueo. Un promedio ponderado de dos salidas de filtro puede calcularse como un valor de píxel de salida en términos de píxeles filtrados por duplicado mediante 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 de la Figura 35 incluye doce etapas de proceso menos que las del proceso de la Figura 34.
El tercer ejemplo de funcionamiento elimina la dependencia entre los procesos de filtrado para los límites verticales y un proceso de filtrado para los límites horizontales. El proceso del filtro 24 de desbloqueo se puede realizar usando menos etapas de proceso que las utilizadas para el primer y segundo ejemplos de funcionamiento. Una de las ventajas de permitir que un proceso de filtrado haga referencia solo a los píxeles introducidos en el filtro de desbloqueo, es que cualquier configuración de derivaciones de filtro no genera ninguna dependencia entre los procesos de filtrado para los límites verticales y los procesos de filtrado para los límites horizontales. El tercer ejemplo de funcionamiento puede mejorar la calidad de la imagen al configurar una derivación de filtro que utilice más píxeles que los utilizados en las técnicas existentes. Por ejemplo, la técnica existente usa una derivación de filtro de tres píxeles para cada lado de cada límite, tal como se describe con referencia a la Figura 7. El ejemplo de funcionamiento no genera ninguna dependencia entre los procesos, incluso si se utiliza una derivación de filtro de cinco píxeles o más en cada límite. No se produce ninguna dependencia entre los 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 de funcionamiento, así como en los ejemplos de funcionamiento primero y segundo, la sección 15o de control de paralelización puede controlar el paralelismo y la secuencia de procesos en el filtro 24 de desbloqueo.
[5-4. Flujo de proceso]
La Figura 36 es un diagrama de flujo que ilustra un ejemplo de un flujo de proceso para el filtro de desbloqueo según el tercer ejemplo de funcionamiento. La Figura 37 es un diagrama de flujo que ilustra un flujo del proceso de cálculo del valor de píxel mostrado en la Figura 36.
Con referencia a la Figura 36, las secciones 312-1 a 312-n de determinación del límite vertical determinan en paralelo si el filtrado es necesario para todos los límites verticales dentro de una imagen de entrada o un macrobloque (etapa S3o2). Las secciones 314-1 a 314-n de determinación del límite horizontal determinan en paralelo si es necesario filtrar todos los límites horizontales dentro de la imagen de entrada o el macrobloque (etapa S3o4). Las etapas S3o2 y S3o4 también se realizan en paralelo.
Las secciones 332-1 a 332-n de filtrado horizontal aplican el filtro de desbloqueo en paralelo a todos los límites verticales determinados en la etapa S3o2, para requerir que se aplique el filtro de desbloqueo (etapa S3o6). Las secciones 342-1 a 342-n de filtrado vertical aplican el filtro de desbloqueo en paralelo a todos los límites horizontales determinados en la etapa S3o4, para requerir que se aplique el filtro de desbloqueo (etapa S3o8). Las etapas S3o6 y S3o8 también se realizan en paralelo.
La sección 36o de cálculo realiza entonces el proceso de cálculo del valor de píxel tal como se muestra en la Figura 37 (etapa S31o). Con referencia a la Figura 37, el proceso desde la etapa S314 hasta la etapa S326 se repite en bucle para cada píxel a procesar (etapa S312).
En la etapa S314, la sección 360 de cálculo determina si dos filtros para los límites verticales y los límites horizontales han filtrado un píxel focalizado (etapa S314). El proceso pasa a la etapa S322 si los dos filtros han filtrado el píxel focalizado. El proceso pasa a la etapa S316 si los dos filtros no han filtrado el píxel focalizado.
En la etapa S316, la sección 360 de cálculo determina si uno de los dos filtros para los límites verticales y los límites horizontales ha filtrado el píxel focalizado (etapa S316). El proceso pasa a la etapa S320 si uno de los dos filtros ha filtrado el píxel focalizado. El proceso pasa a la etapa S318 si ninguno de los filtros ha filtrado el píxel focalizado.
En la etapa S318, la sección 360 de cálculo adquiere un valor de píxel de entrada para el filtro 24 de desbloqueo (etapa S318). En la etapa S320, la sección 360 de cálculo adquiere una salida de filtro del filtro que realmente filtra el píxel focalizado (etapa S320).
En la etapa S322, la sección 360 de cálculo determina los valores de ponderación para calcular un promedio ponderado de las salidas de filtro de los dos filtros en relación con el píxel focalizado según las distancias desde el píxel focalizado al límite vertical y el límite horizontal, o las intensidades de borde del límite vertical y el límite horizontal correspondiente al píxel focalizado (etapa S322). La sección 360 de cálculo calcula un promedio ponderado de las salidas de filtro de los dos filtros usando la ponderación determinada (etapa S324).
La sección 360 de cálculo almacena el valor de píxel del píxel focalizado en la memoria mientras el valor de píxel se adquiere en la etapa S318 o S320, o se calcula en la etapa S324 (etapa S326). Las secuencias de procesos que se muestran en las Figuras 36 y 37 terminan cuando el proceso se realiza en todos los píxeles a procesar.
<6. Aplicación a varios códecs>
La tecnología según la descripció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 según la descripción a códecs multivista y códecs escalables.
[6-1. Códec multivista]
El códec multivista es un esquema de codificación de imágenes que codifica y decodifica vídeo con múltiples perspectivas. La Figura 38 es un diagrama explicativo que ilustra el códec multivista. La Figura 38 ilustra secuencias de tramas para tres vistas capturadas en tres puntos de observación. Cada vista se proporciona con un ID de vista (view_id). Una de las vistas se especifica como vista base. Las vistas distintas de la vista base se denominan vistas no base. El ejemplo de la Figura 38 representa una vista base con el ID de vista “ 0” y dos vistas no base con el ID de vista “ 1” o “2” . La codificación de datos de imágenes multivista puede comprimir el tamaño de los datos del flujo codificado en su conjunto al codificar tramas de la vista no base basándose en la información de codificación sobre las 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, según el códec multivista descrito anteriormente. La aplicación del filtro de desbloqueo a cada vista puede paralelizar el filtrado horizontal y el filtrado vertical en unidades de procesos que incluyen múltiples CU para cada vista según la tecnología de la descripción. La unidad de proceso descrita anteriormente puede representar varias CU, LCU o imágenes. El parámetro (tal como el descrito en el párrafo 0092 anterior) para controlar un proceso paralelo se puede establecer para cada vista. El conjunto de parámetros para la vista base se puede reutilizar para la vista no base.
El filtrado horizontal y el filtrado vertical se pueden paralelizar en una pluralidad de vistas. La pluralidad de vistas puede compartir el parámetro (tal como el descrito en el párrafo 0092 anterior) para controlar el proceso paralelo. Puede ser ventajoso especificar adicionalmente un indicador que indique si la pluralidad de vistas comparte el parámetro.
La Figura 39 es un diagrama explicativo que ilustra el proceso de codificación de imágenes aplicado al códec multivista descrito anteriormente. La Figura 39 muestra una configuración de un dispositivo 710 de codificación multivista como ejemplo. El dispositivo 710 de codificación multivista incluye una primera sección 720 de codificación, una segunda sección 730 de codificación y una sección 740 de multiplexación.
La primera sección 720 de codificación codifica una imagen de vista base, y genera un flujo codificado para la vista base. La segunda sección de 730 codificación codifica una imagen de vista no base, y genera un flujo codificado para la vista no base. La sección 740 de multiplexación multiplexa un flujo codificado para la vista base generado a partir de la primera sección 720 de codificación, y uno o más flujos codificados para la vista no base generados a partir de la segunda sección 730 de codificación para generar un flujo multiplexado para múltiples vistas.
La primera sección 720 de codificación y la segunda sección 730 de codificación ilustradas en la Figura 39, están configuradas de manera similar al dispositivo 10 de codificación de imágenes según la realización descrita anteriormente. La aplicación del filtro de desbloqueo a las vistas permite paralelizar el filtrado horizontal y el filtrado vertical en unidades de procesos que contienen varias CU. Se puede insertar un parámetro para controlar estos procesos en un área de cabecera del flujo codificado para cada vista, o en un área de cabecera común en el flujo multiplexado.
La Figura 40 es un diagrama explicativo que ilustra un proceso de decodificación de imágenes aplicado al códec multivista descrito anteriormente. La Figura 40 muestra una configuración de un dispositivo de decodificación multivista 760 como ejemplo. El dispositivo 760 de decodificación multivista incluye una sección 770 de demultiplexación, una primera sección 780 de decodificación y una segunda sección 790 de decodificación.
La sección 770 de demultiplexación 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 780 de decodificación decodifica una imagen de vista base a partir de un flujo codificado para la vista base. La segunda sección 730 de decodificación decodifica una imagen de vista no base a partir de un flujo codificado para la vista no base.
La primera sección 780 de decodificación y la segunda sección 790 de decodificación ilustradas en la Figura 40 están configuradas de manera similar al dispositivo 60 de decodificación de imágenes según la realización descrita anteriormente. La aplicación del filtro de desbloqueo a las vistas permite paralelizar el filtrado horizontal en unidades de procesos, incluidas varias CU, y paralelizar el filtrado vertical. Un parámetro para controlar estos procesos puede adquirirse desde un área de cabecera del flujo codificado para cada vista, o desde un área de cabecera común en el flujo multiplexado.
[6-2. Códec escalable]
El códec escalable es un esquema de codificación de imágenes para proporcionar una codificación jerárquica. La Figura 41 es un diagrama explicativo que ilustra el códec escalable. La Figura 41 ilustra secuencias de tramas para tres capas de diferentes resoluciones espaciales, resoluciones temporales o calidades de imagen. Cada capa se proporciona un ID de capa (layer_id). Estas capas incluyen una capa base que tiene la resolución (o calidad de imagen) más baja. Las capas distintas de la capa base se denominan capas de mejora. El ejemplo de la Figura 41 representa una capa base con el ID de capa “ 0” y dos capas de mejora con el ID de capa “ 1” o “2” . La codificación de datos de imágenes multicapa puede comprimir el tamaño de los datos del flujo codificado en su conjunto al codificar las tramas de la capa de mejora basándose en la información de codificación sobre las 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, según el códec escalable descrito anteriormente. La aplicación del filtro de desbloqueo a cada capa puede paralelizar el filtrado horizontal y el filtrado vertical en unidades de procesos que incluyen múltiples CU para cada vista según la tecnología de la descripción. La unidad de proceso descrita anteriormente puede representar varias CU, LCU o imágenes. El parámetro (tal como el descrito en el párrafo 0092 anterior) para controlar un proceso paralelo se puede establecer para cada capa. El conjunto de parámetros para la vista de la capa base se puede reutilizar para la capa de mejora.
El filtrado horizontal y el filtrado vertical pueden paralelizarse en una pluralidad de capas. La pluralidad de capas puede compartir el parámetro (tal como el descrito en el párrafo 0092 anterior) para controlar el proceso paralelo. Puede ser ventajoso especificar adicionalmente un indicador que indique si la pluralidad de capas comparte el parámetro.
La Figura 42 es un diagrama explicativo que ilustra el proceso de codificación de imágenes aplicado al códec escalable descrito anteriormente. La Figura 42 muestra una configuración de un dispositivo 810 de codificación escalable como ejemplo. El dispositivo 810 de codificación escalable incluye una primera sección 820 de codificación, una segunda sección 830 de codificación y una sección 840 de multiplexación.
La primera sección 820 de codificación codifica una imagen de capa base, y genera un flujo codificado para la capa base. La segunda sección 830 de codificación codifica una imagen de capa de mejora, y genera un flujo codificado para la capa de mejora. La sección 840 de multiplexación multiplexa un flujo codificado para la capa base generada a partir de la primera sección 820 de codificación, y uno o más flujos codificados para la capa de mejora generada a partir de la segunda sección 830 de codificación para generar un flujo multiplexado para multicapas.
La primera sección 820 de codificación y la segunda sección 830 de codificación ilustradas en la Figura 42, están configuradas de manera similar al dispositivo 10 de codificación de imágenes según la realización descrita anteriormente. La aplicación del filtro de desbloqueo a las capas permite paralelizar el filtrado horizontal en unidades de procesos, incluidas varias CU, y paralelizar el filtrado vertical. Se puede insertar un parámetro para controlar estos procesos en un área de cabecera del flujo codificado para cada capa, o en un área de cabecera común en el flujo multiplexado.
La Figura 43 es un diagrama explicativo que ilustra un proceso de decodificación de imágenes aplicado al códec escalable descrito anteriormente. La Figura 43 muestra una configuración de un dispositivo 860 de decodificación escalable como ejemplo. El dispositivo 860 de decodificación escalable incluye una sección 870 de demultiplexación, una primera sección 880 de decodificación y una segunda sección 890 de decodificación.
La sección 870 de demultiplexación demultiplexa un flujo multiplexado para multicapas en un flujo codificado para la capa base, y un flujo codificado para una o más capas de mejora. La primera sección 880 de decodificación decodifica una imagen de capa base a partir de un flujo codificado para la capa base. La segunda sección 830 de decodificación decodifica una imagen de capa de mejora a partir de un flujo codificado para la capa de mejora.
La primera sección 880 de decodificación y la segunda sección 890 de decodificación ilustradas en la Figura 43 están configuradas de manera similar al dispositivo 60 de decodificación de imágenes según la realización descrita anteriormente. La aplicación del filtro de desbloqueo a las capas permite paralelizar el filtrado horizontal en unidades de procesos, incluidas varias CU, y paralelizar el filtrado vertical. Un parámetro para controlar estos procesos puede adquirirse desde un área de cabecera del flujo codificado para cada capa, o desde un área de cabecera común en el flujo multiplexado.
<7. Aplicación ilustrativa>
El dispositivo 10 de codificación de imágenes y el dispositivo 60 de decodificación de imágenes según la realización descrita anteriormente, pueden aplicarse a varios aparatos electrónicos, tales como un transmisor y un receptor para la transmisión por satélite, la transmisión por cable, tal como la televisión por cable, la distribución en Internet, la distribución a terminales mediante comunicación celular, y similares, un dispositivo de grabación que grabe imágenes en un medio, tal como un disco óptico, un disco magnético o una memoria flash, un dispositivo de reproducción que reproduzca imágenes de dicho medio de almacenamiento, y similares. A continuación se describirán cuatro aplicaciones ilustrativas.
[7-1. Primera aplicación ilustrativa]
La Figura 44 es un diagrama de bloques que muestra un ejemplo de una configuración esquemática de un televisor que adopta la realización descrita anteriormente. Un televisor 900 incluye una antena 901, un sintonizador 902, un demultiplexor 903, un decodificador 904, una sección 905 de procesamiento de señales de vídeo, una sección 906 de visualización, una sección 907 de procesamiento de señales de audio, un altavoz 908, una interfaz externa 909, una sección 910 de control, una interfaz 911 de usuario y un bus 912.
El sintonizador 902 extrae una señal de un canal deseado de las señales de transmisión recibidas a través de la antena 901, y demodula la señal extraída. A continuación, el sintonizador 902 envía al demultiplexor 903 un flujo de bits codificado obtenido por demodulación. Es decir, el sintonizador 902 sirve como medio de transmisión de los televisores 900 para recibir un flujo codificado en el que se codifica una imagen.
El demultiplexor 903 separa del flujo de bits codificado un flujo de vídeo y un flujo de audio de un programa que se va a ver, y envía cada flujo que se ha separado al decodificador 904. Además, el demultiplexor 903 extrae datos auxiliares tales como una EPG (guía electrónica de programas, siglas del inglés “ Electronic Program Guide” ) del flujo de bits codificado, y suministra los datos extraídos a la sección 910 de control. Además, el demultiplexor 903 puede realizar una desaleatorización en el caso de que el flujo de bits codificado esté aleatorizado.
El descodificador 904 decodifica el flujo de vídeo y el flujo de audio introducidos desde el demultiplexor 903. A continuación, el descodificador 904 envía los datos de vídeo generados por el proceso de decodificación a la sección 905 de procesamiento de señales de vídeo. Además, el decodificador 904 envía los datos de audio generados por el proceso de decodificación a la sección 907 de procesamiento de señales de audio.
La sección 905 de procesamiento de señales de vídeo reproduce los datos de vídeo introducidos desde el decodificador 904, y hace que la sección 906 de visualización muestre el vídeo. La sección 905 de procesamiento de señales de vídeo también puede hacer que la sección 906 de visualización muestre una pantalla de aplicación suministrada a través de una red. Además, la sección 905 de procesamiento de señales de vídeo puede realizar un proceso adicional, tal como la eliminación de ruido, por ejemplo, en los datos de vídeo según la configuración. Además, la sección 905 de procesamiento de señales de vídeo puede generar una imagen de una GUI (interfaz gráfica de usuario, siglas del inglés “ Graphical User Interface” ), tal como un menú, un botón, un cursor o similar, por ejemplo, y superponer la imagen generada sobre una imagen de salida.
La sección 906 de visualización se acciona por una señal de accionamiento suministrada por la sección 905 de procesamiento de señales de vídeo, 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 similares).
La sección 907 de procesamiento de señales de audio realiza procesos de reproducción, tales como la conversión D/A y la amplificación en los datos de audio introducidos desde el decodificador 904, y emite audio desde el altavoz 908. Además, la sección 907 de procesamiento de señales de audio puede realizar un proceso adicional, tal como la eliminación de ruido en los datos de audio.
La interfaz externa 909 es una interfaz para conectar el televisor 900 y un aparato externo o una red. Por ejemplo, el decodificador 904 puede decodificar un flujo de vídeo o un flujo de audio recibidos 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 el que se codifica una imagen.
La sección 910 de control incluye un procesador, tal como una CPU (unidad central de procesamiento), y una memoria, tal como una RAM (memoria de acceso aleatorio), una ROM (memoria de solo lectura) o similares. La memoria almacena un programa a ejecutar por la CPU, datos del programa, datos de EPG, datos adquiridos a través de una red y similares. El programa almacenado en la memoria es leído y ejecutado por la CPU en el momento de la activación del televisor 900, por ejemplo. La CPU controla el funcionamiento del televisor 900 según una señal de operación introducida desde la interfaz 911 de usuario, por ejemplo, mediante la ejecución del programa.
La interfaz 911 de usuario está conectada a la sección 910 de control. La interfaz 911 de usuario incluye un botón y un interruptor utilizados 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 911 de usuario detecta una 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 910 de control.
El bus 912 interconecta el sintonizador 902, el demultiplexor 903, el decodificador 904, la sección 905 de procesamiento de señales de vídeo, la sección 907 de procesamiento de señales de audio, la interfaz externa 909 y la sección 910 de control.
En el televisor 900 configurado de esta manera, el decodificador 904 tiene una función del dispositivo 60 de decodificación de imágenes según la realización descrita anteriormente. En consecuencia, 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 un procesamiento de alta velocidad.
[7-2. Segunda aplicación ilustrativa]
La Figura 45 es un diagrama de bloques que muestra un ejemplo de una configuración esquemática de un teléfono móvil que adopta la realización descrita anteriormente. Un teléfono móvil 920 incluye una antena 921, una sección 922 de comunicación, un códec 923 de audio, un altavoz 924, un micrófono 925, una sección 926 de cámara, una sección 927 de procesamiento de imágenes, una sección 928 de demultiplexación, una sección 929 de grabación/reproducción, una sección 930 de visualización, una sección 931 de control, una sección 932 de operación y un bus 933.
La antena 921 está conectada a la sección 922 de comunicación. El altavoz 924 y el micrófono 925 están conectados al códec 923 de audio. La sección 932 de operación está conectada a la sección 931 de control. El bus 933 interconecta la sección 922 de comunicación, el códec 923 de audio, la sección 926 de cámara, la sección 927 de procesamiento de imágenes, la sección 928 de demultiplexación, la sección 929 de grabación/reproducción, la sección 930 de visualización y la sección 931 de control.
El teléfono móvil 920 realiza operaciones tales como la transmisión/recepción de señales de audio, la transmisión/recepción de correos electrónicos o datos de imágenes, la captura de imágenes, la 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 imágenes y un modo de videoteléfono.
En el modo de comunicación de audio, una señal de audio analógica generada por el micrófono 925 se suministra al códec 923 de audio. El códec 923 de audio 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 923 de audio envía los datos de audio comprimidos a la sección 922 de comunicación. La sección 922 de comunicación codifica y modula los datos de audio, y genera una señal de transmisión. A continuación, la sección 922 de comunicación transmite la señal de transmisión generada a una estación base (no mostrada) a través de la antena 921. Además, la sección 922 de comunicación 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 922 de comunicación demodula y decodifica la señal recibida y genera datos de audio, y envía los datos de audio generados al códec 923 de audio. El códec 923 de audio extiende y D/A convierte los datos de audio, y genera una señal de audio analógica. A continuación, el códec 923 de audio 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 931 de control genera datos de texto que constituyen un correo electrónico, según una operación de un usuario a través de la sección 932 de operación, por ejemplo. Además, la sección 931 de control hace que el texto se muestre en la sección 930 de visualización. Asimismo, la sección 931 de control genera datos de correo electrónico según una instrucción de transmisión del usuario, a través de la sección 932 de operación, y envía los datos de correo electrónico generados a la sección 922 de comunicación. A continuación, la sección 922 de comunicación codifica y modula los datos de correo electrónico, y genera una señal de transmisión. A continuación, la sección 922 de comunicación transmite la señal de transmisión generada a una estación base (no mostrada) a través de la antena 921. Además, la sección 922 de comunicación 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 922 de comunicación 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 931 de control. La sección 931 de control hace que la sección 930 de visualización muestre el contenido del correo electrónico y, además, hace que los datos del correo electrónico se almacenen en el medio de almacenamiento de la sección 929 de grabación/reproducción.
La sección 929 de grabación/reproducción incluye un medio de almacenamiento legible y grabable arbitrariamente. Por ejemplo, el medio de almacenamiento puede ser un medio de almacenamiento incorporado, tal como una RAM, una memoria flash 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 similares.
Asimismo, en el modo de captura de imágenes, la sección 926 de cámara captura una imagen de un sujeto, genera datos de imagen, y envía los datos de imagen generados a la sección 927 de procesamiento de imágenes, por ejemplo. La sección 927 de procesamiento de imágenes codifica la entrada de datos de imagen desde la sección 926 de cámara, y hace que el flujo codificado se almacene en el medio de almacenamiento de la sección 929 de grabación/reproducción.
Asimismo, en el modo videoteléfono, la sección 928 de demultiplexación multiplexa un flujo de vídeo codificado por la sección 927 de procesamiento de imágenes y un flujo de audio introducido desde el códec 923 de audio, y envía el flujo multiplexado a la sección 922 de comunicación, por ejemplo. La sección 922 de comunicación codifica y modula el flujo, y genera una señal de transmisión. A continuación, la sección 922 de comunicación transmite la señal de transmisión generada a una estación base (no mostrada) a través de la antena 921. Además, la sección 922 de comunicación 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 de bits codificado. A continuación, la sección 922 de comunicación demodula y decodifica la señal recibida, restablece el flujo, y envía el flujo restablecido a la sección 928 de demultiplexación. La sección 928 de demultiplexación separa del flujo de entrada un flujo de vídeo y un flujo de audio, y envía el flujo de vídeo a la sección 927 de procesamiento de imágenes y el flujo de audio al códec 923 de audio. La sección de 927 procesamiento de imágenes decodifica el flujo de vídeo, y genera datos de vídeo. Los datos de vídeo se suministran a la sección 930 de visualización, y la sección 930 de visualización muestra una serie de imágenes. El códec 923 de audio extiende y D/A convierte el flujo de audio, y genera una señal de audio analógica. A continuación, el códec 923 de audio 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 927 de procesamiento de imágenes tiene una función del dispositivo 10 de codificación de imágenes y del dispositivo 60 de decodificación de imágenes según la realización descrita anteriormente. En consecuencia, también en el caso de codificar y decodificar una imagen en el teléfono móvil 920, es posible mejorar el paralelismo de los procesos de filtrado de desbloqueo, y garantizar un procesamiento a alta velocidad.
[7-3. Tercera aplicación ilustrativa]
La Figura 46 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 realización descrita anteriormente. Un dispositivo 940 de grabación/reproducción codifica y graba en un medio de grabación, datos de audio y datos de vídeo de un programa de transmisión recibido, por ejemplo. El dispositivo 940 de grabación/reproducción también puede codificar y grabar en el medio de grabación, datos de audio y datos de vídeo adquiridos de otro dispositivo, por ejemplo. Asimismo, el dispositivo 940 de grabación/reproducción reproduce, usando un monitor o un altavoz, los datos grabados en el medio de grabación, según una instrucción de un usuario, por ejemplo. En este momento, el dispositivo 940 de grabación/reproducción decodifica los datos de audio y los datos de vídeo.
El dispositivo 940 de grabación/reproducción incluye un sintonizador 941, una interfaz externa 942, un codificador 943, una HDD (unidad de disco duro) 944, una unidad 945 de disco, un selector 946, un decodificador 947, un OSD (visualización en pantalla) 948, una sección 949 de control y una interfaz 950 de usuario.
El sintonizador 941 extrae una señal de un canal deseado a partir de las señales de transmisión recibidas a través de una antena (no mostrada), y demodula la señal extraída. A continuación, el sintonizador 941 envía al selector 946 un flujo de bits codificado obtenido por demodulación. Es decir, el sintonizador 941 sirve como medio de transmisión del dispositivo 940 de grabación/reproducción.
La interfaz externa 942 es una interfaz para conectar el dispositivo 940 de grabación/reproducción y un aparato externo o una red. Por ejemplo, la interfaz externa 942 puede ser una interfaz IEEE 1394, una interfaz de red, una interfaz USB, una interfaz de memoria flash o similares. Por ejemplo, los datos de vídeo y los datos de audio recibidos por la interfaz externa 942 se introducen en el codificador 943. Es decir, la interfaz externa 942 sirve como medio de transmisión del dispositivo 940 de grabación/reproducción.
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 envía el flujo de bits codificado al selector 946.
El HDD 944 graba en un disco duro interno un flujo de bits codificado, que son datos de contenido comprimidos de un vídeo o audio, varios programas y otros datos. Además, el HDD 944 lee estos fragmentos de datos del disco duro en el momento de reproducir un vídeo o audio.
La unidad 945 de disco graba o lee datos en un medio de grabación que está montado. Un medio de grabación que esté montado en la unidad 945 de disco puede ser un disco DVD (un DVD-Video, 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 audio, una entrada de flujo de bits codificado desde el sintonizador 941 o el codificador 943, y envía el flujo de bits codificado seleccionado al HDD 944 o a la unidad 945 de disco. Además, el selector 946 envía, en el momento de reproducir un vídeo o audio, una entrada de flujo de bits codificado desde el HDD 944 o la unidad 945 de disco al descodificador 947.
El descodificador 947 decodifica el flujo de bits codificado, y genera datos de vídeo y datos de audio. A continuación, el descodificador 947 envía los datos de vídeo generados al OSD 948. Además, el decodificador 904 envía los datos de audio generados a un altavoz externo.
El OSD 948 reproduce los datos de vídeo introducidos desde el descodificador 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 949 de control incluye un procesador, tal como una CPU, y una memoria, tal como una RAM o una ROM. La memoria almacena un programa a ejecutar por la CPU, los datos del programa y similares. Un programa almacenado en la memoria es leído y ejecutado por la CPU en el momento de la activación del dispositivo 940 de grabación/reproducción, por ejemplo. La CPU controla el funcionamiento del dispositivo 940 de grabación/reproducción según una entrada de señal de operación desde la interfaz 950 de usuario, por ejemplo, mediante la ejecución del programa.
La interfaz 950 de usuario está conectada a la sección 949 de control. La interfaz 950 de usuario incluye un botón y un interruptor utilizados por un usuario para operar el dispositivo 940 de grabación/reproducción, y una sección de recepción para una señal de control remoto, por ejemplo. La interfaz 950 de usuario detecta una 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 949 de control.
En el dispositivo 940 de grabación/reproducción configurado de esta manera, el codificador 943 tiene una función del dispositivo 10 de codificación de imágenes según la realización descrita anteriormente. Además, el decodificador 947 tiene una función del dispositivo 60 de decodificación de imágenes según la realización descrita anteriormente. En consecuencia, también en el caso de codificar y decodificar una imagen en el dispositivo 940 de grabación/reproducción, es posible mejorar el paralelismo de los procesos de filtro de desbloqueo, y garantizar un procesamiento de alta velocidad.
[7-4. Cuarta aplicación ilustrativa]
La Figura 47 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 realización descrita anteriormente. Un dispositivo 960 de captura de imágenes captura una imagen de un sujeto, genera una imagen, codifica los datos de imagen, y graba los datos de imagen en un medio de grabación.
El dispositivo 960 de captura de imágenes incluye un bloque óptico 961, una sección 962 de captura de imágenes, una sección 963 de procesamiento de señales, una sección 964 de procesamiento de imágenes, una sección 965 de visualización, una interfaz externa 966, una memoria 967, una unidad 968 de medios, un OSD 969, una sección 970 de control, una interfaz 971 de usuario y un bus 972.
El bloque óptico 961 está conectado a la sección 962 de captura de imágenes. La sección 962 de captura de imágenes está conectada a la sección 963 de procesamiento de señales. La sección 965 de visualización está conectada a la sección 964 de procesamiento de imágenes. La interfaz 971 de usuario está conectada a la sección 970 de control. El bus 972 interconecta la sección 964 de procesamiento de imágenes, la interfaz externa 966, la memoria 967, la unidad 968 de medios, el OSD 969 y la sección 970 de control.
El bloque óptico 961 incluye una lente de enfoque, un mecanismo de tope de apertura y similares. El bloque óptico 961 forma una imagen óptica de un sujeto en una superficie de captura de imágenes de la sección 962 de captura de imágenes. La sección 962 de captura de imágenes incluye un sensor de imagen, tal como un CCD, un CMOS o similar, y convierte, mediante conversión fotoeléctrica, la imagen óptica formada en la superficie de captura de imágenes, en una señal de imagen que sea una señal eléctrica. A continuación, la sección 962 de captura de imágenes envía la señal de imagen a la sección 963 de procesamiento de señales.
La sección 963 de procesamiento de señales realiza varios procesos de señal de cámara, tales como corrección Knee, corrección gamma, corrección de color y similares, en la entrada de señal de imagen desde la sección 962 de captura de imágenes. La sección 963 de procesamiento de señales envía los datos de imagen después del proceso de señal de cámara, a la sección 964 de procesamiento de imágenes.
La sección 964 de procesamiento de imágenes codifica los datos de imagen introducidos desde la sección 963 de procesamiento de señales, y genera datos codificados. A continuación, la sección 964 de procesamiento de imágenes envía los datos codificados generados a la interfaz externa 966 o a la unidad 968 de medios. Además, la sección 964 de procesamiento de imágenes decodifica la entrada de datos codificados desde la interfaz externa 966 o la unidad 968 de medios, y genera datos de imagen. A continuación, la sección 964 de procesamiento de imágenes envía los datos de imagen generados a la sección 965 de visualización. Además, la sección 964 de procesamiento de imágenes puede enviar la entrada de datos de imagen desde la sección 963 de procesamiento de señales a la sección 965 de visualización, y hacer que se muestre la imagen. Además, la sección 964 de procesamiento de imágenes puede superponer datos para su visualización adquiridos desde el OSD 969, sobre una imagen a emitir a la sección 965 de visualización.
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 964 de procesamiento de imágenes.
La interfaz externa 966 está configurada como un terminal de entrada/salida USB, por ejemplo. La interfaz externa 966 conecta el dispositivo 960 de captura de imágenes 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 un programa leído desde el medio extraíble puede instalarse en el dispositivo 960 de captura de imágenes. Además, la interfaz externa 966 puede configurarse como una interfaz de red para conectarse a una red, tal como una LAN, Internet o similares. Es decir, la interfaz externa 966 sirve como medio de transmisión del dispositivo 960 de captura de imágenes.
Un medio de grabación a montar en la unidad 968 de medios puede ser un medio extraíble legible y grabable arbitrariamente, tal como un disco magnético, un disco magneto-óptico, un disco óptico, una memoria de semiconductores o similares, por ejemplo. Además, un medio de grabación puede montarse de forma fija en la unidad 968 de medios, configurando una sección de almacenamiento no transportable, tal como una unidad de disco duro integrada o una SSD (unidad de estado sólido), por ejemplo.
La sección 970 de control incluye un procesador, tal como una CPU, y una memoria, tal como una RAM o una ROM. La memoria almacena un programa a ejecutar por la CPU, los datos del programa y similares. Un programa almacenado en la memoria es leído y ejecutado por la CPU en el momento de la activación del dispositivo 960 de captura de imágenes, por ejemplo. La CPU controla el funcionamiento del dispositivo 960 de captura de imágenes según una señal de operación ingresada desde la interfaz 971 de usuario, por ejemplo, mediante la ejecución del programa.
La interfaz 971 de usuario está conectada a la sección 970 de control. La interfaz 971 de usuario incluye un botón, un interruptor y similares, utilizados por un usuario para operar el dispositivo 960 de captura de imágenes, por ejemplo. La interfaz 971 de usuario detecta una 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 970 de control.
En el dispositivo 960 de captura de imágenes configurado de esta manera, la sección 964 de procesamiento de imágenes tiene una función del dispositivo 10 de codificación de imágenes y del dispositivo 60 de decodificación de imágenes según la realización descrita anteriormente. En consecuencia, en el caso de codificar y decodificar una imagen en el dispositivo 960 de captura de imágenes, es posible mejorar el paralelismo de los procesos de filtro de desbloqueo, y garantizar un procesamiento a alta velocidad.
<8. Resumen>
Con referencia a las Figuras 1 a 47, se han descrito tres ejemplos de funcionamiento del filtro de desbloqueo para el dispositivo 10 de codificación de imágenes y el dispositivo 60 de decodificación de imágenes según una realización. Los tres ejemplos de funcionamiento alivian la dependencia de los procesos de filtrado de desbloqueo inherentes a la técnica existente. Esto puede mejorar el paralelismo de los procesos cuando se aplica el filtro de desbloqueo. Como resultado, es posible evitar el retraso o la degradación de la tasa de datos debido a una gran cantidad de procesamiento del filtro de desbloqueo, y garantizar un procesamiento a alta velocidad. El paralelismo y las secuencias de los procesos de filtrado de desbloqueo se pueden configurar de forma flexible según diversas condiciones, tal como el tamaño de las imágenes o el entorno de instalación.
Según el primer ejemplo de funcionamiento, se hace referencia a los valores de píxel de una imagen de entrada suministrada al filtro de desbloqueo en una pluralidad de macrobloques dentro de la imagen cuando se determina si es necesario un filtrado para uno de un límite vertical y un límite horizontal. El resultado es aliviar la dependencia de los procesos entre macrobloques o unidades de codificación. Por lo tanto, es posible paralelizar los procesos de determinación de la necesidad de filtrado en la pluralidad de macrobloques o en todos los macrobloques de una imagen, si se maximiza el paralelismo.
Según el segundo ejemplo de funcionamiento, las determinaciones para los límites verticales y los límites horizontales de cada bloque sobre si es necesario filtrar, se realizan sin esperar a aplicar filtros de desbloqueo a los demás bloques del macrobloque al que pertenece el bloque. Esto alivia la dependencia de los procesos entre un límite vertical y un límite horizontal en un macrobloque o una unidad de codificación. En consecuencia, es posible paralelizar en un macrobloque los procesos de determinación de la necesidad de filtrado en los límites verticales y los límites horizontales.
Según el tercer ejemplo de funcionamiento, los procesos de filtrado para límites verticales y límites horizontales filtran los píxeles introducidos en el filtro de desbloqueo. Esta configuración puede paralelizar entre sí los procesos de filtrado para los límites verticales y los límites horizontales. Esto puede acelerar aún más los procesos del filtro de desbloqueo. Un valor de píxel de salida se calcula basándose en dos salidas de filtro en términos de un píxel actualizado mediante dos procesos de filtrado realizados en paralelo. La paralelización de dos procesos de filtrado también puede reducir adecuadamente la distorsión de bloques que aparece en el límite vertical y el límite horizontal. Un valor de píxel de salida se puede calcular como un promedio ponderado de dos salidas de filtro. Esto puede permitir que el filtro de desbloqueo elimine de manera más efectiva la distorsión del bloque, y mejore aún más la calidad de la imagen.
La memoria descriptiva ha descrito principalmente ejemplos en los que los procesos de filtrado para límites verticales preceden a los procesos de filtrado para límites horizontales. Además, los efectos descritos anteriormente de la tecnología según la descripción están igualmente disponibles en el caso en el que los procesos de filtrado para los límites horizontales precedan a los procesos de filtrado para los límites verticales. La unidad de procesamiento del filtro de desbloqueo o el macrobloque pueden dimensionarse de manera diferente a la descrita en la memoria descriptiva. Una técnica disponible puede omitir los procesos de determinación de la 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 filtrado desde el lado de codificación al lado de decodificación, no se limita a la técnica de multiplexación de la información en la cabecera de flujo codificado. Por ejemplo, la información puede no multiplexarse en un flujo de bits codificado, sino que puede transmitirse o grabarse como datos independientes asociados al flujo de bits codificado. El término “ asociación” significa garantizar la posibilidad de vincular una imagen (o parte de una imagen, como un segmento o un bloque) contenida en el flujo de bits con la información correspondiente a la imagen. Es decir, la información puede transmitirse a través de una ruta de transmisión diferente de la utilizada para las imágenes (o flujos de bits). La información puede grabarse en un medio de grabación (o en un área de grabación diferente en el mismo medio de grabación) diferente del utilizado para las imágenes (o flujos de bits). La información y la imagen (o flujo de bits) pueden asociarse entre sí basándose en cualquier unidad, tal como múltiples tramas, un trama o parte de un trama.
La invención se expone en el conjunto de reivindicaciones adjuntas.
La memoria descriptiva representa los procesos de filtrado de los límites verticales como “ filtrado horizontal” , y los procesos de filtrado de los límites horizontales como “ filtrado vertical” . En general, los procesos de filtrado de límites verticales utilizan derivaciones de filtro colocadas horizontalmente. Los procesos de filtrado para límites horizontales utilizan derivaciones de filtro colocadas verticalmente. Por esta razón, la nomenclatura descrita anteriormente se usa para los procesos de filtrado.
Lista de signos de referencia
10, 60 Dispositivo de procesamiento de imágenes
112, 212 Crimera sección de determinación (sección de determinación del límite vertical)
116, 216 Segunda sección de determinación (sección de determinación del límite horizontal)
132 Primera sección de filtrado (sección de filtrado horizontal)
142 Segunda sección de filtrado (sección de filtrado vertical)
150 Sección de control de paralelización
Claims (6)
1. Un dispositivo de procesamiento de imágenes que comprende:
una sección (62, 63, 64) de decodificación configurada para decodificar un flujo codificado para generar una imagen;
una sección (130) de filtrado horizontal configurada para aplicar filtros de desbloqueo horizontal a través de una pluralidad de límites verticales a los píxeles vecinos de los límites verticales, sin depender del procesamiento acompañado de un filtro de desbloqueo vertical entre los filtros de desbloqueo horizontal entre sí para la pluralidad de límites verticales, siendo los límites verticales límites verticales entre bloques dentro de la imagen generada por la sección de decodificación;
una sección (140) de filtrado vertical configurada para aplicar filtros de desbloqueo vertical a través de una pluralidad de límites horizontales a los píxeles vecinos de los límites horizontales, siendo los límites horizontales límites horizontales entre bloques dentro de una imagen filtrada que incluye los píxeles a los que la sección de filtrado horizontal ha aplicado los filtros de desbloqueo horizontal; y
una sección (150) de control configurada para:
controlar la sección de filtrado horizontal, de tal modo que los filtros de desbloqueo horizontal se apliquen a los píxeles vecinos de todos los límites verticales a los que se determina aplicar los filtros de desbloqueo horizontal, dentro de una imagen, y controlar la sección de filtrado vertical, de tal modo que los filtros de desbloqueo vertical se apliquen a los píxeles vecinos de todos los límites horizontales a los que se determine aplicar los filtros de desbloqueo vertical, dentro de la imagen filtrada, incluidos los píxeles a los que la sección de filtrado horizontal ha aplicado los filtros de desbloqueo horizontal.
2. El dispositivo de procesamiento de imágenes según la reivindicación 1, en donde
la sección de filtrado horizontal está configurada para aplicar el filtro de desbloqueo horizontal sin dependencia entre los filtros de desbloqueo horizontal entre sí para una pluralidad de límites verticales vecinos entre los bloques, sin la dependencia del procesamiento acompañado de los filtros de desbloqueo vertical entre una pluralidad de los bloques sometidos al proceso de los filtros de desbloqueo horizontal, y
la sección de filtrado vertical está configurada para aplicar el filtro de desbloqueo vertical sin dependencia entre los filtros de desbloqueo vertical entre sí para una pluralidad de límites horizontales vecinos entre los bloques.
3. El dispositivo de procesamiento de imágenes según la reivindicación 1, en donde
la sección de filtrado horizontal está configurada para aplicar el filtro de desbloqueo horizontal en paralelo, y
la sección de filtrado vertical está configurada para aplicar el filtro de desbloqueo vertical en paralelo.
4. El dispositivo de procesamiento de imágenes según la reivindicación 1, en donde
los bloques tienen un tamaño de bloque de 8 * 8,
una longitud del límite vertical es de 8 píxeles, y
una longitud del límite horizontal es de 8 píxeles.
5. El dispositivo de procesamiento de imagen según la reivindicación 1, en donde la sección de decodificación está configurada para decodificar el flujo codificado por unidad de codificación dividida de la unidad de codificación más grande.
6. Un método de procesamiento de imágenes que comprende:
decodificar un flujo codificado para generar una imagen;
aplicar filtros de desbloqueo horizontal a través de una pluralidad de límites verticales a los píxeles vecinos de los límites verticales, sin depender del procesamiento acompañado de un filtro de desbloqueo vertical entre los filtros de desbloqueo horizontal entre sí para la pluralidad de límites verticales, siendo los límites verticales límites verticales entre bloques dentro de la imagen;
controlar los filtros de desbloqueo horizontal, de tal modo que los filtros de desbloqueo horizontal se apliquen a los píxeles vecinos de todos los límites verticales a los que se determina aplicar los filtros de desbloqueo horizontal, dentro de la imagen;
aplicar filtros de desbloqueo vertical a través de una pluralidad de límites horizontales a los píxeles vecinos de los límites horizontales, siendo los límites horizontales límites horizontales entre bloques dentro de una imagen filtrada que incluyen los píxeles a los que se han aplicado los filtros de desbloqueo horizontal; y
controlar los filtros de desbloqueo vertical de tal modo que los filtros de desbloqueo vertical se apliquen a todos los límites horizontales de los pixeles vecinos a los que se determina aplicar los filtros de desbloqueo vertical, dentro de la imagen filtrada, los pixeles incluidos los píxeles a los que se han aplicado los filtros de desbloqueo horizontal.
El método de procesamiento de imágenes según la reivindicación 6, en donde
el filtro de desbloqueo horizontal se aplica sin dependencia entre los filtros de desbloqueo horizontal entre sí para una pluralidad de límites verticales vecinos entre los bloques, sin la dependencia del procesamiento acompañado por los filtros de desbloqueo vertical entre la pluralidad de bloques sometidos al proceso de los filtros de desbloqueo horizontal, y el filtro de desbloqueo vertical se aplica sin dependencia entre los filtros de desbloqueo vertical entre sí para una pluralidad de límites horizontales vecinos entre los bloques.
El método de procesamiento de imágenes según la reivindicación 6, en donde
el filtro de desbloqueo horizontal se aplica en paralelo, y
el filtro de desbloqueo vertical se aplica en paralelo.
El método de procesamiento de imágenes según la reivindicación 6, en donde
los bloques tienen un tamaño de bloque de 8 * 8,
una longitud del límite vertical es de 8 píxeles, y
una longitud del límite horizontal es de 8 píxeles.
El método de procesamiento de imágenes según la reivindicación 6, en donde el flujo codificado se decodifica por unidad de codificación dividida de la unidad de codificación más grande.
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2010272907 | 2010-12-07 | ||
| JP2011004392 | 2011-01-12 | ||
| JP2011045651 | 2011-03-02 | ||
| JP2011117558 | 2011-05-26 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES3028532T3 true ES3028532T3 (en) | 2025-06-19 |
Family
ID=46207096
Family Applications (4)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES24186631T Active ES3059273T3 (en) | 2010-12-07 | 2011-12-02 | Image processing device and image processing method |
| ES11846900T Active ES2753587T3 (es) | 2010-12-07 | 2011-12-02 | Dispositivo de procesamiento de imágenes y método de procesamiento de imágenes |
| ES19186698T Active ES3028532T3 (en) | 2010-12-07 | 2011-12-02 | Image processing device and image processing method |
| ES19186704T Active ES3003083T3 (en) | 2010-12-07 | 2011-12-02 | Image processing device and image processing method |
Family Applications Before (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES24186631T Active ES3059273T3 (en) | 2010-12-07 | 2011-12-02 | Image processing device and image processing method |
| ES11846900T Active ES2753587T3 (es) | 2010-12-07 | 2011-12-02 | Dispositivo de procesamiento de imágenes y método de procesamiento de imágenes |
Family Applications After (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES19186704T Active ES3003083T3 (en) | 2010-12-07 | 2011-12-02 | Image processing device and image processing method |
Country Status (24)
| Country | Link |
|---|---|
| US (7) | US9912967B2 (es) |
| EP (6) | EP3582498B1 (es) |
| JP (4) | JP6011342B2 (es) |
| KR (6) | KR102117800B1 (es) |
| CN (6) | CN103229505B (es) |
| AU (1) | AU2011339461B2 (es) |
| BR (4) | BR122020013150B1 (es) |
| CA (1) | CA2815817C (es) |
| CO (1) | CO6720978A2 (es) |
| DK (1) | DK3582498T3 (es) |
| ES (4) | ES3059273T3 (es) |
| FI (1) | FI3582498T3 (es) |
| HU (2) | HUE070826T2 (es) |
| LT (1) | LT3582498T (es) |
| MX (2) | MX2013006130A (es) |
| MY (1) | MY174587A (es) |
| PH (3) | PH12018501811A1 (es) |
| PL (3) | PL3582497T3 (es) |
| PT (1) | PT3582498T (es) |
| RU (3) | RU2702219C2 (es) |
| SI (1) | SI3582498T1 (es) |
| TW (4) | TWI514892B (es) |
| WO (1) | WO2012077608A1 (es) |
| ZA (2) | ZA201303963B (es) |
Families Citing this family (37)
| 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 | ソニー株式会社 | 画像処理装置および方法、プログラム、並びに、記録媒体 |
| EP2559241A1 (de) * | 2010-04-14 | 2013-02-20 | Siemens Enterprise Communications GmbH & Co. KG | Verfahren zum deblocking-filtern |
| TWI600318B (zh) | 2010-05-18 | 2017-09-21 | Sony Corp | Image processing apparatus and image processing method |
| EP3675493A1 (en) | 2010-06-04 | 2020-07-01 | Sony Corporation | Image processing apparatus and method |
| KR102117800B1 (ko) | 2010-12-07 | 2020-06-01 | 소니 주식회사 | 화상 처리 장치 및 화상 처리 방법 |
| RU2691962C2 (ru) | 2010-12-07 | 2019-06-19 | Сони Корпорейшн | Устройство обработки изображений и способ обработки изображений |
| JP5741076B2 (ja) | 2010-12-09 | 2015-07-01 | ソニー株式会社 | 画像処理装置及び画像処理方法 |
| JP5884313B2 (ja) | 2011-01-18 | 2016-03-15 | ソニー株式会社 | 画像処理装置、画像処理方法、プログラム及び記録媒体 |
| PH12013501626A1 (en) | 2011-02-10 | 2013-10-14 | Sony Group Corp | Image processing device and image processing method |
| BR122020013607B1 (pt) | 2011-03-11 | 2023-10-24 | Sony Corporation | Aparelho e método de processamento de imagem |
| WO2012134046A2 (ko) * | 2011-04-01 | 2012-10-04 | 주식회사 아이벡스피티홀딩스 | 동영상의 부호화 방법 |
| TWI530161B (zh) | 2011-06-07 | 2016-04-11 | Sony Corp | Image processing apparatus and method |
| JP5907367B2 (ja) | 2011-06-28 | 2016-04-26 | ソニー株式会社 | 画像処理装置および方法、プログラム、並びに記録媒体 |
| EP3313074B1 (en) | 2011-06-28 | 2021-09-22 | Sony Group Corporation | Image processing device, image processing method |
| CN107197254B (zh) | 2011-09-09 | 2020-03-03 | 太阳专利托管公司 | 解码方法及解码装置 |
| TWI581623B (zh) * | 2012-04-06 | 2017-05-01 | Sony Corp | Image processing apparatus and method, program, and recording medium |
| BR112016009083B8 (pt) * | 2013-10-25 | 2022-07-19 | Mediatek Inc | Método e aparelho para processar imagem com altura de imagem não divisível equitativamente por altura de fatia e/ou largura de fatia não divisível equitativamente por largura de grupo de pixel. |
| US10038919B2 (en) | 2014-05-29 | 2018-07-31 | Apple Inc. | In loop chroma deblocking filter |
| CN105451025B (zh) * | 2014-07-31 | 2019-03-01 | 富士通株式会社 | 图像处理方法以及装置 |
| US11477484B2 (en) * | 2015-06-22 | 2022-10-18 | Qualcomm Incorporated | Video intra prediction using hybrid recursive filters |
| CN109891895A (zh) * | 2016-08-21 | 2019-06-14 | Lg电子株式会社 | 图像编码/解码方法及其装置 |
| TWI894814B (zh) * | 2017-04-06 | 2025-08-21 | 美商松下電器(美國)知識產權公司 | 編碼裝置、解碼裝置、電腦可讀取之非暫時性的媒體 |
| CN110290384A (zh) * | 2018-03-19 | 2019-09-27 | 华为技术有限公司 | 图像滤波方法、装置及视频编解码器 |
| JP7155568B2 (ja) | 2018-03-26 | 2022-10-19 | 東洋製罐グループホールディングス株式会社 | 金属加工物 |
| EP3876542B1 (en) * | 2018-11-02 | 2024-12-25 | Sony Group Corporation | Image processing device and image processing method |
| WO2020175146A1 (ja) * | 2019-02-27 | 2020-09-03 | ソニー株式会社 | 画像処理装置及び画像処理方法 |
| CN120547323A (zh) * | 2019-03-07 | 2025-08-26 | 数字洞察力有限公司 | 图像编码/解码方法和传输比特流的方法 |
| CN109905709B (zh) * | 2019-03-21 | 2021-05-07 | 南京威翔科技有限公司 | 一种基于流水线重组方式的去方块滤波方法 |
| CN110213579A (zh) * | 2019-06-11 | 2019-09-06 | 上海富瀚微电子股份有限公司 | 双核心计算单元实现环路滤波的方法 |
| EP4002852A4 (en) * | 2019-07-19 | 2023-08-09 | LG Electronics Inc. | METHOD AND APPARATUS FOR PICTURE ENCODING/DECODING USING FILTERS AND METHODS FOR TRANSMITTING A BIT STREAM |
| CN111314579B (zh) | 2020-02-21 | 2021-10-15 | 苏州浪潮智能科技有限公司 | 一种图像垂直滤波处理的方法及芯片 |
| KR102834458B1 (ko) | 2020-04-08 | 2025-07-16 | 삼성디스플레이 주식회사 | 표시장치 |
| KR102931985B1 (ko) | 2020-04-22 | 2026-03-03 | 삼성디스플레이 주식회사 | 표시 장치 |
| KR20250011367A (ko) | 2023-07-14 | 2025-01-21 | 에스케이하이닉스 주식회사 | 이미지 신호 처리 장치 및 이를 포함하는 촬영 시스템 |
| KR20260051978A (ko) * | 2024-10-10 | 2026-04-17 | 광운대학교 산학협력단 | 공간적 연속성 추정 기반 비디오 디블록킹 필터링 방법 및 장치 |
Family Cites Families (56)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS63105586A (ja) | 1986-10-23 | 1988-05-10 | Matsushita Electric Ind Co Ltd | テレビジヨン信号処理方法 |
| JPH0832030B2 (ja) * | 1986-10-21 | 1996-03-27 | ソニー株式会社 | ブロツク符号化された画像信号の復号装置 |
| WO1998035449A1 (fr) * | 1997-02-10 | 1998-08-13 | Sony Corporation | Procede et materiel de traitement de donnees |
| US6125201A (en) | 1997-06-25 | 2000-09-26 | Andrew Michael Zador | Method, apparatus and system for compressing data |
| KR100269125B1 (ko) * | 1997-10-25 | 2000-10-16 | 윤덕용 | 양자화효과감소를위한영상데이터후처리방법및장치 |
| BR9913081A (pt) | 1998-08-19 | 2002-03-12 | Urecoates International Inc | Composições com matriz elastomérica interpenetrante poliuretana betuminosa |
| JP4254017B2 (ja) * | 2000-03-10 | 2009-04-15 | ソニー株式会社 | 画像符号化装置及び方法 |
| 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 |
| KR100949418B1 (ko) | 2002-02-15 | 2010-03-24 | 소니 주식회사 | 보행식 이동 로봇의 다리 장치 및 보행식 이동 로봇의제어 방법 |
| 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 |
| JP3743384B2 (ja) * | 2002-04-19 | 2006-02-08 | ソニー株式会社 | 画像符号化装置及び方法、並びに画像復号装置及び方法 |
| 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 | 画像符号化装置及び画像復号装置 |
| TWI264951B (en) * | 2005-05-19 | 2006-10-21 | Cheertek Inc | Deblock filter method for applying on video encoding/decoding and the apparatus thereof |
| JP4825524B2 (ja) * | 2006-01-31 | 2011-11-30 | 株式会社東芝 | 動画像復号装置および動画像復号方法 |
| CN101076124B (zh) * | 2006-05-18 | 2010-09-08 | 北京大学深圳研究生院 | 去块滤波器 |
| US8542744B2 (en) * | 2006-05-19 | 2013-09-24 | Altera Corporation | Methods and apparatus for providing a scalable deblocking filtering assist function within an array processor |
| JP4712642B2 (ja) * | 2006-08-17 | 2011-06-29 | 富士通セミコンダクター株式会社 | デブロッキングフィルタ、画像符号化装置および画像復号化装置 |
| US9014280B2 (en) * | 2006-10-13 | 2015-04-21 | Qualcomm Incorporated | Video coding with adaptive filtering for motion compensated prediction |
| US8111760B2 (en) * | 2006-11-16 | 2012-02-07 | Texas Instruments Incorporated | Deblocking filters |
| US20080123750A1 (en) * | 2006-11-29 | 2008-05-29 | Michael Bronstein | Parallel deblocking filter for H.264 video codec |
| US20080159407A1 (en) * | 2006-12-28 | 2008-07-03 | Yang Nick Y | Mechanism for a parallel processing in-loop deblock filter |
| US8204129B2 (en) * | 2007-03-27 | 2012-06-19 | Freescale Semiconductor, Inc. | Simplified deblock filtering for reduced memory access and computational complexity |
| CN101472177B (zh) * | 2007-12-27 | 2013-03-06 | 宝利微电子系统控股公司 | 一种块效应检测方法 |
| GB0807804D0 (en) * | 2008-04-29 | 2008-06-04 | Imagination Tech Ltd | Interlaced video edge filtering |
| 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 | はんだフラックス中の金属成分分析方法 |
| 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 | 演算装置及び動画像符号化装置 |
| US8611435B2 (en) * | 2008-12-22 | 2013-12-17 | Qualcomm, Incorporated | Combined scheme for interpolation filtering, in-loop filtering and post-loop filtering in video coding |
| JP5087016B2 (ja) * | 2009-01-19 | 2012-11-28 | キヤノン株式会社 | 符号化装置及びその制御方法、コンピュータプログラム |
| JP5359657B2 (ja) | 2009-07-31 | 2013-12-04 | ソニー株式会社 | 画像符号化装置および方法、記録媒体、並びにプログラム |
| JP5344238B2 (ja) | 2009-07-31 | 2013-11-20 | ソニー株式会社 | 画像符号化装置および方法、記録媒体、並びにプログラム |
| US20110123121A1 (en) * | 2009-10-13 | 2011-05-26 | Sony Corporation | Method and system for reducing blocking artefacts in compressed images and video signals |
| JP5914962B2 (ja) | 2010-04-09 | 2016-05-11 | ソニー株式会社 | 画像処理装置および方法、プログラム、並びに、記録媒体 |
| JPWO2011129090A1 (ja) | 2010-04-13 | 2013-07-11 | パナソニック株式会社 | 符号化歪み除去方法、符号化方法、復号化方法、符号化歪み除去装置、符号化装置、および復号化装置 |
| MY176988A (en) * | 2010-04-13 | 2020-08-31 | Samsung Electronics Co Ltd | Video-encoding method and video-encoding apparatus based on encoding units determined in a accordance with a tree structure, and video-decoding units determined in a accordance with a tree structure |
| TWI600318B (zh) | 2010-05-18 | 2017-09-21 | Sony Corp | Image processing apparatus and image processing method |
| WO2011152425A1 (ja) * | 2010-06-03 | 2011-12-08 | シャープ株式会社 | フィルタ装置、画像復号装置、画像符号化装置、および、フィルタパラメータのデータ構造 |
| EP3675493A1 (en) | 2010-06-04 | 2020-07-01 | Sony Corporation | Image processing apparatus and method |
| KR102117800B1 (ko) | 2010-12-07 | 2020-06-01 | 소니 주식회사 | 화상 처리 장치 및 화상 처리 방법 |
| RU2691962C2 (ru) | 2010-12-07 | 2019-06-19 | Сони Корпорейшн | Устройство обработки изображений и способ обработки изображений |
| JP5741076B2 (ja) | 2010-12-09 | 2015-07-01 | ソニー株式会社 | 画像処理装置及び画像処理方法 |
| DK2664149T3 (en) * | 2011-01-14 | 2017-02-27 | ERICSSON TELEFON AB L M (publ) | UNBLOCK FILTERING |
| PH12013501626A1 (en) | 2011-02-10 | 2013-10-14 | Sony Group Corp | Image processing device and image processing method |
| BR122020013607B1 (pt) | 2011-03-11 | 2023-10-24 | Sony Corporation | Aparelho e método de processamento de imagem |
| TWI530161B (zh) | 2011-06-07 | 2016-04-11 | Sony Corp | Image processing apparatus and method |
| JP5907367B2 (ja) | 2011-06-28 | 2016-04-26 | ソニー株式会社 | 画像処理装置および方法、プログラム、並びに記録媒体 |
| KR102165220B1 (ko) | 2012-06-29 | 2020-10-14 | 벨로스 미디어 인터내셔널 리미티드 | 부호화 장치 및 부호화 방법 |
-
2011
- 2011-12-02 KR KR1020197022352A patent/KR102117800B1/ko active Active
- 2011-12-02 CN CN201180057796.9A patent/CN103229505B/zh active Active
- 2011-12-02 MX MX2013006130A patent/MX2013006130A/es active IP Right Grant
- 2011-12-02 PH PH12018501811A patent/PH12018501811A1/en unknown
- 2011-12-02 KR KR1020187016184A patent/KR101962591B1/ko active Active
- 2011-12-02 EP EP19186704.3A patent/EP3582498B1/en active Active
- 2011-12-02 BR BR122020013150-0A patent/BR122020013150B1/pt not_active IP Right Cessation
- 2011-12-02 CN CN201710072281.5A patent/CN106658026B/zh active Active
- 2011-12-02 HU HUE19186698A patent/HUE070826T2/hu unknown
- 2011-12-02 RU RU2016105596A patent/RU2702219C2/ru active
- 2011-12-02 PL PL19186698.7T patent/PL3582497T3/pl unknown
- 2011-12-02 DK DK19186704.3T patent/DK3582498T3/da active
- 2011-12-02 BR BR122020013143-8A patent/BR122020013143B1/pt not_active IP Right Cessation
- 2011-12-02 LT LTEP19186704.3T patent/LT3582498T/lt unknown
- 2011-12-02 KR KR1020137013868A patent/KR101868651B1/ko active Active
- 2011-12-02 RU RU2013125500/07A patent/RU2578665C2/ru active
- 2011-12-02 EP EP24186574.0A patent/EP4425923A3/en active Pending
- 2011-12-02 US US13/991,007 patent/US9912967B2/en active Active
- 2011-12-02 PL PL19186704.3T patent/PL3582498T3/pl unknown
- 2011-12-02 SI SI201132126T patent/SI3582498T1/sl unknown
- 2011-12-02 KR KR1020197007962A patent/KR102007626B1/ko not_active Expired - Fee Related
- 2011-12-02 BR BR122020013166-7A patent/BR122020013166B1/pt not_active IP Right Cessation
- 2011-12-02 BR BR112013013516-6A patent/BR112013013516B1/pt active IP Right Grant
- 2011-12-02 FI FIEP19186704.3T patent/FI3582498T3/fi active
- 2011-12-02 WO PCT/JP2011/077954 patent/WO2012077608A1/ja not_active Ceased
- 2011-12-02 PL PL24186631.8T patent/PL4425924T3/pl unknown
- 2011-12-02 PH PH1/2013/501113A patent/PH12013501113A1/en unknown
- 2011-12-02 EP EP19186682.1A patent/EP3582496B1/en active Active
- 2011-12-02 AU AU2011339461A patent/AU2011339461B2/en active Active
- 2011-12-02 CN CN201710072283.4A patent/CN106713934B/zh active Active
- 2011-12-02 ES ES24186631T patent/ES3059273T3/es active Active
- 2011-12-02 CN CN201710072285.3A patent/CN106791877B/zh active Active
- 2011-12-02 EP EP19186698.7A patent/EP3582497B1/en active Active
- 2011-12-02 EP EP11846900.6A patent/EP2651129B1/en active Active
- 2011-12-02 CA CA2815817A patent/CA2815817C/en active Active
- 2011-12-02 HU HUE19186704A patent/HUE069594T2/hu unknown
- 2011-12-02 ES ES11846900T patent/ES2753587T3/es active Active
- 2011-12-02 JP JP2012547834A patent/JP6011342B2/ja active Active
- 2011-12-02 ES ES19186698T patent/ES3028532T3/es active Active
- 2011-12-02 EP EP24186631.8A patent/EP4425924B8/en active Active
- 2011-12-02 KR KR1020207013244A patent/KR102216571B1/ko active Active
- 2011-12-02 CN CN201310654537.5A patent/CN103716632B/zh active Active
- 2011-12-02 KR KR1020187016187A patent/KR101958611B1/ko active Active
- 2011-12-02 PT PT191867043T patent/PT3582498T/pt unknown
- 2011-12-02 MY MYPI2013002075A patent/MY174587A/en unknown
- 2011-12-02 ES ES19186704T patent/ES3003083T3/es active Active
- 2011-12-02 CN CN201710072287.2A patent/CN106791878B/zh active Active
- 2011-12-05 TW TW100144704A patent/TWI514892B/zh active
- 2011-12-05 TW TW104111487A patent/TWI565300B/zh active
- 2011-12-05 TW TW104111488A patent/TWI578761B/zh active
- 2011-12-05 TW TW104111489A patent/TWI578762B/zh active
-
2013
- 2013-05-29 CO CO13131784A patent/CO6720978A2/es active IP Right Grant
- 2013-05-30 ZA ZA2013/03963A patent/ZA201303963B/en unknown
- 2013-05-31 MX MX2014012150A patent/MX336566B/es unknown
- 2013-07-19 US US13/946,707 patent/US9088786B2/en active Active
-
2015
- 2015-06-17 PH PH12015501384A patent/PH12015501384B1/en unknown
-
2016
- 2016-07-21 JP JP2016142995A patent/JP6213626B2/ja not_active Expired - Fee Related
- 2016-12-30 US US15/395,445 patent/US9998766B2/en active Active
- 2016-12-30 US US15/395,471 patent/US10003827B2/en active Active
-
2017
- 2017-05-02 ZA ZA2017/03025A patent/ZA201703025B/en unknown
- 2017-09-11 JP JP2017173731A patent/JP6471786B2/ja active Active
-
2018
- 2018-04-04 US US15/929,006 patent/US10334279B2/en active Active
-
2019
- 2019-01-15 JP JP2019004264A patent/JP6819702B2/ja active Active
- 2019-05-06 US US16/403,620 patent/US10785504B2/en active Active
- 2019-08-13 RU RU2019125559A patent/RU2019125559A/ru unknown
-
2020
- 2020-08-13 US US16/992,138 patent/US11381846B2/en active Active
Also Published As
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES3003083T3 (en) | Image processing device and image processing method | |
| ES2856823T3 (es) | Dispositivo de procesamiento de imágenes y método de procesamiento de imágenes | |
| ES2943260T3 (es) | Dispositivo de procesamiento de imágenes y método de procesamiento de imágenes | |
| ES3010151T3 (en) | Image processing device, image processing method, program, and storage medium | |
| HK1233094A (en) | Image processing device and image processing method | |
| HK1233094A1 (en) | Image processing device and image processing method | |
| HK1232703A (en) | Image processing device and image processing method | |
| HK1232703A1 (en) | Image processing device and image processing method | |
| HK1184940A (en) | Image processing device and image processing method |