ES2713173T3 - Procedimientos y dispositivos de codificación y de decodificación de una secuencia de imágenes que implementan una predicción por compensación de movimiento anticipado, y programa de ordenador correspondiente - Google Patents
Procedimientos y dispositivos de codificación y de decodificación de una secuencia de imágenes que implementan una predicción por compensación de movimiento anticipado, y programa de ordenador correspondiente Download PDFInfo
- Publication number
- ES2713173T3 ES2713173T3 ES11718431T ES11718431T ES2713173T3 ES 2713173 T3 ES2713173 T3 ES 2713173T3 ES 11718431 T ES11718431 T ES 11718431T ES 11718431 T ES11718431 T ES 11718431T ES 2713173 T3 ES2713173 T3 ES 2713173T3
- Authority
- ES
- Spain
- Prior art keywords
- block
- sub
- projected
- image
- coated
- 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
- 230000033001 locomotion Effects 0.000 title claims abstract description 339
- 238000000034 method Methods 0.000 title claims abstract description 79
- 230000003466 anti-cipated effect Effects 0.000 title claims abstract description 15
- 238000004590 computer program Methods 0.000 title claims description 10
- 239000013598 vector Substances 0.000 claims abstract description 303
- 238000000638 solvent extraction Methods 0.000 claims abstract description 33
- 238000012795 verification Methods 0.000 claims abstract description 30
- 230000002123 temporal effect Effects 0.000 claims abstract description 22
- 238000006073 displacement reaction Methods 0.000 claims abstract description 19
- 230000000454 anti-cipatory effect Effects 0.000 claims abstract description 6
- 239000011248 coating agent Substances 0.000 claims description 20
- 238000000576 coating method Methods 0.000 claims description 20
- 230000011664 signaling Effects 0.000 claims description 5
- 244000309464 bull Species 0.000 abstract 1
- 101100146536 Picea mariana RPS15 gene Proteins 0.000 description 19
- 238000012545 processing Methods 0.000 description 12
- 238000005192 partition Methods 0.000 description 6
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000000354 decomposition reaction Methods 0.000 description 3
- 239000002699 waste material Substances 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 238000005303 weighing Methods 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/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/583—Motion compensation with overlapping blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/553—Motion estimation dealing with occlusions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/57—Motion estimation characterised by a search window with variable size or shape
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Procedimiento de codificación de una secuencia de imágenes que implementa una etapa de predicción de al menos una imagen actual por compensación de movimiento anticipado a partir de al menos una imagen de referencia descompuesta en bloques de referencia, implementándose la compensación de movimiento anticipado por compensación en movimiento de los bloques de referencia de la imagen de referencia sobre otra imagen con ayuda, para cada bloque de referencia, de un vector de movimiento establecido para el bloque de referencia que apunta desde la imagen de referencia hacia dicha otra imagen, implementando dicha etapa de predicción, para al menos un bloque de dicha imagen actual, llamado bloque actual (32), una subetapa de proyección (31) de al menos un bloque de referencia de la imagen de referencia sobre dicha imagen actual con ayuda del vector de movimiento establecido para el bloque de referencia, proporcionando al menos un bloque proyectado (311, 312) que recubre al menos parcialmente dicho bloque actual, un vector de movimiento, llamado vector de movimiento proyectado que representa el desplazamiento del bloque proyectado en la imagen actual, normalizado para tener en cuenta una distancia temporal entre dicha imagen de referencia y dicha imagen actual con relación a una distancia temporal entre dicha imagen de referencia y dicha otra imagen, que está asociado a cada bloque proyectado, caracterizado por que dicha etapa de predicción implementa las subetapas siguientes para dicho bloque actual (32): - particionado (33) de dicho bloque actual, proporcionando al menos un sub-bloque recubierto al menos parcialmente por al menos uno de dichos bloques proyectados, llamado sub-bloque recubierto (331, 332); - al menos una iteración de las etapas siguientes para al menos un sub-bloque recubierto: - verificación (34) de que dicho sub-bloque recubierto respeta un criterio de asignación predeterminado que pertenece al grupo que comprende: - dicho sub-bloque recubierto está recubierto al menos parcialmente por uno solo de dichos bloques proyectados, - un número predeterminado de píxeles de dicho sub-bloque recubierto está recubierto por uno de dichos bloques proyectados; ·bull; en caso de verificación positiva: asignación (35), a dicho sub-bloque recubierto, de uno de dichos vectores de movimiento proyectados seleccionado entre el o los vectores de movimiento proyectados asociados al o a los bloques proyectados que recubren al menos parcialmente dicho sub-bloque recubierto; - en caso de verificación negativa, y en tanto que no se haya alcanzado un tamaño mínimo predeterminado para dicho sub-bloque recubierto: particionado (36) de dicho sub-bloque recubierto, proporcionando al menos un nuevo sub-bloque recubierto.
Description
DESCRIPCION
Procedimientos y dispositivos de codificacion y de decodificacion de una secuencia de imagenes que implementan una prediccion por compensacion de movimiento anticipado, y programa de ordenador correspondiente
1. Campo de la invencion
El campo de la invencion es el de la codificacion y de la decodificacion de imagenes, y principalmente de un flujo de video constituido por una serie de imagenes sucesivas.
Mas precisamente, la invencion se refiere a las tecnicas de prediccion que implementan una compensacion de movimiento anticipado.
La invencion puede aplicarse principalmente a la codificacion de video implementada en los codificadores de video actuales (MPEG, H.264, etc.) o futuros (ITU-T/VCEG (H.265) o ISO/MPEG (HVC)).
2. Tecnica anterior
Se describe en el presente documento a continuacion la tecnica anterior relativa a la prediccion de imagenes en el campo de la codificacion o de la decodificacion de secuencias de imagenes que utilizan una representacion por bloques de las imagenes. De ese modo, segun la tecnica H.264 por ejemplo, cada imagen puede ser descompuesta en macrobloques, que se subdividen a continuacion en bloques. Un bloque esta constituido por un conjunto de puntos o pfxeies.
Mas precisamente, la norma de codificacion AVC definen un modo de codificacion por bloque llamado el modo “directo temporal” o “temporal direct” en ingles). Este modo de codificacion deduce la informacion de movimiento de un bloque de una imagen actual a predecir a partir de un bloque localizado conjuntamente en una imagen de referencia. Los vectores de movimiento se ponen a escala para que la amplitud del desplazamiento caracterizado por el vector de movimiento en la imagen actual sea proporcional a la amplitud del movimiento en la imagen de referencia y a la distancia temporal entre la imagen de referencia y la imagen actual.
La figura 1 ilustra, a tftulo de ejemplo, este modo de codificacion para una imagen a predecir Ic de tipo B: la informacion de movimiento de un bloque 21 de la imagen a predecir le, llamado bloque actual, se obtiene a partir del bloque localizado conjuntamente 22 en la imagen de referencia Irefl.
Para una imagen de tipo B, es posible definir una prediccion bidireccional del bloque actual 21 de la imagen a predecir Ic con ayuda de una doble compensacion de movimiento efectuada con el vector de movimiento MV1 y la imagen de referencia anticipada Iref1, por un lado (“forward reference”) y el vector de movimiento MVo y la imagen de referencia anterior IrefO, por otro lado (“backward reference”). Los vectores de movimiento MVo y MV1 se deducen ambos del vector de movimiento MVc del bloque localizado conjuntamente 22 en la imagen de referencia anticipada Iref1, con relacion a la imagen de referencia anterior IrefO, y segun las ecuaciones siguientes para la puesta en escala de los vectores de movimiento en la imagen a predecir Ic:
siendo: TRb la distancia temporal entre la imagen de referencia anterior IrefO y la imagen a predecir Ic; y TRd la distancia temporal entre la imagen de referencia anterior IrefO y la imagen de referencia anticipada Iref1. Esta tecnica permite limitar el coste de la codificacion del movimiento en una imagen que implementa este modo de codificacion para ciertos bloques, porque la informacion de movimiento asf deducida no ha de ser codificada.
Sin embargo, la manera de deducir la informacion de movimiento no representa la trayectoria de movimiento real del bloque actual, sino que utiliza la trayectoria de movimiento de un bloque localizado conjuntamente en una imagen de referencia. Ahora bien esta trayectoria del bloque localizado conjuntamente puede ser diferente de la trayectoria del bloque actual de la imagen a predecir. Durante la codificacion del bloque actual, la prediccion por compensacion de movimiento no es entonces optima, porque no utiliza las informaciones de textura correspondientes a la trayectoria real del bloque actual, sino a una trayectoria aproximada.
Para solucionar este inconveniente, una tecnica conocida es proyectar hacia adelante el movimiento de los bloques de la imagen de referencia sobre la imagen actual. Una tecnica asf se denomina “compensacion de movimiento anticipado” (“forward motion compensation” en ingles) y se describe por ejemplo en el documento de “Patrick Lechat: Representation et codage video de sequences video par maillages 2D deformables, These de doctorat, Universite de Rennes 1, paginas 130-131,22 octubre de 1999”. Esta tecnica de compensacion de movimiento anticipado, ilustrada en la figura 2A, permite predecir una imagen Ic a partir de al menos una imagen de referencia Iref, teniendo en cuenta los vectores de movimiento que apuntan de la imagen de referencia Iref hacia la imagen a predecir Ic, tambien llamada imagen actual. Esta compensacion se efectua en dos etapas:
- la imagen de referencia Iref se descompone en un conjunto de bloques de referencia;
- para cada bloque de referencia de la imagen de referencia, se establece un desplazamiento, y para cada punto de este bloque, se asigna al punto de la imagen actual Ic el valor del punto de la imagen de referencia, desplazado por el vector de movimiento.
En otros terminos, la proyeccion hacia adelante de los vectores de movimiento proyecta el movimiento de un bloque de la imagen de referencia Iref sobre un bloque desplazado en la imagen actual Ic, llamado bloque proyectado. Como se ilustra en esta figura 2A, esta tecnica de compensacion del movimiento anticipado genera la aparicion de zonas de recubrimiento R cuando se solapan varios bloques proyectados, o la aparicion de zonas de descubrimiento D entre los bloques proyectados.
En consecuencia, cuando se situa un bloque de la imagen actual en una zona de recubrimiento, este bloque puede ver que se le asignan varios vectores de movimiento. A la inversa, si en un bloque de la imagen actual se situa en una zona de descubrimiento, no se asigna ningun vector de movimiento a este bloque.
La figura 2B ilustra en otra forma la tecnica de proyeccion hacia adelante del movimiento de los bloques B1 a B4 de una primera imagen de referencia IrefO sobre una segunda imagen de referencia Iref1. El resultado de la proyeccion hacia adelante de los bloques B1 a B4 sobre los bloques B1' a B4' de una imagen intermedia a predecir, tambien llamada imagen actual Ie, se representa por la proyeccion intermedia Pi. Como se ilustra en esta figura 2B, un bloque de la imagen actual Ic puede ver que se le asignan varios vectores de movimiento de la primera imagen de referencia IrefO.
Por ejemplo, los bloques B2 y B3 de la primera imagen de referencia IrefO se proyectan en el mismo sitio en la segunda imagen de referencia Iref1. Como se ha representado en la proyeccion intermedia Pi, los bloques proyectados asociados a los bloques B2 y B3 se solapan. En la imagen actual Ic, se pueden asignar por tanto dos vectores de movimiento al bloque B2': un primer vector de movimiento que representa el desplazamiento del bloque B2 en la imagen actual, el otro el desplazamiento del bloque B3 en la imagen actual.
Se recuerda que clasicamente, los vectores de movimiento proyectados asignados a un bloque de imagen actual deben ser puestos a escala previamente con relacion a la distancia temporal entre la imagen actual Ic, la imagen de referencia anterior IrefO y la imagen con relacion a la que se ha calculado el vector de movimiento (imagen de referencia anticipada Iref1).
Un inconveniente de esta tecnica de compensacion de movimiento anticipado reside en la ausencia de asignacion de valores en las zonas recubiertas (para los que se han definido varios vectores de movimiento) o descubiertas (para los que no se define ningun vector de movimiento), lo que limita los rendimientos del esquema de codificacion propuesto.
El campo de movimiento asf definido segun esta tecnica no permite por tanto definir de manera directa un campo de movimiento por bloque, tal como se define por la norma de codificacion AVC.
Para cada bloque de la imagen actual a predecir, es necesario por tanto determinar un vector de movimiento, que podra utilizarse por ejemplo para la compensacion de movimiento del bloque durante la prediccion del bloque en la etapa de decodificacion.
Con el fin de asignar un unico vector de movimiento a un bloque actual de la imagen a predecir, cuando este esta recubierto por varios bloques proyectados y ha recibido por tanto varios vectores de movimiento, se ha propuesto construir un nuevo vector de movimiento para el bloque actual ponderando las informaciones obtenidas a partir de los diferentes vectores de movimiento de los bloques proyectados.
Un inconveniente de esta tecnica es su complejidad puesto que supone calcular los diferentes vectores de movimiento que estan implicados y ponderar unas informaciones procedentes de diferentes bloques proyectados. Ademas, el vector de movimiento asf construido no esta necesariamente adaptado para la codificacion, si no se aproxima suficientemente a la trayectoria real del bloque actual.
Se ha propuesto igualmente aplicar un criterio de recubrimiento maximo para asignar al bloque actual de la imagen a predecir el vector de movimiento del bloque proyectado que recubre mas pfxeles del bloque actual. Por ejemplo, volviendo a la figura 2B, el criterio de recubrimiento maximo asigna al bloque B2' de la imagen actual el vector de movimiento resultado del desplazamiento del bloque B3, puesto que la proyeccion del bloque B3 en la imagen actual Ic recubre mas pfxeles del bloque B2' que la proyeccion del bloque B2 en la imagen actual Ic.
De nuevo, el vector de movimiento asf elegido no es necesariamente el mejor adaptado para la codificacion, si no se aproxima suficientemente a la trayectoria real del bloque actual. Ademas, este criterio de recubrimiento maximo no puede implementarse cuando los bloques de la imagen actual y de la imagen de referencia no presentan el mismo tamano.
Existe por tanto una necesidad de una nueva tecnica de codificacion/decodificacion de imagenes que implemente una prediccion por compensacion de movimiento anticipado, que permita mejorar estas tecnicas de la tecnica anterior proporcionando, para al menos ciertos bloques de la imagen a predecir, un vector de movimiento bien adaptado a la trayectoria real de estos bloques.
3. Exposicion de la invencion
La invencion se define en las reivindicaciones. En lo que sigue, la expresion “modo de realizacion” debe entenderse como la designacion de un ejemplo que permite ilustrar la invencion, a menos que no se refiera precisamente a la invencion tal como se define en las reivindicaciones.
La invencion propone una solucion novedosa con relacion a la tecnica anterior, en la forma de un procedimiento de codificacion de una secuencia de imagenes que implementa una etapa de prediccion de al menos una imagen actual por compensacion de movimiento anticipado a partir de al menos una imagen de referencia, implementando una etapa de prediccion de ese tipo, para al menos un bloque de la imagen actual, llamado bloque actual, una subetapa de proyeccion hacia adelante de al menos un bloque de la imagen de referencia sobre la imagen actual, proporcionando al menos un bloque proyectado que recubre al menos parcialmente el bloque actual, un vector de movimiento que representa el desplazamiento del bloque proyectado en la imagen actual, normalizado para tener en cuenta una distancia temporal entre la imagen de referencia y la imagen actual, llamado vector de movimiento proyectado, que se asocia a cada bloque proyectado.
Segun la invencion, la etapa de prediccion implementa las subetapas siguientes, para el bloque actual antes citado: - particionado del bloque actual, proporcionando al menos un sub-bloque recubierto al menos parcialmente por al menos uno de los bloques proyectados, llamado sub-bloque recubierto;
- al menos una iteracion de las etapas siguientes para al menos un sub-bloque recubierto.
o verificacion de que el sub-bloque recubierto respeta un criterio de asignacion predeterminado;
o en caso de verificacion positiva: asignacion, al sub-bloque recubierto, de uno de los vectores de movimiento proyectados seleccionado entre el o los vectores de movimiento proyectados asociados al o a los bloques proyectados que recubren al menos parcialmente el sub-bloque recubierto;
o en caso de verificacion negativa, y en tanto que no se haya alcanzado un tamano mmimo predeterminado para el sub-bloque recubierto: particionado del sub-bloque recubierto, proporcionando al menos un nuevo sub-bloque recubierto.
De ese modo, la invencion propone un acercamiento novedoso e inventivo para la asignacion de un unico vector de movimiento a un bloque o un sub-bloque de una imagen a predecir, cuando hay disponibles para este bloque varios vectores de movimiento.
En particular, la invencion propone descomponer este bloque actual en sub-bloques, con el fin de trabajar en el nivel de un sub-bloque para seleccionar el vector de movimiento mas proximo a la trayectoria real del bloque actual. Esto permite definir una zona de la imagen actual homogenea en movimiento, y por tanto asignar un unico vector de movimiento a esta zona.
Ademas, es posible segun la invencion decidir no asignar ningun vector de movimiento a un sub-bloque, cuando se alcanza un tamano mmimo para el sub-bloque recubierto y no se respeta el criterio de asignacion predeterminado. En efecto, se prefiere segun la invencion no asignar vector de movimiento a un sub-bloque recubierto, en lugar de asignarle un vector de movimiento no adaptado.
Este tamano mmimo se define por ejemplo en el codificador. Si el sub-bloque recubierto ha alcanzado este tamano mmimo (4x4 por ejemplo), ya no es posible volver a descomponerle.
Esto permite limitar la complejidad de la compensacion de movimiento. En efecto, la compensacion de movimiento necesita clasicamente realizar una interpolacion a nivel de sub-pfxel en la imagen de referencia. Al realizar esta interpolacion a nivel de sub-pfxel sobre unas zonas de la imagen actual que tienen un mismo vector de movimiento
(homogenea en movimiento), es posible reagrupar al maximo los calculos, lo que permite ganar en tiempo de procesamiento.
De esta manera, durante la codificacion del bloque actual segun un modo de realizacion de la invencion, la prediccion por compensacion de movimiento del bloque es optima porque utiliza las informaciones de textura o de movimiento correspondientes a la trayectoria mas proxima a la trayectoria real del bloque actual.
El coste de codificacion del residuo de textura o de movimiento se encuentra por tanto reducido.
Por supuesto, ciertos bloques o sub-bloques de la imagen actual pueden ser predichos (y eventualmente codificados) segun la tecnica propuesta, mientras que otros bloques o sub-bloques de la misma imagen pueden ser predichos (y eventualmente codificados) segun una tecnica clasica, como el modo temporal directo descrito anteriormente por ejemplo.
Igualmente, si no se asigna ningun vector de movimiento a un bloque o sub-bloque a la salida del particionado iterativo segun la invencion (por ejemplo porque se ha alcanzado un tamano mmimo para este sub-bloque, o porque este sub-bloque no responde a ningun criterio de asignacion), es posible utilizar otra tecnica conocida para la prediccion y eventualmente la codificacion de este bloque o sub-bloque. Una tecnica de ese tipo debe estar disponible en el codificador (codificacion intra o inter clasicas por ejemplo). De ese modo, para un bloque a codificar el modo “inter”, es necesario asignar un vector de movimiento a todos los sub-bloques del bloque.
En particular, la invencion permite, segun al menos un modo de realizacion, asignar un vector de movimiento a un bloque de la imagen actual cualquiera que sea el tamano de los bloques en la imagen de referencia y en la imagen actual. De ese modo, es posible que al menos dos bloques de la imagen de referencia presenten un tamano diferente, y/o que al menos dos bloques o sub-bloques de la imagen actual presenten un tamano diferente.
Ahora bien la utilizacion de bloques de tamano variable permite una prediccion mas fina y por tanto una ganancia en compresion. La invencion aplicada en este contexto permite por tanto mejorar estas ganancias en compresion, y definen de ese modo un nuevo modo de codificacion del bloque mas eficaz en terminos de velocidad/distorsion. Con el fin de asignar el vector de movimiento mas proximo al desplazamiento real del bloque actual, se particiona el bloque actual en sub-bloques, y se consideran el o los sub-bloques recubiertos (parcial o totalmente) por uno o varios bloques proyectados.
Se trata entonces este sub-bloque recubierto de diferentes maneras, teniendo en cuenta un criterio de asignacion predeterminado que pertenece al grupo que comprende:
- el sub-bloque recubierto se recubre al menos parcialmente por uno solo de los bloques proyectados;
- un numero predeterminado de pfxeles del sub-bloque recubierto esta recubierto por uno de los bloques proyectados.
Si no se verifica ninguno de estos criterios para el sub-bloque recubierto considerado, se particiona de nuevo este sub-bloque recubierto, con la condicion de que no se alcance el tamano mmimo predeterminado para el sub-bloque. Si no, se asigna al sub-bloque recubierto uno de los vectores de movimiento proyectados seleccionado entre el o los vectores de movimiento proyectados asociados al o a los bloques proyectados que recubren al menos parcialmente el sub-bloque recubierto.
Un primer ejemplo de criterio de asignacion predeterminado es un criterio de unicidad del vector de movimiento proyectado: el sub-bloque recubierto se descompone mientras permanece recubierto por varios bloques proyectados. Cuando el sub-bloque recubierto no esta recubierto mas que por un unico bloque proyectado, se le puede asignar el vector de movimiento proyectado asociado a este bloque proyectado. Esto permite limitar el numero de iteraciones implementadas durante la fase de busqueda del vector de movimiento a asignar al subbloque recubierto.
Un segundo ejemplo de criterio de asignacion predeterminado es un criterio de recubrimiento: el sub-bloque recubierto se descompone mientras no este recubierto a la altura de un cierto porcentaje por un bloque proyectado. Por ejemplo, si un bloque o sub-bloque esta recubierto mayoritariamente por un bloque proyectado, se puede considerar entonces que el vector de movimiento proyectado asociado al bloque proyectado es un vector candidato pertinente, y detener la fase de busqueda.
Segun un aspecto espedfico de la invencion, la etapa de asignacion selecciona el vector de movimiento proyectado asociado al bloque proyectado que recubre mas pfxeles del sub-bloque recubierto.
Esta seleccion puede efectuarse cuando varios vectores de movimiento proyectados son candidates para un subbloque recubierto. Por ejemplo, esta situacion se produce si varios bloques proyectados recubren mayoritariamente el sub-bloque recubierto.
Segun una variante, la etapa de asignacion implementa, para al menos dos bloques proyectados que recubren al menos parcialmente el sub-bloque recubierto a los que se asocian unos vectores de movimiento proyectados (llamados vectores candidatos):
- una etapa de proyeccion anterior, en la imagen de referencia, del sub-bloque recubierto segun cada uno de los vectores candidatos, proporcionando al menos dos sub-bloques proyectados hacia atras (un sub-bloque proyectado hacia atras por vector candidato);
- para cada sub-bloque proyectado hacia atras, determinacion del numero de pfxeles de la imagen de referencia recubiertos por el sub-bloque proyectado hacia atras que presenta un vector de movimiento similar al vector candidato, proporcionando una tasa de recubrimiento por vector candidato;
- asignacion al sub-bloque recubierto del vector candidato que presenta la mejor tasa de recubrimiento.
Esta variante permite asegurar la seleccion del vector de movimiento proyectado mas proxima al movimiento real del bloque actual, principalmente en el caso en que el numero de pfxeles (del sub-bloque recubierto) recubiertos por unos bloques proyectados distintos esta proximo (por ejemplo 60 % de recubrimiento por un primer bloque proyectado y 63 % de recubrimiento por un segundo bloque proyectado). Segun la invencion, un vector de movimiento es similar a un vector candidato en el caso en que el vector de movimiento es igual al vector candidato o bien en el caso en que la diferencia entre el vector de movimiento y el vector candidato es proxima a cero.
Segun un modo de realizacion de la invencion, el procedimiento de codificacion comprende igualmente las siguientes etapas:
- prediccion del bloque actual, desplazando el bloque de la imagen de referencia asociado al vector de movimiento proyectado seleccionado durante la etapa de asignacion segun el vector de movimiento proyectado seleccionado, proporcionando un bloque predicho;
- determinacion de al menos un residuo de textura, por comparacion del bloque actual y del bloque predicho; - codificacion del o de los residuos de textura.
La invencion propone asf, segun este modo de realizacion, mejorar la tecnica de codificacion del modo temporal directo proponiendo una prediccion a un bloque actual de la imagen actual a predecir calculada a partir de una compensacion de movimiento efectuada a partir del movimiento proyectado de varios bloques de la imagen de referencia.
Haciendose la prediccion del bloque actual segun la trayectoria de los bloques de la imagen de referencia mas proxima a la trayectoria real del bloque actual, el coste de codificacion del residuo de textura es reducido.
Segun otro modo de realizacion, el procedimiento de codificacion comprende igualmente las siguientes etapas: - determinacion de un vector de movimiento asociado al bloque actual;
- determinacion de al menos un residuo de vector de movimiento, por comparacion del vector de movimiento proyectado seleccionado y del vector de movimiento asociado al bloque actual;
- codificacion del o de los residuos de vector de movimiento.
Segun este modo de realizacion, la invencion permite predecir un vector de movimiento. Se utiliza asf el vector de movimiento proyectado seleccionado como predictor del “verdadero” vector de movimiento del bloque actual, determinado segun otra tecnica conocida (como se describe segun la norma H.264 por ejemplo).
Se determina entonces y se codifica el residuo de prediccion obtenido restando el vector de movimiento proyectado seleccionado al verdadero vector de movimiento.
En otros terminos, el codificador puede utilizar el vector de movimiento proyectado seleccionado para un bloque actual segun la invencion como prediccion para el vector de movimiento estimado para este bloque actual, con el fin de reducir el coste de codificacion de movimiento del bloque.
El bloque actual puede no codificarse entonces segun este modo de codificacion, sino que el vector de movimiento proyectado seleccionado puede utilizarse para mejorar los rendimientos de otro modo de codificacion.
En particular, el procedimiento de codificacion comprende una etapa de prediccion de al menos un vector de movimiento asociado a un bloque vecino al bloque actual en la imagen actual, a partir del vector de movimiento proyectado seleccionado durante la etapa de asignacion.
De ese modo, el vector de movimiento proyectado seleccionado puede utilizarse para la prediccion de los vectores de movimiento de los bloques vecinos. La invencion permite as^ optimizar el coste de codificacion de los vectores de movimiento del bloque actual y/o de estos bloques vecinos.
Segun tambien otro modo de realizacion, es posible combinar los dos modos de realizacion propuestos anteriormente determinando y codificando a la vez un residuo de textura y un residuo de movimiento para al menos un bloque de la imagen actual.
Segun tambien otro modo de realizacion, es posible no codificar ni el (los) residuo(s) de textura, ni el (los) residuo(s) de movimiento para al menos un bloque de la imagen actual. Este modo de codificacion se llama entonces modo “skip”.
Segun otro aspecto de la invencion, el procedimiento de codificacion comprende una etapa de insercion, en un flujo representativo de la secuencia de imagenes, de al menos un indicador representativo de un nuevo modo de codificacion implementado para al menos un bloque (por ejemplo de tamano 64x64) o sub-bloque (por ejemplo de tamano 16x16) de la imagen actual, indicando la utilizacion de al menos un vector de movimiento proyectado seleccionado para la codificacion del bloque o sub-bloque.
En particular, se observa que si un bloque se codifica utilizando el nuevo modo de codificacion, este nuevo modo de codificacion se impone a los sub-bloques procedentes de este bloque. Por ejemplo, si se considera un bloque de tamano 16x16, particionado en cuatro sub-bloques de tamano 8x8, se busca asignar un vector de movimiento proyectado a cada sub-bloque procedente de este bloque.
Un indicador de ese tipo puede insertarse en el flujo para senalizar que el nuevo modo de codificacion se aplica a uno o varios sub-bloque(s), o bloque(s), o imagen(es), incluso al conjunto de la secuencia de imagenes.
Es posible asf precisar a nivel del bloque (o de un sub-bloque) que esta codificado en este nuevo modo, para diferenciarlo de los modos de codificacion “inter” e “intra” clasicos. Por ejemplo, un indicador de ese tipo se denomina “INTER_NEW_MODE”. De ese modo, cada bloque de la imagen actual puede codificarse utilizando un modo de codificacion distinto (nuevo modo de codificacion, modo de codificacion “intra”, modo de codificacion “inter”,...).
Segun una variante, es posible precisar a nivel de la secuencia de imagenes (o de una imagen) que todos los bloques o sub-bloques estan codificados segun una tecnica conocida (“inter”, “skip”, . ) utilizando el vector de movimiento proyectado seleccionado segun la invencion. Se utiliza por tanto este vector de movimiento proyectado como predictor.
Es igualmente posible prever al menos otro indicador, que precisa el tipo de la prediccion implementada para este bloque o sub-bloque de la imagen actual, perteneciente al grupo que comprende:
- un indicador que senaliza una codificacion de al menos un residuo del vector de movimiento para el bloque; - un indicador que senaliza una codificacion de al menos un residuo de textura para el bloque;
- un indicador que senaliza una ausencia de codificacion del bloque.
De esta manera, un decodificador sabe inmediatamente, con la lectura de este indicador:
- si un bloque esta codificado utilizando una prediccion de textura que implementa una compensacion de movimiento con ayuda del vector de movimiento proyectado seleccionado como se ha descrito anteriormente; y/o - si un bloque esta codificado utilizando para la prediccion de su vector de movimiento, el vector de movimiento proyectado seleccionado como se ha descrito anteriormente;
- si un bloque no esta codificado.
En otro modo de realizacion, la invencion se refiere a un dispositivo de codificacion de una secuencia de imagenes que comprende unos medios de prediccion de al menos una imagen actual por compensacion de movimiento anticipado a partir de al menos una imagen de referencia, comprendiendo dichos medios de prediccion, para al menos un bloque de la imagen actual, llamado bloque actual, unos medios de proyeccion hacia adelante de al menos un bloque de la imagen de referencia sobre la imagen actual, proporcionando al menos un bloque proyectado que recubre al menos parcialmente el bloque actual, representando un vector de movimiento el desplazamiento del bloque proyectado en la imagen actual, normalizado para tener en cuenta una distancia temporal entre la imagen de referencia y la imagen actual, llamado vector de movimiento proyectado, que se asocia a cada bloque proyectado. Segun la invencion, los medios de prediccion comprenden, para el bloque actual antes citado, unos medios de particionado del bloque actual, que proporcionan al menos un sub-bloque recubierto al menos parcialmente por al menos uno de los bloques proyectados, llamado sub-bloque recubierto,
y comprenden los medios siguientes, activados al menos una vez para al menos un sub-bloque recubierto en la forma de una iteracion:
o unos medios de verificacion de que el sub-bloque recubierto respeta un criterio de asignacion predeterminado; o unos medios de asignacion, al sub-bloque recubierto, de uno de los vectores de movimiento proyectados seleccionado entre el o los vectores de movimiento proyectados asociados a o a los bloques proyectados que recubren al menos parcialmente el sub-bloque recubierto, activados en caso de verificacion positiva;
o unos medios de particionado del sub-bloque recubierto, que proporcionan al menos un nuevo sub-bloque recubierto, activados en caso de verificacion negativa y en tanto que no se haya alcanzado un tamano mmimo predeterminado para el sub-bloque recubierto.
Un dispositivo de codificacion de ese tipo esta adaptado normalmente para implementar el procedimiento de codificacion descrito anteriormente, se trata por ejemplo de un decodificador de video de tipo MPEG o H.264, o segun una norma futura de compresion.
Este dispositivo podra incluir por supuesto las diferentes caractensticas relativas al procedimiento de codificacion segun la invencion. De ese modo las caractensticas y ventajas de este codificador son las mismas que las del procedimiento de codificacion, y no se detallan mas ampliamente.
La invencion se refiere igualmente a un flujo representativo de una secuencia de imagenes codificada segun el procedimiento de codificacion descrito anteriormente. Un flujo de ese tipo lleva al menos un indicador representativo de un nuevo modo de codificacion implementado para al menos un bloque o sub-bloque de la imagen actual, que senaliza la utilizacion de al menos un vector de movimiento proyectado seleccionado para la codificacion del bloque o sub-bloque.
Este flujo podra incluir por supuesto las diferentes caractensticas relativas al procedimiento de codificacion segun la invencion.
La invencion se refiere igualmente a un soporte de registro que lleva un flujo tal como se ha descrito anteriormente. Otro aspecto de la invencion se refiere a un procedimiento de decodificacion de un flujo representativo de una secuencia de imagenes, que implementa una etapa de prediccion de al menos una imagen a reconstruir por compensacion de movimiento anticipado a partir de al menos una imagen de referencia, implementando una etapa de prediccion de ese tipo, para al menos un bloque de la imagen a reconstruir, llamado bloque a reconstruir, una subetapa de proyeccion hacia adelante de al menos un bloque de la imagen de referencia sobre la imagen a reconstruir, proporcionando al menos un bloque proyectado que recubre al menos parcialmente el bloque a reconstruir, un vector de movimiento que representa el desplazamiento del bloque proyectado en la imagen a reconstruir, normalizado para tener en cuenta una distancia temporal entre la imagen de referencia y la imagen a reconstruir, llamado vector de movimiento proyectado, que se asocia a cada bloque proyectado.
Segun la invencion, la etapa de prediccion implementa las sub-etapas siguientes, para el bloque a reconstruir antes citado:
- particionado del bloque a reconstruir, proporcionando al menos un sub-bloque recubierto al menos parcialmente por al menos uno de los bloques proyectados, llamado sub-bloque recubierto;
- al menos una iteracion de las etapas siguientes para al menos un sub-bloque recubierto:
o verificacion de que el sub-bloque recubierto respeta un criterio de asignacion predeterminado;
o en caso de verificacion positiva: asignacion, al sub-bloque recubierto, de uno de los vectores de movimiento proyectados seleccionado entre el o los vectores de movimiento proyectados asociados al o a los bloques proyectados que recubren al menos parcialmente el sub-bloque recubierto;
o en caso de verificacion negativa, y en tanto que no se haya alcanzado un tamano mmimo predeterminado para el sub-bloque recubierto: particionado del sub-bloque recubierto, proporcionando al menos un nuevo sub-bloque recubierto.
Un procedimiento de decodificacion de ese tipo esta principalmente adaptado para decodificar una secuencia de imagenes codificada segun el procedimiento de codificacion anteriormente descrito. Se efectuan de esta manera las mismas etapas de prediccion que en la codificacion, de manera que se seleccione el mismo vector de movimiento proyectado que en la codificacion.
Por ejemplo, el decodificador puede leer al menos un indicador representativo de un nuevo modo de codificacion implementado para al menos un bloque o sub-bloque de la imagen a reconstruir, que senaliza la utilizacion de al menos un vector de movimiento proyectado seleccionado para la codificacion del bloque o sub-bloque.
Puede leer igualmente al menos otro indicador representativo de un tipo de prediccion implementado durante la codificacion del bloque a reconstruir, perteneciendo el o los indicadores al grupo que comprende:
- un indicador que senaliza una codificacion de al menos un residuo del vector de movimiento del bloque;
- un indicador que senaliza una codificacion de al menos un residuo de textura del bloque;
- un indicador que senaliza una ausencia de codificacion del bloque.
De esta manera, el decodificador sabe inmediatamente el tratamiento a efectuar para decodificar el bloque a reconstruir.
Por ejemplo, cuando el bloque a reconstruir se ha codificado utilizando una prediccion de textura que implementa una compensacion de movimiento con ayuda del vector de movimiento proyectado seleccionado, el procedimiento de decodificacion implementa las siguientes etapas:
- prediccion del bloque a reconstruir, desplazando el bloque de la imagen de referencia asociado al vector de movimiento proyectado seleccionado durante la etapa de asignacion segun el vector de movimiento proyectado seleccionado, proporcionando un bloque predicho;
- decodificacion de al menos un residuo de textura extrafdo del flujo representativo de una secuencia de imagenes, obtenido durante la codificacion de la secuencia de imagenes;
- reconstruccion del bloque a reconstruir, a partir del o de los residuo(s) de textura y del bloque predicho.
Cuando el bloque a reconstruir se ha codificado utilizando para la prediccion de su vector de movimiento el vector de movimiento proyectado seleccionado, el procedimiento de decodificacion implementa las siguientes etapas:
- determinacion de un vector de movimiento asociado al bloque a reconstruir;
- decodificacion de al menos un residuo del vector de movimiento extrafdo del flujo representativo de una secuencia de imagenes, obtenido durante la codificacion de la secuencia de imagenes;
- reconstruccion del bloque a reconstruir a partir del o de los residuos de vector de movimiento y del vector de movimiento asociado al bloque a reconstruir.
Es igualmente posible decodificar a la vez unos residuos de movimiento y de textura si estas dos informaciones se han codificado, o ninguna de estas informaciones ni el residuo de textura ni el residuo de movimiento se han codificado para un bloque.
Otro aspecto de la invencion se refiere a un dispositivo de decodificacion de un flujo representativo de una secuencia de imagenes, que comprende unos medios de prediccion de al menos una imagen a reconstruir por compensacion de movimiento anticipado a partir de al menos una imagen de referencia, comprendiendo dichos medios de prediccion, para al menos un bloque de la imagen a reconstruir, llamado bloque a reconstruir, unos medios de proyeccion hacia adelante de al menos un bloque de la imagen de referencia sobre la imagen a reconstruir, proporcionando al menos un bloque proyectado que recubre al menos parcialmente el bloque a reconstruir, un vector de movimiento que representa el desplazamiento del bloque proyectado en la imagen a reconstruir, normalizado para tener en cuenta una distancia temporal entre la imagen de referencia y la imagen a reconstruir, llamado vector de movimiento proyectado, que se asocia a cada bloque proyectado.
Segun la invencion, los medios de prediccion comprenden, para el bloque a reconstruir antes citado, unos medios de particionado del bloque a reconstruir, que proporcionan al menos un sub-bloque recubierto al menos parcialmente por al menos uno de los bloques proyectados, llamado sub-bloque recubierto;
y que comprende los medios siguientes, activados al menos una vez para al menos un sub-bloque recubierto bajo la forma de una iteracion:
o unos medios de verificacion de que el sub-bloque recubierto respeta un criterio de asignacion predeterminado; o unos medios de asignacion, al sub-bloque recubierto, de uno de los vectores de movimiento proyectados seleccionado entre el o los vectores de movimiento proyectados asociados al o a los bloques proyectados que recubren al menos parcialmente el sub-bloque recubierto, activados en caso de verificacion positiva;
o unos medios de particionado del sub-bloque recubierto, que proporcionan al menos un nuevo sub-bloque recubierto, activados en caso de verificacion negativa y en tanto que no se haya alcanzado para el sub-bloque recubierto un tamano mmimo predeterminado.
Un dispositivo de decodificacion de ese tipo esta adaptado principalmente para implementar el procedimiento de decodificacion descrito anteriormente. Se trata por ejemplo de un decodificador de video de tipo MPEG o H.264, o segun una norma futura de compresion.
Este dispositivo podra incluir por supuesto las diferentes caractensticas relativas al procedimiento de decodificacion segun la invencion. De ese modo, las caractensticas y ventajas de este decodificador son las mismas que las del procedimiento de decodificacion, y no se detallan mas ampliamente.
La invencion se refiere tambien a un programa informatico que incluye unas instrucciones para la implementacion de un procedimiento de codificacion y/o de un procedimiento de decodificacion tal como los que se han descrito anteriormente, cuando este programa se ejecuta por un procesador. Un programa de ese tipo puede utilizar no importa que lenguaje de programacion. Puede descargarse desde una red de comunicacion y/o estar registrado sobre un soporte legible por ordenador.
4. Lista de las figuras
Apareceran mas claramente otras caractensticas y ventajas de la invencion con la lectura de la descripcion que sigue de un modo de realizacion particular, dado a titulo de simple ejemplo ilustrativo y no limitativo, y de los dibujos adjuntos, entre los que:
- la figura 1, descrita en relacion con la tecnica anterior, ilustra el modo de codificacion “temporal directo” para una imagen de tipo B;
- las figuras 2A y 2B, igualmente descritas en relacion con la tecnica anterior, ilustran la tecnica de compensacion de movimiento anticipado;
- la figura 3 presenta las principales etapas implementadas por el procedimiento de codificacion segun un modo de realizacion de la invencion;
- las figuras 4A y 4B ilustran un ejemplo de implementacion de la invencion;
- la figura 5 presenta las principales etapas implementadas por el procedimiento de decodificacion segun un modo de realizacion de la invencion;
- las figuras 6 y 7 representan respectivamente la estructura de un codificador y de un decodificador segun un modo de realizacion particular de la invencion.
5. Descripcion de un modo de realizacion de la invencion
5.1 Principio general
El principio general de la invencion se basa sobre el particionado en sub-bloques de al menos un bloque de una imagen a predecir, para el que no se dispone inmediatamente de la informacion de movimiento. Una situacion de ese tipo surge principalmente cuando el bloque de la imagen a predecir esta recubierto por varios bloques proyectados durante una proyeccion hacia adelante de los bloques de la imagen de referencia hacia la imagen a predecir. En efecto, estan disponibles entonces varios vectores de movimiento que representan el desplazamiento del bloque proyectado en la imagen actual para el bloque de la imagen a predecir. La eleccion de un vector, de movimiento no optimizado, es decir alejado de la trayectoria real del bloque actual, puede conducir entonces a un aumento del coste de la codificacion de este bloque.
La solucion propuesta por la invencion permite asignar un vector de movimiento optimizado a un bloque o subbloque de una imagen a predecir, cuando estan disponibles varios vectores de movimiento para este bloque actual. Para optimizar la eleccion del vector de movimiento, la invencion propone trabajar a nivel de los sub-bloques, para al menos un bloque de la imagen a predecir, para seleccionar el vector de movimiento mas proximo a la trayectoria real del bloque actual. Se realizan para esto varias iteraciones de particionado, hasta alcanzar un sub-bloque que respete un criterio de asignacion predeterminado.
El vector de movimiento proyectado asf seleccionado puede utilizarse de diversas maneras en la codificacion y la decodificacion, segun el tipo de prediccion implementado.
Por ejemplo, este vector de movimiento proyectado puede utilizarse para predecir la textura de un bloque de la imagen a predecir, con ayuda de una compensacion de movimiento efectuada a partir de este vector. Este vector de movimiento proyectado puede utilizarse igualmente (o alternativamente) como predictor de un “verdadero” vector de movimiento del bloque actual, determinado segun otra tecnica conocida.
En lo que sigue, se entiende por “sub-bloque” una zona de un bloque de la imagen actual obtenida por descomposicion de este bloque. Un sub-bloque presenta por tanto un tamano inferior al de un bloque. Por ejemplo, un bloque de la imagen actual presenta un tamano 64x64, y un sub-bloque un tamano 16x16.
Los bloques de la imagen de referencia pueden por su parte ser de tamano variable. De ese modo, un bloque de la imagen de referencia puede presentar un tamano 64x64, y un bloque de la imagen de referencia puede presentar un tamano 16x16.
5.2 Funcionamiento del codificador
Se presentan, en relacion con la figura 3, las principales etapas implementadas para la codificacion de una secuencia de imagenes segun un modo de realizacion particular de la invencion.
Para hacer esto se considera una secuencia que comprende al menos una imagen de referencia Iref y una imagen a predecir por compensacion de movimiento anticipado a partir de la imagen de referencia, tambien llamada imagen actual Ic.
Segun este modo de realizacion, se efectuan las sub-etapas siguientes para la prediccion de al menos un bloque actual 32 de la imagen actual le.
En el transcurso de una primera etapa 31, se proyecta hacia adelante al menos un bloque de la imagen de referencia Iref sobre la imagen actual Ic. Debido a la compensacion anticipada, se obtiene al menos un bloque proyectado (311, 312) que recubre al menos parcialmente el bloque actual 32. Se asocia un vector de movimiento, llamado vector de movimiento proyectado, a cada bloque proyectado. Un vector de movimiento proyectado de ese tipo representa el desplazamiento del bloque proyectado en la imagen actual le, normalizado para tener en cuenta la distancia temporal entre la imagen de referencia Iref y la imagen actual le, como se ha descrito con relacion a la tecnica anterior.
Segun este modo de realizacion, los bloques de la imagen de referencia no presentan necesariamente un tamano identico. De ese modo, es posible proyectar, sobre la imagen actual, el movimiento de bloques de la imagen de referencia de tamano variable.
En el transcurso de una siguiente etapa 33, se particiona el bloque actual 32 en sub-bloques. Se obtiene de esta manera al menos un sub-bloque que esta recubierto al menos parcialmente por al menos uno de los bloques proyectados, llamado sub-bloque recubierto (331, 332).
Para al menos un sub-bloque recubierto, por ejemplo el sub-bloque recubierto 332, se implementa al menos una iteracion de las etapas siguientes:
o verificacion (34) de que el sub-bloque recubierto 332 respeta un criterio de asignacion predeterminado;
o en caso de verificacion positiva (341): se asigna (35) al sub-bloque recubierto 332 uno de los vectores de movimiento proyectados seleccionado entre el o los vectores de movimiento proyectados asociados a los bloques proyectados (311, 312) que recubren al menos parcialmente el sub-bloque recubierto 332;
o en caso de verificacion negativa (342), y en tanto que no se haya alcanzado un tamano mmimo predeterminado para el sub-bloque recubierto: se particiona 36 el sub-bloque recubierto, proporcionando al menos un nuevo sub-bloque recubierto.
En otros terminos, se particiona el bloque actual cuando esta recubierto por varios bloques proyectados, despues eventualmente los sub-bloques asf obtenidos cuando estan recubiertos por varios bloques proyectados hasta alcanzar un criterio de asignacion predeterminado. Se busca determinar un unico vector de movimiento asociado a la imagen de referencia para el bloque actual (o para un sub-bloque del bloque actual). Esta determinacion se realiza por medio de un particionado iterativo del bloque actual en sub-bloques de tamano variable, hasta que se valide una condicion de parada.
Por ejemplo, este criterio de asignacion predeterminado pertenece al grupo que comprende:
- el sub-bloque recubierto esta recubierto al menos parcialmente por uno solo de los bloques proyectados;
- un numero predeterminado de pfxeles del sub-bloque recubierto esta recubierto por uno de los bloques proyectados.
Un primer ejemplo de criterio de asignacion predeterminado es un criterio de unicidad del vector de movimiento proyectado: el sub-bloque recubierto se vuelve a descomponer mientras continue estando recubierto por varios bloques proyectados. Cuando el sub-bloque recubierto no esta recubierto mas que un unico bloque proyectado, se le puede asignar el vector de movimiento proyectado asociado a este bloque proyectado.
Un segundo ejemplo de criterio de asignacion predeterminado es un criterio de recubrimiento: el sub-bloque recubierto se vuelve a descomponer mientras no este recubierto a la altura de un cierto porcentaje por un bloque proyectado.
Si estos criterios de asignacion no se respetan, y se ha alcanzado el tamano mmimo posible para el sub-bloque, se detiene el particionado iterativo.
Si el sub-bloque recubierto ha alcanzado un tamano mmimo y esta siempre recubierto al menos parcialmente por varios bloques proyectados, se pueden concebir varias soluciones:
o o bien se selecciona el vector de movimiento proyectado asociado al bloque proyectado que recubre el mayor numero de puntos del sub-bloque recubierto;
o o bien no se asigna ningun vector de movimiento a este sub-bloque recubierto.
En este ultimo caso, es posible utilizar otra tecnica de codificacion conocida si se desea asignar un vector de movimiento a este sub-bloque.
Se describe en el presente documento a continuacion mas en detalle la etapa de particionado iterativo implementada para la codificacion de una secuencia de imagenes segun un modo de realizacion particular de la invencion.
Se recuerda que se busca, segun la invencion, asignar un unico vector de movimiento proyectado a un bloque o sub-bloque de la imagen actual.
Como se ilustra en las figuras 4A y 4B, se consideran por ejemplo unos bloques de tamano variable en la imagen de referencia Iref y unos bloques de tamano estandar en la imagen actual Ic.
La figura 4A ilustra mas precisamente la imagen actual Ic, que comprende por ejemplo nueve bloques B1' a B9' de tamano 16x16. Estos bloques pueden descomponerse en sub-bloques de tamano 16x8, 8x16 u 8x8. Se considera igualmente segun este ejemplo un tamano mmimo de los sub-bloques igual a 8x8.
Los bloques B1'' a B6'', superpuestos a los bloques B1' a B9' de la imagen actual Ic, corresponden a las proyecciones hacia adelante de los bloques B1 a B6 de la imagen de referencia (no representada). Los bloques B1'' a B6'' se llaman tambien bloques proyectados. Como se ilustra en la figura 4A, estos bloques proyectados pueden ser de tamano diferente.
A cada uno de estos bloques proyectados se asocia un vector de movimiento proyectado (MV1 a MV6), que representa el desplazamiento del bloque proyectado en la imagen actual puesto a escala para tener en cuenta una distancia temporal entre la imagen de referencia, la imagen actual y eventualmente otra imagen de referencia a partir de la que se ha calculado el vector de movimiento (vease la figura 1).
Se considera por ejemplo el bloque actual B2' de la imagen a predecir Ie, que esta recubierto parcialmente por los bloques proyectados B1'' y B2''. En la imagen actual Ic, se pueden por tanto asignar dos vectores de movimiento proyectados (MV1 y MV2) al bloque actual B2'.
Con el fin de seleccionar el mejor vector de movimiento proyectado a asignar al bloque actual B2', se propone segun la invencion particionar el bloque actual B2' de manera iterativa.
Por ejemplo, en el transcurso de la etapa 33 de particionado, el bloque actual B2' se descompone en cuatro subbloques SB21, SB22, SB23 y SB24 de tamano 8x8, como se ilustra en la figura 4B. Pueden concebirse otros particionados. Por ejemplo, la descomposicion puede optimizarse con el fin de determinar el mejor particionado del bloque. Esta optimizacion puede ser para minimizar conjuntamente el numero de vectores de movimiento proyectados en cada sub-bloque y maximizar el numero de puntos de cada sub-bloque recubierto por cada vector de movimiento proyectado en el sub-bloque.
Segun el ejemplo ilustrado en la figura 4A, se constata que el sub-bloque SB21 esta parcialmente recubierto por el bloque proyectado B1'', que el sub-bloque SB22 no esta recubierto por ningun bloque proyectado, que el sub-bloque SB23 esta parcialmente recubierto por los bloques proyectados B1'' y B2'', y que el sub-bloque SB24 esta parcialmente recubierto por bloque proyectado B2''.
Se busca entonces asignar un vector de movimiento proyectado a uno de los sub-bloques, por ejemplo al subbloque SB23, tambien llamado sub-bloque recubierto. En efecto, es este sub-bloque el que presenta mas pfxeles recubiertos por los bloques proyectados B1'' y B2''.
Para hacer esto, se comienza por verificar si uno de los sub-bloques recubiertos, por ejemplo sub-bloque recubierto SB23 respeta un criterio de asignacion predeterminado, como un criterio de recubrimiento, en el transcurso de la etapa 34.
Se considera que este criterio se verifica si un numero predeterminado de pfxeles del sub-bloque recubierto SB23 (o un porcentaje, por ejemplo 60 %) esta recubierto por uno de los bloques proyectados. Como el bloque proyectado B2'' recubre en mas del 60 % el sub-bloque recubierto SB23, el criterio de asignacion se verifica (341) para este subbloque recubierto SB23. Se asigna por tanto (35) el vector de movimiento proyectado MV2 al sub-bloque recubierto SB23 (los otros sub-bloques SB21 y SB24 no estan suficientemente recubiertos para que se asigne un vector de movimiento a uno de estos sub-bloques).
Se pasa entonces al bloque siguiente en la imagen actual, indicado por B3'.
Este bloque actual B3' se particiona en dos sub-bloques de 8x16, indicados por SB31 y SB32, en el curso de la etapa de particionado 33. Solo el sub-bloque SB32 esta parcialmente recubierto por un bloque proyectado, el bloque B3''. Se verifica (34) por tanto que el sub-bloque recubierto SB32 respeta el criterio de recubrimiento definido en el presente documento anteriormente. Si es ese el caso (341), se asigna (35) el vector de movimiento proyectado MV3 al sub-bloque recubierto SB32. Si no (342) se vuelve a descomponer (36) en sub-bloque recubierto SB32 en varios sub-bloques, si no se ha alcanzado un tamano mmimo de los sub-bloques, y se reiteran las etapas anteriores.
Si son posibles siempre varios vectores candidatos para un sub-bloque recubierto (por ejemplo porque se ha alcanzado el tamano de descomposicion mmimo), se puede seleccionar, segun este ejemplo de realizacion, el
vector de movimiento proyectado que recubre el mayor numero de puntos del sub-bloque recubierto (se describira a continuacion una variante).
Si no esta disponible ningun vector candidato para un sub-bloque recubierto, o si un sub-bloque no esta recubierto por al menos un bloque proyectado (como el sub-bloque SB22, por ejemplo), se puede elegir no asignar ningun vector de movimiento a este sub-bloque, o bien asignarle por omision el movimiento previamente asociado a un bloque/sub-bloque vecino. Por ejemplo, se puede asignar al sub-bloque SB22 el movimiento de su sub-bloque vecino SB21.
Pueden utilizarse otros criterios predeterminados para la asignacion de los vectores de movimiento proyectados, como el criterio de unicidad del vector de movimiento proyectado anteriormente mencionado.
Para resumir, se puede considerar que la invencion, segun este modo de realizacion, propone una tecnica de particionado adaptativo de un bloque actual de tamano estandar de la imagen a predecir en un conjunto de subbloques que presentan un tamano no estandar o variable (los sub-bloques no presentan necesariamente el mismo tamano). Esta tecnica permite asignar un vector de movimiento proyectado a un sub-bloque del bloque actual, correspondiendo este vector de movimiento proyectado a un vector de movimiento (puesto a escala) de un bloque de la imagen de referencia, pudiendo presentar este bloque de la imagen de referencia un tamano diferente al del sub-bloque.
Se senala que es igualmente posible aplicar este criterio de recubrimiento (o uno de los otros criterios mencionados anteriormente) directamente a un bloque, sin particionarle. Por ejemplo, el bloque B1' de la imagen actual no esta descompuesto, y se le asigna el vector de movimiento proyectado asociado al bloque proyectado que recubre del modo mejor (en mas del 60 %). Segun nuestro ejemplo, se le asigna el vector de movimiento proyectado MV1. Ademas, es posible no asignar vector de movimiento a un bloque de la imagen actual, si no se respeta ninguno de los criterios anteriormente mencionados. Por ejemplo, no se asigna ningun vector de movimiento proyectado al bloque B7'.
Como resultado de estas etapas, se define un vector de movimiento proyectado para al menos ciertos bloques de la imagen actual.
Se describe en el presente documento a continuacion una variante de realizacion, implementada durante la etapa de asignacion 35 de un vector de movimiento proyectado, cuando estan disponibles varios vectores candidatos.
Nos situamos de nuevo en el ejemplo de las figuras 4A y 4B, considerando un criterio de asignacion predeterminado de recubrimiento, y varios vectores candidatos para el sub-bloque recubierto SB23 del bloque B2'. Por ejemplo, los vectores candidatos son el vector de movimiento proyectado MV1 (el bloque proyectado B1'' que recubre en mas del 60 % el sub-bloque recubierto SB23) y el vector de movimiento proyectado MV2 (el bloque proyectado B2'' recubre por su parte tambien en mas del 60 % el sub-bloque recubierto SB23).
Con el fin de seleccionar el vector candidato que se aproxima mas a la trayectoria real del sub-bloque recubierto SB23, se implementan las etapas siguientes, segun esta variante de realizacion:
- proyeccion anterior, en la imagen de referencia, del sub-bloque recubierto SB23 segun cada uno de los vectores candidatos MV1 y MV2. Se obtiene entonces dos sub-bloques proyectados hacia atras SB23‘MV1 y SB23‘MV2 en la imagen de referencia Iref;
- para cada sub-bloque proyectado hacia atras SB23‘MV1 y SB23‘MV2: se determina el numero de pfxeles de la imagen de referencia recubiertos por el sub-bloque proyectado hacia atras que presenta un vector de movimiento similar al vector candidato correspondiente. Por ejemplo, el sub-bloque proyectado hacia atras SB23_MV1, asociado al vector candidato MV1, recubre con un nivel del 62 % una zona de la imagen de referencia asociada al vector de movimiento MV1. El sub-bloque proyectado hacia atras SB23_MV2, asociado al vector candidato MV2, recubre con un nivel del 65 % una zona de la imagen de referencia asociada al vector de movimiento MV2. - se asigna entonces al sub-bloque recubierto SB23 el vector candidato que presenta la mejor tasa de recubrimiento. Segun nuestro ejemplo, se asigna por tanto al sub-bloque recubierto SB23 el vector de movimiento proyectado MV2.
Esta variante de implementacion presenta buenos rendimientos cuando varios bloques proyectados presentan una tasa de recubrimiento bastante proxima.
Con el fin de determinar la tasa de recubrimiento asociada a cada vector candidato, son posibles varias tecnicas: - o bien se cuentan el numero de puntos de la imagen de referencia, en el sub-bloque proyectado hacia atras, que tiene exactamente el mismo vector de movimiento que el vector candidato;
- o bien se calcula una metrica de proximidad, recorriendo por ejemplo todos los puntos de la imagen de referencia localizados en el sub-bloque proyectado hacia atras, y asignandoles un valor igual a 0 o a 1 en funcion de su
distancia al vector candidate, de manera que se obtenga una medida de la proximidad sumando estos valores. Por ejemplo, una metrica de ese tipo se expresa de la forma siguiente:
suma sobre los puntos p presentes en el sub-bloque proyectado hacia atras asociados a la funcion \delta (vector candidato - vector de movimiento asociado al punto p),
en la que \delta(x) es una funcion monotona decreciente con relacion a la amplitud del vector x (diferencia entre el vector de movimiento proyectado hacia atras y el vector de movimiento asociado al punto p). Un ejemplo de ese tipo de funcion es por ejemplo: \delta(x) = 1 si x == 0. Si no \delta(x) = 0. Otro ejemplo es: \delta(v) = -abs(v.x) - abs(v.y).
Se presenta en el presente documento a continuacion otra variante de implementacion que permite asignar un unico vector de movimiento a un bloque o sub-bloque de la imagen a predecir.
Segun esta variante, se particiona el bloque actual en un conjunto de sub-bloques presentando cada uno un tamano mmimo. Por ejemplo, se descompone el bloque actual en sub-bloques de tamano 8x8.
Cada sub-bloque puede esta recubierto por uno o varios bloques proyectados procedentes de la proyeccion hacia adelante de los bloques de la imagen de referencia sobre la imagen actual. Se obtiene por tanto un juego de vectores de movimiento sobre los sub-bloques.
Los sub-bloques pueden reagruparse entonces, si presentan una caractenstica comun. Por ejemplo, se reagrupan (o fusionan) los sub-bloques vecinos que estan recubiertos por un mismo bloque proyectado, y que presentan por tanto un mismo vector de movimiento proyectado.
Si un sub-bloque actual esta recubierto por varios bloques proyectados, se consideran los sub-bloques vecinos del sub-bloque actual. Y se reagrupa este sub-bloque con los sub-bloques vecinos que estan recubiertos por uno de los bloques proyectados que recubren el sub-bloque actual.
Se reconstruye asf un particionado adaptativo del bloque actual, reagrupando los sub-bloques que presentan una caractenstica comun. De esta manera, se asocia un unico vector de movimiento proyectado a un reagrupamiento de sub-bloques, lo que permite alisar el campo de movimiento.
Por otro lado, como ya se ha indicado, el vector de movimiento proyectado asignado a un bloque puede utilizarse de diversas maneras para la codificacion de una imagen o de una secuencia de imagenes.
Segun un primer ejemplo, este vector de movimiento proyectado puede utilizarse para la prediccion de la textura del bloque actual, efectuando una compensacion de movimiento con ayuda del vector de movimiento y de la imagen de referencia. De ese modo, es posible predecir el bloque actual, desplazando el bloque de la imagen de referencia asociado al vector de movimiento proyectado seleccionado durante la etapa de asignacion segun el vector de movimiento proyectado seleccionado, determinar al menos un residuo de textura comparando el bloque actual y el bloque predicho, y posteriormente codificar el o los residuos de textura asf obtenidos.
Puede implementarse igualmente una prediccion bidireccional, efectuando una segunda compensacion de movimiento determinando un segundo vector de movimiento (eventualmente utilizando la tecnica propuesta segun la invencion) a partir del vector de movimiento de la imagen de referencia y poniendole a escala con relacion a la imagen actual y la imagen de referencia con relacion a la que se ha calculado el vector de movimiento.
La prediccion asf obtenida permite por tanto calcular un residuo de textura para el bloque actual, que se transforma, cuantifica y transmite a continuacion a un codificador entropico.
Segun un segundo ejemplo, este vector de movimiento proyectado puede utilizarse para la prediccion del vector de movimiento estimado del bloque actual. En otros terminos, se puede utilizar el vector de movimiento proyectado seleccionado como predictor del “verdadero” vector de movimiento del bloque actual, determinado segun otra tecnica conocida (como se ha descrito segun la norma H.264 por ejemplo). Para hacer esto, se determina que el vector de movimiento asociado al bloque actual utilizando una tecnica conocida. Se determina a continuacion un residuo del vector de movimiento, comparando el vector de movimiento proyectado seleccionado y el vector de movimiento determinado utilizando otra tecnica. El residuo de movimiento asf obtenido se codifica entonces para el bloque actual.
El modo de codificacion del bloque actual asf propuesto puede compararse con otros modos de codificacion para este bloque actual.
5.3 Senalizacion
Si se utiliza el nuevo modo de codificacion propuesto segun la invencion, es necesario senalizar en el flujo representativo de la secuencia de imagenes la utilizacion de este nuevo modo de codificacion, si la utilizacion de este nuevo modo de codificacion no es sistematica.
Por ejemplo, se inserta un indicador “INTER_NEW_MODE”, representativo de un nuevo modo de codificacion implementado para al menos un bloque o sub-bloque de una imagen actual, en el flujo representativo de la secuencia de imagenes codificada segun el procedimiento de codificacion descrito anteriormente.
Un indicador de ese tipo puede insertarse en el flujo para senalizar que el nuevo modo de codificacion se aplica a uno o varios sub-bloque(s), o bloque(s), o imagen(es), incluso al conjunto de la secuencia de imagenes.
Es asf posible precisar a nivel del bloque (o de un sub-bloque) que esta codificado en este nuevo modo, para diferenciarle de los modos de codificacion “inter” e “intra” clasicos. Esta senalizacion a nivel del bloque impone utilizar este modo de codificacion para todas las particiones en sub-bloques de este bloque. En otros terminos, se busca asignar un vector de movimiento proyectado determinado segun la invencion a los sub-bloques procedentes de la particion de este bloque. Si no se asigna ningun vector de movimiento a un sub-bloque como resultado del particionado (por ejemplo porque se ha alcanzado un tamano mmimo para este sub-bloque o este sub-bloque no responde a ningun criterio de asignacion), es posible utilizar otra tecnica conocida para la codificacion de este subbloque. Por ejemplo, se asigna a este sub-bloque un vector de movimiento correspondiente a un vector medio obtenido a partir de los sub-bloques vecinos de este sub-bloque.
Segun una variante, este nuevo indicador indica, a nivel de la secuencia de imagenes (o de una imagen), que todos los bloques o sub-bloques estan codificados segun una tecnica conocida (“inter”, “skip”,...) utilizando el vector de movimiento proyectado seleccionado segun la invencion.
Ademas, es posible insertar un indicador representativo de un tipo de prediccion implementado para este bloque o sub-bloque.
Por ejemplo, un indicador de ese tipo puede senalizar:
- la codificacion de al menos un residuo de vector de movimiento para el bloque (o senalizar el nuevo predictor de movimiento utilizado para el bloque), y/o
- la codificacion de al menos un residuo de textura para el bloque, o
- una ausencia de codificacion del bloque.
Por el contrario, las etapas de proyeccion hacia adelante, de particionado, y las etapas iterativas no necesitan senalizacion particular en el flujo. Es suficiente que el decodificador aplique el mismo criterio de asignacion predeterminado que el codificador.
5.4 Funcionamiento del decodificador
Se presenta de aqrn en adelante, con relacion a la figura 5, las principales etapas implementadas para la decodificacion de un flujo representativo de una secuencia de imagenes segun un modo de realizacion particular de la invencion.
Se considera para ello como mmimo una imagen de referencia Iref (anteriormente reconstruida) y una imagen a reconstruir Ir.
Segun este modo de realizacion, se efectuan las subetapas siguientes para la prediccion de al menos un bloque de la imagen a reconstruir, llamado bloque a reconstruir 52:
- proyeccion hacia adelante (51) de al menos un bloque de la imagen de referencia sobre la imagen a reconstruir, proporcionando al menos un bloque proyectado que recubre al menos parcialmente el bloque a reconstruir, un vector de movimiento que representa el desplazamiento del bloque proyectado en la imagen a reconstruir, normalizado para tener en cuenta una distancia temporal entre la imagen de referencia y la imagen a reconstruir, llamado vector de movimiento proyectado, que esta asociado a cada bloque proyectado;
- particionado (53) del bloque a reconstruir, proporcionando al menos un sub-bloque recubierto al menos parcialmente por al menos uno de los bloques proyectados, llamado sub-bloque recubierto;
- al menos una iteracion de las etapas siguientes para al menos un sub-bloque recubierto:
o verificacion (54) de que el sub-bloque recubierto respeta un criterio de asignacion predeterminado;
o en caso de verificacion positiva (541): asignacion al sub-bloque recubierto de uno de los vectores de movimiento proyectados seleccionado entre el o los vectores de movimiento proyectados asociados al o a los bloques proyectados que recubren al menos parcialmente el sub-bloque recubierto;
o en caso de verificacion negativa (542), y en tanto que no se haya alcanzado un tamano mmimo predeterminado para el sub-bloque recubierto: particionado (56) del sub-bloque recubierto, proporcionando al menos un nuevo sub-bloque recubierto.
Estas etapas son similares a las efectuadas en la codificacion, para seleccionar el mismo vector de movimiento proyectado que en la codificacion. No se describiran con mas detalle.
Si se implementa un nuevo modo de codificacion durante la codificacion de este bloque a reconstruir (o de un subbloque), el decodificador sabe que debe decodificar este bloque o sub-bloque de manera espedfica, gracias a la presencia del indicador “INTER_NEW_MODE” en el flujo.
En particular, el tipo de prediccion implementado durante la codificacion del bloque a reconstruir, puede senalizarse igualmente en el flujo, y el decodificador sabe el tratamiento que debe efectuar para decodificar el bloque a reconstruir.
Por ejemplo, cuando el bloque a reconstruir se ha codificado utilizando una prediccion de textura que implementa una compensacion de movimiento con ayuda del vector de movimiento proyectado seleccionado, el procedimiento de decodificacion implementa una prediccion del bloque a reconstruir, desplazando el bloque de la imagen de referencia asociado al vector de movimiento proyectado seleccionado durante la etapa de asignacion segun el vector de movimiento proyectado seleccionado, una decodificacion del o de los residuo(s) de textura extrafdo(s) del flujo, y una reconstruccion del bloque a reconstruir, a partir del o de los residuos de textura y del bloque predicho.
Cuando el bloque a reconstruir se ha codificado utilizando para la prediccion de su vector de movimiento el vector de movimiento proyectado seleccionado, el procedimiento de decodificacion implementa una determinacion de un vector de movimiento asociado al bloque a reconstruir utilizando una tecnica conocida, una decodificacion del o de los residuo(s) del vector de movimiento extrafdo(s) del flujo, y una reconstruccion del bloque a reconstruir, a partir del o de los residuos del vector de movimiento y del vector de movimiento asociado al bloque a reconstruir.
Es igualmente posible que el bloque a reconstruir no se haya codificado, o se haya codificado a la vez en textura y en movimiento.
Es posible por otro lado que no se haya asignado ningun vector de movimiento a un bloque o sub-bloque durante la codificacion. En este caso, se podra asignar a este bloque o sub-bloque, durante la reconstruccion de la imagen, un vector de movimiento utilizando los bloques o sub-bloques vecinos. Por ejemplo, se asigna a este bloque o subbloque un vector de movimiento correspondiente a un vector medio, como se efectua clasicamente segun la norma AVC.
5.5 Estructura del codificador y del decodificador
Se presenta finalmente, en relacion con las figuras 6 y 7, la estructura simplificada de un codificador y de un decodificador que implementan respectivamente una tecnica de codificacion y una tecnica de decodificacion segun uno de los modos de realizacion descritos anteriormente.
Por ejemplo, el codificador comprende una memoria 61 constituida por una memoria tampon, una unidad de procesamiento 62, equipada por ejemplo con un microprocesador pP, y controlada por el programa informatico 63, que implementa el procedimiento de codificacion segun la invencion.
En la inicializacion, las instrucciones del codigo de programa informatico 63 se cargan por ejemplo en una memoria RAM antes de ser ejecutadas por el procesador de la unidad de procesamiento 62. La unidad de procesamiento 62 recibe en la entrada al menos una imagen de referencia y una imagen actual. El microprocesador de la unidad de procesamiento 62 implementa las etapas del procedimiento de codificacion descrito anteriormente, segun las instrucciones del programa informatico 63, para asignar un vector de movimiento proyectado a uno al menos de los bloques de la imagen actual. Para ello, el codificador comprende, ademas de la memoria tampon 61, unos medios de proyeccion hacia adelante de al menos un bloque de la imagen de referencia sobre la imagen actual (proporcionando uno o varios bloques proyectados), unos medios de particionado del bloque actual (proporcionando al menos un sub-bloque recubierto), unos medios de verificacion de que el sub-bloque recubierto respeta un criterio de asignacion predeterminado, unos medios de asignacion al sub-bloque recubierto de uno de los vectores de movimiento proyectados y unos medios de particionado del sub-bloque recubierto. Estos medios estan controlados por el microprocesador de la unidad de procesamiento 62.
El decodificador comprende por su parte una memoria 71 constituida por una memoria tampon, una unidad de procesamiento 72, equipada por ejemplo con un microprocesador pP, y controlado por el programa informatico 73, que implementa el procedimiento de decodificacion segun la invencion.
En la inicializacion, las instrucciones del codigo de programa informatico 73 se cargan por ejemplo en una memoria RAM antes de ser ejecutadas por el procesador de la unidad de procesamiento 72. La unidad de procesamiento 72 recibe en la entrada un flujo representativo de una secuencia de imagenes. El microprocesador de la unidad de procesamiento 72 implementa las etapas del procedimiento de decodificacion descrito anteriormente, segun las instrucciones del programa informatico 73, para asignar un vector de movimiento proyectado a uno al menos de los bloques de una imagen a reconstruir. Para ello, el decodificador comprende, ademas de la memoria tampon 71,
unos medios de proyeccion hacia adelante de al menos un bloque de la imagen de referencia sobre la imagen a reconstruir (proporcionando uno o varios bloques proyectados), unos medios de particionado del bloque actual (proporcionando al menos un sub-bloque recubierto), unos medios de verificacion de que el sub-bloque recubierto respeta un criterio de asignacion predeterminado, unos medios de asignacion al sub-bloque recubierto de uno de los vectores de movimiento proyectados y unos medios de particionado del sub-bloque recubierto. Estos medios estan controlados por el microprocesador de la unidad de procesamiento 72.
Claims (13)
1. Procedimiento de codificacion de una secuencia de imagenes que implementa una etapa de prediccion de al menos una imagen actual por compensacion de movimiento anticipado a partir de al menos una imagen de referencia descompuesta en bloques de referencia, implementandose la compensacion de movimiento anticipado por compensacion en movimiento de los bloques de referencia de la imagen de referencia sobre otra imagen con ayuda, para cada bloque de referencia, de un vector de movimiento establecido para el bloque de referencia que apunta desde la imagen de referencia hacia dicha otra imagen, implementando dicha etapa de prediccion, para al menos un bloque de dicha imagen actual, llamado bloque actual (32), una subetapa de proyeccion (31) de al menos un bloque de referencia de la imagen de referencia sobre dicha imagen actual con ayuda del vector de movimiento establecido para el bloque de referencia, proporcionando al menos un bloque proyectado (311, 312) que recubre al menos parcialmente dicho bloque actual, un vector de movimiento, llamado vector de movimiento proyectado que representa el desplazamiento del bloque proyectado en la imagen actual, normalizado para tener en cuenta una distancia temporal entre dicha imagen de referencia y dicha imagen actual con relacion a una distancia temporal entre dicha imagen de referencia y dicha otra imagen, que esta asociado a cada bloque proyectado, caracterizado por que dicha etapa de prediccion implementa las subetapas siguientes para dicho bloque actual (32): - particionado (33) de dicho bloque actual, proporcionando al menos un sub-bloque recubierto al menos parcialmente por al menos uno de dichos bloques proyectados, llamado sub-bloque recubierto (331, 332);
- al menos una iteracion de las etapas siguientes para al menos un sub-bloque recubierto:
- verificacion (34) de que dicho sub-bloque recubierto respeta un criterio de asignacion predeterminado que pertenece al grupo que comprende:
- dicho sub-bloque recubierto esta recubierto al menos parcialmente por uno solo de dichos bloques proyectados,
- un numero predeterminado de pfxeles de dicho sub-bloque recubierto esta recubierto por uno de dichos bloques proyectados;
o en caso de verificacion positiva: asignacion (35), a dicho sub-bloque recubierto, de uno de dichos vectores de movimiento proyectados seleccionado entre el o los vectores de movimiento proyectados asociados al o a los bloques proyectados que recubren al menos parcialmente dicho sub-bloque recubierto;
o en caso de verificacion negativa, y en tanto que no se haya alcanzado un tamano mmimo predeterminado para dicho sub-bloque recubierto: particionado (36) de dicho sub-bloque recubierto, proporcionando al menos un nuevo sub-bloque recubierto.
2. Procedimiento de codificacion segun la reivindicacion 1, caracterizado por que dicha etapa de asignacion (35) selecciona el vector de movimiento proyectado asociado al bloque proyectado que recubre mas pfxeles de dicho sub-bloque recubierto.
3. Procedimiento de codificacion segun la reivindicacion 1, caracterizado por que dicha etapa de asignacion (35) implementa, para al menos dos bloques proyectados que recubren al menos parcialmente dicho sub-bloque recubierto, a los que se asocian unos vectores de movimiento proyectados llamados vectores candidatos:
- una etapa de proyeccion de dicho sub-bloque recubierto de la imagen actual sobre la imagen de referencia segun cada uno de dichos vectores candidatos, proporcionando al menos dos sub-bloques proyectados;
- para cada sub-bloque proyectado segun un vector candidato, determinacion del numero de pfxeles de dicha imagen de referencia recubiertos por dicho sub-bloque proyectado que presenta un vector de movimiento igual a dicho vector candidato, proporcionando una tasa de recubrimiento por vector candidato;
- asignacion a dicho sub-bloque recubierto del vector candidato que presenta la mejor tasa de recubrimiento.
4. Procedimiento de codificacion segun la reivindicacion 1, caracterizado por que comprende igualmente las etapas siguientes:
- prediccion de al menos un sub-bloque del bloque actual asociado a un vector de movimiento proyectado seleccionado, desplazando el bloque de la imagen de referencia asociado al vector de movimiento proyectado seleccionado durante dicha etapa de asignacion segun dicho vector de movimiento proyectado seleccionado, proporcionando un sub-bloque predicho;
- determinacion de al menos un residuo de textura, por comparacion de dicho al menos un sub-bloque y del subbloque predicho;
- codificacion de dicho al menos un residuo de textura.
5. Procedimiento de codificacion segun la reivindicacion 1 o la reivindicacion 4, caracterizado por que comprende igualmente las etapas siguientes para al menos un sub-bloque de los sub-bloques del bloque actual, asociado a un vector de movimiento proyectado:
- determinacion de un vector de movimiento asociado a dicho al menos un sub-bloque;
- determinacion de al menos un residuo de vector de movimiento, por comparacion de dicho vector de movimiento proyectado seleccionado para dicho al menos un sub-bloque y de dicho vector de movimiento determinado para dicho al menos un sub-bloque;
- codificacion de dicho al menos un residuo de vector de movimiento.
6. Procedimiento de codificacion segun la reivindicacion 1, caracterizado por que comprende una etapa de asignacion a un sub-bloque del bloque actual al que no se ha asociado ningun vector de movimiento proyectado, de un vector de movimiento proyectado seleccionado para un bloque o sub-bloque vecino de dicho sub-bloque del bloque actual durante dicha etapa de asignacion (35).
7. Procedimiento de codificacion segun la reivindicacion 1, caracterizado por que comprende una etapa de insercion, en un flujo representativo de dicha secuencia, de al menos un indicador representativo de un nuevo modo de codificacion implementado para al menos un bloque o sub-bloque de la imagen actual, senalizando la utilizacion de al menos un vector de movimiento proyectado seleccionado para la codificacion de dicho bloque o sub-bloque.
8. Dispositivo de codificacion de una secuencia de imagenes que comprende unos medios de prediccion de al menos una imagen actual por compensacion de movimiento anticipado a partir de al menos una imagen de referencia descompuesta en bloques de referencia, implementandose la compensacion de movimiento anticipado por compensacion en movimiento de los bloques de referencia de la imagen de referencia sobre otra imagen con la ayuda, para cada bloque de referencia, de un vector de movimiento establecido para el bloque de referencia que apunta desde la imagen de referencia hacia dicha imagen, comprendiendo dichos medios de prediccion, para al menos un bloque de dicha imagen actual, llamado bloque actual (32), unos medios de proyeccion (31) de al menos un bloque de referencia de la imagen de referencia sobre dicha imagen actual con ayuda del vector de movimiento establecido para el bloque de referencia, proporcionando al menos un bloque proyectado (311, 312) que recubre al menos parcialmente dicho bloque actual, un vector de movimiento, llamado vector de movimiento proyectado, que representa el desplazamiento del bloque proyectado en la imagen actual, normalizado para tener en cuenta una distancia temporal entre dicha imagen de referencia y dicha imagen actual con relacion a una distancia temporal entre dicha imagen de referencia y dicha otra imagen, que esta asociado a cada bloque proyectado, caracterizado por que dichos medios de prediccion comprenden, para dicho bloque actual (32), unos medios de particionado (33) de dicho bloque actual, proporcionando al menos un sub-bloque recubierto al menos parcialmente por al menos uno de dichos bloques proyectados, llamado sub-bloque recubierto (331, 332),
y comprenden los medios siguientes, activados al menos una vez para al menos un sub-bloque recubierto en la forma de una iteracion:
- unos medios de verificacion (34) de que dicho sub-bloque recubierto respeta un criterio de asignacion predeterminado que pertenece al grupo que comprende:
- dicho sub-bloque recubierto esta recubierto al menos parcialmente por uno solo de dichos bloques proyectados,
- un numero predeterminado de pfxeles de dicho sub-bloque recubierto esta recubierto por uno de dichos bloques proyectados;
o unos medios de asignacion (35), a dicho sub-bloque recubierto, de uno de dichos vectores de movimiento proyectados seleccionado entre el o los vectores de movimiento proyectados asociados a o a los bloques proyectados que recubren al menos parcialmente dicho sub-bloque recubierto, activados en caso de verificacion positiva;
o unos medios de particionado (36) de dicho sub-bloque recubierto, que proporcionan al menos un nuevo sub-bloque recubierto, activados en caso de verificacion negativa y en tanto que no se haya alcanzado un tamano mmimo predeterminado para dicho sub-bloque recubierto.
9. Procedimiento de decodificacion de un flujo representativo de una secuencia de imagenes, que implementa una etapa de prediccion de al menos una imagen a reconstruir por compensacion de movimiento anticipado a partir de al menos una imagen de referencia descompuesta en bloques de referencia, implementandose la compensacion de movimiento anticipado por compensacion en movimiento de los bloques de referencia de la imagen de referencia sobre otra imagen con la ayuda, para cada bloque de referencia, de un vector de movimiento establecido para el bloque de referencia que apunta desde la imagen de referencia hacia dicha otra imagen, implementando dicha etapa de prediccion, para al menos un bloque de dicha imagen a reconstruir, llamado bloque a reconstruir (52), una subetapa de proyeccion (51) de al menos un bloque de referencia de la imagen de referencia sobre dicha imagen a reconstruir con ayuda del vector de movimiento establecido para el bloque de referencia, proporcionando al menos un bloque proyectado que recubre al menos parcialmente dicho bloque a reconstruir, un vector de movimiento, llamado vector de movimiento proyectado, que representa el desplazamiento del bloque proyectado en la imagen a reconstruir, normalizado para tener en cuenta una distancia temporal entre dicha imagen de referencia y dicha imagen a reconstruir con relacion a una distancia temporal entre dicha imagen de referencia y dicha otra imagen, que esta asociado a cada bloque proyectado,
caracterizado por que dicha etapa de prediccion implementa las subetapas siguientes, para dicho bloque a reconstruir (52):
- particionado (53) de dicho bloque a reconstruir, proporcionando al menos un sub-bloque recubierto al menos parcialmente por al menos uno de dichos bloques proyectados, llamado sub-bloque recubierto;
- al menos una iteracion de las etapas siguientes para al menos un sub-bloque recubierto:
- verificacion (54) de que dicho sub-bloque recubierto respeta un criterio de asignacion predeterminado que pertenece al grupo que comprende:
- dicho sub-bloque recubierto esta recubierto al menos parcialmente por uno solo de dichos bloques proyectados,
- un numero predeterminado de pfxeles de dicho sub-bloque recubierto esta recubierto por uno de dichos bloques proyectados;
o en caso de verificacion positiva: asignacion (55), a dicho sub-bloque recubierto, de uno de los vectores de movimiento proyectados seleccionado entre el o los vectores de movimiento proyectados asociados al o a los bloques proyectados que recubren al menos parcialmente dicho sub-bloque recubierto;
o en caso de verificacion negativa, y en tanto que no se haya alcanzado un tamano mmimo predeterminado para dicho sub-bloque recubierto: particionado (56) del sub-bloque recubierto, proporcionando al menos un nuevo sub-bloque recubierto.
10. Procedimiento de decodificacion segun la reivindicacion 9, caracterizado por que implementa igualmente las etapas siguientes:
- prediccion de al menos un sub-bloque de dicho bloque a reconstruir, estando asociado dicho sub-bloque a un vector de movimiento proyectado seleccionado, desplazando el bloque de la imagen de referencia asociado al vector de movimiento proyectado seleccionado durante dicha etapa de asignacion segun dicho vector de movimiento proyectado seleccionado, proporcionando un sub-bloque predicho;
- decodificacion de al menos un residuo de textura extrafdo de dicho flujo representativo de una secuencia de imagenes, obtenido durante la codificacion de dicha secuencia de imagenes;
- reconstruccion de dicho sub-bloque de dicho bloque a reconstruir, a partir de dicho al menos un residuo de textura y del sub-bloque predicho.
11. Procedimiento de decodificacion segun una cualquiera de las reivindicaciones 9 o 10, caracterizado por que implementa igualmente las etapas siguientes, para al menos un sub-bloque de los sub-bloques del bloque a reconstruir, asociado a un vector de movimiento proyectado:
- determinacion de un vector de movimiento asociado a dicho sub-bloque del bloque a reconstruir;
- decodificacion de al menos un residuo del vector de movimiento extrafdo de dicho flujo representativo de una secuencia de imagenes, obtenido durante la codificacion de dicha secuencia de imagenes;
- reconstruccion de dicho sub-bloque del bloque a reconstruir, a partir de dicho al menos un residuo del vector de movimiento y de dicho vector de movimiento asociado a dicho sub-bloque del bloque a reconstruir.
12. Dispositivo de decodificacion de un flujo representativo de una secuencia de imagenes, que comprende unos medios de prediccion de al menos una imagen a reconstruir por compensacion de movimiento anticipado a partir de al menos una imagen de referencia descompuesta en bloques de referencia, implementandose la compensacion de movimiento anticipado por compensacion en movimiento de los bloques de referencia de la imagen de referencia sobre otra imagen con ayuda, para cada bloque de referencia, de un vector de movimiento establecido para el bloque de referencia que apunta desde la imagen de referencia hacia dicha otra imagen, comprendiendo dichos medios de prediccion, para al menos un bloque de dicha imagen a reconstruir, llamado bloque a reconstruir (52), unos medios de proyeccion (51) de al menos un bloque de referencia de la imagen de referencia sobre dicha imagen a reconstruir con ayuda del vector de movimiento establecido para el bloque de referencia, proporcionando al menos un bloque proyectado que recubre al menos parcialmente dicho bloque a reconstruir, un vector de movimiento, llamado vector de movimiento proyectado, que representa el desplazamiento del bloque proyectado en la imagen a reconstruir, normalizado para tener en cuenta una distancia temporal entre la imagen de referencia y la imagen a reconstruir con relacion a una distancia temporal entre dicha imagen de referencia y dicha otra imagen, que esta asociado a cada bloque proyectado,
caracterizado por que dichos medios de prediccion comprenden, para dicho bloque a reconstruir (52), unos medios de particionado (53) de dicho bloque a reconstruir, proporcionando al menos un sub-bloque recubierto al menos parcialmente por al menos uno de dichos bloques proyectados, llamado sub-bloque recubierto; y que comprende los medios siguientes, activados al menos una vez para al menos un sub-bloque recubierto bajo la forma de una iteracion:
- unos medios de verificacion (54) de que el sub-bloque recubierto respeta un criterio de asignacion predeterminado que pertenece al grupo que comprende:
- dicho sub-bloque recubierto esta recubierto al menos parcialmente por uno solo de dichos bloques proyectados,
- un numero predeterminado de p^xeles de dicho sub-bloque recubierto esta recubierto por uno de dichos bloques proyectados;
o unos medios de asignacion (55), a dicho sub-bloque recubierto, de uno de los vectores de movimiento proyectados seleccionado entre el o los vectores de movimiento proyectados asociados al o a los bloques proyectados que recubren al menos parcialmente dicho sub-bloque recubierto, activados en caso de verificacion positiva;
o unos medios de particionado (56) de dicho sub-bloque recubierto, que proporcionan al menos un nuevo sub-bloque recubierto, activados en caso de verificacion negativa y en tanto que no se haya alcanzado para dicho sub-bloque recubierto un tamano mmimo predeterminado.
13. Programa informatico que incluye unas instrucciones para la implementacion de un procedimiento segun la reivindicacion 1 o segun la reivindicacion 9 cuando este programa se ejecuta por un procesador.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR1052440 | 2010-03-31 | ||
| PCT/FR2011/050687 WO2011121227A1 (fr) | 2010-03-31 | 2011-03-29 | Procedes et dispositifs de codage et de decodage d'une sequence d'images mettant en œuvre une prediction par compensation de mouvement avant, flux et programme d'ordinateur correspondants |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2713173T3 true ES2713173T3 (es) | 2019-05-20 |
Family
ID=42732811
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES11718431T Active ES2713173T3 (es) | 2010-03-31 | 2011-03-29 | Procedimientos y dispositivos de codificación y de decodificación de una secuencia de imágenes que implementan una predicción por compensación de movimiento anticipado, y programa de ordenador correspondiente |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US9756357B2 (es) |
| EP (1) | EP2553927B1 (es) |
| CN (1) | CN102939751B (es) |
| ES (1) | ES2713173T3 (es) |
| WO (1) | WO2011121227A1 (es) |
Families Citing this family (28)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9760992B2 (en) | 2013-09-27 | 2017-09-12 | Koninklijke Philips N.V. | Motion compensated iterative reconstruction |
| CA2925183C (en) | 2013-10-14 | 2020-03-10 | Microsoft Technology Licensing, Llc | Features of base color index map mode for video and image coding and decoding |
| CN105659602B (zh) | 2013-10-14 | 2019-10-08 | 微软技术许可有限责任公司 | 用于视频和图像编码的帧内块复制预测模式的编码器侧选项 |
| RU2654129C2 (ru) | 2013-10-14 | 2018-05-16 | МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи | Функциональные возможности режима внутреннего предсказания с блочным копированием для кодирования и декодирования видео и изображений |
| CN104683805B (zh) * | 2013-11-30 | 2019-09-17 | 同济大学 | 图像编码、解码方法及装置 |
| RU2669005C2 (ru) | 2014-01-03 | 2018-10-05 | МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи | Предсказание вектора блока в кодировании/декодировании видео и изображений |
| US10390034B2 (en) | 2014-01-03 | 2019-08-20 | Microsoft Technology Licensing, Llc | Innovations in block vector prediction and estimation of reconstructed sample values within an overlap area |
| US11284103B2 (en) | 2014-01-17 | 2022-03-22 | Microsoft Technology Licensing, Llc | Intra block copy prediction with asymmetric partitions and encoder-side search patterns, search ranges and approaches to partitioning |
| US10542274B2 (en) | 2014-02-21 | 2020-01-21 | Microsoft Technology Licensing, Llc | Dictionary encoding and decoding of screen content |
| KR102401946B1 (ko) | 2014-03-04 | 2022-05-24 | 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 | 인트라 블록 카피 예측에서의 스킵 모드 및 블록 플립핑 |
| KR102311815B1 (ko) | 2014-06-19 | 2021-10-13 | 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 | 통합된 인트라 블록 카피 및 인터 예측 모드 |
| JP2017535145A (ja) | 2014-09-30 | 2017-11-24 | マイクロソフト テクノロジー ライセンシング,エルエルシー | 波面並列処理が可能にされた場合のピクチャ内予測モードに関する規則 |
| US10658546B2 (en) * | 2015-01-21 | 2020-05-19 | Cree, Inc. | High efficiency LEDs and methods of manufacturing |
| US9591325B2 (en) | 2015-01-27 | 2017-03-07 | Microsoft Technology Licensing, Llc | Special case handling for merged chroma blocks in intra block copy prediction mode |
| US10187653B2 (en) * | 2015-05-18 | 2019-01-22 | Avago Technologies International Sales Pte. Limited | Motor vector prediction using co-located prediction units |
| EP3308540B1 (en) | 2015-06-09 | 2020-04-15 | Microsoft Technology Licensing, LLC | Robust encoding/decoding of escape-coded pixels in palette mode |
| WO2018105582A1 (ja) * | 2016-12-09 | 2018-06-14 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 符号化装置、復号装置、符号化方法及び復号方法 |
| EP3571839B1 (en) * | 2017-02-06 | 2020-10-28 | Huawei Technologies Co., Ltd. | Video encoder and decoder for predictive partitioning |
| US20180286972A1 (en) * | 2017-02-13 | 2018-10-04 | Ahmad Tarakji | Aluminum-rich field-plated nitride transistors for record high currents |
| CA3065756A1 (en) * | 2017-08-29 | 2019-03-07 | Kt Corporation | Method and device for video signal processing |
| US10986349B2 (en) | 2017-12-29 | 2021-04-20 | Microsoft Technology Licensing, Llc | Constraints on locations of reference blocks for intra block copy prediction |
| CN118573873A (zh) * | 2018-04-09 | 2024-08-30 | Sk电信有限公司 | 视频解码和编码方法及发送比特流的设备 |
| US10764494B2 (en) | 2018-05-25 | 2020-09-01 | Microsoft Technology Licensing, Llc | Adaptive panoramic video streaming using composite pictures |
| US10666863B2 (en) * | 2018-05-25 | 2020-05-26 | Microsoft Technology Licensing, Llc | Adaptive panoramic video streaming using overlapping partitioned sections |
| US11025947B2 (en) * | 2018-11-29 | 2021-06-01 | Mediatek Inc. | Method and apparatus for generating motion field motion vectors for blocks of current frame in on-the-fly manner |
| CN109756778B (zh) * | 2018-12-06 | 2021-09-14 | 中国人民解放军陆军工程大学 | 一种基于自适应运动补偿的帧率转换方法 |
| CN116996683A (zh) * | 2019-01-03 | 2023-11-03 | 北京大学 | 视频图像处理方法与装置 |
| US11516477B2 (en) * | 2021-02-11 | 2022-11-29 | Qualcomm Incorporated | Intra block copy scratch frame buffer |
Family Cites Families (40)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5303179A (en) * | 1992-01-03 | 1994-04-12 | Simmonds Precision Products, Inc. | Method and apparatus for electronically simulating capacitors |
| US5842033A (en) * | 1992-06-30 | 1998-11-24 | Discovision Associates | Padding apparatus for passing an arbitrary number of bits through a buffer in a pipeline system |
| US5803048A (en) * | 1994-04-08 | 1998-09-08 | Honda Giken Kogyo Kabushiki Kaisha | System and method for controlling air-fuel ratio in internal combustion engine |
| WO1996025801A1 (en) * | 1995-02-17 | 1996-08-22 | Trustus Pty. Ltd. | Method for partitioning a block of data into subblocks and for storing and communicating such subblocks |
| US5929940A (en) * | 1995-10-25 | 1999-07-27 | U.S. Philips Corporation | Method and device for estimating motion between images, system for encoding segmented images |
| US5982438A (en) * | 1996-03-22 | 1999-11-09 | Microsoft Corporation | Overlapped motion compensation for object coding |
| US6466624B1 (en) * | 1998-10-28 | 2002-10-15 | Pixonics, Llc | Video decoder with bit stream based enhancements |
| US6404814B1 (en) * | 2000-04-28 | 2002-06-11 | Hewlett-Packard Company | Transcoding method and transcoder for transcoding a predictively-coded object-based picture signal to a predictively-coded block-based picture signal |
| EP1500048A1 (en) | 2002-04-11 | 2005-01-26 | Koninklijke Philips Electronics N.V. | Motion estimation unit and method of estimating a motion vector |
| US7653133B2 (en) * | 2003-06-10 | 2010-01-26 | Rensselaer Polytechnic Institute (Rpi) | Overlapped block motion compression for variable size blocks in the context of MCTF scalable video coders |
| US20050013498A1 (en) * | 2003-07-18 | 2005-01-20 | Microsoft Corporation | Coding of motion vector information |
| US7567617B2 (en) * | 2003-09-07 | 2009-07-28 | Microsoft Corporation | Predicting motion vectors for fields of forward-predicted interlaced video frames |
| US7369709B2 (en) * | 2003-09-07 | 2008-05-06 | Microsoft Corporation | Conditional lapped transform |
| US7400681B2 (en) * | 2003-11-28 | 2008-07-15 | Scientific-Atlanta, Inc. | Low-complexity motion vector prediction for video codec with two lists of reference pictures |
| CN103826133B (zh) * | 2004-05-04 | 2017-11-24 | 高通股份有限公司 | 运动补偿帧速率上调方法和设备 |
| US7565020B2 (en) * | 2004-07-03 | 2009-07-21 | Microsoft Corp. | System and method for image coding employing a hybrid directional prediction and wavelet lifting |
| KR20070040397A (ko) * | 2004-07-20 | 2007-04-16 | 퀄컴 인코포레이티드 | 다중의 기준 프레임 및 가변 블록 크기를 가진 프레임레이트 업 변환을 위한 방법 및 장치 |
| US8553776B2 (en) * | 2004-07-21 | 2013-10-08 | QUALCOMM Inorporated | Method and apparatus for motion vector assignment |
| KR100896279B1 (ko) * | 2005-04-15 | 2009-05-07 | 엘지전자 주식회사 | 영상 신호의 스케일러블 인코딩 및 디코딩 방법 |
| US8787460B1 (en) * | 2005-07-28 | 2014-07-22 | Teradici Corporation | Method and apparatus for motion vector estimation for an image sequence |
| KR100746011B1 (ko) * | 2005-08-24 | 2007-08-06 | 삼성전자주식회사 | 잔차 예측의 성능 개선 방법, 상기 방법을 이용한 비디오인코더 및 비디오 디코더 |
| JP4527677B2 (ja) * | 2006-03-15 | 2010-08-18 | 富士通株式会社 | 動画像符号化方法、動画像符号化装置、動画像符号化プログラム |
| US8494052B2 (en) * | 2006-04-07 | 2013-07-23 | Microsoft Corporation | Dynamic selection of motion estimation search ranges and extended motion vector ranges |
| US20090290643A1 (en) * | 2006-07-12 | 2009-11-26 | Jeong Hyu Yang | Method and apparatus for processing a signal |
| US8548056B2 (en) * | 2007-01-08 | 2013-10-01 | Qualcomm Incorporated | Extended inter-layer coding for spatial scability |
| US8144778B2 (en) * | 2007-02-22 | 2012-03-27 | Sigma Designs, Inc. | Motion compensated frame rate conversion system and method |
| US20100215101A1 (en) * | 2007-04-09 | 2010-08-26 | Yong Joon Jeon | Method and an apparatus for processing a video signal |
| FR2915342A1 (fr) * | 2007-04-20 | 2008-10-24 | Canon Kk | Procede et dispositif de codage video |
| US8565309B2 (en) * | 2007-08-28 | 2013-10-22 | Surapong Lertrattanapanich | System and method for motion vector collection for motion compensated interpolation of digital video |
| US8605786B2 (en) * | 2007-09-04 | 2013-12-10 | The Regents Of The University Of California | Hierarchical motion vector processing method, software and devices |
| KR101579394B1 (ko) * | 2007-10-16 | 2015-12-21 | 톰슨 라이센싱 | 기하학적으로 분할된 수퍼 블록들의 비디오 인코딩 및 디코딩 방법 및 장치 |
| US8228990B2 (en) * | 2008-01-16 | 2012-07-24 | Sony Corporation | Template matching scheme using multiple predictors as candidates for intra-prediction |
| WO2010017166A2 (en) * | 2008-08-04 | 2010-02-11 | Dolby Laboratories Licensing Corporation | Overlapped block disparity estimation and compensation architecture |
| CN102132247B (zh) * | 2008-08-19 | 2014-09-10 | 汤姆森特许公司 | 传播地图 |
| CN102187670B (zh) * | 2008-10-15 | 2014-05-14 | 法国电信公司 | 通过前向移动期间的补偿来预测图像 |
| CN102301714B (zh) * | 2009-01-28 | 2014-01-22 | 法国电信公司 | 用于对实施运动补偿的图像序列进行编码和解码的方法、以及对应的编码和解码装置 |
| US20100201870A1 (en) * | 2009-02-11 | 2010-08-12 | Martin Luessi | System and method for frame interpolation for a compressed video bitstream |
| US8917769B2 (en) * | 2009-07-03 | 2014-12-23 | Intel Corporation | Methods and systems to estimate motion based on reconstructed reference frames at a video decoder |
| CA2714932A1 (en) * | 2009-09-23 | 2011-03-23 | Her Majesty The Queen In The Right Of Canada As Represented By The Minister Of Industry | Image interpolation for motion/disparity compensation |
| US9420308B2 (en) * | 2009-12-18 | 2016-08-16 | Vixs Systems, Inc. | Scaled motion search section with parallel processing and method for use therewith |
-
2011
- 2011-03-29 CN CN201180017661.XA patent/CN102939751B/zh active Active
- 2011-03-29 ES ES11718431T patent/ES2713173T3/es active Active
- 2011-03-29 EP EP11718431.7A patent/EP2553927B1/fr active Active
- 2011-03-29 US US13/638,525 patent/US9756357B2/en active Active
- 2011-03-29 WO PCT/FR2011/050687 patent/WO2011121227A1/fr not_active Ceased
Also Published As
| Publication number | Publication date |
|---|---|
| US20130034163A1 (en) | 2013-02-07 |
| EP2553927B1 (fr) | 2018-11-28 |
| CN102939751A (zh) | 2013-02-20 |
| WO2011121227A1 (fr) | 2011-10-06 |
| EP2553927A1 (fr) | 2013-02-06 |
| US9756357B2 (en) | 2017-09-05 |
| CN102939751B (zh) | 2016-03-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2713173T3 (es) | Procedimientos y dispositivos de codificación y de decodificación de una secuencia de imágenes que implementan una predicción por compensación de movimiento anticipado, y programa de ordenador correspondiente | |
| ES2954263T3 (es) | Procedimiento y dispositivo para codificar una secuencia de imágenes y procedimiento y dispositivo para descodificar una secuencia de imágenes | |
| TWI660622B (zh) | 用於合併模式或跳過模式推導的視訊編解碼方法和裝置 | |
| ES2638295T3 (es) | Procedimiento y aparato de codificación de vídeo mejorado | |
| TWI670966B (zh) | 用於視訊編解碼的適應性雙預測的方法及裝置 | |
| ES2726048T3 (es) | Codificación y descodificación de video con una mejora de la diversidad de los vectores de movimiento | |
| TWI655864B (zh) | 視訊編碼中用於運動向量符號預測的方法及裝置 | |
| CN107113424B (zh) | 以帧间预测模式编码的块的视频编码和解码方法 | |
| KR101239567B1 (ko) | 움직임 추정에 대한 검색 범위 선택 방법과 그의 시스템 및 컴퓨터 판독가능 저장 매체 | |
| JP4999859B2 (ja) | 予測参照情報生成方法、動画像符号化及び復号方法、それらの装置、及びそれらのプログラム並びにプログラムを記録した記憶媒体 | |
| ES2618070T3 (es) | Método para la decodificación de imágenes | |
| ES2901803T3 (es) | Procedimiento de codificación predictiva para vector de movimiento, procedimiento de decodificación predictiva para vector de movimiento, dispositivo de codificación de imagen, dispositivo de decodificación de imagen, y programas para ello | |
| CN104244002A (zh) | 一种视频编/解码中运动信息的获取方法及装置 | |
| KR20090115193A (ko) | 움직임 벡터 탐색 방법 및 장치, 그 프로그램 및 프로그램을 기록한 기록매체 | |
| JP2020099037A5 (es) | ||
| KR20180134853A (ko) | 인터 프레임의 세그먼트를 부호화하기 위한 방법 및 전자 장치 | |
| CN103079072A (zh) | 帧间预测方法、编码设备和解码设备 | |
| TW202015405A (zh) | 用於視訊編解碼的幀間預測方法以及裝置 | |
| ES3016584T3 (en) | Image decoding device, image decoding method, and image decoding program | |
| JP2013153423A5 (ja) | 動画像復号装置、動画像復号方法、及び動画像復号プログラム、並びに、受信装置、受信方法、及び受信プログラム | |
| JP2020150530A5 (es) |