ES2999283T3 - Method and apparatus for image filtering with adaptive multiplier coefficients - Google Patents
Method and apparatus for image filtering with adaptive multiplier coefficients Download PDFInfo
- Publication number
- ES2999283T3 ES2999283T3 ES21216857T ES21216857T ES2999283T3 ES 2999283 T3 ES2999283 T3 ES 2999283T3 ES 21216857 T ES21216857 T ES 21216857T ES 21216857 T ES21216857 T ES 21216857T ES 2999283 T3 ES2999283 T3 ES 2999283T3
- Authority
- ES
- Spain
- Prior art keywords
- image
- filter
- prediction
- coefficients
- samples
- 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
- 238000001914 filtration Methods 0.000 title claims abstract description 57
- 238000000034 method Methods 0.000 title claims abstract description 51
- 230000003044 adaptive effect Effects 0.000 title claims abstract description 42
- 238000012545 processing Methods 0.000 claims description 46
- 230000005540 biological transmission Effects 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 2
- 238000013139 quantization Methods 0.000 description 71
- 230000006854 communication Effects 0.000 description 24
- 238000004891 communication Methods 0.000 description 24
- 230000009466 transformation Effects 0.000 description 16
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 12
- 230000008569 process Effects 0.000 description 11
- 238000005192 partition Methods 0.000 description 10
- 238000007781 pre-processing Methods 0.000 description 9
- 238000007792 addition Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 239000011159 matrix material Substances 0.000 description 8
- 230000008901 benefit Effects 0.000 description 7
- 230000006835 compression Effects 0.000 description 6
- 238000007906 compression Methods 0.000 description 6
- 229910003460 diamond Inorganic materials 0.000 description 6
- 239000010432 diamond Substances 0.000 description 6
- 230000011664 signaling Effects 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 5
- 230000009467 reduction Effects 0.000 description 5
- 238000000638 solvent extraction Methods 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 238000012805 post-processing Methods 0.000 description 4
- 241000023320 Luma <angiosperm> Species 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 230000002441 reversible effect Effects 0.000 description 3
- 238000012935 Averaging Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 229910052799 carbon Inorganic materials 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000011002 quantification Methods 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 230000001131 transforming effect Effects 0.000 description 2
- 241001025261 Neoraja caerulea Species 0.000 description 1
- 238000012952 Resampling Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000010363 phase shift Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/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/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
-
- 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/1887—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 variable length codeword
-
- 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
-
- 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/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
-
- 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
- H04N19/82—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Image Processing (AREA)
Abstract
Aparato y método para filtrar imágenes reconstruidas, en particular imágenes de vídeo, con filtros multiplicativos adaptativos. La eficacia de la operación de filtrado se incrementa restringiendo los valores admisibles de los coeficientes de filtro a aquellos que tienen sólo un número limitado de "unos" en la representación binaria. (Traducción automática con Google Translate, sin valor legal)
Description
DESCRIPCIÓN
Método y aparato para un filtrado de imágenes con coeficientes multiplicadores adaptativos
Campo técnico
Las realizaciones de la invención se refieren al campo del procesamiento de imágenes, por ejemplo, a la codificación de imágenes fijas y/o de imágenes de vídeo. Se proporcionan nuevos métodos y aparatos para filtrar imágenes con un filtro que tiene unos coeficientes de filtro multiplicadores adaptativos.
Antecedentes
La codificación de vídeo (codificación y decodificación de vídeo) se usa en una amplia gama de aplicaciones de vídeo digital, por ejemplo, la transmisión de televisión digital, la transmisión de vídeo por internet y redes móviles, aplicaciones conversacionales en tiempo real tales como los chats de vídeo y las videoconferencias, los DVD y los discos de Blu-ray, los sistemas de adquisición y edición de contenido de vídeo y las cámaras grabadoras de las aplicaciones de seguridad.
Desde que se desarrolló el enfoque de codificación de vídeo híbrido basado en bloques en el estándar H.261 en 1990, se han desarrollado nuevas técnicas y herramientas de codificación de vídeo que han formado la base para nuevos estándares de codificación de vídeo. Uno de los objetivos de la mayoría de los estándares de codificación de vídeo era lograr tasas de bits más bajas que las de sus predecesores sin sacrificar la calidad de la imagen. Otros estándares de codificación de vídeo comprenden el estándar de vídeo MPEG-1, el estándar de vídeo MPEG-2, ITU-T H.262/MPEG-2, ITU-T H.263, ITU-T H.264/MPEG-4, parte 10, Advanced Video Coding (AVC), ITU-T H.265 y High Efficiency Video Coding (HEVC) y las ampliaciones, por ejemplo, las ampliaciones de escalabilidad y/o tridimensionales (3D) de estos estándares.
En la figura 1 se proporciona un diagrama de bloques esquemático que ilustra una realización de un sistema 300 de codificación, el cual se describirá con más detalle más adelante.
La figura 2 es un diagrama de bloques que muestra una estructura de ejemplo de un codificador de vídeo, en el que se puede implementar la invención y que también se describirá con más detalle más adelante.
En particular, el codificador 100 ilustrado incluye un “filtro 120 de bucle” en el que se puede aplicar la operación de filtrado según la invención. Sin embargo, de manera más general, la operación de filtrado es aplicable en otras ubicaciones del códec, por ejemplo, en un filtro de interpolación. Aún más generalmente, la invención aplica no solo a la codificación de vídeo, sino también a la codificación de imágenes fijas.
La figura 3 es un diagrama de bloques que muestra una estructura de ejemplo de un decodificador de vídeo, en el que se puede implementar la invención y que también se describirá con más detalle más adelante. Específicamente, la invención es aplicable en, por ejemplo, el filtro 220 de bucle.
En lo que sigue se resumirá parte de la información básica sobre el filtrado adaptativo.
El filtrado adaptativo para la codificación de vídeo sirve para minimizar el error cuadrático medio entre originales y muestras decodificadas usando un filtro adaptativo basado en la técnica de Wiener. En particular, el filtro de bucle adaptativo (ALF, por sus siglas en inglés) propuesto está ubicado en la última etapa de procesamiento de cada imagen y puede considerarse una herramienta para detectar y corregir artefactos de etapas anteriores. Los coeficientes de filtro adecuados vienen determinados por el codificador y señalizados explícitamente al decodificador.
Puede encontrarse información general sobre el filtrado adaptativo en el artículo “Adaptive Loop Filtering for Video Coding” , de Chia-Yang Tsai, Ching-Yeh Chen, Tomoo Yamakage, In Suk Chong, Yu-Wen Huang, Chih-Ming Fu, Takayuki Itoh, Takashi Watanabe, Takeshi Chujoh, Marta Karczewicz y Shaw-Min Lei, publicado en: IEEEJournal of Selected Topics in Signal Processing(vol. 7, n.° 6, diciembre 2013).
La descripción dada en el documento anterior describe una implementación específica de una operación de filtrado con coeficientes de filtro adaptativos. Los principios generales de la operación se pueden describir de la siguiente manera.
Por lo general, la ecuación de filtrado es la siguiente:
L/2L/2
r\í j ) =yf(k, l ) x R ( i k,j l)
k ——L /2 1 — —L /2
Donde R(ij) es una muestra en una trama de imagen antes del filtrado en la coordenada(i,j).
R'(i,j) es una muestra en una trama de imagen después del filtrado. f(k,l) son los coeficientes de filtro.
En la figura 4 se ha representado un núcleo de filtro de ejemplo. En este ejemplo, C20 es la coordenada central del núcleo de filtro (k=0, l=0) y L es igual a 8.
En el ejemplo, el núcleo de filtro es simétrico alrededor del centro. Puede que esto no sea cierto en todos los casos. En caso de utilizarse una aritmética de números enteros, la ecuación de filtrado puede escribirse como:
Donde N es un número de un desplazamiento de bits de la salida, es decir, la salida se divide por un factor de normalización. En particular, N puede estar predefinido. El“desfase"es un escalar que sirve para compensar la pérdida que tiene lugar al realizar la aritmética de números enteros. En caso de un desplazamiento de bits en N, el desfase puede ser 2(N-1). En la ecuación anterior, los coeficientes de filtrado f(k,l) solo pueden tener valores que sean números enteros y no números fraccionarios. La implementación de la ecuación de filtrado según la aritmética de números enteros es importante a la hora de garantizar implementaciones precisas en elhardware.La operación de desplazamiento a la derecha “ >>N” tiene el efecto de una división por 2N seguida de una operación de redondeo hacia abajo.
Normalmente (aunque no necesariamente), se cumple la siguiente ecuación si no se desea que haya ningún cambio en el nivel de iluminación promedio.
En el codificador, los coeficientes de filtro se estiman minimizando el valor esperado del error entre el píxel original y el píxel filtrado:
En la ecuación anterior, O(i,j) denota la muestra de la imagen original.
La figura 5 muestra algunas formas de filtro ejemplares típicas para los filtros adaptativos. El dibujo de la izquierda muestra un filtro de diamante de 5^5 (filtro de 13 tomas con 7 coeficientes únicos), el dibujo central, un filtro de diamante de 7x7 (filtro de 25 tomas con 13 coeficientes únicos) y el dibujo de la derecha, un filtro de diamante de 9x9 (filtro de 41 tomas con 21 coeficientes únicos).
La expresión filtrado “ adaptativo” se refiere al hecho de que el proceso de filtrado se puede ajustar mediante el codificador. Esto afecta, por ejemplo, a la forma de filtro, al tamaño de filtro, al número de coeficientes de filtrado y a los valores de los coeficientes de filtrado. Estos datos, conocidos también como “ sugerencias de filtro” se señalizan al decodificador.
El filtrado adaptativo conlleva el siguiente problema cuando se aplica a realizaciones de filtrado que incluyen una multiplicación, es decir, en las que los coeficientes de filtro son los denominados coeficientes multiplicativos o multiplicadores. En otras palabras, el siguiente problema que la invención pretende resolver se refiere al filtrado con coeficientes de filtro adaptativos, en el que los coeficientes de filtro que se usan en la operación de multiplicación pueden adaptarse (modificarse) individualmente. En este sentido, individualmente significa para cada imagen (imagen, trama) y/o para cada píxel y/o para cada coeficiente.
El problema es que la implementación de la operación de multiplicación es costosa, especialmente en implementaciones enhardwarededicado. La aplicación de filtro requiere un número comparativamente grande de multiplicaciones de operaciones de filtrado (p. ej., 41 multiplicaciones por píxel en el caso de un filtro con forma de diamante de 9^9, tal y como se muestra en la fig. 4).
Esto se ilustra con más detalle más adelante.
Supongamos que queremos multiplicar dos enteros de ocho bits sin signo. El coeficiente de filtro es C y el píxel de muestra A.
El proceso de multiplicación se puede descomponer en 8 multiplicaciones de un bit, cada una de las cuales se puede implementar como una operación de desplazamiento de bits en aritmética binaria y 7 operaciones de suma, tal y como se muestra a continuación. Por lo tanto, 1 multiplicación equivale aproximadamente a 7 sumas.
El problema es que el proceso de multiplicación requiere una gran cantidad de computación. Por lo tanto, cuesta implementarlo enhardwarededicado.
En el presente documento, el coeficiente C de filtro sin signo de 8 bits se muestra en representación binaria, donde C[0] es el bit menos significativo del coeficiente C y C[7] es el bit más significativo. Igualmente, A[7], A[6], ... A[0] son los bits que corresponden a, del bit más significativo al bit menos significativo, en ese orden. Se demuestra la operación P = C*A en aritmética binaria y el resultado se muestra en la fila más inferior.
En el ejemplo de la figura 4, el núcleo de filtro incluye 41 tomas de filtro, lo que significa que, para procesar una muestra de píxeles, son necesarias 41 operaciones de multiplicación.
Cabe señalar que la invención y el problema descrito anteriormente que esta resuelve están relacionados específicamente con un filtrado adaptativo con coeficientes de filtro multiplicador. El problema no aplica a filtros fijos y, en particular, a operaciones de filtrado en las que se empleen múltiples filtros fijos.
Un ejemplo de empleo de múltiples filtros fijos es un filtrado por interpolación para interpolar en posiciones de píxeles fraccionarias en la interpredicción, que se ilustra en la figura 6.
Muchos códecs conocidos emplean un filtrado por interpolación utilizando filtros de interpolación fijos. Aunque los coeficientes de filtro son fijos para un filtro, existen múltiples filtros para distintas posiciones fraccionarias (las posiciones de medio píxel y de cuarto de píxel en el dibujo). En este ejemplo, todo el conjunto de filtros se adapta basándose en el vector de movimiento, pero los coeficientes de filtro no se adaptan individualmente.
En la figura, los círculos grandes corresponden a posiciones de muestra reales en una imagen y los círculos más pequeños son las posiciones fraccionarias que se generan al aplicar la operación de filtrado de interpolación. En el ejemplo específico, entre dos posiciones de muestra de imagen reales hay 3 posiciones fraccionarias (punto de imagen —pel— del cuarto izquierdo, pel de la mitad y pel del cuarto derecho). En el lado izquierdo del dibujo se muestra un filtro de interpolación aplicado para interpolar posiciones de medio píxel (pel de la mitad). En el lado derecho del dibujo se ha ilustrado un filtro de interpolación que hay que utilizar en posiciones de cuarto de píxel (pel de cuarto). Aunque estos filtros son diferentes entre sí, cada filtro de interpolación es un filtro fijo. Tal y como se ha indicado, el ejemplo de la figura 6 se ha proporcionado únicamente a efectos ilustrativos y no forma parte de la invención.
En el documento US 2012/0183081 A1 se describe un filtro de bucle paramétrico en el que se utiliza un conjunto de filtros fijos para eliminar o reducir el ruido y los artefactos introducidos durante la codificación de vídeo. Se puede establecer un umbral para obligar a poner a cero todos los coeficientes de filtro que sean más pequeños que este umbral. Igualmente, en el documento EP 1626499 A1 se describe redondear a cero unos coeficientes de filtro que tienen unos valores menores que un valor máximo y que utilizan un circuito de desplazamiento de bits en vez de multiplicadores.
En el documento “ Efficient implementation of adaptive interpolation filters for low complexity video coding” , de K. Ugur y otros, IEEE TRANSACTIONS ON CONSUMER ELECTRONICS, IEEE SERVICE CENTER, NUEVA YORK, NY, EE. UU., 1 de febrero de 2009, vol. 55, n.° 1, págs. 257-263, se describen métodos para implementar técnicas de filtrado por interpolación adaptativa para la codificación de vídeo.
En el documento “ Coding of coefficients of two-dimensional non-separable adaptive Wiener interpolation filter” , de Y. Vatis y otros, VISUAL COMMUNICATIONS AND IMAGE PROCESSING, 20-1-2004 - 20-1-2004, SAN JOSE, 12 de julio de 2005, vol. 5960, págs. 623 a 631, se describen técnicas de compresión de vídeo que incluyen una codificación de los errores de predicción de coeficiente de filtro.
La invención tiene por objeto proporcionar un concepto mejorado de filtrado adaptativo multiplicativo que pueda simplificar la operación de multiplicación y reducir el esfuerzo realizado para ejecutar la operación de multiplicación.
Resumen
Las realizaciones de la invención están definidas por las características de las reivindicaciones independientes y otras implementaciones ventajosas de las realizaciones, por las características de las reivindicaciones dependientes.
Según un primer aspecto de la invención, se proporciona un aparato para filtrar un conjunto de muestras de una imagen usando un filtro que tiene unos coeficientes multiplicadores adaptativos representados por números enteros. El aparato comprende una circuitería de procesamiento que está configurada para determinar el valor de al menos un coeficiente multiplicador del filtro para que esté dentro de un conjunto de valores permitidos, con el fin de que la representación binaria del valor absoluto del al menos un coeficiente multiplicador con un número L predeterminado de dígitos incluya al menos un “ cero” y para filtrar el conjunto de muestras de una imagen con el filtro.
Según un segundo aspecto de la invención, se proporciona un método para filtrar un conjunto de muestras de una imagen usando un filtro que tiene unos coeficientes multiplicadores adaptativos representados por números enteros. El método comprende el paso de determinar el valor de al menos un coeficiente multiplicador del filtro para que esté dentro de un conjunto de valores permitidos, con el fin de que la representación binaria del valor absoluto del al menos un coeficiente multiplicador con un número L predeterminado de dígitos incluya al menos un “cero” y el paso de filtrar el conjunto de muestras de una imagen con el filtro.
Según la presente descripción, un conjunto de muestras de una imagen puede ser, por ejemplo, una muestra de una señal de vídeo o una señal de imagen fija. La circuitería de procesamiento puede implementarse mediante cualquier combinación desoftwarey/o dehardware.En particular, el conjunto de valores permitidos puede ser un conjunto predeterminado de valores permitidos. En general, la invención también es aplicable a otros conjuntos de muestras de señal que no sean imágenes, por ejemplo, señales que incluyan datos de audio.
El enfoque particular de la invención consiste en restringir los valores que pueden tomar los coeficientes de filtro de un filtro de multiplicación adaptativa de una manera tal, que se simplifique la operación de multiplicación. Específicamente, los valores permitidos de los coeficientes de filtro se restringen para que solo se permita un número limitado de “ unos” en un número predeterminado de dígitos binarios para expresar los valores absolutos. Esto permite simplificar las operaciones de multiplicación para el filtrado y, por tanto, hace que la operación de filtrado sea más eficiente.
Tal y como se mostrará más adelante, cuanto más pequeño sea el número de “ unos” permitidos en un número global predeterminado de dígitos binarios, mayor será el aumento de la eficiencia a la hora de realizar la operación de filtrado. Por ejemplo, se puede lograr el mayor aumento posible de la eficiencia si todo valor que puedan tomar los valores de coeficiente incluye únicamente hasta un único “ 1 ” , es decir, como mucho un “ 1 ” .
De acuerdo con unas realizaciones, el valor absoluto más grande del conjunto de valores permitidos se restringe a un valor máximo Nmáx predeterminado.
De acuerdo con unas realizaciones, la representación binaria del valor absoluto del al menos un coeficiente multiplicador incluye como mucho dos “ unos” . Más específicamente, la representación binaria del valor absoluto del al menos un coeficiente multiplicador incluye como mucho un “ uno” . Tal y como se indicó anteriormente y como se describirá detalladamente más adelante, la simplificación a la hora de realizar la operación de multiplicación para el filtrado y, por tanto, el aumento y la eficiencia de procesamiento son mayores cuanto más ceros (y, por tanto, menos unos) haya en la representación binaria de los valores de coeficiente permitidos. Así, el caso más eficiente es aquel en el que solo hay un “ uno” , mientras que, por ejemplo, el resultado sigue siendo bueno si se permiten dos “ unos” . Naturalmente, lo que resulta beneficioso depende mucho de los pormenores de la situación, y, en particular, en el caso de filtros grandes, tener también tres o más “ unos” puede seguir siendo beneficioso.
En general, el conjunto de valores permitidos es aplicable a al menos un coeficiente multiplicador del filtro.
De acuerdo con las realizaciones, el conjunto de valores permitidos se aplica a todos los coeficientes multiplicadores del filtro.
De acuerdo con las realizaciones alternativas, los coeficientes multiplicadores se agrupan además en al menos dos grupos y los coeficientes multiplicadores de uno de los grupos se restringen al conjunto de valores permitidos. Los coeficientes multiplicadores del otro u otros grupos pueden tomar, por ejemplo, todos los valores que están dentro de un intervalo predeterminado o pueden restringirse de acuerdo con otras reglas predeterminadas. Más específicamente, se permite que los coeficientes multiplicadores de otro de los grupos tomen, por ejemplo, todos los valores que están dentro de un intervalo definido por un máximo predeterminado del valor absoluto.
De acuerdo con las realizaciones, un conjunto de muestras de una imagen significa un conjunto de muestras de una imagen de vídeo. Más específicamente, el aparato puede estar configurado para adaptar individualmente los coeficientes multiplicadores para cada imagen y cada píxel.
De acuerdo con otro aspecto particular de la invención, se proporciona un aparato para codificar un conjunto actual de muestras de una imagen que incluye una pluralidad de píxeles. El aparato comprende un codificador que tiene un decodificador para reconstruir el conjunto actual y un aparato según el primer aspecto de la invención para filtrar el conjunto reconstruido.
De acuerdo con las realizaciones, dicho aparato de codificación comprende además una circuitería de procesamiento, que está configurada para asignar los valores de coeficiente multiplicadores a palabras de código binarias y para incluir las palabras de código en un flujo de bits para transmitirse a un aparato de decodificación.
Más específicamente, la longitud de las palabras de código depende del número de valores de coeficiente multiplicador diferenciados. En otras palabras, hay tantas palabras de código como posibles valores de coeficiente de filtro haya. La asignación de valores a palabras de código (que es una asignación unívoca) puede ser una asignación fija o puede cambiar dependiendo de una información auxiliar señalizada.
De acuerdo con las realizaciones, la circuitería de procesamiento está configurada además para realizar una predicción de los coeficientes multiplicadores del filtro y para determinar unos coeficientes multiplicadores residuales comparando los valores realmente determinados con los valores predichos resultantes de la predicción. La asignación a palabras de código binarias se aplica entonces a los coeficientes multiplicadores residuales. En este caso, en el flujo de bits podría incluirse además una información de control de predicción para que un aparato de decodificación que reciba el flujo de bits esté al tanto del método de predicción aplicado y pueda reconstruir los coeficientes multiplicadores del filtro a partir de los coeficientes multiplicadores residuales codificados. Alternativamente, el método de predicción aplicado puede predefinirse y, por tanto, aplicarse de la misma manera en el codificador y el decodificador sin ninguna información auxiliar transmitida. Posibles métodos de predicción pueden incluir, aunque no de forma limitativa, una predicción usando predictores de filtro predefinidos y una predicción a partir de coeficientes de filtro previamente señalizados. Como los valores de coeficiente de filtro residuales, que expresan la diferencia entre un coeficiente de filtro real y el respectivo coeficiente de filtro predicho, son por lo general más pequeños en valor absoluto que los coeficientes reales, la cantidad y, por tanto, el tamaño de las palabras de código pueden ser más pequeños, lo que adicionalmente reduce la información que se debe señalizar al decodificador.
Alternativamente, la asignación de coeficientes multiplicadores a palabras de código para su inclusión en el flujo de bits se puede realizar en los coeficientes multiplicadores determinados según el primer aspecto de la invención, sin realizar un procesamiento predictivo.
De acuerdo con otro aspecto más de la invención, se proporciona un aparato para decodificar un conjunto codificado actual de unas muestras de una imagen que incluye una pluralidad de píxeles. El aparato comprende un decodificador para reconstruir el conjunto actual y un aparato según el primer aspecto de la invención para filtrar el conjunto reconstruido.
De acuerdo con las realizaciones, la circuitería de procesamiento del aparato según el primer aspecto de la invención está configurada además para obtener unos coeficientes multiplicadores a partir de palabras de código binarias incluidas en un flujo de bits recibido mediante la aplicación de una operación de asignación.
En particular, los coeficientes multiplicadores obtenidos pueden ser los coeficientes de filtro que hay que utilizar para realizar el filtrado. Alternativamente, los coeficientes multiplicadores obtenidos pueden ser coeficientes multiplicadores residuales que representan la diferencia entre los valores de coeficiente reales y coeficientes multiplicadores predichos según un plan de predicción. El plan de predicción puede venir indicado por una información de control de predicción incluida además en el flujo de bits recibido. En ese caso, la circuitería de procesamiento está configurada además para determinar los valores de los coeficientes de filtro, reconstruyéndolos a partir de los coeficientes multiplicadores residuales obtenidos y de la información de control de predicción. Alternativamente, el plan de predicción (método de predicción) puede predefinirse y, por tanto, aplicarse de la misma manera en el codificador y en el decodificador sin ninguna información de control de predicción transmitida. La circuitería de procesamiento determina entonces los valores de los coeficientes de filtro, reconstruyéndolos a partir de los coeficientes multiplicadores residuales obtenidos. Según las realizaciones, la determinación por parte de la circuitería de procesamiento incluye además realizar una determinación en cuanto a si el valor determinado del al menos un coeficiente multiplicador, obtenido directamente del flujo de bits recibido mediante la operación de asignación o por reconstrucción a partir de los coeficientes multiplicadores residuales obtenidos, está o no dentro del conjunto de valores permitidos y, de no ser así, convertir el valor determinado en el valor más próximo que esté dentro del conjunto de valores permitidos.
Así, se garantiza que los coeficientes de filtro que se aplican a las muestras de imagen reconstruidas obedecen las reglas según la invención.
Los detalles de una o más realizaciones se establecen en los dibujos adjuntos y la descripción de más adelante. Otras características, objetos y ventajas resultarán evidentes a partir de la descripción, los dibujos y las reivindicaciones.
Breve descripción de los dibujos
En lo que sigue, se describen con más detalle realizaciones de la invención, haciendo referencia a las figuras y los dibujos adjuntos, en los que:
La figura 1 es un diagrama de bloques que muestra un ejemplo de un sistema de codificación de vídeo configurado para implementar realizaciones de la invención;
la figura 2 es un diagrama de bloques que muestra un ejemplo de un codificador de vídeo configurado para implementar realizaciones de la invención;
la figura 3 es un diagrama de bloques que muestra una estructura de ejemplo de un decodificador de vídeo configurado para implementar realizaciones de la invención;
la figura 4 muestra un ejemplo de un núcleo de filtro al que se puede aplicar la invención;
la figura 5 muestra ejemplos de formas de filtro típicas para filtros adaptativos a los que se puede aplicar la invención; la figura 6 muestra, como ejemplo comparativo, un ejemplo de múltiples filtros fijos que hay que aplicar en un filtrado de interpolación;
la figura 7 muestra un ejemplo de implementación particular de la invención;
la figura 8A muestra un procesamiento ejemplar en el lado del codificador para codificar y señalizar coeficientes de filtro;
la figura 8 muestra un procesamiento ejemplar en el lado del decodificador para decodificar y reconstruir coeficientes de filtro;
la figura 9 muestra un ejemplo de implementación particular de otra realización de la invención;
la figura 10 muestra un ejemplo de implementación particular de la invención y sirve para ilustrar el beneficio obtenido por medio de la invención; y
la figura 11 muestra un ejemplo más de un núcleo de filtro al que se puede aplicar la invención.
En los dibujos, signos de referencia idénticos hacen referencia a características idénticas o, al menos, funcionalmente equivalentes.
Descripción detallada de las realizaciones
En la siguiente descripción, se hace referencia a las figuras adjuntas, que forman parte de la descripción y que muestran, a modo de ilustración, aspectos específicos de realizaciones de la invención o aspectos específicos en los que pueden usarse realizaciones de la presente invención. Se entiende que las realizaciones de la invención pueden usarse en otros aspectos y comprender cambios estructurales o lógicos no representados en las figuras. Por lo tanto, la siguiente descripción detallada no debe tomarse en sentido limitativo y el alcance de la invención está definido por las reivindicaciones adjuntas.
Por ejemplo, se entiende que una descripción en relación con un método descrito también puede ser válida para un dispositivo o sistema correspondiente configurado para realizar el método y viceversa. Por ejemplo, si se describen uno o una pluralidad de pasos de método específicos, un dispositivo correspondiente puede incluir una o una pluralidad de unidades, por ejemplo, unidades funcionales, para realizar uno o una pluralidad de pasos de método descritos (p. ej., una unidad que realiza el paso o la pluralidad de pasos, o una pluralidad de unidades que realizan cada una uno o más de la pluralidad de pasos), aunque tales una o más unidades no se describan o ilustren explícitamente en las figuras. Por otro lado, por ejemplo, si se describe un aparato específico basado en una o una pluralidad de unidades, por ejemplo, unidades funcionales, un método correspondiente puede incluir un paso para realizar la funcionalidad de la unidad o la pluralidad unidades (p. ej., un paso en el que se realiza la funcionalidad de la o la pluralidad de unidades, o una pluralidad de pasos, en cada uno de los cuales se realiza la funcionalidad de una o más de la pluralidad de unidades), aunque tal un paso o pluralidad de pasos no se describa o ilustre explícitamente en las figuras. Además, se entiende que las características de las diversas realizaciones y/o aspectos ilustrativos descritos en la presente memoria pueden combinarse entre sí, a menos que se indique específicamente lo contrario.
La codificación de vídeo se refiere normalmente al procesamiento de una secuencia de imágenes que forman un vídeo o una secuencia de vídeo. En el campo de la codificación de vídeo, en vez del término “ imagen“(picture),puede usarse “trama”(frame)o “ imagen”(image)como sinónimo. La codificación de vídeo comprende dos partes: una codificación de vídeo y una decodificación de vídeo. La codificación de vídeo se realiza en el lado de origen y normalmente comprende procesar (p. ej., por compresión) las imágenes de vídeo originales para reducir la cantidad de datos requeridos para representarlas (para lograr un almacenamiento y/o una transmisión más eficiente[s]). La decodificación de vídeo se realiza en un lado de destino y normalmente comprende el procesamiento inverso en comparación con el codificador para reconstruir las imágenes de vídeo. Se entenderá que las realizaciones que se refieren a la “ codificación” de imágenes de vídeo (o de imágenes en general, tal y como se explicará más adelante) se refieren tanto a la “ codificación” como a la “ decodificación” de imágenes de vídeo. La combinación de la parte codificadora y la parte decodificadora también se denomina CÓDEC (de COdificación y DECodificación).
En el caso de una codificación de vídeo sin pérdidas, las imágenes de vídeo originales pueden reconstruirse, es decir, las imágenes de vídeo reconstruidas tienen la misma calidad que las imágenes de vídeo originales (suponiendo que no haya ninguna pérdida de transmisión ni ninguna otra pérdida de datos durante el almacenamiento o la transmisión). En el caso de una codificación de vídeo con pérdidas, se realiza una compresión adicional, por ejemplo, por cuantificación, para reducir la cantidad de datos que representan las imágenes de vídeo, las cuales no pueden reconstruirse completamente en el decodificador, es decir, la calidad de las imágenes de vídeo reconstruidas es menor o peor que la calidad de las imágenes de vídeo originales.
Varios estándares de codificación de vídeo desde H.261 pertenecen al grupo de “ códecs de vídeo híbridos con pérdidas” (es decir, combinan predicción espacial y temporal en el dominio de la muestra y la codificación por transformación 2D para aplicar cuantización en el dominio de transformación). Cada imagen de una secuencia de vídeo se divide típicamente en un conjunto de bloques no superpuestos y la codificación se realiza típicamente en un nivel de bloque. En otras palabras, en el codificador normalmente se procesa el vídeo, es decir, se codifica, a nivel de bloque (bloque de vídeo), por ejemplo, usando una predicción (intraimagen) espacial y una predicción (interimagen) temporal para generar un bloque de predicción, restando el bloque de predicción del bloque actual (el bloque que se está procesando actualmente o que hay que procesar) para obtener un bloque residual, transformando el bloque residual y cuantificando el bloque residual en el dominio de transformada para reducir la cantidad de datos por transmitir (compresión), mientras que, en el decodificador, al bloque codificado o comprimido se le aplica el procesamiento inverso al del codificador para reconstruir el bloque actual para su representación. Además, el codificador duplica el bucle de procesamiento del decodificador, de manera que ambos generarán idénticas predicciones (p. ej., intrapredicciones e interpredicciones) y/o reconstrucciones para procesar, es decir, codificar los bloques posteriores.
Como el procesamiento de imágenes de vídeo (también denominado procesamiento de imágenes en movimiento) y el procesamiento de imágenes fijas (el término procesamiento comprende la codificación) comparten muchos conceptos y tecnologías o herramientas, en lo que sigue, el término “ imagen” (picture) o “ imagen” (image) y, de manera equivalente, la expresión “ datos de imagen”(picture data)o “ datos de imagen”(image data)se utilizan para referirse a una imagen de vídeo de una secuencia de vídeo (tal y como se ha explicado anteriormente) y/o a una imagen fija para evitar repeticiones y distinciones innecesarias entre imágenes de vídeo e imágenes fijas cuando no sea necesario. En caso de que la descripción se refiera únicamente a imágenes fijas(still pictures)(ostill images),se utilizará el término “ imagen fija”(still picture).
En las siguientes realizaciones de un codificador 100, se describen un decodificador 200 y un sistema 300 de codificación, basándose en las figuras 1 a 3 (antes de describir más detalladamente las realizaciones de la invención basándose en las figs. 7 a 9).
La figura 1 es un diagrama de bloques conceptual o esquemático, que ilustra una realización de un sistema 300 de codificación, por ejemplo, un sistema 300 de codificación de imágenes, en el que el sistema 300 de codificación comprende un dispositivo 310 de origen configurado para proporcionar datos codificados 330, por ejemplo, una imagen 330 codificada a, por ejemplo, un dispositivo 320 de destino para decodificar los datos 330 codificados.
El dispositivo 310 de origen comprende un codificador 100 o unidad 100 de codificación y puede comprender adicionalmente, es decir, opcionalmente, una fuente 312 de imágenes, una unidad 314 de preprocesamiento, por ejemplo, una unidad 314 de preprocesamiento de imágenes y una interfaz 318 de comunicación o unidad 318 de comunicación.
La fuente 312 de imágenes puede comprender o ser cualquier tipo de dispositivo de captura de imágenes, por ejemplo, para captar una imagen del mundo real, y/o cualquier tipo de dispositivo de generación de imágenes, por ejemplo, un procesador de infografías para generar una imagen animada por ordenador, o cualquier tipo de dispositivo para obtener y/o proporcionar una imagen del mundo real, una imagen animada por ordenador (p. ej., un contenido de pantalla o una imagen de realidad virtual [RV]) y/o cualquier combinación de las mismas (p. ej., una imagen de realidad aumentada [RA]). En lo que sigue, todos estos tipos de imágenes(picture/image)y cualquier otro tipo de imagen se denominarán “ imagen” o “ datos de imagen” , a menos que se describa específicamente lo contrario, mientras que las explicaciones anteriores con respecto al término “ imagen” , que abarca tanto “ imágenes de vídeo” como “ imágenes fijas” siguen siendo válidas, a menos que se especifique explícitamente lo contrario.
Una imagen (digital) es o puede considerarse como una matriz bidimensional o matriz de muestras con valores de intensidad. Una muestra en la matriz también puede denominarse píxel (forma corta del elemento de la imagen). El número de muestras en dirección horizontal y vertical (o eje) de la matriz o imagen define el tamaño y/o resolución de la imagen. Para la representación de color, normalmente se emplean tres componentes de color, es decir, la imagen puede representarse o incluir tres matrices de muestras. En el formato de RGB o el espacio de color, una imagen comprende una matriz de muestras roja, verde y azul correspondiente. Sin embargo, en la codificación de vídeo, cada píxel se representa por regla general en un formato de luminancia/crominancia o en un espacio de color, por ejemplo, YCbCr, que comprende un componente de luminancia indicada por Y (a veces también se usa L en su lugar) y dos componentes de crominancia indicadas por Cb y Cr. La componente Y de luminancia (o luma, para abreviar) representa el brillo o la intensidad de nivel de grises (p. ej., como en una imagen en escala de grises), mientras que las dos componentes Cb y Cr de crominancia (o croma, para abreviar) representan las componentes de cromaticidad o de información de color. En consecuencia, una imagen en formato YCbCr comprende una matriz de muestras de luminancia de valores de muestra de luminancia (Y), y dos matrices de muestras de crominancia de valores de crominancia (Cb y Cr). Las imágenes en formato RGB pueden convertirse o transformarse en formato YCbCr y viceversa, el proceso también se conoce como transformación de color o conversión. Si una imagen es monocromática, la imagen puede comprender solo una matriz de muestras de luminancia.
La fuente 312 de imágenes puede ser, por ejemplo, una cámara para capturar una imagen, una memoria, por ejemplo, una memoria de imágenes, que comprende o almacena una imagen previamente capturada o generada, y/o cualquier tipo de interfaz (interna o externa) para obtener o recibir una imagen. La cámara puede ser, por ejemplo, una cámara local o incorporada, integrada en el dispositivo fuente. La memoria puede ser una memoria local o integrada, por ejemplo, integrada en el dispositivo fuente. La interfaz puede ser, por ejemplo, una interfaz externa para recibir una imagen de una fuente de vídeo externa, por ejemplo, un dispositivo de captura de imágenes externas como una cámara, una memoria externa o un dispositivo de generación de imágenes externas, por ejemplo, un procesador externo de gráficos, ordenador o servidor. La interfaz puede ser cualquier tipo de interfaz, por ejemplo, una interfaz cableada o inalámbrica o una interfaz óptica, según cualquier protocolo de interfaz patentado o estandarizado. La interfaz para obtener los datos 313 de imagen puede ser la misma interfaz que, o parte de, la interfaz 318 de comunicación.
Las interfaces entre las unidades que están dentro de cada dispositivo incluyen conexiones de cable e interfaces USB. Las interfaces 318 y 322 de comunicación entre el dispositivo 310 de origen y el dispositivo 320 de destino incluyen conexiones de cable, interfaces USB e interfaces de radio.
A diferencia de la unidad 314 de preprocesamiento y del procesamiento realizado por la unidad 314 de preprocesamiento, la imagen 313 o los datos 313 de imagen también pueden denominarse imagen 313 sin procesar o datos 313 de imagen sin procesar.
La unidad 314 de preprocesamiento está configurada para recibir los datos 313 de imagen (sin procesar) y para someter a los datos 313 a un preprocesamiento de imagen para obtener una imagen 315 preprocesada o unos datos 315 de imagen preprocesados. El preprocesamiento realizado por la unidad 314 de preprocesamiento puede comprender, por ejemplo, un recorte, una conversión de formato de color (p. ej., de RGB a YCbCr), una corrección de color o una reducción de ruido.
El codificador 100 está configurado para recibir los datos 315 de imagen preprocesados y proporcionar unos datos 171 de imagen codificados (se darán más detalles basándose, por ejemplo, en la fig. 2).
La interfaz 318 de comunicación del dispositivo 310 de origen puede estar configurada para recibir los datos 171 de imagen codificados y transmitirlos directamente a otro dispositivo, por ejemplo, el dispositivo 320 de destino o cualquier otro dispositivo, para almacenarlos o reconstruirlos directamente o para procesar los datos 171 de imagen codificados, respectivamente, antes de almacenar los datos 330 codificados y/o de transmitir los datos 330 codificados a otro dispositivo, por ejemplo, el dispositivo 320 de destino o cualquier otro dispositivo para decodificarlos o almacenarlos.
El dispositivo 320 de destino comprende un decodificador 200 o unidad 200 de decodificación y puede comprender, además, opcionalmente, una interfaz 322 de comunicación o unidad 322 de comunicación, una unidad 326 de posprocesamiento y un dispositivo 328 de visualización.
La interfaz 322 de comunicación del dispositivo 320 de destino está configurada para recibir los datos 171 de imagen codificados o los datos 330 codificados, por ejemplo, directamente del dispositivo 310 de origen o de cualquier otra fuente, por ejemplo, una memoria, por ejemplo, una memoria de datos de imagen codificados.
La interfaz 318 de comunicación y la interfaz 322 de comunicación pueden estar configuradas para transmitir o recibir los datos 171 de imagen codificados o los datos 330 codificados a través de un enlace de comunicación directa entre el dispositivo 310 de origen y el dispositivo 320 de destino, por ejemplo, una conexión cableada o inalámbrica directa, incluida una conexión óptica, o a través de cualquier tipo de red, por ejemplo, una red cableada o inalámbrica, o cualquier combinación de las mismas, o de cualquier tipo de red privada o pública, o cualquier tipo de combinación de las mismas.
La interfaz 318 de comunicación puede estar configurada, por ejemplo, para empaquetar los datos 171 de imagen codificados en un formato apropiado, por ejemplo, paquetes, para su transmisión a través de un enlace de comunicación o de una red de comunicación, y puede comprender además una protección contra pérdidas de datos.
La interfaz 322 de comunicación, que es homóloga a la interfaz 318 de comunicación, puede estar configurada, por ejemplo, para desempaquetar los datos 330 codificados para obtener los datos 171 de imagen codificados y puede estar configurada, además, para realizar una protección contra pérdidas de datos y una recuperación de pérdidas de datos que, por ejemplo, comprende una ocultación de errores.
Tanto la interfaz 318 de comunicación como la interfaz 322 de comunicación pueden estar configuradas como interfaces de comunicación unidireccionales, tal y como se ha indicado en la figura 1 mediante la flecha en el caso de los datos 330 de imagen codificados, que va desde el dispositivo 310 de origen hasta el dispositivo 320 de destino, o interfaces de comunicación bidireccionales, y pueden estar configuradas para, por ejemplo, enviar y recibir mensajes, por ejemplo, para establecer una conexión, para acusar recibo de y/o reenviar datos perdidos o retrasados, incluidos datos de imagen, e intercambiar toda otra información relacionada con el enlace de comunicación y/o una transmisión de datos, por ejemplo, una transmisión de datos de imagen codificados.
El decodificador 200 está configurado para recibir los datos 171 de imagen codificados y proporcionar unos datos 231 de imagen decodificados o una imagen decodificada 231 (se darán más detalles basándose, por ejemplo, en la fig. 9).
El posprocesador 326 del dispositivo 320 de destino está configurado para posprocesar los datos 231 de imagen decodificados, por ejemplo, la imagen 231 decodificada, para obtener unos datos 327 de imagen posprocesados, por ejemplo, una imagen 327 posprocesada. El posprocesamiento realizado por la unidad 326 de posprocesamiento puede comprender, por ejemplo, una conversión de formato de color (p. ej., de YCbCr a RGB), una corrección de color, un recorte o un remuestreo, o cualquier otro procesamiento, para, por ejemplo, preparar los datos 231 de imagen decodificados para su visualización, por ejemplo, por parte del dispositivo 328 de visualización.
El dispositivo 328 de visualización del dispositivo 320 de destino está configurado para recibir los datos 327 de imagen posprocesados para mostrar la imagen, por ejemplo, a un usuario u observador. El dispositivo 328 de visualización puede ser o comprender cualquier tipo de pantalla para representar la imagen reconstruida, por ejemplo, una pantalla o monitor integrado o externo. Las pantallas pueden comprender, por ejemplo, tubos de rayos catódicos (CRT), pantallas de cristal líquido (LCD), pantallas de plasma, pantallas de diodos emisores de luz orgánicos (OLED) o cualquier otro tipo de pantalla, tales como proyectores, pantallas holográficas, aparatos para generar hologramas, etc.
Aunque en la figura 1 se han representado el dispositivo 310 de origen y el dispositivo 320 de destino como dispositivos separados, las realizaciones de dispositivos también pueden comprender ambos o ambas funcionalidades, es decir, el dispositivo 310 de origen o su funcionalidad correspondiente y el dispositivo 320 de destino o su funcionalidad correspondiente. En tales realizaciones, el dispositivo 310 de origen o su funcionalidad correspondiente y el dispositivo 320 de destino o su funcionalidad correspondiente pueden implementarse usando el (los) mismo(s)hardwarey/osoftwareo mediante unhardwarey/o unsoftwareindependiente(s) o cualquier combinación de los mismos.
Tal y como será evidente para el experto en la técnica basándose en la descripción, la existencia y la separación (exacta) de funcionalidades de las distintas unidades o funcionalidades dentro del dispositivo 310 de origen y/o del dispositivo 320 de destino que se muestra(n) en la figura 1 pueden variar dependiendo del dispositivo y de la aplicación propiamente dichos.
En lo que sigue, se darán algunos ejemplos no limitativos del sistema 300 de codificación, el dispositivo 310 de origen y/o el dispositivo 320 de destino.
Diversos productos electrónicos, tales como un teléfono inteligente, una tableta o una cámara portátil con pantalla integrada pueden considerarse ejemplos de un sistema 300 de codificación. Contienen un dispositivo 328 de visualización y la mayor parte de ellos también contiene una cámara integrada, es decir, una fuente 312 de imágenes. Los datos de imagen tomados por la cámara integrada se procesan y visualizan. El procesamiento puede incluir la codificación y la decodificación internas de los datos de imagen. Además, los datos de imagen codificados pueden almacenarse en una memoria integrada.
Alternativamente, estos productos electrónicos pueden tener interfaces cableadas o inalámbricas para recibir datos de imagen de fuentes externas, tales como Internet o cámaras externas, o para transmitir los datos de imagen codificados a pantallas o unidades de almacenamiento externas.
Por otro lado, las cajas de conexión no contienen una cámara integrada o una pantalla, sino que realizan un procesamiento de imágenes de datos de imagen recibidos para su visualización en un dispositivo de visualización externo. Una caja de conexión de este tipo puede estar representada por un circuito integrado auxiliar, por ejemplo.
Alternativamente, en un dispositivo de visualización, tal como un televisor con pantalla integrada, se puede incluir un dispositivo parecido a una caja de conexión.
Las cámaras de vigilancia sin pantalla integrada son otro ejemplo. Representan un dispositivo de origen con una interfaz para la transmisión de los datos de imagen capturados y codificados a un dispositivo de visualización externo o a un dispositivo de almacenamiento externo.
Por otro lado, dispositivos tales como las gafas inteligentes o las gafas 3D utilizadas, por ejemplo, para RA o RV representan un dispositivo 320 de destino. Reciben los datos de imagen codificados y los visualizan.
Por lo tanto, el dispositivo 310 de origen y el dispositivo 320 de destino que se muestra en la figura 1 son tan solo realizaciones de ejemplo de la invención y las realizaciones de la invención no se limitan a las mostradas en la figura 1.
El dispositivo 310 de origen y el dispositivo 320 de destino pueden comprender cualquiera de una amplia gama de dispositivos, incluido cualquier tipo de dispositivo portátil o estacionario, por ejemplo, ordenadores portátiles o notebook, teléfonos móviles, teléfonos inteligentes, tabletas u ordenadores de tableta, cámaras, ordenadores de sobremesa, cajas de conexión, televisores, dispositivos de visualización, reproductores de medios digitales, consolas de videojuegos, dispositivos de transmisión de vídeo en continuo, dispositivos receptores de difusiones o dispositivos similares. Para la codificación y la decodificación a nivel profesional y a gran escala, el dispositivo 310 de origen y/o el dispositivo 320 de destino puede(n) comprender además servidores y estaciones de trabajo, que pueden incluirse en redes de gran tamaño. Estos dispositivos pueden utilizar cualquier tipo de sistema operativo o ninguno.
Codificador y método de codificación
La figura 2 muestra un diagrama de bloques esquemático/conceptual de una realización de un codificador 100, por ejemplo, un codificador 100 de imágenes, que comprende una entrada 102, una unidad 104 de cálculo residual, una unidad 106 de transformación, una unidad 108 de cuantificación, una unidad 110 de cuantificación inversa y una unidad 112 de transformación inversa, una unidad 114 de reconstrucción, una memoria intermedia 116, un filtro 120 de bucle, una memoria 130 intermedia de imágenes decodificadas (DPB), una unidad 160 de predicción, que incluye una unidad 142 de interestimación, una unidad 144 de interpredicción, una unidad 152 de intraestimación, una unidad 154 de intrapredicción y una unidad 162 de selección de modo, una unidad 170 de codificación entrópica y una salida 172. Un codificador 100 de vídeo que se muestra en la figura 2 también puede denominarse codificador de vídeo híbrido o codificador de vídeo según un códec de vídeo híbrido. Cada unidad puede constar de un procesador y una memoria no transitoria para realizar sus pasos de procesamiento mediante la ejecución de un código almacenado en la memoria no transitoria por parte del procesador.
Por ejemplo, la unidad 104 de cálculo residual, la unidad 106 de transformación, la unidad 108 de cuantificación y la unidad 170 de codificación entrópica forman un camino de señal directo del codificador 100, mientras que, por ejemplo, la unidad 110 de cuantificación inversa, la unidad 112 de transformación inversa, la unidad 114 de reconstrucción, la memoria intermedia 116, el filtro 120 de bucle, la memoria intermedia 130 de imágenes decodificadas (DPB), la unidad 144 de interpredicción y la unidad 154 de intrapredicción forman un camino de señal inverso del codificador, en donde el camino de señal inverso del codificador corresponde al camino de señal del decodificador para proporcionar un procesamiento inverso para una reconstrucción y predicción idénticas (véase el decodificador 200 en la fig. 3).
El codificador está configurado para recibir, por ejemplo, por la entrada 102, una imagen 101 o un bloque 103 de imagen de la imagen 101, por ejemplo, una imagen de una secuencia de imágenes que forma un vídeo o una secuencia de vídeo. El bloque 103 de imagen también puede denominarse bloque de imagen actual o bloque de imagen por codificar, y la imagen 101, como imagen o imagen actual por codificar (en particular, en la codificación de vídeo, para distinguir la imagen actual de otras imágenes, por ejemplo, imágenes previamente codificadas y/o decodificadas de la misma secuencia de vídeo, i.e., la secuencia de vídeo que también comprende la imagen actual).
Partición
Las realizaciones del codificador 100 pueden comprender una unidad de partición (no representada en la fig. 2), por ejemplo, que también puede denominarse unidad de partición de imágenes, configurada para partir la imagen 103 en una pluralidad de bloques, por ejemplo, bloques como el bloque 103, normalmente en una pluralidad de bloques que no se solapan. La unidad de partición puede estar configurada para usar el mismo tamaño de bloque para todas las imágenes de una secuencia de vídeo y la correspondiente cuadrícula que define el tamaño de bloque, o para cambiar el tamaño de bloque entre imágenes o subconjuntos o grupos de imágenes y partir cada imagen en los bloques correspondientes.
Cada bloque de la pluralidad de bloques puede tener unas dimensiones cuadradas o dimensiones rectangulares más generales. Puede que no aparezcan bloques que sean zonas de imagen con formas no rectangulares.
Al igual que la imagen 101, el bloque 103 nuevamente es o puede considerarse como una matriz bidimensional o una matriz de muestras con valores de intensidad (valores de muestra), aunque de dimensiones más pequeñas que la imagen 101. En otras palabras, el bloque 103 puede comprender, por ejemplo, una matriz de muestras (p. ej., una matriz de luma en el caso de una imagen 101 monocromática) o tres matrices de muestras (p. ej., una matriz de luma y dos matrices de croma en el caso de una imagen 101 de color) o cualquier otro número y/o tipo de matrices dependiendo del formato de color aplicado. Un número de muestras en dirección (o eje) horizontal y vertical del bloque 103 define el tamaño del bloque 103.
El codificador 100 que se muestra en la figura 2 está configurado para codificar la imagen 101 bloque a bloque, por ejemplo, la codificación y la predicción se realizan por cada bloque 103.
Cálculo residual
La unidad 104 de cálculo residual está configurada para calcular un bloque 105 residual basándose en el bloque 103 de imagen y en un bloque 165 de predicción (a continuación, se dan más detalles acerca del bloque 165 de predicción), por ejemplo, restando valores de muestra del bloque 165 de predicción de valores de muestra del bloque 103 de imagen, muestra a muestra (píxel a píxel), para obtener el bloque 105 residual en el dominio de muestra.
Transformación
La unidad 106 de transformación está configurada para aplicar una transformación, por ejemplo, una transformada de frecuencia espacial o una transformada espacial lineal, por ejemplo, una transformada de coseno discreta (DCT, por sus siglas en inglés) o una transformada de seno discreta (DST, por sus siglas en inglés), a los valores de muestra del bloque 105 residual para obtener unos coeficientes 107 transformados en un dominio de transformada. Los coeficientes 107 transformados también se pueden denominar coeficientes residuales transformados y representar el bloque 105 residual en el dominio de transformada.
La unidad 106 de transformación puede estar configurada para aplicar unas aproximaciones enteras de la DCT/DST, tales como las transformadas fundamentales especificadas para los estándares HEVC/H.265. En comparación con una transformada DCT ortonormal, tales aproximaciones enteras normalmente se ajustan a escala mediante un factor específico. Para conservar la norma del bloque residual que se procesa usando transformadas directas e inversas, se aplican unos factores de ajuste de escala adicionales como parte del proceso de transformada. Los factores de ajuste de escala se eligen por lo general basándose en ciertas restricciones, como que los factores de ajuste de escala sean una potencia de dos para una operación de desplazamiento, una profundidad de bits de los coeficientes transformados, un compromiso entre la precisión y los costes de implementación, etc. En el caso de la transformada inversa, unos factores de ajuste de escala específicos son especificados por, por ejemplo, una unidad 212 de transformación inversa en un decodificador 200 (y, en el caso de la transformada inversa correspondiente, por, p. ej., una unidad 112 de transformación inversa en un codificador 100) y, en el caso de la transformada directa, unos factores de ajuste de escala correspondientes se pueden especificar por consiguientemente, por ejemplo, mediante una unidad 106 de transformación en un codificador 100.
Cuantificación
La unidad 108 de cuantificación está configurada para cuantificar los coeficientes 107 transformados para obtener coeficientes 109 cuantificados, por ejemplo, aplicando una cuantificación escalar o una cuantificación vectorial. Los coeficientes 109 transformados cuantificados también se pueden denominar coeficientes 109 residuales cuantificados. Por ejemplo, en el caso de la cuantificación escalar, se puede aplicar un ajuste de escala diferente para lograr una cuantificación más fina o más basta. Tamaños de etapa de cuantificación más pequeños corresponden a una cuantificación más fina, mientras que tamaños de etapa de cuantificación más grandes corresponden a cuantificación más basta. El tamaño de etapa de cuantificación apropiado puede indicarse mediante un parámetro de cuantificación (QP). El parámetro de cuantificación puede ser, por ejemplo, un índice de un conjunto predefinido de tamaños de etapa de cuantificación aplicables. Por ejemplo, unos parámetros de cuantificación pequeños pueden corresponder a una cuantificación fina (tamaños de etapa de cuantificación pequeños) y unos parámetro de cuantificación grandes pueden corresponder a una cuantificación basta (tamaños de etapa de cuantificación grandes) o viceversa. La cuantificación puede incluir una división por un tamaño de paso de cuantificación y una descuantificación correspondiente y/o inversa por parte de, por ejemplo, la unidad 110 de cuantificación inversa, puede incluir una multiplicación por el tamaño de paso de cuantificación. Las realizaciones según el estándar HEVC (High Efficiency Video Coding) pueden estar configuradas para usar un parámetro de cuantificación para determinar el tamaño de paso de cuantificación. Generalmente, el tamaño de etapa de cuantificación puede calcularse basándose en un parámetro de cuantificación usando una aproximación de punto fijo de una ecuación que incluye una división. Se pueden introducir unos factores de ajuste de escala adicionales para la cuantificación y la descuantificación a fin de restablecer la norma del bloque residual, que puede resultar modificada debido al ajuste de escala usado en la aproximación de punto fijo de la ecuación para obtener el tamaño de etapa de cuantificación y el parámetro de cuantificación. En una implementación de ejemplo, se pueden combinar el ajuste de escala de la transformada inversa y la descuantificación. Alternativamente, pueden usarse unas tablas de cuantificación personalizadas y señalizarse de un codificador a un decodificador en, por ejemplo, un flujo de bits. La cuantificación es una operación con pérdidas en la que la pérdida aumenta a medida que aumentan los tamaños de etapa de cuantificación.
Las realizaciones del codificador 100 (o, respectivamente, de la unidad 108 de cuantificación) pueden estar configuradas para dar salida a los ajustes de cuantificación, incluidos un plan de cuantificación y un tamaño de paso de cuantificación, por ejemplo, por medio del parámetro de cuantificación correspondiente, para que un decodificador 200 pueda recibir y aplicar la cuantificación inversa correspondiente. Las realizaciones del codificador 100 (o la unidad 108 de cuantificación) pueden estar configuradas para dar salida al plan de cuantificación y al tamaño del paso de cuantificación, por ejemplo, directamente o codificados entrópicamente a través de la unidad 170 de codificación entrópica o de cualquier otra unidad de codificación entrópica.
La unidad 110 de cuantificación inversa está configurada para aplicar la cuantificación inversa de la unidad 108 de cuantificación a los coeficientes cuantificados para obtener coeficientes 111 descuantificados, por ejemplo, aplicando el inverso del plan de cuantificación aplicado por la unidad 108 de cuantificación basándose en o usando el mismo tamaño de paso de cuantificación que la unidad 108 de cuantificación. Los coeficientes 111 descuantificados también pueden denominarse coeficientes 111 residuales descuantificados y corresponden -aunque, por regla general, no son idénticos a los coeficientes transformados debido a la pérdida por cuantificación-a los coeficientes 108 transformados.
La unidad 112 de transformación inversa está configurada para aplicar la transformación inversa de la transformación aplicada por la unidad 106 de transformación, por ejemplo, una transformada de coseno discreto (DCT) inversa o una transformada de seno discreto (DST) inversa, para obtener un bloque 113 inversamente transformado en el dominio de muestra. El bloque 113 inversamente transformado también puede denominarse bloque 113 descuantificado e inversamente transformado o bloque 113 residual e inversamente transformado.
La unidad 114 de reconstrucción está configurada para combinar el bloque 113 inversamente transformado y el bloque 165 de predicción para obtener un bloque reconstruido 115 en el dominio de muestra, por ejemplo, mediante la adición por muestreo de los valores de muestra del bloque 113 residual decodificado y los valores de muestra del bloque 165 de predicción.
La unidad 116 de almacenamiento intermedio (o “ memoria intermedia” 116, para abreviar), por ejemplo, un memoria 116 intermedia de líneas está configurada para almacenar temporalmente o almacenar el bloque reconstruido y los respectivos valores de muestra, por ejemplo, para realizar una intraestimación y/o una intrapredicción. En otras realizaciones, el codificador puede estar configurado para usar unos bloques reconstruidos no filtrados y/o los respectivos valores de muestra almacenados en la unidad 116 de almacenamiento intermedio para realizar cualquier tipo de estimación y/o de predicción.
Las realizaciones del codificador 100 pueden estar configuradas para que, por ejemplo, la unidad 116 de almacenamiento intermedio no solo se use para almacenar los bloques 115 reconstruidos para la intraestimación 152 y/o la intrapredicción 154, sino también para la unidad 120 de filtrado de bucle, y/o para que, por ejemplo, la unidad 116 de almacenamiento intermedio y la unidad 130 de almacenamiento intermedio de imágenes decodificadas formen una sola memoria intermedia. Otras realizaciones pueden estar configuradas para usar los bloques 121 filtrados y/o los bloques o muestras procedentes de la memoria 130 intermedia de imágenes decodificadas (en la fig. 2 no se muestra ninguno) como entrada o como la base para la intraestimación 152 y/o la intrapredicción 154.
La unidad 120 de filtro de bucle (o “ filtro 120 de bucle” , para abreviar) está configurada para filtrar el bloque 115 reconstruido para obtener un bloque 121 filtrado, por ejemplo, aplicando un filtro de compensación adaptable a la muestra (SAO, por sus siglas en inglés) de desbloqueo u otros filtros, por ejemplo, filtros de nitidez o de alisado o filtros colaborativos. El bloque 121 filtrado también puede denominarse bloque 121 reconstruido filtrado.
Las realizaciones de la unidad 120 de filtro de bucle pueden comprender una unidad de análisis de filtro y la unidad de filtro real, en las que la unidad de análisis de filtro está configurada para determinar unos parámetros de filtro de bucle para el filtro real. La unidad de análisis de filtro puede estar configurada para aplicar unos parámetros de filtro predeterminados y fijos al filtro de bucle real, seleccionar adaptativamente unos parámetros de filtro de un conjunto de parámetros de filtro predeterminados o calcular adaptativamente unos parámetros de filtro para el filtro de bucle real.
Las realizaciones de la unidad 120 de filtro de bucle pueden comprender (no se muestran en la fig. 2) un o una pluralidad de filtros (tales como unos componentes de filtro de bucle y/o subfiltros), por ejemplo, uno o más de distintos clases o tipos de filtros, por ejemplo, conectados en serie o en paralelo o en cualquier combinación de los mismos, en las que cada uno de los filtros puede comprender individual o conjuntamente con otros filtros de la pluralidad de filtros una unidad de análisis de filtro para determinar los respectivos parámetros de filtro de bucle, por ejemplo, tal y como se ha descrito en el párrafo anterior.
Las realizaciones del codificador 100 (respectivamente, la unidad 120 de filtro de bucle) pueden estar configuradas para dar salida a los parámetros de filtro de bucle, por ejemplo, directamente o codificados entrópicamente a través de la unidad 170 de codificación entrópica o de cualquier otra unidad de codificación entrópica, para que, por ejemplo, un decodificador 200 pueda recibir y aplicar los mismos parámetros de filtro de bucle para realizar una decodificación.
La memoria intermedia 130 de imágenes decodificadas (DPB, por sus siglas en inglés) está configurada para recibir y almacenar el bloque 121 filtrado. La memoria intermedia 130 de imágenes decodificadas puede estar configurada además para almacenar otros bloques previamente filtrados, por ejemplo, los bloques 121 previamente reconstruidos y filtrados de la misma imagen actual o de distintas imágenes, por ejemplo, las imágenes previamente reconstruidas, y puede proporcionar las imágenes completas previamente reconstruidas, es decir, decodificadas (y los bloques y muestras de referencia correspondientes) y/o una imagen actual parcialmente reconstruida (y los bloques y muestras de referencia correspondientes) para, por ejemplo, realizar una interestimación y/o interpredicción.
Otras realizaciones de la invención también pueden estar configuradas para usar los bloques previamente filtrados y los correspondientes valores de muestra filtrados de la memoria intermedia 130 de imágenes decodificadas para realizar cualquier tipo de estimación o de predicción, por ejemplo, una intraestimación y una intrapredicción, así como una interestimación y una interpredicción.
La unidad 160 de predicción, también denominada unidad 160 de predicción de bloques está configurada para recibir u obtener el bloque 103 de imagen (el bloque 103 de imagen actual de la imagen 101 actual) y datos de imagen decodificados o, al menos, reconstruidos, por ejemplo, muestras de referencia de la misma imagen (actual) procedentes de la memoria intermedia 116 y/o datos 231 de una o una pluralidad de imágenes previamente decodificadas procedentes de la memoria intermedia 130 de imágenes decodificadas, y para procesar tales datos para la predicción, es decir, para proporcionar un bloque 165 de predicción, que puede ser un bloque 145 interpredicho o un bloque 155 intrapredicho.
La unidad 162 de selección de modo puede estar configurada para seleccionar un modo de predicción (p. ej., un modo de intrapredicción o de interpredicción) y/o un bloque 145 o 155 de predicción correspondiente para que se utilice como el bloque 165 de predicción para el cálculo del bloque 105 residual y para la reconstrucción del bloque 115 reconstruido.
Las realizaciones de la unidad 162 de selección de modo pueden estar configuradas para seleccionar el modo de predicción (p. ej., de entre los admitidos por la unidad 160 de predicción), que proporciona la mejor coincidencia o, en otras palabras, el residuo mínimo (residuo mínimo significa una mejor compresión para la transmisión o el almacenamiento) o una sobrecarga de señalización mínima (sobrecarga de señalización mínima significa una mejor compresión para la transmisión o el almacenamiento) o que considera o encuentra un término medio entre ambos. La unidad 162 de selección de modo puede estar configurada para determinar el modo de predicción, basándose en una optimización de distorsión de tasa (RDO, por sus siglas en inglés), es decir, seleccionar el modo de predicción que proporciona una optimización de distorsión de tasa mínima o cuya distorsión de tasa asociada al menos cumple con un criterio de selección de modo de predicción.
En lo que sigue, se explicarán con más detalle el procesamiento de predicción (p. ej., por parte de la unidad 160 de predicción) y la selección de modo (p. ej., por parte de la unidad 162 de selección de modo) realizados por un codificador 100 de ejemplo.
Tal y como se ha descrito anteriormente, el codificador 100 está configurado para determinar o seleccionar el mejor modo de predicción o un modo de predicción óptimo de entre un conjunto de modos de predicción (predeterminados). El conjunto de modos de predicción puede comprender, p. ej., modos de intrapredicción y/o modos de interpredicción.
El conjunto de modos de intrapredicción puede comprender 32 modos de intrapredicción diferentes, por ejemplo, modos no direccionales como un modo DC (o de promedio) y un modo plano, o modos direccionales, por ejemplo, tales como los definidos en el estándar H.264, o puede comprender 65 modos de intrapredicción diferentes, por ejemplo, modos no direccionales como el modo DC (o de promedio) y un modo plano, o modos direccionales, por ejemplo, tales como los definidos en el estándar H.265.
El conjunto de (posibles) modos de interpredicción depende de las imágenes de referencia disponibles (i.e., las imágenes al menos parcialmente decodificadas anteriores, por ejemplo, almacenadas en la DPB 230) y otros parámetros de interpredicción, p.ej., si se utiliza la imagen de referencia completa o solo parte, por ejemplo, una zona de ventana de búsqueda alrededor de la zona del bloque actual, de la imagen de referencia para buscar un bloque de referencia que coincida de la mejor manera posible, y/o, por ejemplo, si se aplica o no una interpolación de píxel, por ejemplo, una interpolación de medio pel/semipel y/o de un cuarto de pel.
Además de los modos de predicción anteriores, se puede(n) aplicar un modo de omisión (skip) y/o un modo directo.
En otras palabras, la unidad 160 de partición puede estar configurada además para partir el bloque 103 en particiones de bloque más pequeñas o subbloques, por ejemplo, usando iterativamente una partición de árbol cuádruple (QT, por sus siglas en inglés), una partición binaria (BT, por sus siglas en inglés) o una partición de triple árbol (TT, por sus siglas en inglés) o cualquier combinación de las mismas, y para realizar, por ejemplo, la predicción para cada una de las particiones de bloque o cada uno de los subbloques, en donde la selección de modo comprende la selección de la estructura de árbol del bloque 103 partido y los modos de predicción aplicados a cada una de las particiones de bloque o cada uno de los subbloques.
La unidad 142 de interestimación, también denominada unidad 142 de estimación interimagen está configurada para recibir u obtener el bloque 103 de imagen (el bloque 103 de imagen actual de la imagen 101 actual) y una imagen 231 decodificada, o al menos uno o una pluralidad de bloques previamente reconstruidos, p.ej., bloques reconstruidos de una o una pluralidad de otras/distintas imágenes 231 previamente decodificadas, para la interestimación (o “ estimación interimagen” ). Por ejemplo, una secuencia de vídeo puede comprender la imagen actual y las imágenes 231 previamente decodificadas o, en otras palabras, la imagen actual y las imágenes 231 previamente decodificadas pueden ser parte de o formar una secuencia de imágenes que forman una secuencia de vídeo.
El codificador 100 puede estar configurado, por ejemplo, para seleccionar (obtener/determinar) un bloque de referencia de entre una pluralidad de bloques de referencia de las mismas o distintas imágenes de la pluralidad de otras imágenes y proporcionar una imagen de referencia (o un índice de imagen de referencia) y/o un desfase (un desfase espacial) entre la posición (coordenadas x e y) del bloque de referencia y la posición del bloque actual como parámetros 143 de interestimación a la unidad 144 de interpredicción. Este desplazamiento también se denomina vector de movimiento (MV). La interestimación también se denomina estimación de movimiento (ME, por sus siglas en inglés) y la interpredicción también predicción de movimiento (MP, por sus siglas en inglés).
La unidad 144 de interpredicción está configurada para obtener, por ejemplo, recibir, un parámetro 143 de interpredicción y realizar una interpredicción basándose en o usando el parámetro 143 de interpredicción para obtener un bloque 145 de interpredicción.
Aunque en la figura 2 se muestran dos unidades (o pasos) diferenciados para la intercodificación, a saber, la interestimación 142 y la interpredicción 152, ambas funcionalidades pueden realizarse como una sola (la interestimación normalmente requiere/comprende calcular un/el bloque de interpredicción, es decir, la o un “ tipo de” interpredicción 154), por ejemplo, probando iterativamente todos los modos de interpredicción posibles o un subconjunto predeterminado de modos de interpredicción posibles mientras se almacenan el mejor modo de interpredicción actual y el respectivo bloque de interpredicción, y utilizando el mejor modo de interpredicción actual y un respectivo bloque de interpredicción como el parámetro 143 de interpredicción (final) y el bloque 145 de interpredicción sin realizar otra vez la interpredicción 144.
La unidad 152 de intraestimación está configurada para obtener, por ejemplo, recibir, un bloque 103 de imagen (el bloque de imagen actual) y uno o una pluralidad de bloques previamente reconstruidos, por ejemplo, unos bloques vecinos reconstruidos de la misma imagen para realizar una intraestimación. El codificador 100 puede estar configurado, por ejemplo, para seleccionar (obtener/determinar) un modo de intrapredicción de entre una pluralidad de modos de intrapredicción y proporcionarlo como un parámetro 153 de intraestimación a la unidad 154 de intrapredicción.
Las realizaciones del codificador 100 pueden estar configuradas para seleccionar un modo de intrapredicción basándose en un criterio de optimización, por ejemplo, un residuo mínimo (p. ej., el modo de intrapredicción que proporciona el bloque 155 de predicción que es el más parecido al bloque 103 de imagen actual) o la distorsión de tasa mínima.
La unidad 154 de intrapredicción está configurada para determinar el bloque 155 de intrapredicción basándose en el parámetro 153 de intrapredicción, por ejemplo, el modo 153 de intrapredicción seleccionado.
Aunque en la figura 2 se muestran dos unidades (o pasos) diferenciados para la intracodificación, a saber, la intraestimación 152 y la intrapredicción 154, ambas funcionalidades pueden realizarse como una sola (la intraestimación normalmente requiere/comprende calcular un/el bloque de intrapredicción, es decir, la o un “ tipo de” intrapredicción 154), por ejemplo, probando iterativamente todos los modos de intrapredicción posibles o un subconjunto predeterminado de modos de intrapredicción posibles mientras se almacenan el mejor modo de intrapredicción actual y el respectivo bloque de intrapredicción, y utilizando el mejor modo de intrapredicción actual y un respectivo bloque de intrapredicción como el parámetro 153 de intrapredicción (final) y el bloque 155 de intrapredicción sin realizar otra vez la intrapredicción 154.
La unidad 170 de codificación entrópica está configurada para aplicar un algoritmo o plan de codificación entrópica (p. ej., un plan de codificación de longitud variable [VLC, por sus siglas en inglés], un plan de VLC adaptable al contexto [CALVC, por sus siglas en inglés], un plan de codificación aritmética o un plan de codificación aritmética binaria adaptable al contexto [CABAC, por sus siglas en inglés]) a los coeficientes 109 residuales cuantificados, los parámetros 143 de interpredicción, el parámetro 153 de intrapredicción y/o los parámetros de filtro de bucle, individual o conjuntamente (o no) para obtener unos datos 171 de imagen codificados a los que puede dar salida la salida 172, por ejemplo, en forma de un flujo 171 de bits codificado.
Decodificador
La figura 3 muestra un decodificador 200 de vídeo ejemplar configurado para recibir datos 171 de imagen codificados (p. ej., un flujo de bits codificado), por ejemplo, codificados por el codificador 100, para obtener una imagen decodificada 231.
El decodificador 200 comprende una entrada 202, una unidad 204 de decodificación entrópica, una unidad 210 de cuantificación inversa, una unidad 212 de transformación inversa, una unidad 214 de reconstrucción, una memoria intermedia 216, un filtro 220 de bucle, una memoria intermedia 230 de imágenes decodificadas, una unidad 260 de predicción, que incluye una unidad 244 de interpredicción, una unidad 254 de intrapredicción y una unidad 262 de selección de modo, y una salida 232.
La unidad 204 de decodificación entrópica está configurada para realizar una decodificación entrópica en los datos 171 de imagen codificados para obtener, por ejemplo, unos coeficientes 209 cuantificados y/o unos parámetros de codificación decodificados (no mostrados en la fig. 3), por ejemplo, cualquiera de o todos los parámetros 143 de interpredicción, el parámetro 153 de intrapredicción y/o los parámetros de filtro de bucle (decodificados).
En realizaciones del decodificador 200, la unidad 210 de cuantificación inversa, la unidad 212 de transformación inversa, la unidad 214 de reconstrucción, la memoria intermedia 216, el filtro 220 de bucle, la memoria intermedia 230 de imágenes decodificadas, la unidad 260 de predicción y la unidad 262 de selección de modo están configuradas para realizar el procesamiento inverso del codificador 100 (y de las respectivas unidades funcionales) para decodificar los datos 171 de imagen codificados.
En particular, la unidad 210 de cuantificación inversa puede ser idéntica en función a la unidad 110 de cuantificación inversa, la unidad 212 de transformación inversa puede ser idéntica en función a la unidad 112 de transformación inversa, la unidad 214 de reconstrucción puede ser idéntica en función a la unidad 114 de reconstrucción, la memoria intermedia 216 puede ser idéntica en función a la memoria intermedia 116, el filtro 220 de bucle puede ser idéntico en función al filtro 220 de bucle (con respecto al filtro de bucle real, ya que el filtro 220 de bucle no comprende por lo general una unidad de análisis de filtro para determinar los parámetros de filtro basándose en la imagen 101 original o en el bloque 103, sino que recibe [explícita o implícitamente] u obtiene los parámetros de filtro usados para la codificación de, por ejemplo, la unidad 204 de decodificación entrópica) y la memoria intermedia 230 de imágenes decodificadas puede ser idéntica en función a la memoria intermedia 130 de imágenes decodificadas.
La unidad 260 de predicción puede comprender una unidad 244 de interpredicción y una unidad 254 de intrapredicción, en la que la unidad 244 de interpredicción puede ser idéntica en función a la unidad 144 de interpredicción, y la unidad 254 de intrapredicción puede ser idéntica en función a la unidad 154 de intrapredicción. La unidad 260 de predicción y la unidad 262 de selección de modo están configuradas por regla general para realizar la predicción de bloque y/u obtener el bloque 265 predicho a partir de los datos 171 codificados únicamente (sin ninguna información más sobre la imagen 101 original) y para recibir u obtener (explícita o implícitamente) los parámetros 143 o 153 de predicción y/o la información sobre el modo de predicción seleccionado de, por ejemplo, la unidad 204 de decodificación entrópica.
El decodificador 200 está configurado para dar salida a la imagen 231 decodificada, por ejemplo, a través de la salida 232, para presentarse o mostrarse a un usuario.
Volviendo a la figura 1, la imagen 231 decodificada a la que se ha dado salida desde el decodificador 200 puede posprocesarse en el posprocesador 326. La imagen 327 posprocesada resultante puede transferirse a un dispositivo 328 de visualización interno o externo y visualizarse.
Detalles de realizaciones y ejemplos
La invención restringe los valores que pueden tomar los coeficientes de filtro de un filtro multiplicativo adaptativo de una manera tal, que se simplifique la operación de multiplicación. En el filtrado de un conjunto de muestras de señal de una imagen se utiliza un filtro con unos coeficientes multiplicadores adaptativos, donde los coeficientes multiplicadores están representados por números enteros. Como el valor más grande del valor absoluto de un coeficiente C es N, la representación binaria de N requiere L = ceil(log2(N)) dígitos binarios. En otras palabras, con L dígitos binarios se pueden expresar unos valores de coeficiente absolutos que van de cero (L “ ceros” ) a 2L-1 (L “ unos” ) (el signo del coeficiente está representado por un signo aparte, pero esto no se analiza aquí). Según el enfoque particular de la invención, este conjunto de valores se restringe para que cualquier valor que pueda tomar el coeficiente C incluya como mucho un número P<L de “ unos” (“ 1” ) en la representación binaria. Por ejemplo, se excluye el caso de todos los “ unos” (L “ unos” ).
Tal y como se mostrará más adelante, cuanto menor sea el número P de “ unos” permitidos, mejor será el aumento de la eficiencia y el rendimiento de la operación de filtrado. Por ejemplo, se puede lograr el mayor aumento posible de la eficiencia, si todo valor que pueda tomar el coeficiente C incluye solo hasta un único “ 1” , es decir, como mucho un “ 1 ” .
En lo que sigue, se describirán en detalle realizaciones y ejemplos de implementación particulares de la invención. Obsérvese que los valores ejemplares de parámetros que se dan más adelante son únicamente a efectos ilustrativos y el experto en la materia será consciente de que pueden sustituirse por cualquier otro valor posible que esté dentro del alcance de las reivindicaciones adjuntas.
En general, los coeficientes de filtro se implementan utilizando una precisión finita. Un coeficiente de filtro se representa usando L bits, junto con un bit de signo opcional. La cantidad L de bits depende del valor absoluto máximo del coeficiente. Específicamente, como el valor más grande del valor absoluto de un coeficiente C es N, la representación binaria de N requiere L = ceil(log2(N)) dígitos binarios.
La función ceil(x), denotada también como M o ceiling(x), asigna x al entero más pequeño mayor o igual que x. Según una primera realización ejemplar de la invención, como mucho uno de los L bits (i.e., excluyendo el bit de signo) de un coeficiente de filtro puede ser “ uno” (“ 1” ) al mismo tiempo. No se permiten otras posibilidades.
Por ejemplo:
Supóngase que L = 6 y que se utiliza un bit (el de más a la izquierda) para indicar el signo del coeficiente.
Se permiten, por ejemplo, los siguientes coeficientes de filtro: 0 (0000000), 1 (0000001), -1 (1000001), 2 (0000010), -2 (1000010), 4 (0000100), -4 (1000100), 8 (0001000), -8 (1001000), 16 (0010000) ..., -32 (1100000).
No se permiten, por ejemplo, los siguientes coeficientes de filtro: 3 (0000011), -15 (1001111), 31 (0011111) ... En este caso, se obtiene un beneficio, puesto que la restricción permite que la multiplicación pueda implementarse como una única operación de desplazamiento de bits.
La operación de desplazamiento de bits se puede representar matemáticamente como: f(X,M) = X * 2M, donde M es un número entero mayor o igual que 0. De acuerdo con una generalización de la realización anterior, como mucho M de L bits del coeficiente de filtro pueden ser “ 1” al mismo tiempo. No se permiten otras posibilidades.
Por ejemplo:
Supóngase que L = 6 y M = 2 y que se utiliza un bit para indicar el signo del coeficiente.
Se permiten, por ejemplo, los siguientes coeficientes de filtro: 0 (0000000), 3 (0000011), 9 (0001001), -4 (1000100), -9 (1001001), 18 (0010010), 33 (0100001) ...
No se permiten, por ejemplo, los siguientes coeficientes de filtro: 7 (0000111), -19 (1010011), 31 (0011111) ... En este caso, la restricción permite que la multiplicación pueda implementarse mediante dos operaciones de desplazamiento de bits y una operación de suma.
En el caso más general expuesto anteriormente, con una restricción M<L general se obtiene un beneficio, puesto que la restricción permite que la multiplicación se logre mediante M operaciones de desplazamiento de bits y M-1 operaciones de suma.
En los ejemplos dados anteriormente, se supone que el conjunto restringido de valores absolutos se aplica a todos los coeficientes de filtro de una multiplicación de un filtro adaptativo.
En lo que sigue, se describirá un ejemplo más complejo haciendo referencia a la figura 7, en el que se aplica una restricción según la invención, pero no a todos los coeficientes de filtro del filtro considerado.
En el ejemplo, en un primer paso, los coeficientes se agrupan en dos grupos. En el dibujo, el primer grupo corresponde a las posiciones de coeficiente indicadas por círculos abiertos en la parte central del filtro y el segundo grupo corresponde a las posiciones de coeficiente indicadas por círculos negros rellenos en el dibujo, en la parte periférica del filtro.
Los coeficientes de filtro del primer grupo pueden tomar cualquier valor dentro de un intervalo predeterminado. En el ejemplo ilustrado, se supone que el intervalo corresponde a un conjunto “ S1” , en donde S1 = [-511, ..., 511]. Esto corresponde a un número total de bits (excluyendo el bit de signo) de L = 9.
Los coeficientes de filtro del segundo grupo pueden tomar cualquier valor en un conjunto “ S2” , en donde S2 es un subconjunto de S1. Más específicamente, en un ejemplo, el conjunto S2 se define como S2 = [-32,-16,-8,-4,-2, 1,0,1,2,4,8,16,32]. Por consiguiente, los valores permitidos en el conjunto S2 están restringidos a aquellos que se pueden representar con un solo “ 1” en la representación binaria. Además, el valor absoluto máximo permitido está restringido a 32, es decir, se supone además que el número L está restringido a L = 6. Obsérvese en general que el número L se puede establecer por separado y de manera diferente para cada grupo. Además, la agrupación y la definición particulares de los conjuntos de los valores permitidos pueden cambiar de una imagen a otra (de trama a trama). Alternativamente, la agrupación y la definición de los conjuntos pueden ser diferentes para las distintas formas de filtro (p. ej., de diamante de 5x5, de diamante de 7x7, de diamante de 9x9, tal y como se describe en la fig. 5). Alternativamente, la agrupación y las definiciones pueden estar predefinidas.
En este ejemplo, el beneficio es que, en vez de una multiplicación de 9 bits, se emplea un desplazamiento de 1 bit para el conjunto S2. En el codificador ha de incluirse datos respectivos en el flujo de bits y señalizarse al decodificador, para que los coeficientes de filtro también puedan determinarse correctamente en el decodificador. Por supuesto, la aplicación de un conjunto restringido de valores de coeficiente permitidos da lugar a una reducción de la sobrecarga de señalización y, por tanto, a una codificación más eficiente, puesto que se necesitan menos bits para representar los coeficientes que hay que señalizar en el flujo de bits.
Más específicamente, es necesario que el valor de los coeficientes de filtro que se aplican mediante el codificador se codifique y transmita al decodificador. En el lado del codificador, los valores de los coeficientes de filtro se convierten en palabras de código binarias (de valor de filtro a palabra de código) a través de una tabla de asignación o de una función de asignación. Para interpretar los coeficientes de filtro correctamente, se ha de aplicar la misma operación de asignación en el decodificador (de palabra de código a valor de coeficiente de filtro).
La función o tabla de asignación puede ser diferente para S1 y S2. A continuación, se dan unas operaciones de asignación de ejemplo para los conjuntos S1 y S2 de coeficientes de filtro.
En el siguiente ejemplo, S1 viene dado por {0,1,... ,511} y S2 viene dado por {0,2,4,8,16,32} (solo se consideran los valores absolutos).
En el codificador y en el decodificador es necesario emplear las operaciones de asignación directa (en el codificador) e inversa (en el decodificador) para que el decodificador pueda interpretar correctamente los valores de coeficiente de filtro. En el ejemplo anterior, la operación de asignación de coeficientes de filtro es diferente para S2 y para S1, puesto que el número de valores diferenciados en S2 es mucho menor y es un desperdicio representar los coeficientes de filtro de S2 usando la asignación de S1. Por lo tanto, la invención da lugar a una reducción de la sobrecarga de señalización y, por tanto, a una codificación más eficiente, puesto que se necesitan menos bits para representar los coeficientes que hay que señalizar en el flujo de bits.
En lo que sigue, se dará una visión general de la señalización de coeficientes de filtro haciendo referencia a la figura 8. La figura 8A ilustra el procesamiento en el lado del codificador y la figura 8B ilustra el procesamiento en el lado del decodificador.
En el codificador, los coeficientes de filtro que hay que aplicar a las muestras reconstruidas se determinan según los valores de coeficiente permitidos que se determinen mediante el enfoque particular de la invención (paso S80).
Los coeficientes de filtro determinados se usan para filtrar las muestras de imagen reconstruidas (paso S82). Según la invención, los coeficientes de filtro que se aplican a las muestras de imagen reconstruidas tienen que obedecer las reglas que se establecen según la invención.
El siguiente paso de predicción de coeficientes de filtro (paso S84) es opcional. La predicción de coeficientes de filtro se puede aplicar opcionalmente para reducir la información que hay que señalizar al decodificador. Posibles métodos de predicción son una predicción utilizando unos predictores de filtro predefinidos y una predicción a partir de unos coeficientes de filtro previamente señalizados. Sin embargo, los métodos de predicción no se limitan a los que se ofrecen aquí a modo de ejemplo y se puede aplicar todo método de predicción adecuado que conozca un experto en la técnica.
En el siguiente paso (S86) se realiza una asignación de los coeficientes residuales a palabras de código binarias. Como el paso S84 de predicción anterior es opcional, obsérvese que, alternativamente, la asignación se aplica directamente a los coeficientes de filtro determinados en el paso S80.
Más específicamente, cada coeficiente de filtro de valor entero (residuo de coeficiente de filtro) se convierte en una palabra de código binaria antes de incluirse en el flujo de bits. Hay tantas palabras de código como valores de coeficiente de filtro posibles haya (valores de residuo de coeficientes de filtro). La asignación de valores a palabras de código (que es una asignación unívoca) puede ser una asignación fija o puede cambiar dependiendo de la información auxiliar señalizada.
En un paso S88 final, los coeficientes de filtro binarizados (residuales, opcionalmente), es decir, las palabras de código a las que se asignaron, se incluyen en el flujo de bits. Además, en caso de que en el paso S84 se realice una predicción, es necesario generar información de control de predicción e incluir dicha información de control de predicción en el flujo de bits, a fin de señalizar al decodificador la información necesaria sobre el procesamiento predictivo para poder realizar la reconstrucción.
En general, las operaciones aplicadas en el codificador se aplican en el decodificador en orden inverso. Esto se explicará más detalladamente a continuación haciendo referencia a la figura 8B.
En un paso S90 inicial, se analiza un flujo de bits recibido. Los coeficientes de filtro binarizados resultantes (i.e., las palabras de código transmitidas) representan opcionalmente los coeficientes de filtro residuales (si la predicción se aplicó en el lado del codificador). Esto se indica mediante la obtención adicional de información de control de predicción del flujo de bits analizado.
En cualquier caso, las palabras de código binarias se asignan mediante un procedimiento de asignación inverso (en comparación con el realizado en el codificador) a los coeficientes de filtro (o a coeficientes de filtro residuales) en un paso S92.
Por consiguiente, los coeficientes de filtro se determinan (reconstruyen) en el lado del decodificador (paso S94). Si se aplicó una predicción, de manera que los coeficientes de filtro resultantes del paso S92 sean coeficientes de filtro residuales, la reconstrucción incluye adicionalmente realizar la predicción según lo indicado por la información de control de predicción y sumar el resultado de la predicción a los coeficientes de filtro residuales, para obtener los coeficientes de filtro reconstruidos.
Una vez reconstruidos (combinando, si procede, la información predictora y los residuos de filtro), los coeficientes de filtro se aplican a las muestras de imagen reconstruidas (paso S96).
Según la invención, los coeficientes de filtro que se aplican a las muestras de imagen reconstruidas tienen que obedecer las reglas definidas según la invención.
Por consiguiente, si un coeficiente de filtro que resulte de la reconstrucción (en particular, de combinar resultados de predicción y residuales) no tiene un valor de coeficiente de filtro permitido según las reglas de la invención (un valor de coeficiente de filtro que no está en el conjunto de valores permitidos), en el proceso de reconstrucción de coeficientes de filtro se realiza además una operación de redondeo. Específicamente, la operación de redondeo puede convertir el valor de coeficiente de filtro de entrada en el valor de coeficiente permitido más próximo.
51 se aplica la predicción de coeficientes de filtro, los coeficientes de filtro que habrá que aplicar a las muestras de imagen reconstruidas con la finalidad de filtrar se obtienen sumando el resultado de predicción (“ predictor” ) y los coeficientes de filtro residuales (tal y como se ha explicado en los párrafos anteriores desde los puntos de vista del codificador y del decodificador).
Evidentemente, es posible que los coeficientes de filtro residuales no existan (sean iguales a 0), especialmente si la predicción es cuasiperfecta (los coeficientes de filtro que hay que predecir son muy similares a los del predictor). En este caso, según la invención, aplica una de las 2 opciones siguientes:
1. Los valores de coeficiente obtenidos por predicción tienen que obedecer las reglas definidas según la invención. Por ejemplo, en el caso de una predicción a partir de unos filtros predefinidos, los coeficientes de filtro de los filtros predefinidos tienen que obedecer las reglas definidas según la invención.
2. Los coeficientes de filtro que se obtienen después de la predicción tienen que redondearse al valor de coeficiente permitido más próximo.
Además, obsérvese que la división en un número de dos grupos se ha explicado aquí únicamente por motivo de simplicidad, pero también son posibles más de dos grupos, en donde el conjunto de valores permisibles se determina según la invención para al menos un grupo, es decir, solo incluye un número limitado de “ unos” dentro de un número global predeterminado de dígitos binarios.
Por ejemplo, la figura 9 ilustra un caso en el que los coeficientes del filtro están agrupados en tres grupos. Un primer grupo de coeficientes situados cerca del centro del núcleo de filtro ha permitido que unos valores de coeficiente de filtro estén en el conjunto S1 =[-511, ..., 511].
Un segundo grupo de coeficientes de filtro, ubicado en la periferia del núcleo e indicado mediante círculos discontinuos, permite que los valores de coeficiente de filtro estén en un conjunto S2 restringido modificado, en el que S2 es aquí 52 =[-128,-64,-32,-16,-8,-4,-2,-1,0,1,2,4,8,16,32,64,128]. Este es el conjunto de todos los valores de coeficiente que se pueden representar con L = 8 dígitos binarios y con un solo “ uno” .
Un tercer grupo de coeficientes de filtro, ubicado entre el primer y el segundo grupo e indicado mediante círculos rellenos, permite que los valores de coeficiente de filtro estén en otro conjunto S3 restringido, en donde S3 =[-64,-48,-40, ... ,0,1,2,3,4,5,6,8,9,10,12,16,17,18,20,24,32,33,34,36,40,48,64].
En otras palabras, el conjunto S3 es el conjunto de todos los coeficientes que se pueden representar con L = 7 dígitos binarios, en el que como mucho dos de los bits son “ uno” en el valor absoluto del coeficiente, y se aplica la restricción adicional de que el valor absoluto máximo sea 64. (De lo contrario, por ejemplo, también debería permitirse el valor 96 absoluto, puesto que se puede expresar con dos “ unos” iniciales en 7 dígitos binarios).
En lo que sigue, se describirá el beneficio particular de la invención por medio de otro ejemplo ilustrado en la figura 10.
En el ejemplo de la figura 10, la agrupación se realiza de la misma manera que en la figura 7.
Los coeficientes de filtro del primer grupo pueden tomar cualquier valor que tenga un intervalo completo de nueve bits y un bit de signo, es decir, el conjunto S1 = [-511, ..., 511] mencionado anteriormente.
Los coeficientes de filtro del segundo grupo pueden tomar un conjunto S2 restringido de valores, en donde S2 es aquí S2 =[-128,-64,-32,-16,-8,-4,-2,-1,0,1,2,4,8,16,32,64,128]. Esto corresponde a los valores que se pueden representar con un solo “ 1” en la representación binaria. Además, el valor absoluto máximo permitido está restringido a 128, es decir, se supone además que el número L está restringido a L = 8.
En otras palabras, el tamaño de filtro corresponde al que se mostró en la figura 4, es decir, un filtro con forma de diamante de 9^9. Tal y como se indicó en el apartado de antecedentes, convencionalmente se requieren 41 multiplicaciones con unos coeficientes de filtro de 9 bits. Como una multiplicación equivale a 8 sumas binarias, tal y como se mencionó en el apartado de antecedentes, el número de operaciones adicionales por píxel es de 48*8 = 328 operaciones de suma.
Según la invención, los 28 coeficientes periféricos (i.e., los del segundo grupo) pueden implementarse como una sola operación de desplazamiento de bits. La implementación de la operación de desplazamiento de bits es de una complejidad muy pequeña enhardwarey, por tanto, puede omitirse en el cálculo.
Trece operaciones de multiplicación con coeficientes de 9 bits equivalen a 13*8 = 104 sumas por píxel. El número de operaciones por píxel se reduce en un 68 %.
Las cifras anteriores son estimaciones aproximadas y el valor exacto de la reducción de la complejidad depende de la implementación real.
En lo que sigue, se explica un beneficio adicional de unas implementaciones en las que se utilizan al menos dos grupos de coeficientes.
Según la invención, no todos los coeficientes de filtro están cuantificados de manera basta y los coeficientes de filtro del primer grupo tienen una cuantificación más fina.
Normalmente, la cuantificación basta de los coeficientes de filtro provoca la pérdida por codificación. Sin embargo, el hecho de permitir que el primer grupo de coeficientes de filtro tome un gran conjunto de valores puede usarse para compensar la pérdida por codificación por parte del codificador.
Una posible implementación de codificador es la siguiente. En la siguiente descripción, las etiquetas de coeficiente de filtro utilizadas son las indicadas en la figura 11, que pueden diferir de las etiquetas utilizadas anteriormente en relación con otros dibujos:
Paso 1: obtener todos los coeficientes del filtro (Cq,...,C2ü) utilizando el método de mínimos cuadrados, suponiendo que no se impone ninguna restricción a los valores de coeficiente.
Paso 2: imponer la restricción redondeando los coeficientes (C7,...,C2q) al valor permitido más próximo.
Este paso introduce un ruido de cuantificación en los coeficientes de filtro y reduce, por tanto, la ganancia de codificación.
Paso 3: volver a estimar los coeficientes de filtro de libre elección (Co,...,Ca) para compensar los errores de cuantificación. En este tercer paso, se puede recuperar la mayor parte de la pérdida por codificación que se introduce en el paso 2.
Más detalladamente:
En el primer paso, se resuelve la ecuación que se indica a continuación para el filtro de 41 tomas (con 21 coeficientes únicos):
La ecuación anterior se llama ecuación de mínimos cuadrados y se usa para encontrar los coeficientes Cx de filtro en el codificador.
El términoXx, yes el valor esperado deR(i+k, j+l)*R(i+m, j+n),la correlación entre las 2 muestras reconstruidas antes del filtrado. Los índices k, l, m y n se seleccionan según la forma del filtro que se vaya a aplicar.
El términoPxindica el valor esperado deR(i+k, j+ l) * O(i,j).
En el segundo paso, para los coeficientes C7 a C20 de filtro, se encuentran los coeficientes aproximados más próximos que satisfagan las restricciones:
Los coeficientes C7' a C20' obedecen las reglas especificadas por la invención. Obsérvese que la función f() descrita anteriormente introduce un ruido de cuantificación en los coeficientes C7 a C20 de filtro que se obtuvieron previamente resolviendo la ecuación de mínimos cuadrados.
Se espera que el ruido de cuantificación introducido en el segundo paso reduzca el rendimiento de la operación de filtrado. El rendimiento del filtrado se mide normalmente por medio de una métrica, como la PSNR (de Peak signal-tonoise ratio o relación señal-ruido máxima), por lo que, después del paso 2, se reducirá la PSNR de la imagen filtrada.
En el tercer paso, se resuelve la siguiente ecuación para un filtro de 13 tomas (con 7 coeficientes únicos):
En el tercer paso, los coeficientes C0 a C7 de filtrado se calculan nuevamente teniendo en cuenta el ruido de cuantificación introducido en el segundo paso. El tercer paso reduce ventajosamente la reducción del rendimiento de filtrado provocada por la aplicación del paso 2.
Obsérvese que, en general, la aplicación de la operación de filtrado con coeficientes de filtro multiplicativos adaptativos no se limita a las muestras de imagen reconstruidas. Tal y como se describe en las figuras 2 y 3, el bloque reconstruido normalmente corresponde al bloque de imagen que se obtiene después de la combinación de un bloque de transformación inversa y un bloque de predicción. Tal y como le resultará evidente para un experto en la técnica, la operación de filtrado con coeficientes de filtro adaptativos también se puede aplicar en los demás pasos de las operaciones de codificación y de decodificación, por ejemplo, al bloque de predicción (265, 165), a los coeficientes (209, 109) cuantificados del bloque (213, 113) inversamente transformado, a los coeficientes (111, 211) descuantificados o a la imagen (231) decodificada. En este caso, la invención aplica a los coeficientes de filtro de la operación de filtrado.
En resumen, la invención se refiere a un aparato y a un método mejorados para filtrar imágenes reconstruidas, en particular, imágenes de vídeo, con filtros multiplicativos adaptativos. La eficiencia de la operación de filtrado se incrementa al restringir los valores permitidos de los coeficientes de filtro a aquéllos que solo tienen un número limitado de “ unos” en la representación binaria.
Obsérvese que en esta memoria técnica se ofrecen explicaciones de las imágenes (tramas), pero, en el caso de una señal de imagen entrelazada, unos campos hacen de imágenes.
Aunque se hayan descrito principalmente realizaciones de la presente invención basándose en la codificación de vídeo, cabe señalar que las realizaciones del codificador 100 y del decodificador 200 (y, correspondientemente, del sistema 300) también pueden estar configuradas para un procesamiento o una codificación de imágenes fijas, es decir, el procesamiento o la codificación de una imagen individual independientemente de cualquier imagen anterior o consecutiva, como en la codificación de vídeo. En general, en caso de que la codificación de procesamiento de imagen se limite a una sola imagen 101, únicamente no están disponibles ni la interestimación 142 ni las interpredicciones 144, 242. Casi todas, si no todas, las demás funcionalidades (denominadas también herramientas o tecnologías) del codificador 100 de vídeo y del decodificador 200 de vídeo pueden usarse igualmente en el caso de imágenes fijas, por ejemplo, la partición, la transformación (ajuste de escala) 106, la cuantificación 108, la cuantificación 110 inversa, la transformación 112 inversa, la intraestimación 142, la intrapredicción 154, 254 y/o el filtrado 120, 220 de bucle y la codificación 170 entrópica y la decodificación 204 entrópica.
Siempre que en las realizaciones y la descripción se utilice el término “ memoria” , el término “ memoria” se entenderá y/o comprenderá un disco magnético, un disco óptico, una unidad de estado sólido (SSD), una memoria de solo lectura (Read-Only Memory, o ROM), una memoria de acceso aleatorio (Random Access Memory, o RAM), una unidad flash USB o cualquier otro tipo adecuado de memoria, a menos que se indique explícitamente lo contrario.
Siempre que en las realizaciones y la descripción se utilice el término “ red” , el término “ red” se entenderá y/o comprenderá cualquier tipo de red inalámbrica o cableada, tal como una red de área local (LAN), una red de área amplia (WAN) LAN inalámbrica (WLAN), una red Ethernet, Internet, redes móviles, etc., a menos que se indique explícitamente lo contrario.
El experto en la técnica comprenderá que los “ bloques” (“ unidades” o “ módulos” ) de las diversas figuras (método y aparato) representan o describen unas funcionalidades de unas realizaciones de la invención (en lugar de, necesariamente, “ unidades” individuales enhardware o software)y, por tanto, describen igualmente funciones o características de realizaciones de aparato, así como de realizaciones de método (unidad = paso).
La terminología de “ unidades” se usa meramente a efectos ilustrativos de la funcionalidad de realizaciones del codificador/decodificador y no pretenden limitar la descripción.
Cabe entenderse en las diversas realizaciones proporcionadas en la presente solicitud, que el sistema, el aparato y el método descritos pueden implementarse de otras maneras. Por ejemplo, la realización de aparato descrita es meramente ejemplar. Por ejemplo, la división en unidades es simplemente una división en funciones lógicas y puede ser otra división en una implementación real. Por ejemplo, una pluralidad de unidades o componentes puede combinarse o integrarse en otro sistema, o algunas características pueden ignorarse o no realizarse. Además, los acoplamientos mutuos mostrados o analizados o los acoplamientos directos o las conexiones de comunicación pueden implementarse usando algunas interfaces. Los acoplamientos indirectos o las conexiones de comunicación entre los aparatos o unidades pueden implementarse en forma electrónica, mecánica u otras formas.
Las unidades descritas como partes separadas pueden o no estar físicamente separadas, y las partes mostradas como unidades pueden o no ser unidades físicas, pueden ubicarse en una posición o pueden distribuirse en una pluralidad de unidades de red. Algunas o todas las unidades pueden seleccionarse según las necesidades reales para lograr los objetivos de las soluciones de las realizaciones.
Además, las unidades funcionales en las realizaciones de la presente invención pueden integrarse en una unidad de procesamiento o cada una de las unidades puede existir físicamente en solitario, o dos o más unidades están integradas en una unidad.
Las realizaciones de la invención pueden comprender además un aparato, por ejemplo, un codificador y/o un decodificador, que comprenda una circuitería de procesamiento, que esté configurada para realizar uno cualquiera de los métodos y/o procesos descritos en el presente documento.
Las realizaciones del codificador 100 y/o del decodificador 200 pueden implementarse como unhardware,unfirmware,unsoftwareo cualquier combinación de los mismos. Por ejemplo, la funcionalidad del codificador/de codificación o del decodificador/de decodificación se puede desarrollar por medio de una circuitería de procesamiento con o sinfirmwareosoftware,por ejemplo, un procesador, un microcontrolador, un procesador de señales digitales (DSP, por sus siglas en inglés), una matriz de puertas programablesin situ(FPGA, por sus siglas en inglés), un circuito integrado de aplicación específica (ASIC, por sus siglas en inglés) o similares.
La funcionalidad del codificador 100 (y del correspondiente método 100 de codificación) y/o del decodificador 200 (y del correspondiente método 200 de decodificación) se puede implementar por medio de instrucciones de programa, que estén almacenadas en un medio legible por ordenador. Las instrucciones del programa, cuando se ejecutan, hacen que una circuitería de procesamiento, un ordenador, un procesador o similar realice los pasos de los métodos de codificación y/o de decodificación. El medio legible por ordenador puede ser cualquier medio, incluidos medios de almacenamiento no transitorios, en los que se almacene el programa, tales como un disco Blue-ray, un DVD, un CD, una memoria USB (flash), un disco duro, un almacenamiento en servidor disponible a través de una red, etc.
Una realización de la invención comprende o es un programa informático, que comprende un código de programa para realizar uno cualquiera de los métodos descritos en el presente documento cuando se ejecute en un ordenador.
Una realización de la invención comprende o es un medio legible por ordenador, que comprende un código de programa que, cuando se ejecuta por parte de un procesador, hace que un sistema informático realice uno cualquiera de los métodos descritos en el presente documento.
Una realización de la invención comprende o es un circuito integrado auxiliar que realiza uno cualquiera de los métodos descritos en el presente documento.
Lista de signos de referencia
100 Codificador
102 Entrada (p. ej., puerto de entrada, interfaz de entrada)
103 Bloque de imagen
104 Cálculo residual [unidad o paso]
105 Bloque residual
106 Transformación (que, p. ej., comprende adicionalmente un ajuste de escala) [unidad o paso]
107 Coeficientes transformados
108 Cuantificación [unidad o paso]
109 Coeficientes cuantificados
110 Cuantificación inversa [unidad o paso]
111 Coeficientes descuantificados
112 Transformación inversa (que, p. ej., comprende adicionalmente un ajuste de escala) [unidad o paso] 113 Bloque inversamente transformado
114 Reconstrucción [unidad o paso]
115 Bloque reconstruido
116 Almacenamiento intermedio (de línea) [unidad o paso]
117 Muestras de referencia
120 Filtro de bucle [unidad o paso]
121 Bloque filtrado
130 Almacenamiento intermedio de imágenes decodificadas (DPB) [unidad o paso]
142 Interestimación (o estimación interimagen) [unidad o paso]
143 Parámetros de interestimación (p. ej., imagen de referencia/índice de imagen de referencia, vector de movimiento/desfase)
144 Interpredicción (o predicción interimagen) [unidad o paso]
145 Bloque de interpredicción
152 Intraestimación (o estimación intraimagen) [unidad o paso]
153 Parámetros de intrapredicción (p. ej., modo de intrapredicción)
154 Intrapredicción (o predicción intratrama/intraimagen) [unidad o paso]
155 Bloque de intrapredicción
162 Selección de modo [unidad o paso]
165 Bloque de predicción (ya sea el bloque 145 de interpredicción o el bloque 155 de intrapredicción) 170 Codificación entrópica [unidad o paso]
171 Datos de imagen codificados (p. ej., flujo de bits)
Salida (puerto de salida, interfaz de salida)
Decodificador
Entrada (puerto/interfaz)
Decodificación entrópica
Coeficientes cuantificados
Cuantificación inversa
Coeficientes descuantificados
Transformación inversa (ajuste de escala)
Bloque inversamente transformado
Reconstrucción (unidad)
Bloque reconstruido
Memoria intermedia (de líneas)
Muestras de referencia
Filtro de bucle (filtro en bucle)
Bloque filtrado
Memoria intermedia de imágenes decodificadas (DPB)
Imagen decodificada
Salida (puerto/interfaz)
Interpredicción (predicción intertrama/interimagen)
Bloque de interpredicción
Intrapredicción (predicción intratrama/intraimagen)
Bloque de intrapredicción
Selección de modo
Bloque de predicción (bloque 245 de interpredicción o bloque 255 de intrapredicción) Sistema de codificación
Dispositivo de origen
Fuente de imágenes
Datos de imagen (sin procesar)
Preprocesador/Unidad de preprocesamiento
Datos de imagen preprocesados
Unidad/Interfaz de comunicación
Dispositivo de destino
Unidad/Interfaz de comunicación
Posprocesador/Unidad de posprocesamiento
Datos de imagen posprocesados
Dispositivo/Unidad de visualización
Datos de imagen transmitidos/recibidos/comunicados (codificados)
Claims (10)
- REIVINDICACIONESi. Aparato para filtrar un conjunto de muestras (115; 215) de una imagen, utilizando un filtro (120; 220) de bucle, en donde los coeficientes multiplicadores adaptativos del filtro de bucle son números enteros, el aparato comprende una circuitería de procesamiento que está configurada para:Determinar el valor de cada coeficiente multiplicador adaptativo del filtro (120; 220) de bucle, en donde una representación binaria del valor absoluto de cada coeficiente multiplicador adaptativo con un número L predeterminado de dígitos binarios incluye al menos un “ cero” y como mucho un “ uno” ,obtener el conjunto de las muestras (115; 215) de la imagen yfiltrar el conjunto de muestras (115; 215) de la imagen utilizando el filtro (120; 220) de bucle.
- 2. Aparato según la reivindicación 1, en donde el valor absoluto más grande permitido está restringido a un valor máximo Nmáx predeterminado.
- 3. Aparato según una cualquiera de las reivindicaciones 1 o 2, en donde el conjunto de muestras de la imagen es un conjunto de muestras (115; 215) de una imagen de vídeo.
- 4. Aparato según la reivindicación 3, en donde dicho aparato está configurado para adaptar individualmente los coeficientes multiplicadores adaptativos para cada imagen y cada píxel.
- 5. Método para filtrar un conjunto de muestras (115; 215) de una imagen, utilizando un filtro (120; 220) de bucle, en donde los coeficientes multiplicadores adaptativos del filtro de bucle son números enteros, el método comprende los pasos de:Determinar (S80; S92, S94) el valor de cada coeficiente multiplicador adaptativo del filtro (120; 220) de bucle, en donde una representación binaria del valor absoluto de cada coeficiente multiplicador adaptativo con un número L predeterminado de dígitos binarios incluye al menos un “cero” y como mucho un “ uno” , obtener el conjunto de muestras (115; 215) de la imagen yfiltrar (S82; S96) el conjunto de muestras (115; 215) de la imagen utilizando el filtro (120; 220) de bucle.
- 6. Aparato para codificar un conjunto actual de muestras (103) de una imagen que incluye una pluralidad de píxeles, el aparato comprende:Un codificador con un decodificador (110, 112, 114) para reconstruir el conjunto actual de muestras y el aparato según una cualquiera de las reivindicaciones 1 a 4 para filtrar el conjunto reconstruido de muestras (115).
- 7. Aparato según la reivindicación 6, que comprende además una circuitería de procesamiento que está configurada para:Asignar los valores de los coeficientes multiplicadores adaptativos a unas palabras de código binarias e incluir las palabras de código en un flujo (330) de bits para su transmisión a un aparato (200) de decodificación.
- 8. Aparato para decodificar un conjunto codificado actual de muestras (171) de una imagen que incluye una pluralidad de píxeles, el aparato comprende:Un decodificador (204, 210, 212, 214) para reconstruir el conjunto actual de muestras yel aparato según una cualquiera de las reivindicaciones 1 a 4 para filtrar el conjunto (215) reconstruido de muestras.
- 9. Aparato según la reivindicación 8, en donde dicha circuitería de procesamiento está configurada además para obtener unos coeficientes multiplicadores adaptativos a partir de unas palabras de código binarias incluidas en un flujo (330) de bits recibido mediante la aplicación de una operación de asignación.
- 10. Programa informático que, cuando lo ejecuta un procesador, hace que el procesador realice el método según la reivindicación 5.
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP2018055979 | 2018-03-09 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2999283T3 true ES2999283T3 (en) | 2025-02-25 |
Family
ID=61800553
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES21216857T Active ES2999283T3 (en) | 2018-03-09 | 2018-03-29 | Method and apparatus for image filtering with adaptive multiplier coefficients |
| ES18713685T Active ES2905572T3 (es) | 2018-03-09 | 2018-03-29 | Método y aparato para filtración de imagen con coeficientes multiplicadores adaptativos |
Family Applications After (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES18713685T Active ES2905572T3 (es) | 2018-03-09 | 2018-03-29 | Método y aparato para filtración de imagen con coeficientes multiplicadores adaptativos |
Country Status (15)
| Country | Link |
|---|---|
| US (3) | US11265538B2 (es) |
| EP (3) | EP4037315B1 (es) |
| JP (3) | JP7124100B2 (es) |
| KR (3) | KR102464520B1 (es) |
| CN (3) | CN111869208B (es) |
| AU (2) | AU2018412414B2 (es) |
| BR (1) | BR112020018410A2 (es) |
| ES (2) | ES2999283T3 (es) |
| FI (1) | FI4037315T3 (es) |
| HU (2) | HUE057655T2 (es) |
| MX (2) | MX2020009369A (es) |
| MY (1) | MY205138A (es) |
| PL (2) | PL3756346T3 (es) |
| PT (2) | PT4037315T (es) |
| WO (1) | WO2019170258A1 (es) |
Families Citing this family (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2020097072A1 (en) * | 2018-11-05 | 2020-05-14 | Usic, Llc | Systems and methods for an autonomous marking apparatus |
| US11467582B2 (en) | 2018-11-05 | 2022-10-11 | Usic, Llc | Systems and methods for an autonomous marking apparatus |
| WO2020262988A1 (ko) * | 2019-06-25 | 2020-12-30 | 엘지전자 주식회사 | 영상 코딩 시스템에서 무손실 코딩을 적용하는 영상 디코딩 방법 및 그 장치 |
| IL295013B2 (en) * | 2020-01-24 | 2026-04-01 | Huawei Tech Co Ltd | Encoder, decoder and matching methods for adaptive loop filtering |
| JP7692057B2 (ja) * | 2021-05-06 | 2025-06-12 | オッポ広東移動通信有限公司 | 点群符号化・復号化方法、符号器、復号器及びコンピュータ記憶媒体 |
Family Cites Families (21)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TW200501565A (en) * | 2003-05-15 | 2005-01-01 | Neuro Solution Corp | Digital filter and design method, design apparatus, and digital filter design program thereof |
| CN1964490A (zh) * | 2005-11-09 | 2007-05-16 | 松下电器产业株式会社 | 一种滤波器及滤波方法 |
| EP2048886A1 (en) * | 2007-10-11 | 2009-04-15 | Panasonic Corporation | Coding of adaptive interpolation filter coefficients |
| WO2009050557A2 (en) | 2007-10-14 | 2009-04-23 | Nokia Corporation | Fixed-point implementation of an adaptive image filter with high coding efficiency |
| CN101163246B (zh) * | 2007-11-30 | 2010-06-23 | 北京航空航天大学 | 一种数字电视多媒体广播传输系统激励器 |
| US8805100B2 (en) * | 2010-06-03 | 2014-08-12 | Sharp Kabushiki Kaisha | Filter device, image decoding device, image encoding device, and filter parameter data structure |
| JP5685908B2 (ja) * | 2010-11-30 | 2015-03-18 | 富士通株式会社 | ループフィルタ |
| US8917950B2 (en) * | 2011-01-18 | 2014-12-23 | Sony Corporation | Simplifying parametric loop filters |
| US9001883B2 (en) | 2011-02-16 | 2015-04-07 | Mediatek Inc | Method and apparatus for slice common information sharing |
| CN102857751B (zh) * | 2011-07-01 | 2015-01-21 | 华为技术有限公司 | 一种视频编解码方法和装置 |
| EP2751997B1 (en) | 2011-08-31 | 2018-06-06 | Mediatek Inc. | Method and apparatus for adaptive loop filter with constrained filter coefficients |
| US10129540B2 (en) * | 2012-04-10 | 2018-11-13 | Texas Instruments Incorporated | Reduced complexity coefficient transmission for adaptive loop filtering (ALF) in video coding |
| US20140010278A1 (en) * | 2012-07-09 | 2014-01-09 | Motorola Mobility Llc | Method and apparatus for coding adaptive-loop filter coefficients |
| US9047665B2 (en) * | 2013-08-21 | 2015-06-02 | Panasonic Intellectual Property Management Co., Ltd. | Image processing apparatus |
| CN103700072A (zh) * | 2013-12-17 | 2014-04-02 | 北京工业大学 | 一种基于自适应小波阈值和双边滤波器的图像去噪方法 |
| US9819948B2 (en) * | 2014-06-18 | 2017-11-14 | Qualcomm Incorporated | Signaling HRD parameters for bitstream partitions |
| US10057574B2 (en) * | 2015-02-11 | 2018-08-21 | Qualcomm Incorporated | Coding tree unit (CTU) level adaptive loop filter (ALF) |
| CN104734668B (zh) * | 2015-03-31 | 2017-11-07 | 中国科学院微电子研究所 | 一种插值滤波器 |
| CN105808206B (zh) * | 2016-03-04 | 2019-01-08 | 广州海格通信集团股份有限公司 | 基于ram实现乘法运算的方法及其系统 |
| JP7094076B2 (ja) * | 2016-08-19 | 2022-07-01 | 沖電気工業株式会社 | 映像符号化装置、プログラム及び方法、並びに、映像復号装置、プログラム及び方法、並びに、映像伝送システム |
| CN107295353B (zh) * | 2017-08-15 | 2019-12-31 | 电子科技大学 | 视频编码参考块滤波方法 |
-
2018
- 2018-03-29 PL PL18713685T patent/PL3756346T3/pl unknown
- 2018-03-29 HU HUE18713685A patent/HUE057655T2/hu unknown
- 2018-03-29 PT PT212168579T patent/PT4037315T/pt unknown
- 2018-03-29 WO PCT/EP2018/058090 patent/WO2019170258A1/en not_active Ceased
- 2018-03-29 KR KR1020207027561A patent/KR102464520B1/ko active Active
- 2018-03-29 MX MX2020009369A patent/MX2020009369A/es unknown
- 2018-03-29 EP EP21216857.9A patent/EP4037315B1/en active Active
- 2018-03-29 BR BR112020018410-1A patent/BR112020018410A2/pt unknown
- 2018-03-29 CN CN201880090977.3A patent/CN111869208B/zh active Active
- 2018-03-29 EP EP18713685.8A patent/EP3756346B1/en active Active
- 2018-03-29 EP EP24200640.1A patent/EP4518315A3/en active Pending
- 2018-03-29 ES ES21216857T patent/ES2999283T3/es active Active
- 2018-03-29 MY MYPI2020004665A patent/MY205138A/en unknown
- 2018-03-29 CN CN202111281442.4A patent/CN114125444B/zh active Active
- 2018-03-29 AU AU2018412414A patent/AU2018412414B2/en active Active
- 2018-03-29 HU HUE21216857A patent/HUE068967T2/hu unknown
- 2018-03-29 CN CN202111259938.1A patent/CN113965765A/zh active Pending
- 2018-03-29 ES ES18713685T patent/ES2905572T3/es active Active
- 2018-03-29 PL PL21216857.9T patent/PL4037315T3/pl unknown
- 2018-03-29 JP JP2020545722A patent/JP7124100B2/ja active Active
- 2018-03-29 KR KR1020227038331A patent/KR20220153105A/ko not_active Ceased
- 2018-03-29 PT PT187136858T patent/PT3756346T/pt unknown
- 2018-03-29 FI FIEP21216857.9T patent/FI4037315T3/fi active
- 2018-03-29 KR KR1020247008926A patent/KR20240040128A/ko active Pending
-
2020
- 2020-09-08 MX MX2024001981A patent/MX2024001981A/es unknown
- 2020-09-09 US US17/016,033 patent/US11265538B2/en active Active
-
2022
- 2022-01-24 US US17/582,947 patent/US11765351B2/en active Active
- 2022-08-10 JP JP2022128032A patent/JP7384974B2/ja active Active
-
2023
- 2023-08-10 AU AU2023214322A patent/AU2023214322B2/en active Active
- 2023-08-15 US US18/450,229 patent/US12477104B2/en active Active
- 2023-11-09 JP JP2023191237A patent/JP7687574B2/ja active Active
Also Published As
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11533480B2 (en) | Method and apparatus for image filtering with adaptive multiplier coefficients | |
| ES2999283T3 (en) | Method and apparatus for image filtering with adaptive multiplier coefficients | |
| CN113243106B (zh) | 一种用于视频图像的预测块的帧内预测的设备和方法 | |
| CN114598873B (zh) | 量化参数的解码方法和装置 | |
| BR112020026879A2 (pt) | Dispositivo e método para intra predição | |
| RU2846769C2 (ru) | Способ и устройство для фильтрации изображений с адаптивными коэффициентами множителя | |
| CA3092900C (en) | Method and apparatus for image filtering with adaptive multiplier coefficients | |
| WO2020119525A1 (zh) | 一种帧间预测的方法及装置 |