ES3047860T3 - Method and apparatus for decoding of video images - Google Patents

Method and apparatus for decoding of video images

Info

Publication number
ES3047860T3
ES3047860T3 ES24160284T ES24160284T ES3047860T3 ES 3047860 T3 ES3047860 T3 ES 3047860T3 ES 24160284 T ES24160284 T ES 24160284T ES 24160284 T ES24160284 T ES 24160284T ES 3047860 T3 ES3047860 T3 ES 3047860T3
Authority
ES
Spain
Prior art keywords
block
reference block
current
candidate reference
current block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES24160284T
Other languages
English (en)
Inventor
Sixin Lin
Mingyuan Yang
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Application granted granted Critical
Publication of ES3047860T3 publication Critical patent/ES3047860T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures

Landscapes

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

Abstract

Se proporciona un método, un aparato y un dispositivo para obtener información de movimiento de imágenes de vídeo. El método incluye: determinar al menos un primer bloque de referencia candidato correspondiente a un bloque actual en un primer fotograma de referencia, según la información de movimiento conocida relacionada con dicho bloque; determinar al menos un segundo bloque de referencia candidato que corresponda respectivamente a dicho primer bloque de referencia candidato en un segundo fotograma de referencia; calcular la suma de las diferencias entre un primer bloque de referencia candidato y un segundo bloque de referencia candidato correspondiente al primer bloque de referencia candidato; y seleccionar los bloques de referencia candidatos que presentan la suma mínima de diferencias como primer y segundo bloque de referencia del bloque actual, y obtener información de movimiento del bloque actual según la información de movimiento determinada por el primer y el segundo bloque de referencia. También se proporciona un método de construcción de plantillas. El método, el aparato y el dispositivo pueden mejorar la eficiencia de codificación y decodificación de imágenes de vídeo. (Traducción automática con Google Translate, sin valor legal)

Description

[0001] DESCRIPCIÓN
[0002] Método y aparato para descodificar imágenes de vídeo
[0003] Campo de la invención
[0004] La presente invención se refiere a tecnologías de vídeo, y en particular, a un método y un aparato para decodificar imágenes de vídeo, a un producto de programa informático y a un medio de almacenamiento para realizar dicho método.
[0005] Antecedentes de la invención
[0006] Con el desarrollo continuo de las tecnologías de codificación de vídeo, las tecnologías de compensación y búsqueda de movimiento entre fotogramas pueden eliminar efectivamente la redundancia de tiempo de los contenidos de vídeo, y la eficiencia de codificación mejora enormemente. La información de movimiento se obtiene a través de estimación de movimiento y luego se transfiere a un extremo de decodificación, y el extremo de decodificación predice y reconstruye una imagen de vídeo mediante un método de compensación de movimiento. Sin embargo, como después de la compensación de movimiento, la proporción del residual de predicción en un flujo de código disminuye significativamente y la proporción de información del vector de movimiento en el flujo de código aumenta continuamente, cómo comprimir eficazmente la información de movimiento se vuelve crucial para mejorar aún más la eficiencia de la compresión de vídeo.
[0007] En la técnica anterior se proporciona un método para obtener información de movimiento reduciendo la proporción de la información de movimiento en un flujo de código en un proceso de codificación y decodificación de imágenes de vídeo.
[0008] Los vectores de movimiento se obtienen a través de correspondencia de plantillas. Específicamente, tomando como ejemplo un bloque actual que es un macrobloque en un fotograma B, como se muestra en la FIG. 1, primero, se construye una plantilla TM alrededor del bloque actual usando valores de reconstrucción, y luego los vectores de movimiento m V0 y MV1 que sirven como vectores de movimiento del bloque actual se obtienen usando una plantilla de la misma forma que la plantilla TM para realizar la búsqueda de correspondencia en un fotograma de referencia anterior (Ref List0) y un fotograma de referencia posterior (Ref List1) del bloque y, mientras tanto, se obtiene un valor predicho del bloque actual y se usa para realizar codificación del residual de predicción.
[0009] En la implementación de la presente invención, los inventores encuentran que la técnica anterior tiene al menos el siguiente problema.
[0010] Se introduce un gran error de predicción cuando se obtiene información de movimiento, lo que da como resultado una baja eficiencia de codificación de imágenes de vídeo. MURAKAMI T ET AL: "Advanced B Skip Mode with Decoder-side Motion Estimation", 37. REUNIÓN DEL VCEG; 15-4-2009 - 18-4-2009; YOKOHAMA JP; (GRUPO DE EXPERTOS EN CODIFICACIÓN DE VÍDEOS DEL UIT-T S G. 16), n°. VCEG-AK12, 11 de abril de 2009 (11­ 04-2009), XP030003664 describe que en un modo de salto B avanzado, el vector de movimiento se predice mediante estimación de movimiento entre fotogramas de referencia.
[0011] Compendio de la invención
[0012] Las realizaciones de la presente invención proporcionan un método, un aparato y un dispositivo para obtener información de movimiento de imágenes de vídeo, que puedan mejorar la eficiencia de codificación y decodificación de imágenes de vídeo mejorando el proceso de obtención de información de movimiento en imágenes de vídeo.
[0013] La palabra "invención" como se usa en la presente descripción se refiere al concepto inventivo tal como lo entiende el solicitante en el momento de presentar la solicitud de patente. El objeto para la cual se busca protección se define en las reivindicaciones adjuntas. Todas las siguientes apariciones de la palabra "realización(ones)", si se refieren a combinaciones de características diferentes de las definidas por las reivindicaciones independientes, se refieren a ejemplos que se describieron originalmente pero que no representan realizaciones de la invención actualmente reivindicada; estos ejemplos se siguen mostrando solo con fines ilustrativos.
[0014] El método y aparato para obtener información de movimiento de imágenes de vídeo proporcionados en las realizaciones de la presente invención pueden mejorar la eficiencia de codificación y decodificación de imágenes de vídeo cambiando el método para determinar bloques de referencia para mejorar el proceso de obtención de información de movimiento de imágenes de vídeo. El método de construcción de plantilla proporcionado en la realización de la presente invención puede usar valores predichos correspondientes a una parte de los bloques vecinos del bloque actual para reemplazar valores de reconstrucción desconocidos de la parte de los bloques vecinos del bloque actual cuando el bloque actual es un bloque de partición, para completar la construcción de la plantilla para el bloque actual.
[0015] Breve descripción de los dibujos
[0016] Para ilustrar más claramente las soluciones técnicas según las realizaciones de la presente invención o en la técnica anterior, a continuación se presentan brevemente los dibujos adjuntos necesarios para describir las realizaciones o la técnica anterior. Aparentemente, los dibujos adjuntos en las siguientes descripciones muestran simplemente algunas de las realizaciones de la presente invención, y un experto en la materia puede obtener otros dibujos según los dibujos adjuntos sin esfuerzos creativos.
[0017] La FIG. 1 es un diagrama esquemático de un método para obtener vectores de movimiento a través de correspondencia de plantillas en la técnica anterior;
[0018] la FIG. 2 es un diagrama de flujo de un método según la Realización 1 de la presente invención;
[0019] la FIG. 3 es un diagrama esquemático de un aparato según la Realización 1 de la presente invención;
[0020] la FIG. 4 es un diagrama de flujo de un método según la Realización 2 de la presente invención;
[0021] la FIG. 5 es un primer diagrama estructural esquemático de un fotograma de referencia según la Realización 2 de la presente invención;
[0022] la FIG. 6 es segundo diagrama estructural esquemático de un fotograma de referencia según la Realización 2 de la presente invención;
[0023] la FIG. 7 es un diagrama de flujo de un método según la Realización 3 de la presente invención;
[0024] la FIG. 8 es un primer diagrama estructural esquemático de un fotograma de referencia según la Realización 3 de la presente invención;
[0025] la FIG. 9 es un segundo diagrama estructural esquemático de un fotograma de referencia según la Realización 3 de la presente invención;
[0026] la FIG. 10 es un diagrama esquemático de un aparato según la Realización 4 de la presente invención;
[0027] la FIG. 11 es un diagrama de flujo de un método según la Realización 5 de la presente invención;
[0028] la FIG. 12 es un diagrama esquemático de un aparato según la Realización 5 de la presente invención;
[0029] la FIG. 13 es un diagrama de flujo de un método según la Realización 6 de la presente invención;
[0030] la FIG. 14 es un diagrama estructural esquemático de un fotograma de referencia según la Realización 6 de la presente invención;
[0031] la FIG. 15 es un diagrama de flujo de un método según la Realización 7 de la presente invención;
[0032] la FIG. 16 es un diagrama esquemático de un aparato según la Realización 8 de la presente invención;
[0033] la FIG. 17 es un diagrama esquemático de un dispositivo electrónico según la Realización 9 de la presente invención;
[0034] la FIG. 18 es un diagrama esquemático de un fotograma B según la Realización 10 de la presente invención;
[0035] la FIG. 19 es un diagrama esquemático de decodificación de plantilla en el caso de partición de macrobloques según la Realización 3 de la presente invención; y
[0036] la FIG. 20 es un diagrama esquemático de decodificación de plantilla en el caso de partición de macrobloques 8x8 según la Realización 3 de la presente invención.
[0037] Descripción detallada de las realizaciones
[0038] Realización 1:
[0039] Como se muestra en la FIG. 2, un método para obtener información de movimiento de imágenes de vídeo proporcionado en esta realización incluye las siguientes etapas.
[0040] 201: determinar al menos un primer bloque de referencia candidato correspondiente a un bloque actual en un primer fotograma de referencia según información de movimiento conocida relacionada con el bloque actual.
[0041] En esta realización, la información de movimiento conocida relacionada con el bloque actual puede ser vectores de movimiento de bloques codificados o bloques decodificados relacionados en el tiempo o el espacio con el bloque actual.
[0043] Específicamente, todos o una parte de los vectores de movimiento de bloques codificados/bloques decodificados relacionados con el bloque actual se seleccionan para formar un conjunto de vectores de movimiento candidatos, y luego se determina un primer bloque de referencia candidato en el primer fotograma de referencia correspondientemente según cada vector de movimiento candidato, para obtener un conjunto de primeros bloques de referencia candidatos.
[0045] 202: determinar al menos un segundo bloque de referencia candidato que corresponde respectivamente a al menos un primer bloque de referencia candidato en un segundo fotograma de referencia.
[0047] Un vector de movimiento de cada primer bloque de referencia candidato al bloque actual se determina según una relación de posición entre el primer bloque de referencia candidato y el bloque actual, y cada segundo bloque de referencia candidato que corresponde respectivamente a cada primer bloque de referencia candidato se determina en el segundo fotograma de referencia según el vector de movimiento.
[0049] Por ejemplo, en esta realización, el segundo bloque de referencia candidato correspondiente al primer bloque de referencia candidato en el segundo fotograma de referencia se puede determinar a través de búsqueda de simetría, es decir, después de la búsqueda de simetría, el primer bloque de referencia candidato y el segundo bloque de referencia candidato correspondiente encontrado son simétricos en proporción con el bloque actual como centro.
[0051] 203: calcular una suma de diferencias entre un primer bloque de referencia candidato y un segundo bloque de referencia candidato que corresponde al primer bloque de referencia candidato.
[0053] La suma de diferencias puede ser una suma de diferencias absolutas (SAD), una suma de diferencias de transformación absoluta, o una suma de diferencias absolutas al cuadrado, y definitivamente, alternativamente, también pueden ser otros parámetros para describir una similitud entre dos bloques de referencia; en esta realización y en las siguientes realizaciones, la suma de diferencias absolutas se toma como ejemplo para describir las soluciones proporcionadas por la presente invención.
[0055] 204: seleccionar el primer bloque de referencia candidato y el segundo bloque de referencia candidato que se corresponden con la SAD mínima como un primer bloque de referencia y un segundo bloque de referencia del bloque actual, y obtener información de movimiento del bloque actual según vectores de movimiento determinados por el primer bloque de referencia y el segundo bloque de referencia.
[0057] Para implementar mejor el método para obtener información de movimiento de imágenes de vídeo, esta realización proporciona además un aparato para obtener información de movimiento de imágenes de vídeo, que, como se muestra en la FIG. 3, incluye una primera unidad 301 de determinación, una segunda unidad 302 de determinación, una unidad 303 de cálculo y una unidad 304 de selección.
[0059] La primera unidad 301 de determinación determina al menos un primer bloque de referencia candidato correspondiente a un bloque actual en un primer fotograma de referencia según información de movimiento conocida relacionada con el bloque actual. Luego, la segunda unidad 302 de determinación determina al menos un segundo bloque de referencia candidato que corresponde respectivamente a al menos un primer bloque de referencia candidato en un segundo fotograma de referencia a través de búsqueda de simetría. A continuación, la unidad 303 de cálculo calcula una suma de diferencias entre un primer bloque de referencia candidato y un segundo bloque de referencia candidato que corresponde al primer bloque de referencia candidato. Finalmente, la unidad 304 de selección selecciona el primer bloque de referencia candidato y el segundo bloque de referencia candidato que tienen la suma mínima de diferencias como un primer bloque de referencia y un segundo bloque de referencia del bloque actual, y obtiene información de movimiento del bloque actual según los vectores de movimiento determinados por el primer bloque de referencia y el segundo bloque de referencia.
[0061] El orden de las etapas en el método proporcionado en la realización de la presente invención se puede ajustar según demandas reales.
[0063] Según el método y aparato para obtener información de movimiento de imágenes de vídeo proporcionados en esta realización, se cambia la política de determinación de bloques de referencia en el proceso de determinación de bloques de referencia, lo que puede reducir la complejidad de implementación del proceso de determinación de bloques de referencia manteniendo el rendimiento de codificación básicamente sin cambios, mejorando así el proceso de obtención de información de movimiento en imágenes de vídeo y mejorando la eficiencia de codificación y decodificación de imágenes de vídeo.
[0064] Realización 2:
[0065] Tomando la codificación de fotograma B como ejemplo, como se muestra en la FIG. 4, un método para obtener información de movimiento de imágenes de vídeo proporcionado en esta realización incluye específicamente las siguientes etapas.
[0066] 401: usar vectores de movimiento de bloques codificados alrededor de un bloque actual para formar un conjunto de vectores de movimiento candidatos, que incluye una parte o todos los vectores de movimiento de bloques codificados relacionados con el bloque actual.
[0067] El bloque actual puede ser un macrobloque completo o un bloque de partición de un macrobloque, y aquí se toma como ejemplo un macrobloque completo.
[0068] El conjunto de vectores de movimiento candidatos puede incluir: todo o una parte de los vectores de movimiento MVL, MVU, MVR y MEDIA (MVL, MVU, MVR) de bloques vecinos relacionados en el espacio con el bloque actual (Curr_blk), vectores de movimiento (col_MV1 , col_MV2, col_MV3 y col_MV4 como se muestra en la FIG. 5) en bloques que están en la posición correspondiente a la del bloque actual y están en un fotograma de referencia anterior fn-1 y vectores de movimiento (MV1, MV2,... , MV12 como se muestra en la FIG. 5) de los bloques vecinos de los bloques que están en la posición correspondiente a la del bloque actual y están en el fotograma de referencia anterior fn-1, y vectores de movimiento (col_MV1', col_MV2', col_MV3', y col_MV4' como se muestra en la FIG. 5) en bloques que están en la posición correspondiente a la del bloque actual y están en un fotograma de referencia posterior fn+1 y vectores de movimiento (MV1', MV2', ... , MV12' como se muestra en la FIG. 5) de los bloques vecinos de los bloques que están en la posición correspondiente a la del bloque actual y están en el fotograma de referencia posterior fn+1, es decir, incluyen todo o una parte de los bloques de izquierda, arriba, arriba-izquierda y arriba-derecha del bloque actual, y bloques izquierdo, arriba, arriba-izquierda y arriba-derecha de bloques que están en la posición correspondiente a la del bloque actual y están en fotogramas de referencia, y los bloques que están en la posición correspondiente a la del bloque actual y están en los fotogramas de referencia.
[0069] 402: seleccionar un vector de movimiento del conjunto de vectores de movimiento candidatos, y encontrar un primer bloque de referencia candidato blk11 en un primer fotograma de referencia (en esta realización, el fotograma de referencia anterior fn-1 del fotograma actual se toma como el primer fotograma de referencia) según el vector de movimiento.
[0070] 403: obtener un vector de movimiento del primer bloque de referencia candidato blk11 al bloque actual según una relación de posición entre el primer bloque de referencia candidato blk11 y el bloque actual; y determinar un segundo bloque de referencia candidato blk21 correspondiente al primer bloque de referencia candidato blk11 en un segundo fotograma de referencia (en esta realización, el fotograma de referencia posterior fn+1 del fotograma actual se toma como el segundo fotograma de referencia) según el vector de movimiento.
[0071] 404: calcular una suma de diferencias absolutas SAD1 entre el primer bloque de referencia candidato blk11 y el segundo bloque de referencia candidato b l k21.
[0072] Después de ejecutar la etapa 404, se vuelve a seleccionar un vector de movimiento de los vectores de movimiento no seleccionados en el conjunto de vectores de movimiento candidatos, para ejecutar repetidamente las etapas 402 a 404; si el conjunto de vectores de movimiento candidatos incluye p vectores de movimiento en total, las etapas anteriores deben repetirse p-1 veces, para determinar secuencialmente los primeros bloques de referencia candidatos blk12, blk13, ... y los segundos bloques de referencia candidatos correspondientes blk22, blk23, ..., y obtener sumas de diferencias absolutas SAD2, SAD3, ... entre cada dos bloques de referencia candidatos correspondientes.
[0073] 405: seleccionar el primer bloque de referencia candidato y el segundo bloque de referencia candidato que sean correspondientes al SAD mínimo entre las sumas de diferencias absolutas SAD1, SAD2, SAD3, ... como un primer bloque de referencia y un segundo bloque de referencia del bloque actual, y obtener vectores de movimiento (u, v), que se determinan según el primer bloque de referencia y el segundo bloque de referencia, como vectores de movimiento del bloque actual.
[0074] 406: calcular un valor predicho del bloque actual según los vectores de movimiento del bloque actual.
[0075] Si el fotograma de predicción anterior fn-1 y el fotograma de predicción posterior fn+1 están igualmente distantes del fotograma actual fn, el valor predicho del bloque actual se puede calcular usando la Ecuación (1):
[0077]
[0079] Si el fotograma de predicción anterior fn-1 y el fotograma de predicción posterior fn+1 no están igualmente distantes del fotograma actual fn, el valor predicho del bloque actual se puede calcular usando la Ecuación (2):
[0081] ,lo
[0082]
- v ) } /(d\ d2)
[0083] d i4-d2
[0084] ( 2 )
[0086] donde, d1 es una distancia desde el fotograma de predicción anterior fn-1 al fotograma actual fn, y d2 es una distancia desde el fotograma de predicción posterior fn+1 al fotograma actual fn.
[0088] Si el proceso pasa a una etapa de codificación de imágenes de vídeo en este momento, se ejecuta la etapa 407; si el proceso pasa a una etapa de decodificación de imágenes de vídeo en este momento, se ejecuta la etapa 408.
[0090] 407: calcular una diferencia entre el valor predicho del bloque actual y un valor real del bloque actual, y realizar codificación en el residual de predicción de imágenes de vídeo, es decir, diferencias entre los valores predichos y los valores reales de los bloques de imágenes.
[0092] 408: decodificar un flujo de código recibido para obtener las diferencias entre los valores predichos y los valores reales de los bloques de imágenes, donde una suma de la diferencia correspondiente al bloque actual y el valor predicho obtenido en la etapa 406 es el valor real del bloque actual después de la decodificación.
[0094] En esta realización, los números de serie de las etapas no pretenden limitar el orden de ejecución de las etapas, y el orden de las etapas en el método proporcionado en la realización de la presente invención se puede ajustar según demandas reales.
[0096] Además, para permitir que un extremo de decodificación obtenga información de movimiento más precisa, en esta realización, un extremo de codificación puede obtener además una diferencia entre la información de movimiento obtenida y la información de movimiento real según la información de movimiento obtenida, y enviar la diferencia de información de movimiento al extremo de decodificación; además, el valor predicho del bloque actual también se calcula según la información de movimiento real, es decir, una diferencia vectorial entre los vectores de movimiento (u, v) determinada según el primer bloque de referencia y el segundo bloque de referencia como se obtiene en la etapa 405 y se calculan los vectores de movimiento reales que son del bloque actual y se obtienen mediante búsqueda de movimiento, y la diferencia de vectores de movimiento se envía al extremo de decodificación. De esta manera, después de recibir los datos proporcionados por el extremo de codificación, el extremo de decodificación primero recupera la información de movimiento real según la diferencia de información de movimiento, y calcula el valor predicho del bloque actual según la información de movimiento real y luego reconstruye el bloque actual.
[0098] Si el bloque actual es un bloque de partición parcial de un macrobloque en esta realización, como se muestra en la FIG. 6, cuando se determina el conjunto de vectores de movimiento candidatos, los vectores de movimiento relacionados con un Neighborhood_blk (es decir, un bloque de imagen vecino al bloque actual y que pertenece al mismo macrobloque o subbloque que el bloque actual) del bloque actual no se puede tener en cuenta, para evitar una predicción incorrecta del bloque actual debido a la influencia del Neighborhood_blk; como puede verse en la FIG. 6, en este momento, el conjunto de vectores de movimiento candidatos incluye: todo o una parte de los vectores de movimiento MVLU, MVU y MVR de bloques vecinos relacionados en el espacio con el bloque actual, vectores de movimiento (col_MV1, col_MV2, MV1, MV2, ..., MV7) en el fotograma de referencia anterior fn-1, y vectores de movimiento (col_MV1', col_MV2', MV1', MV2', ..., MV7') en el fotograma de referencia posterior fn+1.
[0099] El método para obtener información de movimiento de imágenes de vídeo proporcionado en esta realización, cambia la política de determinación de bloques de referencia en el proceso de determinación de bloques de referencia, lo que puede reducir la complejidad de implementación del proceso de determinación de bloques de referencia manteniendo el rendimiento de codificación/decodificación básicamente sin cambios, mejorando así el proceso de obtención de información de movimiento en imágenes de vídeo y mejorando la eficiencia de codificación y decodificación de imágenes de vídeo.
[0101] Realización 3:
[0103] Para mejorar aún más el rendimiento de codificación y decodificación, se puede introducir un método de comparación de plantillas en el método descrito en la Realización 2; tomando la codificación de fotograma B como ejemplo, como se muestra en la FIG. 7, un método para obtener información de movimiento de imágenes de vídeo proporcionado en esta realización incluye específicamente las siguientes etapas.
[0105] 701: construir una plantilla TM1 alrededor de un bloque actual (Curr_blk) en un fotograma actual fn usando valores de reconstrucción.
[0107] 702: usar vectores de movimiento de bloques codificados alrededor del bloque actual para formar un conjunto de vectores de movimiento candidatos, que incluye una parte o todos los vectores de movimiento de bloques codificados relacionados con el bloque actual.
[0109] El bloque actual puede ser un macrobloque completo o un bloque de partición de un macrobloque, y aquí se sigue tomando como ejemplo un macrobloque completo en la realización.
[0111] 703: seleccionar un vector de movimiento del conjunto de vectores de movimiento candidatos, encontrar un primer bloque de referencia candidato blk11 en un primer fotograma de referencia (en esta realización, el fotograma de referencia anterior fn-1 del fotograma actual se toma como el primer fotograma de referencia) según el vector de movimiento, y construir una plantilla TM21 alrededor del primer bloque de referencia candidato blk11 usando valores de reconstrucción, como se muestra en la FIG. 8.
[0113] 704: obtener un vector de movimiento del primer bloque de referencia candidato blk11 al bloque actual según una relación de posición entre el primer bloque de referencia candidato blk11 y el bloque actual; y determinar un segundo bloque de referencia candidato blk21 correspondiente al primer bloque de referencia candidato blk11 en un segundo fotograma de referencia (en esta realización, el fotograma de referencia posterior fn+1 del fotograma actual se toma como el segundo fotograma de referencia) según el vector de movimiento.
[0115] 705: calcular una suma de diferencias absolutas SAD1 entre el primer bloque de referencia candidato blk11 y el segundo bloque de referencia candidato blk21, y una suma de diferencias absolutas SAD1' entre la plantilla TM1 y la plantilla Tm 21.
[0117] Después de ejecutar la etapa 705, se vuelve a seleccionar un vector de movimiento de los vectores de movimiento no seleccionados en el conjunto de vectores de movimiento candidatos, para ejecutar repetidamente las etapas 703 a 705; si el conjunto de vectores de movimiento candidatos incluye p vectores de movimiento en total, las etapas anteriores deben repetirse p-1 veces, para determinar secuencialmente los primeros bloques de referencia candidatos blk12, blk13, ... y los segundos bloques de referencia candidatos correspondientes blk22, blk23, ..., y las plantillas TM22 , TM23, ..., y obtener sumas de diferencias absolutas SAD2, SAD3, ... entre cada dos bloques de referencia candidatos correspondientes y las sumas de diferencias absolutas SAD2', SAD3', ... entre la plantilla TM1 y las plantillas TM22, TM23, ....
[0119] 706: calcular sumas ponderadas de SAD x y SAD x': SUMx=(a*SAD x b*SAD x'), donde x es un número natural de 1 a p, el peso a de SAD x representa un grado de influencia de la similitud del bloque de referencia en el rendimiento de la codificación, y el peso b de SAD x' representa un grado de influencia de la similitud de la plantilla en el rendimiento de la codificación.
[0121] Por ejemplo, los valores específicos de los pesos a y b solo necesitan satisfacer la condición de que una relación de a a b sea igual a una relación del área del bloque actual al área de la plantilla TM1.
[0123] 707: seleccionar el primer bloque de referencia candidato y el segundo bloque de referencia candidato que corresponden a la suma ponderada mínima entre las sumas ponderadas SUMx como un primer bloque de referencia del bloque actual y un segundo bloque de referencia del bloque actual, y obtener vectores de movimiento (u, v), donde los vectores de movimiento (u, v) se determinan según el primer bloque de referencia y el segundo bloque de referencia, como vectores de movimiento del bloque actual.
[0125] 708: calcular un valor predicho del bloque actual según los vectores de movimiento del bloque actual.
[0127] Si el fotograma de predicción anterior fn-1 y el fotograma de predicción posterior fn+1 están igualmente distantes del fotograma actual fn, el valor predicho del bloque actual se puede calcular usando la Ecuación (1):
[0129]
[0132] Si el fotograma de predicción anterior fn-1 y el fotograma de predicción posterior fn+1 no están igualmente distantes del fotograma actual fn, el valor predicho del bloque actual se puede calcular usando la Ecuación (2):
[0134]
[0136] donde, d1 es una distancia desde el fotograma de predicción anterior fn-1 al fotograma actual fn, y d2 es una distancia desde el fotograma de predicción posterior fn+1 al fotograma actual fn.
[0137] Si el proceso pasa a una etapa de codificación de imágenes de vídeo en este momento, se ejecuta la etapa 709; si el proceso pasa a una etapa de decodificación de imágenes de vídeo en este momento, se ejecuta la etapa 710.
[0139] 709: calcular una diferencia entre el valor predicho del bloque actual y un valor real del bloque actual, y realizar codificación en el residual de predicción de imágenes de vídeo, es decir, diferencias entre los valores predichos y los valores reales de los bloques de imágenes.
[0141] 710: decodificar un flujo de código recibido para obtener las diferencias entre los valores predichos y los valores reales de los bloques de imágenes, donde una suma de la diferencia correspondiente al bloque actual y el valor predicho obtenido en la etapa 708 es el valor real del bloque actual después de la decodificación.
[0143] En esta realización, los números de serie de las etapas no pretenden limitar el orden de ejecución de las etapas, y el orden de las etapas en el método proporcionado en la realización de la presente invención se puede ajustar según demandas reales.
[0145] Además, para permitir que un extremo de decodificación obtenga información de movimiento más precisa, en esta realización, un extremo de codificación puede obtener además una diferencia entre la información de movimiento obtenida y la información de movimiento real según la información de movimiento obtenida, y enviar la diferencia de información de movimiento al extremo de decodificación; además, el valor predicho del bloque actual también se calcula según la información de movimiento real. De esta manera, después de recibir los datos proporcionados por el extremo de codificación, el extremo de decodificación primero recupera la información de movimiento real según la diferencia de información de movimiento, y calcula el valor predicho del bloque actual según la información de movimiento real y luego reconstruye el bloque actual.
[0147] Si el bloque actual es un bloque de partición parcial de un macrobloque en esta realización, como se muestra en la FIG. 6, cuando se determina el conjunto de vectores de movimiento candidatos, los vectores de movimiento relacionados con un Neighborhood_blk (es decir, un bloque de imagen vecino al bloque actual y que pertenece al mismo macrobloque o subbloque que el bloque actual) del bloque actual no se puede tener en cuenta, para evitar una predicción incorrecta del bloque actual debido a la influencia de Neighborhood_blk.
[0149] Además, cuando se construye una plantilla para el bloque actual, como se muestra en la FIG. 9, se construye una plantilla para un bloque de partición p2, la mitad superior de la plantilla se puede construir directamente usando valores de reconstrucción de bloques de partición vecinos alrededor del bloque de partición actual p2, y para una mitad izquierda (parte sombreada), como valores de reconstrucción de los bloques de partición vecinos no se pueden obtener directamente, se encuentra un bloque de partición de predicción pp1 correspondiente en un fotograma de referencia usando información de movimiento de un bloque de partición p1, y luego se usa un valor predicho en el bloque de partición de predicción pp1 correspondiente a la posición sombreada como valor de la mitad izquierda de una plantilla correspondiente del bloque de partición p2. De esta manera, el método de construcción de plantilla proporcionado en la realización de la presente invención puede usar valores predichos correspondientes a una parte de los bloques vecinos del bloque actual para reemplazar valores de reconstrucción desconocidos de la parte de los bloques vecinos del bloque actual cuando el bloque actual es un bloque de partición, para completar la construcción de la plantilla para el bloque actual, resolviendo así el problema de que los valores de reconstrucción de todos los bloques vecinos del bloque actual no se pueden obtener cuando el bloque actual es un bloque de partición.
[0151] En otro escenario de implementación, se obtiene un bloque de predicción en un fotograma de referencia de bloques de partición de macrobloques vecinos usando información de movimiento que es de los bloques de partición de macrobloques vecinos de un bloque de partición de macrobloque actual y se obtiene mediante decodificación para construir una plantilla del bloque de partición de macrobloque actual, se encuentra una plantilla de referencia correspondiente con la plantilla del bloque de partición de macrobloque actual en el fotograma de referencia del bloque de partición de macrobloque actual según la plantilla del bloque de partición de macrobloque actual, se obtiene información de movimiento del bloque de partición de macrobloque actual, y además el bloque de partición de macrobloque actual se reconstruye usando un bloque de referencia correspondiente, correspondiente con la plantilla de referencia, para compensar los datos residuales del bloque de partición de macrobloque actual, o datos residuales del bloque de partición de macrobloque actual se obtienen después de que el bloque de partición de macrobloque actual se predice usando un bloque de referencia correspondiente con la plantilla de referencia correspondiente, donde los datos residuales se usan para el extremo de decodificación para reconstruir el bloque de partición de macrobloque actual.
[0153] Específicamente, como se muestra en la FIG. 19, tomando como ejemplo la codificación del macrobloque actual según la partición de macrobloques de 16x8, cuando se decodifica el macrobloque actual curr, primero se obtienen la información del tipo de macrobloque y la información de movimiento MV1 de una partición de macrobloque P1 del macrobloque actual mediante decodificación. Si una partición de macrobloque P2 actual se codifica usando una tecnología de plantilla, se encuentra un bloque de referencia correspondiente en un fotograma de referencia de la partición de macrobloque P1 usando la información de movimiento obtenida MV1 de P1, y se obtienen suficientes píxeles de predicción requeridos para la formación de la plantilla. Como se muestra en la FIG. 19, los bloques de píxeles de predicción representados por bloques grises conectados por una flecha discontinua se usan como la mitad izquierda de la plantilla de la partición de macrobloque actual p2, y mientras tanto, los bloques de píxeles de reconstrucción vecinos encima de la partición de macrobloque actual P2 se usan para formar una plantilla actual TM. Luego, se encuentra en el fotograma de referencia una plantilla de referencia que más cercana esté de corresponder con la plantilla actual TM. La información de movimiento MV2 correspondiente a la plantilla de referencia se usa como un vector de movimiento de la partición de macrobloque actual P2, y mientras tanto, un bloque de referencia inferior derecho vecino a la plantilla de referencia señalada por el vector de movimiento se usa como un bloque de predicción de la partición de macrobloque actual P2 para compensar un componente residual de la partición de macrobloque actual P2, para reconstruir la partición de macrobloque actual P2.
[0155] La FIG. 20 muestra un proceso de decodificación de plantilla en el caso de partición de macrobloques de 8x8, donde cuando se decodifica un 4° bloque de 8x8, los bloques de predicción correspondientes 1, 2 y 3 se obtienen en un fotograma de referencia primero usando vectores de movimiento de subbloques vecinos y se combinan para formar una plantilla actual, la plantilla actual se usa para compararla con la plantilla de referencia en el fotograma de referencia para encontrar un valor predicho del bloque actual mediante búsqueda, y el valor predicho obtenido del bloque actual se usa para compensar un valor residual del bloque actual, para reconstruir el bloque actual. De manera correspondiente, en un proceso de codificación, la plantilla actual obtenida por combinación se usa para compararla con la plantilla de referencia para encontrar el valor predicho del bloque actual mediante búsqueda, el valor predicho obtenido del bloque actual se usa para predecir el valor residual del bloque actual y se codifica el valor residual.
[0157] En otro escenario de implementación, como se muestra en la FIG. 20, el macrobloque actual se codifica según la partición de macrobloques de 8x8. Cuando se decodifica el macrobloque actual curr, primero se obtienen mediante decodificación la información del tipo de macrobloque y la información de movimiento MV1, MV2, MV3 y MV4 de las particiones del macrobloque del macrobloque actual. Si una partición de macrobloque actual se codifica usando una tecnología de plantilla, los bloques de referencia correspondientes (1, 2 y 3 como se muestra en la FIG. 20) se encuentran en un fotograma de referencia de una partición de macrobloque correspondiente usando la información de movimiento obtenida MV1, MV2. y MV3 de las particiones de macrobloques, y se obtienen suficientes píxeles de predicción necesarios para la formación de la plantilla. Como se muestra en la FIG. 20, los bloques de píxeles de predicción representados por bloques amarillos conectados por flechas se usan como la mitad izquierda y la mitad superior de la plantilla de la partición de macrobloque actual para formar una plantilla actual t M. Luego, se encuentra en el fotograma de referencia una plantilla de referencia TMref correspondiente con la plantilla actual TM. La TM y la TMref se usan para calcular una diferencia de brillo IDCO de la partición de macrobloque actual, e IDCO=(TM-Tmref)/Num, donde Num representa el número de píxeles incluidos en la plantilla. Mientras tanto, la diferencia de brillo se usa para actualizar el valor predicho pred del bloque actual para obtener un valor predicho actualizado pred', y pred' (i, j) = pred (i, j) IDCO, donde (i, j) representa la posición de un punto de píxel. El valor predicho actualizado pred' se usa para compensar un valor residual, para reconstruir una partición de macrobloque actual. La implementación se adapta a los requisitos modulares actuales del diseño de hardware de decodificador, reduce la frecuencia de lectura de datos, mejora la eficiencia de la lectura de datos, reduce la cantidad de veces que se conmutan los módulos y permite la aplicación de la tecnología de plantilla a la partición de macrobloques.
[0159] El método para obtener información de movimiento de imágenes de vídeo proporcionado en esta realización, cambia la política de determinación de bloques de referencia en el proceso de determinación de bloques de referencia e introduce además comparación de similitud de plantillas durante la comparación de similitud de bloque de referencias, lo hace que el proceso de determinación del bloque de referencia sea más preciso, y puede reducir la complejidad de implementación del proceso de búsqueda manteniendo el rendimiento de codificación/decodificación básicamente sin cambios, mejorando así el proceso de obtención de información de movimiento en imágenes de vídeo y mejorando la eficiencia de codificación y decodificación de imágenes de vídeo.
[0160] Realización 4:
[0162] Como se muestra en la FIG. 10, un aparato para obtener información de movimiento de imágenes de vídeo proporcionado en esta realización incluye una primera unidad 1001 de determinación, una segunda unidad 1002 de determinación, una unidad 1003 de cálculo y una unidad 1004 de selección.
[0164] La primera unidad 1001 de determinación determina al menos un primer bloque de referencia candidato correspondiente a un bloque actual en un primer fotograma de referencia según información de movimiento conocida relacionada con el bloque actual. Luego, la segunda unidad 1002 de determinación determina al menos un segundo bloque de referencia candidato que corresponde respectivamente a al menos un primer bloque de referencia candidato en un segundo fotograma de referencia a través de búsqueda de simetría. A continuación, la unidad 1003 de cálculo calcula una suma de diferencias absolutas entre un primer bloque de referencia candidato y un segundo bloque de referencia candidato que corresponde al primer bloque de referencia candidato. Finalmente, la unidad 1004 de selección selecciona el primer bloque de referencia candidato y el segundo bloque de referencia candidato que tienen la suma mínima de diferencias absolutas como un primer bloque de referencia y un segundo bloque de referencia del bloque actual, y obtiene información de movimiento del bloque actual según vectores de movimiento determinados por el primer bloque de referencia y el segundo bloque de referencia. Además, el aparato para obtener información de movimiento de imágenes de vídeo proporcionado en esta realización puede incluir además una primera unidad 1005 de construcción y una segunda unidad 1006 de construcción.
[0165] La primera unidad 1005 de construcción está configurada para construir una plantilla alrededor del bloque actual usando valores de reconstrucción. La segunda unidad 1006 de construcción está configurada para construir respectivamente una plantilla correspondiente a cada primer bloque de referencia candidato en al menos un primer bloque de referencia candidato alrededor del primer bloque de referencia candidato en el primer fotograma de referencia usando valores de reconstrucción. En este momento, la unidad 1003 de cálculo está configurada para calcular la suma de diferencias absolutas entre un primer bloque de referencia candidato y un segundo bloque de referencia candidato correspondiente al primer bloque de referencia candidato y una suma de diferencias absolutas entre la plantilla correspondiente al primer bloque de referencia candidato y la plantilla correspondiente al bloque actual, y calcular una suma ponderada de las dos sumas. La unidad 1004 de selección está configurada para seleccionar el primer bloque de referencia candidato y el segundo bloque de referencia candidato que tienen la suma ponderada mínima como el primer bloque de referencia y el segundo bloque de referencia del bloque actual. La información de movimiento entre el primer bloque de referencia y el segundo bloque de referencia es la información de movimiento del bloque actual.
[0166] Además, el aparato para obtener información de movimiento de imágenes de vídeo proporcionado en esta realización puede incluir además una unidad 1007 de codificación, configurada para calcular un valor predicho del bloque actual usando la información de movimiento que es del bloque actual y se obtiene según la información de movimiento determinada por el primer bloque de referencia y el segundo bloque de referencia, y realizar codificación en el residual de predicción.
[0167] Alternativamente, el aparato puede incluir además una unidad 1008 de decodificación, configurada para calcular un valor predicho del bloque actual usando la información de movimiento que es del bloque actual y se obtiene según la información de movimiento determinada por el primer bloque de referencia y el segundo bloque de referencia, y decodificar un flujo de código recibido.
[0168] El aparato según la realización de la presente invención puede realizarse específicamente en la forma de un circuito, un circuito integrado o un chip.
[0169] El aparato para obtener información de movimiento de imágenes de vídeo proporcionado en esta realización, cambia la política de determinación de bloques de referencia en el proceso de determinación de bloques de referencia, lo que puede reducir la complejidad de implementación del proceso de determinación de bloques de referencia manteniendo el rendimiento de codificación básicamente sin cambios, mejorando así el proceso de obtención de información de movimiento en imágenes de vídeo y mejorando la eficiencia de codificación y decodificación de imágenes de vídeo.
[0170] Realización 5:
[0171] Como se muestra en la FIG. 11, un método para obtener información de movimiento de imágenes de vídeo proporcionado en esta realización incluye las siguientes etapas.
[0172] 1101: obtener primera información de movimiento relacionada con un bloque actual a través de correspondencia de plantillas en un primer fotograma de referencia, y determinar un primer bloque de referencia según la primera información de movimiento.
[0173] 1102: obtener una segunda información de movimiento relacionada con el primer bloque de referencia a través de correspondencia de plantillas en un segundo fotograma de referencia, y determinar un segundo bloque de referencia según la segunda información de movimiento.
[0174] 1103: determinar información de movimiento del bloque actual según la primera información de movimiento y la segunda información de movimiento.
[0175] Para implementar mejor el método para obtener información de movimiento de imágenes de vídeo, esta realización proporciona además un aparato para obtener información de movimiento de imágenes de vídeo, que, como se muestra en la FIG. 12, incluye una primera unidad 1201 de correspondencia, una segunda unidad 1202 de correspondencia y una unidad 1203 de cálculo.
[0176] En un proceso de obtención de información de movimiento de imágenes de vídeo, primero, la primera unidad 1201 de correspondencia obtiene primera información de movimiento relacionada con un bloque actual a través de la correspondencia de plantillas en un primer fotograma de referencia, y determina un primer bloque de referencia según la primera información de movimiento. Luego, la segunda unidad 1202 de correspondencia obtiene segunda información de movimiento relacionada con el primer bloque de referencia a través de correspondencia de plantillas en un segundo fotograma de referencia, y determina un segundo bloque de referencia según la segunda información de movimiento. A continuación, una unidad 1203 de cálculo calcula información de movimiento del bloque actual según la primera información de movimiento y la segunda información de movimiento.
[0178] El orden de las etapas en el método proporcionado en la realización de la presente invención se puede ajustar según demandas reales.
[0180] El método y aparato para obtener información de movimiento de imágenes de vídeo proporcionados en esta realización introducen un factor de estimación de movimiento en el proceso de búsqueda de bloques de referencia a través de correspondencia de plantillas, obteniendo así información de movimiento más precisa que la de la técnica anterior.
[0182] Realización 6:
[0184] Tomando la codificación de fotograma B como ejemplo, como se muestra en la FIG. 13 y la FIG. 14, un método para obtener información de movimiento de imágenes de vídeo proporcionado en esta realización incluye específicamente las siguientes etapas.
[0186] 1301: construir una plantilla TM1 usando valores de reconstrucción de bloques codificados alrededor de un bloque actual, y luego usar una plantilla TM2 de la misma forma que la plantilla TM1 para buscar en un primer fotograma de referencia (por ejemplo, un fotograma de referencia anterior del fotograma actual) dentro de un intervalo de búsqueda especificado con un vector de movimiento predicho como centro para obtener un primer vector de movimiento (u1, v1) del bloque actual relacionado con el fotograma de referencia anterior, y determinar un primer bloque de referencia blk1 correspondiente al bloque actual en el fotograma de referencia anterior según el primer vector de movimiento.
[0188] En esta realización, el primer fotograma de referencia no se limita al fotograma de referencia anterior fn-1 del fotograma actual, y definitivamente un fotograma de referencia posterior fn+1 del fotograma actual puede tomarse como el primer fotograma de referencia, y el fotograma de referencia anterior fn-1 del fotograma actual puede tomarse como un segundo fotograma de referencia.
[0190] El bloque actual puede ser un macrobloque completo o un bloque de partición de un macrobloque, y aquí se toma como ejemplo un macrobloque completo.
[0192] Además, el proceso de determinación del primer vector de movimiento (u1, v1) relacionado con el bloque actual es: dentro del intervalo de búsqueda especificado con el vector de movimiento predicho como centro, cuando el error de correspondencia entre las plantillas TM2 y TM1 (puede medirse usando una suma de diferencias absoluta SAD entre las plantillas TM2 y TM1) es mínima, un vector de movimiento (u1, v1) de la plantilla TM1 a la plantilla TM2 es el primer vector de movimiento del bloque actual relacionado con el fotograma de referencia anterior, y en este momento, el bloque encontrado en el fotograma de referencia anterior según el primer vector de movimiento (u1, v1) es el primer bloque de referencia blk1 correspondiente al bloque actual.
[0194] 1302: en un segundo fotograma de referencia (por ejemplo, un fotograma de referencia posterior), dentro de un intervalo de búsqueda especificado con un punto de mapeo del primer bloque de referencia blk1 en el fotograma de referencia posterior como centro, obtener un segundo movimiento vector (u, v) del primer bloque de referencia relacionado con el fotograma de referencia posterior a través de correspondencia de plantillas, y determinar un segundo bloque de referencia blk2 correspondiente al primer bloque de referencia blk1 en el fotograma de referencia posterior según el segundo vector de movimiento.
[0196] 1303: calcular la información de movimiento del bloque actual relacionada con el fotograma de referencia posterior según el primer vector de movimiento (u1, v1) y el segundo vector de movimiento (u, v).
[0198] En esta realización, un vector de movimiento del bloque actual al segundo bloque de referencia blk2 es la información de movimiento del bloque actual relacionada con el fotograma de referencia posterior; específicamente, un vector de movimiento del bloque actual relacionado con el fotograma de referencia posterior es
[0200] (u2, v2)= (u, v)+(ul, v i) (3)
[0202] 1304: calcular un valor predicho del bloque actual según los vectores de movimiento del bloque actual.
[0204] Los vectores de movimiento del bloque actual incluyen el vector de movimiento (u1, v1) del bloque actual relacionado con el fotograma de referencia anterior fn-1 y el vector de movimiento (u2, v2) del bloque actual relacionado con el fotograma de referencia posterior fn+1. En un caso donde el fotograma de predicción anteriorfn-i y el fotograma de predicción posteriorfn+iestán igualmente distantes del fotograma actual fn, el valor predicho del bloque actual curr_blk se puede calcular directamente según la Ecuación (4):
[0206] Alternativamente, más exactamente, en consideración de un caso donde el fotograma de predicción anteriorfn-1 y el fotograma de predicción posterior fn+1 no están igualmente distantes del fotograma actual fn, el valor predicho del bloque actual curr_blk se puede calcular según la Ecuación (5).
[0208]
[0211] Si el proceso pasa a una etapa de codificación de imágenes de vídeo en este momento, se ejecuta la etapa 1305; si el proceso pasa a una etapa de decodificación de imágenes de vídeo en este momento, se ejecuta la etapa 1306.
[0213] 1305: calcular una diferencia entre el valor predicho del bloque actual y un valor real del bloque actual, y realizar codificación en el residual de predicción de imágenes de vídeo, es decir, diferencias entre los valores predichos y los valores reales de los bloques de imágenes.
[0215] 1306: decodificar un flujo de código recibido para obtener las diferencias entre los valores predichos y los valores reales de los bloques de imágenes, donde una suma de la diferencia correspondiente al bloque actual y el valor predicho obtenido en la etapa 1304 es el valor real del bloque actual después de la decodificación.
[0217] En esta realización, los números de serie de las etapas no pretenden limitar el orden de ejecución de las etapas, y el orden de las etapas en el método proporcionado en la realización de la presente invención se puede ajustar según demandas reales.
[0219] Además, para permitir que un extremo de decodificación obtenga información de movimiento más precisa, en esta realización, un extremo de codificación puede obtener además una diferencia entre la información de movimiento obtenida y la información de movimiento real según la información de movimiento obtenida, y enviar la diferencia de información de movimiento al extremo de decodificación. De esta manera, después de recibir los datos proporcionados por el extremo de codificación, el extremo de decodificación primero obtiene la diferencia de información de movimiento mediante análisis, y recupera la información de movimiento real según el valor predicho del bloque actual, y luego reconstruye el bloque actual según la información de movimiento real.
[0221] Si el bloque actual es un bloque de partición parcial de un macrobloque en esta realización, el método para construir una plantilla para el bloque actual es el mismo que en la Realización 3, de modo que los detalles no se describirán de nuevo en la presente memoria.
[0223] El método para obtener información de movimiento de imágenes de vídeo proporcionado en esta realización introduce un factor de estimación de movimiento en el proceso de búsqueda de bloques de referencia a través de la correspondencia de plantillas, obteniendo así información de movimiento más precisa que la de la técnica anterior.
[0225] Realización 7:
[0227] Tomando la codificación de fotograma B como ejemplo, durante la codificación, generalmente se usa un fotograma de referencia anterior como un primer fotograma de referencia y un fotograma de referencia posterior como un segundo fotograma de referencia; sin embargo, a veces, se puede obtener un mejor efecto de codificación usando el fotograma de referencia posterior como primer fotograma de referencia. Por consiguiente, en esta realización, como mejora adicional de la Realización 6, antes de la codificación se determina primero un fotograma de referencia más adecuado para ser usado como el primer fotograma de referencia para la predicción del fotograma actual.
[0229] Específicamente, como se muestra en la FIG. 15, un método para obtener información de movimiento de imágenes de vídeo proporcionado en esta realización incluye las siguientes etapas.
[0231] 1501: construir una plantilla TM1 alrededor de un bloque actual en un fotograma actual fn usando valores de reconstrucción.
[0232] El bloque actual puede ser un macrobloque completo o un bloque de partición de un macrobloque, y aquí se sigue tomando como ejemplo un macrobloque completo.
[0234] 1502: buscar un bloque de referencia blk1 de correspondencia óptima del bloque actual y una plantilla de correspondencia óptima TM2 de la plantilla TM1 en un fotograma de referencia anterior del fotograma actual a través de la correspondencia de plantillas; además, una suma de diferencias absolutas entre el bloque actual y el bloque de referencia blk1 es SAD1, y una suma de diferencias absolutas entre la plantilla TM1 y la plantilla TM2 es Sa D3.
[0236] 1503: buscar un bloque de referencia blk2 de correspondencia óptima del bloque actual y una plantilla de correspondencia óptima TM3 de la plantilla TM1 en un fotograma de referencia posterior del fotograma actual a través de la correspondencia de plantillas; además, una suma de diferencias absolutas entre el bloque actual y el bloque de referencia blk2 es SAD2, y una suma de diferencias absolutas entre la plantilla TM1 y la plantilla TM3 es SAD4.
[0238] 1504: determinar un primer fotograma de referencia del fotograma actual según las sumas de diferencias absolutas obtenidas en la etapa 1502 y la etapa 1503.
[0240] Específicamente, si SAD1 y SAD2 satisfacen SAD1-SAD2>0, o SAD3 y SAD4 satisfacen SAD3-SAD4>0, el fotograma de referencia anterior del fotograma actual se toma como el primer fotograma de referencia, y se añade un indicador de dirección correspondiente, indicador=0, en un flujo de código y, en consecuencia, un extremo de decodificación busca un primer bloque de referencia del bloque actual en el fotograma de referencia anterior según el indicador de dirección correspondiente; de lo contrario, el fotograma de referencia posterior del fotograma actual se toma como el primer fotograma de referencia, y se añade un indicador de dirección correspondiente, indicador=1, en el flujo de código y, en consecuencia, el extremo de decodificación busca un primer bloque de referencia del bloque actual en el fotograma de referencia posterior según el indicador de dirección correspondiente.
[0242] A continuación se da un ejemplo donde el fotograma de referencia anterior del fotograma actual es el primer fotograma de referencia, es decir, indicador=0. En este caso, un primer vector de movimiento del bloque actual al bloque de referencia blk1 es (u1, v1), y el método para obtener información de movimiento de imágenes de vídeo proporcionado en esta realización incluye además las siguientes etapas.
[0244] 1505: en un segundo fotograma de referencia (por ejemplo, el fotograma de referencia posterior), dentro de un intervalo de búsqueda especificado con un punto de mapeo del primer bloque de referencia blk1 en el fotograma de referencia posterior como centro, obtener un segundo movimiento vector (u, v) del bloque de referencia relacionado con el fotograma de referencia posterior a través de correspondencia de plantillas, y determinar un bloque de referencia blk2' correspondiente al bloque de referencia blk1 en el fotograma de referencia posterior según el segundo vector de movimiento.
[0246] 1506: calcular la información de movimiento del bloque actual relacionada con el fotograma de referencia posterior según el primer vector de movimiento (u1, v1) y el segundo vector de movimiento (u, v).
[0248] En esta realización, un vector de movimiento del bloque actual al segundo bloque de referencia blk2' es la información de movimiento del bloque actual relacionada con el fotograma de referencia posterior; específicamente, un vector de movimiento del bloque actual relacionado con el fotograma de referencia posterior es
[0250] (u2. v2)= (u. v )+ (u l. v i ) (3)
[0252] 1507: calcular un valor predicho del bloque actual según los vectores de movimiento del bloque actual.
[0254] Los vectores de movimiento del bloque actual incluyen el vector de movimiento (u1, v1) del bloque actual relacionado con el fotograma de referencia anterior fn-1 y el vector de movimiento (u2, v2) del bloque actual relacionado con el fotograma de referencia posterior fn+1. En un caso donde el fotograma de predicción anterior fn-1 y el fotograma de predicción posterior fn+1 están igualmente distantes del fotograma actual fn, el valor predicho del bloque actual curr_blk se puede calcular directamente según la Ecuación (4):
[0256] Alternativamente, más exactamente, en consideración de un caso donde el fotograma de predicción anterior fn-1 y el fotograma de predicción posterior fn+1 no están igualmente distantes del fotograma actual fn, el valor predicho del bloque actual curr_blk se puede calcular según la Ecuación (5):
[0257]
[0259] donde,
[0260] wl = a/«F~+vE yw 2= a/ m21 V 21
[0261] Si el proceso pasa a una etapa de codificación de imágenes de vídeo en este momento, se ejecuta la etapa 1508; si el proceso pasa a una etapa de decodificación de imágenes de vídeo en este momento, se ejecuta la etapa 1509.
[0262] 1508: calcular una diferencia entre el valor predicho del bloque actual y un valor real del bloque actual, y realizar codificación en el residual de predicción de imágenes de vídeo, es decir, diferencias entre los valores predichos y los valores reales de los bloques de imágenes.
[0263] 1509: decodificar un flujo de código recibido para obtener las diferencias entre los valores predichos y los valores reales de los bloques de imágenes, donde una suma de la diferencia correspondiente al bloque actual y el valor predicho obtenido en la etapa 1507 es el valor real del bloque actual después de la decodificación.
[0264] En esta realización, los números de serie de las etapas no pretenden limitar el orden de ejecución de las etapas, y el orden de las etapas en el método proporcionado en la realización de la presente invención se puede ajustar según demandas reales.
[0265] Además, para permitir que un extremo de decodificación obtenga información de movimiento más precisa, en esta realización, un extremo de codificación puede obtener además una diferencia entre la información de movimiento obtenida y la información de movimiento real según la información de movimiento obtenida, y enviar la diferencia de información de movimiento al extremo de decodificación. De esta manera, después de recibir los datos proporcionados por el extremo de codificación, el extremo de decodificación primero obtiene la diferencia de información de movimiento mediante análisis, y recupera la información de movimiento real según información de predicción del bloque actual y luego reconstruye el bloque actual.
[0266] Si el bloque actual es un bloque de partición parcial de un macrobloque en esta realización, el método para construir una plantilla para el bloque actual es el mismo que en la Realización 3, de modo que los detalles no se describirán de nuevo en la presente memoria.
[0267] El método para obtener información de movimiento de imágenes de vídeo proporcionado en esta realización introduce un factor de estimación de movimiento en el proceso de búsqueda de bloques de referencia a través de la correspondencia de plantillas, y determina un primer fotograma de referencia según los grados de correspondencia de los bloques de referencia o los grados de correspondencia de plantillas entre el fotograma actual y diferentes fotogramas de referencia antes de la codificación, lo que optimiza aún más la codificación y decodificación de imágenes de vídeo, obteniendo así información de movimiento más precisa que la de la técnica anterior.
[0268] Realización 8:
[0269] Como se muestra en la FIG. 16, un aparato para obtener información de movimiento de imágenes de vídeo proporcionado en esta realización incluye una primera unidad 1601 de correspondencia, una segunda unidad 1602 de correspondencia y una unidad 1603 de cálculo.
[0270] En un proceso de obtención de información de movimiento de imágenes de vídeo, primero, la primera unidad 1601 de correspondencia obtiene primera información de movimiento relacionada con un bloque actual a través de la correspondencia de plantillas en un primer fotograma de referencia, y determina un primer bloque de referencia según la primera información de movimiento. Luego, la segunda unidad 1602 de correspondencia obtiene segunda información de movimiento relacionada con el primer bloque de referencia a través de correspondencia de plantillas en un segundo fotograma de referencia, y determina un segundo bloque de referencia según la segunda información de movimiento. A continuación, una unidad 1603 de cálculo calcula información de movimiento del bloque actual según la primera información de movimiento y la segunda información de movimiento.
[0271] En esta realización, el aparato para obtener información de movimiento de imágenes de vídeo puede incluir además una unidad 1604 de determinación, donde la unidad 1604 de determinación está configurada para determinar el primer fotograma de referencia del fotograma actual antes de la codificación.
[0272] Específicamente, si el aparato proporcionado en esta realización está ubicado en un extremo de codificación, una suma de diferencias absolutas entre el bloque actual y un bloque de referencia blk1 del bloque actual en un fotograma de referencia anterior es SAD1, y una suma de diferencias absolutas entre el bloque actual y un bloque de referencia blk2 del bloque actual en un fotograma de referencia posterior es SAD2; una suma de diferencias absolutas entre una plantilla TM1 correspondiente al bloque actual y una plantilla correspondiente TM2 de la plantilla TM1 en el fotograma de referencia anterior es SAD3, y una suma de diferencias absolutas entre la plantilla TM1 y una plantilla correspondiente TM3 de la plantilla TM1 en el fotograma de referencia posterior es SAD4. Si SAD1 y SAD2 satisfacen SAD1-SAD2>0, o SAD3 y SAD4 satisfacen SAD3-SAD4>0, el fotograma de referencia anterior del fotograma actual se toma como el primer fotograma de referencia y se añade un indicador de dirección correspondiente, indicador=0, en un flujo de código; de lo contrario, el fotograma de referencia posterior del fotograma actual se toma como el primer fotograma de referencia y se añade un indicador de dirección correspondiente, indicador=1, en el flujo de código.
[0273] Si el aparato proporcionado en esta realización está ubicado en un extremo de decodificación, la unidad 1604 de determinación puede juzgar el primer fotograma de referencia del fotograma actual directamente según el indicador de dirección correspondiente en el flujo de código.
[0274] Además, el aparato para obtener información de movimiento de imágenes de vídeo proporcionado en esta realización puede incluir además una unidad 1605 de codificación, configurada para calcular un valor predicho del bloque actual según la información de movimiento del bloque actual, y realizar codificación en el residual de predicción.
[0275] Alternativamente, el aparato puede incluir además una unidad 1606 de decodificación, configurada para calcular un valor predicho del bloque actual según la información de movimiento del bloque actual, y decodificar un flujo de código recibido.
[0276] El aparato según la realización de la presente invención puede realizarse específicamente en la forma de un circuito, un circuito integrado o un chip.
[0277] El aparato para obtener información de movimiento de imágenes de vídeo proporcionado en esta realización introduce un factor de estimación de movimiento en el proceso de búsqueda de bloques de referencia a través de la correspondencia de plantillas, y determina un primer fotograma de referencia según los grados de correspondencia de los bloques de referencia o los grados de correspondencia de plantillas entre el fotograma actual y diferentes fotogramas de referencia antes de la codificación, lo que optimiza aún más la codificación y decodificación de imágenes de vídeo, obteniendo así información de movimiento más precisa que la de la técnica anterior.
[0278] Realización 9:
[0279] Como se muestra en la FIG. 17, la realización de la presente invención proporciona además un dispositivo electrónico, que incluye un aparato 1701 transceptor y el aparato 1702 para obtener información de movimiento de imágenes de vídeo proporcionadas en la Realización 4 o la Realización 8.
[0280] El aparato 1701 transceptor está configurado para recibir o transmitir información de vídeo.
[0281] Para la solución técnica del aparato 1702 para obtener información de movimiento de imágenes de vídeo proporcionadas en esta realización, se puede hacer referencia a la solución técnica proporcionada en la Realización 4 o la Realización 8, de modo que los detalles no se describirán de nuevo en la presente memoria. El dispositivo electrónico según la realización de la presente invención puede ser un teléfono móvil, un dispositivo de procesamiento de vídeo, un ordenador o un servidor.
[0282] El dispositivo electrónico proporcionado en la realización de la presente invención cambia el método para determinar bloques de referencia para mejorar el proceso de obtención de información de movimiento de imágenes de vídeo, mejorando así la eficiencia de codificación y decodificación de imágenes de vídeo.
[0283] Las realizaciones de la presente invención toman la codificación de fotograma B como ejemplo; sin embargo, el alcance de aplicación de las realizaciones de la presente invención no se limita a la codificación de fotograma B. Por ejemplo, el método proporcionado en la Realización 6 también es aplicable a la codificación de fotograma P, mientras que en este caso el primer fotograma de referencia y el segundo fotograma de referencia del fotograma actual son, respectivamente, el fotograma de referencia anterior fn-1 y el fotograma de referencia anterior fn-2 del fotograma actual, y el valor predicho del bloque actual debe obtenerse según la Ecuación (4'):
[0285] f Á x> y )= { 2/ „ - . ( * '+ u l ,y+ v 0fn-i (x u2>J v2 ) ) 3 (4'>
[0286] Alternativamente, de manera más precisa, el valor predicho del bloque actual curr_blk se puede calcular según la Ecuación (5'):
[0288]
[0291] <donde,>u ,i - J tA 2<+>+ v12<, y>u ’2 -<-v/«22 + v22>
[0293] Realización 10:
[0295] Un método para obtener información de movimiento de imágenes de vídeo proporcionado en esta realización incluye las siguientes etapas.
[0297] Etapa 101: en un extremo de codificación, determinar cada conjunto de vectores de movimiento que apuntan desde al menos dos bloques de referencia asociados a un bloque de codificación actual usando cada vector de movimiento candidato en un conjunto de vectores de movimiento candidatos del bloque de codificación actual, donde al menos dos bloques de referencia asociados corresponden al bloque de codificación actual.
[0299] El conjunto de vectores de movimiento candidatos se obtiene usando información de movimiento de bloques conocidos alrededor del bloque de codificación actual, según una correlación espacial entre el bloque de codificación actual y los bloques vecinos del bloque de codificación actual y una correlación temporal entre el bloque de codificación actual y los bloques en posiciones cercanas a los fotogramas de referencia. La información de movimiento de los bloques conocidos alrededor del bloque de codificación actual puede ser vectores de movimiento de bloques codificados o bloques decodificados relacionados en el tiempo o el espacio con el bloque de codificación actual, o una combinación de los vectores de movimiento.
[0301] El bloque de codificación actual puede ser un macrobloque completo o un bloque de partición de un macrobloque, y aquí se toma como ejemplo un macrobloque completo.
[0303] El conjunto de vectores de movimiento candidatos puede incluir: todo o una parte de los vectores de movimiento MVL, MVU, MVR y MEDIA (MVL, MVU, MVR) de bloques vecinos relacionados en el espacio con el bloque actual (Curr_blk), vectores de movimiento (col_MV1 , col_MV2, col_MV3 y col_MV4 como se muestra en la FIG 5) en bloques que están en la posición correspondiente a la del bloque actual y están en un fotograma de referencia anterior fn-1 fn-1 y vectores de movimiento (MV1, MV2,... , MV12 como se muestra en la FIG. 5) de los bloques vecinos de los bloques que están en la posición correspondiente a la del bloque actual y están en el fotograma de referencia anterior fn-1, y vectores de movimiento (col_MV1', col_MV2', col_MV3', y col_MV4' como se muestra en la FIG. 5) en bloques que están en la posición correspondiente a la del bloque actual y están en un fotograma de referencia posterior fn+1 y vectores de movimiento (MV1', MV2', ... , MV12' como se muestra en la FIG. 5) de los bloques vecinos de los bloques que están en la posición correspondiente a la del bloque actual y están en el fotograma de referencia posterior fn+1, es decir, incluyen todo o una parte de los bloques de izquierda, arriba, arribaizquierda y arriba-derecha del bloque actual, y bloques izquierdo, arriba, arriba-izquierda y arriba-derecha de bloques que están en la posición correspondiente a la del bloque actual y están en fotogramas de referencia, y los bloques que están en la posición correspondiente a la del bloque actual y están en los fotogramas de referencia.
[0304] Para un vector de movimiento candidato en el conjunto de vectores de movimiento candidatos del bloque de codificación actual obtenido en la etapa 101, se obtienen un conjunto de vectores de movimiento de al menos dos bloques de referencia asociados del bloque de codificación actual al bloque de codificación actual. Cada vector de movimiento candidato corresponde a un conjunto de vectores de movimiento. En esta realización, dos bloques de referencia asociados, por ejemplo, los bloques de referencia anterior y posterior del bloque de codificación actual, se toman como ejemplo, y cada conjunto de vectores de movimiento son vectores de movimiento anteriores de los bloques de referencia anteriores del bloque actual y vectores de movimiento posteriores de los bloques de referencia posteriores del bloque actual. Específicamente, para cada vector de movimiento candidato, se obtienen los correspondientes vectores de movimiento anterior y posterior. Como se muestra en la FIG. 18, tomando un fotograma B como ejemplo, un bloque en el medio es el bloque de codificación actual, L0 y L1 son fotogramas de referencia anterior y posterior, y los bloques en L0 y L1 son bloques de referencia anterior y posterior, dondeVfes el vector de movimiento anterior, yVbes el vector de movimiento posterior. En este ejemplo, una distancia desde el fotograma B actual hasta el fotograma de referencia anterior esTf,y una distancia desde el fotograma B actual hasta el fotograma de referencia anterior esTb.Cada par de vectores de movimiento anterior y posterior dentro de un intervalo de búsqueda satisface la siguiente relación:Vf /Tf = -Vb/Tb.Cuando existen múltiples bloques de referencia asociados, la relación entre los vectores de movimiento de cada par dentro del intervalo de búsqueda es la misma que la descrita anteriormente. La FIG. 18 solo muestra el caso donde un fotograma B es directamente vecino de dos fotogramas de referencia. Para múltiples fotogramas B continuos, la manera de obtener los correspondientes vectores de movimiento anterior/posterior es la misma que la descrita anteriormente, de modo que los detalles no se describirán de nuevo en la presente memoria.
[0305] En una implementación específica, todos o una parte de los vectores de movimiento de bloques codificados/bloques decodificados relacionados con el bloque actual se pueden seleccionar para formar un conjunto de vectores de movimiento candidatos, y luego se determina un primer bloque de referencia candidato en el primer fotograma de referencia correspondientemente según cada vector de movimiento candidato, para obtener un conjunto de primeros bloques de referencia candidatos.
[0307] Un vector de movimiento de cada primer bloque de referencia candidato al bloque actual se determina según una relación de posición entre el primer bloque de referencia candidato y el bloque actual, y cada segundo bloque de referencia candidato que corresponde respectivamente a cada primer bloque de referencia candidato se determina en el segundo fotograma de referencia según el vector de movimiento. Por ejemplo, en esta realización, el segundo bloque de referencia candidato correspondiente al primer bloque de referencia candidato en el segundo fotograma de referencia se puede determinar a través de búsqueda de simetría, es decir, después de la búsqueda de simetría, el primer bloque de referencia candidato y el segundo bloque de referencia candidato correspondiente encontrado son simétricos en proporción con el bloque actual como centro.
[0309] Etapa 102: determinar un conjunto de vectores de movimiento como vectores predichos de vectores de movimiento del bloque de codificación actual a partir de conjuntos de vectores de movimiento mediante juicio de similitud.
[0310] Se calcula una similitud entre cada conjunto determinado de vectores de movimiento. La similitud se mide usando una suma de diferencias. Específicamente, la suma de diferencias puede ser una suma de diferencias absolutas (SAD), una suma de diferencias de transformación absoluta, o una suma de diferencias absolutas al cuadrado, y definitivamente, alternativamente, también pueden ser otros parámetros para describir una similitud entre dos bloques de referencia; en esta realización, la suma de diferencias absolutas se toma como ejemplo para describir las soluciones proporcionadas por la presente invención. Se selecciona un conjunto de vectores de movimiento correspondientes a la similitud óptima como vectores predichos de vectores de movimiento del bloque de codificación actual.
[0312] En una implementación específica, se calcula una suma de diferencias entre un primer bloque de referencia candidato y un segundo bloque de referencia candidato correspondiente al primer bloque de referencia candidato, el primer bloque de referencia candidato y el segundo bloque de referencia candidato que son correspondientes al SAD mínimo se seleccionan como un primer bloque de referencia y un segundo bloque de referencia del bloque actual, y los vectores de movimiento determinados por el primer bloque de referencia y el segundo bloque de referencia se usan como vectores predichos de vectores de movimiento del bloque de codificación actual.
[0314] En otra implementación, la etapa 101 y la etapa 102 se pueden implementar a través de las etapas 701 a 707 de la Realización 3, y la diferencia radica en que los vectores de movimiento (u, v) determinados por el primer bloque de referencia y el segundo bloque de referencia bloque se usan como vectores predichos de vectores de movimiento del bloque actual.
[0316] Etapa 103: obtener una diferencia de vector de movimiento según los vectores de movimiento, que se obtienen mediante la búsqueda de movimiento realizada en el bloque de codificación actual, y los vectores predichos, donde la diferencia de vector de movimiento es usada por un extremo de decodificación para recuperar la vectores de movimiento del bloque de codificación actual.
[0318] Para permitir que el extremo de decodificación obtenga información de movimiento más precisa, en esta realización, el extremo de codificación puede obtener además una diferencia entre la información de movimiento obtenida y la información de movimiento real según la información de movimiento obtenida, y enviar la diferencia de información de movimiento hasta el extremo de decodificación, es decir, calcular una diferencia de vector entre los vectores predichos obtenidos en la etapa 102 y los vectores de movimiento que son del bloque de codificación actual y se obtienen mediante búsqueda de movimiento, y enviar la diferencia de vector de movimiento al extremo de decodificación. De esta manera, después de recibir los datos proporcionados por el extremo de codificación, el extremo de decodificación recupera primero la información de movimiento real según la diferencia de información de movimiento.
[0320] En el extremo de decodificación, cada conjunto de vectores de movimiento de al menos dos bloques de referencia asociados, que corresponden a un bloque de codificación actual, al bloque de codificación actual se determinan usando cada vector de movimiento candidato en un conjunto de vectores de movimiento candidatos del bloque de codificación actual, donde el conjunto de vectores de movimiento candidatos se obtiene usando información de movimiento de bloques conocidos alrededor del bloque de codificación actual según una correlación espacial entre el bloque de codificación actual y los bloques vecinos del bloque de codificación actual y una correlación temporal entre el bloque de codificación actual y los bloques en posiciones cercanas a los fotogramas de referencia; y se determina un conjunto de vectores de movimiento como vectores predichos de vectores de movimiento del bloque actual a partir de conjuntos de vectores de movimiento usando criterios de juicio de similitud; y la diferencia de vectores se recupera mediante el análisis del flujo de código, y los vectores de movimiento del bloque de codificación actual se obtienen usando los vectores predichos y la diferencia de vectores.
[0321] En otra realización, en la etapa 102, se puede determinar un conjunto de vectores de movimiento como vectores de movimiento del bloque de codificación actual a partir de conjuntos de vectores de movimiento mediante juicio de similitud.
[0323] Los expertos en la técnica pueden entender que la información, los mensajes y las señales pueden representarse usando uno cualquiera de las muchas técnicas y tecnologías diferentes. Por ejemplo, los mensajes y la información en las descripciones anteriores pueden representarse como voltajes, corrientes, ondas electromagnéticas, campos magnéticos o partículas magnéticas, campos ópticos, o cualquier combinación de los voltajes, corrientes, ondas electromagnéticas, campos magnéticos o partículas magnéticas y campos ópticos.
[0325] Los expertos en la técnica pueden darse cuenta de que, las unidades y los etapas del algoritmo de cada ejemplo descrito a través de las realizaciones descritas en el presente documento se pueden implementar con hardware electrónico, software informático, o una combinación de hardware electrónico y software informático. Para describir claramente la intercambiabilidad entre el hardware y el software, las composiciones y las etapas de cada ejemplo se han descrito generalmente según las funciones en las descripciones anteriores. Si las funciones se ejecutan en un modo de hardware o software depende de aplicaciones particulares y condiciones de restricción de diseño de las soluciones técnicas. Un experto en la técnica puede usar diferentes métodos para implementar las funciones descritas para cada aplicación particular, pero no se debería considerar que la implementación vaya más allá del alcance de la presente invención.
[0327] Las etapas de los métodos o algoritmos descritos a través de las realizaciones descritas en la presente memoria se pueden ser implementar usando hardware, un módulo de software ejecutado por un procesador o una combinación de los módulos de hardware y software. El módulo de software puede estar incorporado en una memoria de acceso aleatorio (RAM), una memoria, una memoria de solo lectura (ROM), una ROM programable eléctricamente, una ROM programable y borrable eléctricamente, un registro, un disco duro, un disco magnético extraíble, un CD-ROM, o cualquier medio de almacenamiento de otras formas bien conocidas en el campo técnico.
[0328] Las descripciones anteriores son simplemente realizaciones ejemplares de la presente invención, pero no pretenden limitar el alcance de protección de la presente invención. Las modificaciones o variaciones que puedan ser fácilmente imaginadas por los expertos en la técnica dentro del alcance técnico de la presente invención caerán dentro del alcance de protección de la presente invención. Por lo tanto, el alcance de protección de la presente invención se someterá al alcance de protección de las reivindicaciones.

Claims (5)

1. REIVINDICACIONES
1. Un método para decodificar imágenes de vídeo, que comprende:
determinar, en un primer fotograma de referencia, al menos un primer bloque de referencia candidato correspondiente a un bloque actual en un fotograma actual según información de movimiento conocida relacionada con el bloque actual, en donde la información de movimiento conocida relacionada con el bloque actual son vectores de movimiento de bloques codificados adyacentes al bloque actual en el tiempo o el espacio, en donde para cada primer bloque de referencia candidato de al menos un primer bloque de referencia candidato, un vector de movimiento del primer bloque de referencia candidato al bloque actual se determina según una relación de posición entre el primer bloque de referencia candidato y el bloque actual;
determinar, en un segundo fotograma de referencia, al menos un segundo bloque de referencia candidato que corresponde respectivamente a al menos un primer bloque de referencia candidato, en donde para cada segundo bloque de referencia candidato de al menos un segundo bloque de referencia candidato que corresponde respectivamente a al menos un primer bloque de referencia candidato, el segundo bloque de referencia candidato se determina en el segundo fotograma de referencia según el vector de movimiento del primer bloque de referencia candidato al bloque actual;
en donde uno del primer fotograma de referencia y el segundo fotograma de referencia es un fotograma de referencia anterior y el otro es un fotograma de referencia posterior con respecto al fotograma actual; calcular una suma de diferencias entre un primer bloque de referencia candidato y un segundo bloque de referencia candidato que corresponde al primer bloque de referencia candidato, en donde la suma de diferencias es una de una suma de diferencias absolutas, SAD, una suma de diferencias de transformación absolutas, y una suma de diferencias absolutas al cuadrado; y
seleccionar el primer bloque de referencia candidato y el segundo bloque de referencia candidato que tienen la suma mínima de diferencias como un primer bloque de referencia y un segundo bloque de referencia del bloque actual, y obtener vectores de movimiento del bloque actual según vectores de movimiento determinados por el primer bloque de referencia y el segundo bloque de referencia;
calcular un valor predicho del bloque actual según los vectores de movimiento del bloque actual; decodificar un flujo de código recibido para obtener una diferencia entre el valor predicho del bloque actual y un valor real del bloque actual; y
reconstruir el bloque actual basándose en la diferencia y el valor previsto del bloque actual.
2. El método para decodificar imágenes de vídeo según la reivindicación 1, en donde antes de calcular la suma de diferencias entre un primer bloque de referencia candidato y un segundo bloque de referencia candidato que corresponde al primer bloque de referencia candidato, el método comprende además:
construir una plantilla alrededor del bloque actual usando valores de reconstrucción; y
construir respectivamente una plantilla, que corresponde a cada primer bloque de referencia candidato, alrededor del primer bloque de referencia candidato en el primer fotograma de referencia usando valores de reconstrucción; el cálculo de la suma de diferencias entre un primer bloque de referencia candidato y un segundo bloque de referencia candidato que corresponde al primer bloque de referencia candidato:
calcular la suma de diferencias entre un primer bloque de referencia candidato y un segundo bloque de referencia candidato que corresponde al primer bloque de referencia candidato y una suma de diferencias entre la plantilla que corresponde al primer bloque de referencia candidato y la plantilla que corresponde al bloque actual, y calcular una suma ponderada de la suma de diferencias entre un primer bloque de referencia candidato y un segundo bloque de referencia candidato que corresponde al primer bloque de referencia candidato y la suma de diferencias entre la plantilla que corresponde al primer bloque de referencia candidato y la plantilla que corresponde al bloque actual; y
la selección del primer bloque de referencia candidato y el segundo bloque de referencia candidato que tienen la suma mínima de la diferencia como el primer bloque de referencia y el segundo bloque de referencia del bloque actual comprende:
seleccionar el primer bloque de referencia candidato y el segundo bloque de referencia candidato que tienen la suma ponderada mínima como el primer bloque de referencia y el segundo bloque de referencia del bloque actual.
3. Un aparato de decodificación de imágenes de vídeo, que comprende:
un procesador; y
un medio de almacenamiento legible por ordenador acoplado al procesador y que almacena programación para su ejecución por el procesador, en donde la programación, cuando es ejecutada por el procesador, configura el aparato para llevar a cabo el método según la reivindicación 1 o 2.
4. Un producto de programa informático, caracterizado por que, comprende un código de programa informático que, cuando lo ejecuta un procesador, hará que el procesador realice el método según la reivindicación 1 o 2.
5. Un medio de almacenamiento que comprende un flujo de código que está decodificado mediante un método de decodificación según el método de la reivindicación 1 o 2.
ES24160284T 2009-06-26 2010-06-02 Method and apparatus for decoding of video images Active ES3047860T3 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN200910148520 2009-06-26
CN2010101476074A CN101931803B (zh) 2009-06-26 2010-04-09 视频图像运动信息获取方法、装置及设备、模板构造方法

Publications (1)

Publication Number Publication Date
ES3047860T3 true ES3047860T3 (en) 2025-12-05

Family

ID=43370685

Family Applications (2)

Application Number Title Priority Date Filing Date
ES24160284T Active ES3047860T3 (en) 2009-06-26 2010-06-02 Method and apparatus for decoding of video images
ES20158451T Active ES2992053T3 (es) 2009-06-26 2010-06-02 Método y aparato para codificar imágenes de vídeo

Family Applications After (1)

Application Number Title Priority Date Filing Date
ES20158451T Active ES2992053T3 (es) 2009-06-26 2010-06-02 Método y aparato para codificar imágenes de vídeo

Country Status (13)

Country Link
US (1) US9432692B2 (es)
EP (3) EP3767951B1 (es)
KR (1) KR101443169B1 (es)
CN (2) CN101931803B (es)
AU (1) AU2010265451B2 (es)
BR (1) BRPI1012992B1 (es)
DK (1) DK3767951T3 (es)
ES (2) ES3047860T3 (es)
FI (1) FI3767951T3 (es)
HU (1) HUE066881T2 (es)
PL (1) PL3767951T3 (es)
PT (1) PT3767951T (es)
WO (1) WO2010148919A1 (es)

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101681303B1 (ko) * 2010-07-29 2016-12-01 에스케이 텔레콤주식회사 블록 분할예측을 이용한 영상 부호화/복호화 방법 및 장치
GB2487200A (en) 2011-01-12 2012-07-18 Canon Kk Video encoding and decoding with improved error resilience
US9532050B2 (en) * 2011-01-25 2016-12-27 Sun Patent Trust Moving picture coding method and moving picture decoding method
GB2501836B (en) 2011-03-09 2014-08-06 Canon Kk Video encoding
HRP20230425T1 (hr) 2011-03-21 2023-07-07 Lg Electronics, Inc. Odabir prediktora vektora kretanja
ES2621231T3 (es) 2011-04-12 2017-07-03 Sun Patent Trust Método de codificación de video de movimiento, aparato de codificación de video de movimiento, método de decodificación de video de movimiento, aparato de decodificación de video de movimiento y aparato de codificación/decodificación de video de movimiento
HUE037619T2 (hu) 2011-05-24 2018-09-28 Velos Media Int Ltd Képkódoló eljárás, képkódoló berendezés, képdekódoló eljárás, képdekódoló berendezés és képkódoló/dekódoló berendezés
ES2769378T3 (es) 2011-05-27 2020-06-25 Sun Patent Trust Procedimiento de codificación de imágenes y aparato de codificación de imágenes
US9485518B2 (en) 2011-05-27 2016-11-01 Sun Patent Trust Decoding method and apparatus with candidate motion vectors
SG194746A1 (en) 2011-05-31 2013-12-30 Kaba Gmbh Image encoding method, image encoding device, image decoding method, image decoding device, and image encoding/decoding device
ES2971526T3 (es) 2011-05-31 2024-06-05 Sun Patent Trust Procedimiento de descodificación de vídeo, dispositivo de descodificación de vídeo
GB2491589B (en) 2011-06-06 2015-12-16 Canon Kk Method and device for encoding a sequence of images and method and device for decoding a sequence of image
EP2728878B1 (en) 2011-06-30 2020-02-19 Sun Patent Trust Image decoding method, image encoding method, image decoding device, image encoding device, and image encoding/decoding device
EP3487178A1 (en) 2011-08-03 2019-05-22 Sun Patent Trust Video encoding method, video encoding apparatus, video decoding method, video decoding apparatus, and video encoding/decoding apparatus
GB2493755B (en) * 2011-08-17 2016-10-19 Canon Kk Method and device for encoding a sequence of images and method and device for decoding a sequence of images
CN107483928B (zh) * 2011-09-09 2020-05-12 株式会社Kt 用于解码视频信号的方法
MX2014003991A (es) 2011-10-19 2014-05-07 Panasonic Corp Metodo de codificacion de imagenes, aparato de codificacion de imagenes, metodo de decodificacion de imagenes y aparato de decodificacion de imagenes.
US20130107802A1 (en) * 2011-10-26 2013-05-02 Qualcomm Incorporated Downlink time difference determination in frame asynchronous systems
EP2615832A1 (en) * 2012-01-13 2013-07-17 Thomson Licensing Method and device for encoding a block of an image and corresponding reconstructing method and device
EA201492099A1 (ru) 2012-05-14 2015-04-30 Лука Россато Разложение остаточных данных при кодировании, декодировании и реконструкции сигнала в многоуровневой иерархии
MX340482B (es) * 2012-07-11 2016-07-08 Lg Electronics Inc Metodo y aparato para el procesamiento de señal de video.
CN104244002B (zh) * 2013-06-14 2019-02-05 北京三星通信技术研究有限公司 一种视频编/解码中运动信息的获取方法及装置
WO2015034303A1 (ko) * 2013-09-04 2015-03-12 삼성전자 주식회사 스크린 영상 부호화 방법 및 그 장치, 스크린 영상 복호화 방법 및 그 장치
CN104427345B (zh) * 2013-09-11 2019-01-08 华为技术有限公司 运动矢量的获取方法、获取装置、视频编解码器及其方法
US9807407B2 (en) * 2013-12-02 2017-10-31 Qualcomm Incorporated Reference picture selection
CN105516724B (zh) * 2014-09-23 2019-05-14 浙江大学 一种运动信息存储压缩方法
CN104363451B (zh) 2014-10-27 2019-01-25 华为技术有限公司 图像预测方法及相关装置
SG10202111537RA (en) * 2015-03-10 2021-11-29 Huawei Tech Co Ltd Picture prediction method and related apparatus
CN104811729B (zh) * 2015-04-23 2017-11-10 湖南大目信息科技有限公司 一种视频多参考帧编码方法
CN106658019B (zh) * 2015-10-31 2019-11-12 华为技术有限公司 参考帧编解码的方法与装置
WO2017082636A1 (ko) * 2015-11-11 2017-05-18 삼성전자 주식회사 영상을 부호화/복호화 하는 방법 및 그 장치
KR20170058838A (ko) * 2015-11-19 2017-05-29 한국전자통신연구원 화면간 예측 향상을 위한 부호화/복호화 방법 및 장치
WO2017086738A1 (ko) * 2015-11-19 2017-05-26 한국전자통신연구원 영상 부호화/복호화 방법 및 장치
US10631002B2 (en) 2016-09-30 2020-04-21 Qualcomm Incorporated Frame rate up-conversion coding mode
JP6700489B2 (ja) * 2016-09-30 2020-05-27 華為技術有限公司Huawei Technologies Co.,Ltd. インター予測を介する画像符号化および復号のための方法および装置
WO2018120290A1 (zh) * 2016-12-26 2018-07-05 华为技术有限公司 一种基于模板匹配的预测方法及装置
CN116170585A (zh) * 2017-01-16 2023-05-26 世宗大学校产学协力团 影像编码/解码方法
US10701390B2 (en) * 2017-03-14 2020-06-30 Qualcomm Incorporated Affine motion information derivation
US10650256B2 (en) * 2017-04-18 2020-05-12 nuTonomy Inc. Automatically perceiving travel signals
US10643084B2 (en) 2017-04-18 2020-05-05 nuTonomy Inc. Automatically perceiving travel signals
CN111819851B (zh) * 2018-01-30 2024-08-20 夏普株式会社 用于使用预测运动向量起点对视频编码执行运动向量预测的系统和方法
CN110121073B (zh) * 2018-02-06 2021-07-09 浙江大学 一种双向帧间预测方法及装置
CN110248188A (zh) * 2018-03-07 2019-09-17 华为技术有限公司 预测运动矢量生成方法以及相关设备
WO2019183906A1 (zh) 2018-03-29 2019-10-03 华为技术有限公司 帧间预测的方法和装置
CN110351565B (zh) * 2018-04-02 2021-08-03 浙江大学 一种参考区域运动矢量导出方法及装置
WO2020007291A1 (en) * 2018-07-02 2020-01-09 Huawei Technologies Co., Ltd. A video encoder, a video decoder and corresponding methods
US11956460B2 (en) 2018-08-31 2024-04-09 Hulu, LLC Selective template matching in video coding
CN108989817A (zh) * 2018-09-03 2018-12-11 西安交通大学 一种基于参考帧错位预测的雷达数据压缩方法
CN110944209B (zh) * 2018-09-21 2022-03-04 华为技术有限公司 运动矢量的确定方法和装置
CN114727114B (zh) 2018-09-21 2024-04-09 华为技术有限公司 运动矢量的确定方法和装置
CN111263152B (zh) 2018-11-30 2021-06-01 华为技术有限公司 视频序列的图像编解码方法和装置
US11237042B2 (en) * 2019-01-14 2022-02-01 Computational Systems, Inc. Waveform data thinning
US10960886B2 (en) 2019-01-29 2021-03-30 Motional Ad Llc Traffic light estimation
CN110636334B (zh) * 2019-08-23 2022-12-09 西安万像电子科技有限公司 数据传输方法及系统
CN113706573B (zh) * 2020-05-08 2024-06-11 杭州海康威视数字技术股份有限公司 一种运动物体的检测方法、装置及存储介质
CN113382249B (zh) * 2021-04-21 2022-09-06 浙江大华技术股份有限公司 图像/视频编码方法、装置、系统及计算机可读存储介质
MX2023015294A (es) * 2021-06-17 2024-01-22 Beijing Dajia Internet Information Tech Co Ltd Refinamiento de movimiento con emparejamiento bilateral para compensacion de movimiento afin en la codificacion de video.
CN115914647B (zh) * 2022-11-10 2026-04-24 上海顺久电子科技有限公司 一种视频图像的运动估计方法及装置
US12526400B2 (en) * 2023-01-18 2026-01-13 Tencent America LLC Multi-template based intra-frame template matching prediction
WO2024215075A1 (ko) * 2023-04-10 2024-10-17 주식회사 케이티 영상 부호화/복호화 방법 및 비트스트림을 저장하는 기록 매체
US12413777B2 (en) 2023-05-19 2025-09-09 Tencent America LLC Intra template matching prediction in GDR pictures
WO2025217770A1 (zh) * 2024-04-15 2025-10-23 Oppo广东移动通信有限公司 编解码方法、编解码器以及存储介质
WO2025225972A1 (ko) * 2024-04-21 2025-10-30 주식회사 아틴스 픽처 경계 영역 처리 방법, 이를 수행하기 위한 영상 부호화 및 복호화 장치

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2860678A1 (fr) * 2003-10-01 2005-04-08 Thomson Licensing Sa Procede de codage differentiel
US8054882B2 (en) * 2005-05-13 2011-11-08 Streaming Networks (Pvt.) Ltd. Method and system for providing bi-directionally predicted video coding
CN100539693C (zh) * 2005-08-30 2009-09-09 深圳清华大学研究院 快速运动估计方法
US8009923B2 (en) * 2006-03-14 2011-08-30 Celestial Semiconductor, Inc. Method and system for motion estimation with multiple vector candidates
KR101383540B1 (ko) * 2007-01-03 2014-04-09 삼성전자주식회사 복수의 움직임 벡터 프리딕터들을 사용하여 움직임 벡터를추정하는 방법, 장치, 인코더, 디코더 및 복호화 방법
KR101408698B1 (ko) * 2007-07-31 2014-06-18 삼성전자주식회사 가중치 예측을 이용한 영상 부호화, 복호화 방법 및 장치
KR101228020B1 (ko) * 2007-12-05 2013-01-30 삼성전자주식회사 사이드 매칭을 이용한 영상의 부호화 방법 및 장치, 그복호화 방법 및 장치
CN101227614B (zh) * 2008-01-22 2010-09-08 炬力集成电路设计有限公司 视频编码系统的运动估计装置及其方法
KR20090095012A (ko) * 2008-03-04 2009-09-09 삼성전자주식회사 연속적인 움직임 추정을 이용한 영상 부호화, 복호화 방법및 장치
CN101267556B (zh) * 2008-03-21 2011-06-22 海信集团有限公司 快速运动估计方法及视频编解码方法
KR101691199B1 (ko) * 2008-04-11 2016-12-30 톰슨 라이센싱 비디오 부호화 및 복호화에서의 템플릿 매칭 예측을 위한 방법 및 장치
BRPI0918478A2 (pt) * 2008-09-04 2015-12-01 Thomson Licensing métodos e aparelho para refinamento de previsão usando previsão de movimento implícito

Also Published As

Publication number Publication date
CN101931803B (zh) 2013-01-09
HUE066881T2 (hu) 2024-09-28
PL3767951T3 (pl) 2024-08-19
US9432692B2 (en) 2016-08-30
CN102883160B (zh) 2016-06-29
EP3767951A1 (en) 2021-01-20
EP2448266B1 (en) 2020-03-25
EP3767951B1 (en) 2024-04-24
CN101931803A (zh) 2010-12-29
CN102883160A (zh) 2013-01-16
KR101443169B1 (ko) 2014-09-23
WO2010148919A1 (zh) 2010-12-29
US20120106645A1 (en) 2012-05-03
EP2448266A4 (en) 2013-04-03
AU2010265451A1 (en) 2012-01-19
DK3767951T3 (da) 2024-07-01
ES2992053T3 (es) 2024-12-05
EP4401404B1 (en) 2025-09-10
AU2010265451B2 (en) 2014-06-19
EP4401404A2 (en) 2024-07-17
PT3767951T (pt) 2024-06-28
EP4401404A3 (en) 2024-07-24
BRPI1012992A2 (pt) 2018-01-16
BRPI1012992B1 (pt) 2021-08-17
KR20120026092A (ko) 2012-03-16
FI3767951T3 (fi) 2024-07-01
EP4401404C0 (en) 2025-09-10
EP2448266A1 (en) 2012-05-02

Similar Documents

Publication Publication Date Title
ES3047860T3 (en) Method and apparatus for decoding of video images
JP4625104B2 (ja) ダイレクトモード動きベクトルの導出方法
ES2875926T3 (es) Procedimiento y dispositivo para codificar una secuencia de imágenes y procedimiento y dispositivo para descodificar una secuencia de imágenes
CN104243982B (zh) 一种视频编解码处理方法及装置
CN111200736B (zh) 一种视频编/解码中运动信息的获取方法及装置
CN102215387B (zh) 视频图像处理方法以及编/解码器
CN108432250A (zh) 用于视频编解码的仿射帧间预测的方法及装置
CN102131091B (zh) 解码端运动向量导出方法
RU2003100395A (ru) Способ определения прогнозируемого вектора движения
CN113163206B (zh) 一种编解码方法、装置及其设备