ES3047582T3 - Video coding and decoding considering hmvp candidates for a merge mode motion vector candidate list - Google Patents
Video coding and decoding considering hmvp candidates for a merge mode motion vector candidate listInfo
- Publication number
- ES3047582T3 ES3047582T3 ES23196333T ES23196333T ES3047582T3 ES 3047582 T3 ES3047582 T3 ES 3047582T3 ES 23196333 T ES23196333 T ES 23196333T ES 23196333 T ES23196333 T ES 23196333T ES 3047582 T3 ES3047582 T3 ES 3047582T3
- Authority
- ES
- Spain
- Prior art keywords
- history
- motion vector
- merge candidate
- vector predictor
- interprediction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N19/159—Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Se proporciona tecnología para mejorar la eficiencia de la codificación mediante la división de bloques, adecuada para la codificación y decodificación de imágenes. Un dispositivo incluye una unidad de almacenamiento de información de codificación configurada para almacenar la información de interpredicción utilizada en la interpredicción de un bloque codificado en una lista de candidatos a predictores de vectores de movimiento basados en el historial; una unidad de derivación de candidatos a información de interpredicción espacial configurada para derivar un candidato a información de interpredicción espacial a partir de la información de interpredicción de un bloque adyacente espacialmente a un bloque objetivo de codificación y establecer dicho candidato como candidato a información de interpredicción espacial del bloque objetivo de codificación; y una unidad de derivación de candidatos a información de interpredicción basada en el historial configurada para derivar un candidato a información de interpredicción basada en el historial a partir de la información de interpredicción almacenada en la lista de candidatos a predictores de vectores de movimiento basados en el historial y establecer dicho candidato como candidato a información de interpredicción del bloque objetivo de codificación. La unidad de derivación de candidatos de información de interpredicción basada en historial compara una cantidad predeterminada de elementos de información de interpredicción de la última información de interpredicción dentro de la información de interpredicción almacenada en la lista de candidatos de predictor de vector de movimiento basado en historial con el candidato de información de interpredicción espacial y establece la información de interpredicción como un candidato de información de interpredicción basada en historial cuando un valor de la información de interpredicción es diferente. (Traducción automática con Google Translate, sin valor legal)
Description
[0001] DESCRIPCIÓN
[0002] Codificación y descodificación de vídeo considerando candidatos HMVP para una lista de candidatos a vectores de movimiento en modo fusión
[0003] Antecedentes de la invención
[0004] Campo de la invención
[0005] La presente invención se refiere a la tecnología de codificación y descodificación de imágenes para dividir una imagen en bloques y realizar la predicción.
[0006] Descripción de la técnica relacionada
[0007] En la codificación y descodificación de imágenes, una imagen diana se divide en bloques, cada uno de los cuales es un conjunto de un número prescrito de muestras, y se realiza un procedimiento en unidades de bloques. La eficacia de la codificación se mejora dividiendo una imagen en bloques apropiados y configurando adecuadamente la predicción intraimagen (intrapredicción) y la predicción interimagen (interpredicción).
[0008] En la codificación/descodificación de imágenes en movimiento, la eficacia de la codificación se mejora mediante la interpredicción para realizar la predicción a partir de una imagen codificada/decodificada. El Documento de Patente 1 describe la tecnología para aplicar una transformada afín en el momento de la inter predicción. No es infrecuente que un objeto cause deformaciones tal como ampliación/reducción y rotación en las imágenes en movimiento, y la aplicación de la tecnología del Documento de Patente 1 permite una codificación eficaz.
[0009] [Documentos de la Técnica Anterior]
[0010] [Documentos de patente]
[0011] [Documento de Patente 1] Solicitud de Patente Japonesa No Examinada, Primera Publicación Núm. H9-172644Sumario de la invención
[0012] Sin embargo, debido a que la tecnología del Documento de Patente 1 implica una transformación de imagen, existe el problema de que la carga de procesamiento es grande. En vista del problema anterior, la presente invención proporciona una tecnología de codificación eficiente con una carga baja, que va más allá de lo que se divulga en los siguientes documentos del estado de la técnica:
[0013] [Documento 2] CHEN J ET AL: "Descripción de algoritmos para Versatile Video Coding and Test Model 3 (VTM 3)", 12. JVET MEETING; 3-12 Oct. 2018; MACAO; (THE JOINT VIDEO EXPLORATION TEAM OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16 ), no. JVET-L1002, 24 Dec. 2018, y
[0014] [Documento 3] ZHANG (BYTEDANCE) L ET AL: "CE4: Predicción de vectores de movimiento basada en el historial (Prueba 4.4.7)", 12. JVET MEETING; 3-12 Oct. 2018; MACAO; (THE JOINT VIDEO EXPLORATION TEAM OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16 ), no. JVET-L0266, 4 October 2018.
[0015] Estos dos últimos documentos revelan la adición de candidatos procedentes de una lista de predicción de vectores de movimiento basada en el historial (HMVP) a una lista de candidatos a vectores de movimiento en modo fusión en condiciones específicas.
[0016] La presente invención se define por las reivindicaciones adjuntas independientes.
[0017] De acuerdo con la presente invención, es posible implementar un procedimiento de codificación/descodificación de imágenes altamente eficiente con una carga baja.
[0018] BREVE DESCRIPCIÓN DE LOS DIBUJOS
[0019] La FIGURA 1 es un diagrama de bloques de un dispositivo de codificación de imágenes de acuerdo con una realización ejemplar de la presente invención.
[0020] La FIGURA 2 es un diagrama de bloques de un dispositivo de descodificación de imágenes de acuerdo con una realización de la presente invención.
[0021] La FIGURA 3 es un diagrama de flujo explicativo que muestra una operación de división de un bloque de árbol. La FIGURA 4 es un diagrama que muestra un estado en el que una imagen de entrada se divide en bloques de árbol.
[0022] La FIGURA 5 es un diagrama explicativo que muestra la exploración Z.
[0023] La FIGURA 6A es un diagrama que muestra la forma dividida de un bloque.
[0024] La FIGURA 6B es un diagrama que muestra la forma dividida de un bloque.
[0025] La FIGURA 6C es un diagrama que muestra una forma dividida de un bloque.
[0026] La FIGURA 6D es un diagrama que muestra una forma dividida de un bloque.
[0027] La FIGURA 6E es un diagrama que muestra una forma dividida de un bloque.
[0028] La FIGURA 7 es un diagrama de flujo explicativo que muestra una operación de división de un bloque en cuatro partes.
[0029] La FIGURA 8 es un diagrama de flujo explicativo que muestra una operación de división de un bloque en dos o tres partes.
[0030] La FIGURA 9 es la sintaxis para expresar una forma de división en bloques.
[0031] La FIGURA 10A es un diagrama explicativo que muestra la intrapredicción.
[0032] La FIGURA 10B es un diagrama explicativo que muestra la intra predicción.
[0033] La FIGURA 11 es un diagrama explicativo que muestra un bloque de referencia de inter predicción.
[0034] La FIGURA 12 es la sintaxis para expresar un modo de predicción de un bloque de codificación.
[0035] La FIGURA 13 es un diagrama que muestra correspondencia entre un elemento de sintaxis relacionado con la inter predicción y un modo.
[0036] La FIGURA 14 es un diagrama explicativo que muestra la compensación de movimiento afín de dos puntos de control.
[0037] La FIGURA 15 es un diagrama explicativo que muestra la compensación de movimiento afín de tres puntos de control.
[0038] La FIGURA 16 es un diagrama de bloques de una configuración detallada de una unidad de inter predicción 102 de la FIG. 1.
[0039] La FIGURA 17 es un diagrama de bloques de una configuración detallada de la unidad de derivación del modo de predictor del vector de movimiento normal 301 de la FIG. 16.
[0040] La FIGURA 18 es un diagrama de bloques de una configuración detallada de la unidad de derivación del modo de fusión normal 302 de la FIG. 16.
[0041] La FIGURA 19 es un diagrama de flujo explicativo que muestra un procedimiento de derivación del modo de predicción del vector de movimiento normal de la unidad de derivación del modo de predicción del vector de movimiento normal 301 de la FIG. 16.
[0042] La FIGURA 20 es un diagrama de flujo que muestra un procedimiento de procesamiento del procedimiento de derivación del modo de predicción del vector de movimiento normal.
[0043] La FIGURA 21 es un diagrama de flujo explicativo que muestra un procedimiento de tratamiento de un procedimiento normal de derivación en modo fusión.
[0044] La FIGURA 22 es un diagrama de bloques de una configuración detallada de una unidad de inter predicción 203 de la FIG. 2.
[0045] La FIGURA 23 es un diagrama de bloques de una configuración detallada de la unidad de derivación del modo de predictor del vector de movimiento normal 401 de la FIG. 22.
[0046] La FIGURA 24 es un diagrama de bloques de una configuración detallada de la unidad de derivación del modo de fusión normal 402 de la FIG. 22.
[0047] La FIGURA 25 es un diagrama de flujo explicativo que muestra un procedimiento de derivación del modo de predicción del vector de movimiento normal de la unidad de derivación del modo de predicción del vector de movimiento normal 401 de la FIG. 22.
[0048] La FIGURA 26 es un diagrama explicativo que muestra un procedimiento de procesamiento de inicialización/actualización de una lista de candidatos a predictor de vector de movimiento basado en el historial. La FIGURA 27 es un diagrama de flujo de un procedimiento de procesamiento de comprobación de elementos idénticos en el procedimiento de procesamiento de inicialización/actualización de una lista de candidatos a predictor de vector de movimiento basado en el historial.
[0049] La FIGURA 28 es un diagrama de flujo de un procedimiento de procesamiento de desplazamiento de elementos en el procedimiento de procesamiento de inicialización/actualización de una lista de candidatos a predictor de vector de movimiento basado en el historial.
[0050] La FIGURA 29 es un diagrama de flujo explicativo que muestra un procedimiento de procesamiento de derivación de candidatos a predictor de vector de movimiento con base en el historial.
[0051] La FIGURA 30 es un diagrama de flujo explicativo que muestra un procedimiento de procesamiento de derivación de candidatos a la fusión basado en el historial.
[0052] La FIGURA 31A es un diagrama explicativo que muestra un ejemplo de un procedimiento de actualización de lista de candidatos a predictor de vector de movimiento basado en el historial.
[0053] La FIGURA 31B es un diagrama explicativo que muestra un ejemplo de un procedimiento de actualización de lista de candidatos a predictor de vector de movimiento basado en el historial.
[0054] La FIGURA 31C es un diagrama explicativo que muestra un ejemplo de un procedimiento de actualización de una lista de candidatos a predictor de vector de movimiento basado en el historial.
[0055] La FIGURA 32 es un diagrama explicativo que muestra la predicción compensada por movimiento cuando el tiempo de reloj de una imagen de referencia (Refl_0Pic) de L0 es anterior al de una imagen diana (CurPic) como predicción LO.
[0056] La FIGURA 33 es un diagrama explicativo que muestra la predicción con compensación de movimiento cuando el tiempo de reloj de una imagen de referencia de predicción Lo es posterior al de una imagen diana como predicción LO.
[0057] La FIGURA 34 es un diagrama explicativo que muestra una dirección de predicción de la predicción con compensación de movimiento cuando una hora de reloj de una imagen de referencia de la predicción LO es anterior a la de una imagen diana y una hora de reloj de una imagen de referencia de la predicción L1 es posterior a la de una imagen diana como bipredicción.
[0058] La FIGURA 35 es un diagrama explicativo que muestra una dirección de predicción de la predicción con compensación de movimiento cuando una hora de reloj de una imagen de referencia de la predicción LO y una hora de reloj de una imagen de referencia de la predicción L1 son anteriores a la de una imagen diana como bipredicción.
[0059] La FIGURA 36 es un diagrama explicativo que muestra una dirección de predicción de la predicción con compensación de movimiento cuando una hora de reloj de una imagen de referencia de la predicción LO y una hora de reloj de una imagen de referencia de la predicción L1 son posteriores a la de una imagen diana como bipredicción.
[0060] La FIGURA 37 es un diagrama explicativo que muestra un ejemplo de una configuración de hardware de un dispositivo de codificación/descodificación de acuerdo con una realización de la presente divulgación
[0061] La FIGURA 38A es un diagrama que muestra un ejemplo de elementos de una lista de candidatos a predictor de vector de movimiento basado en el historial en un caso en el que un bloque de codificación de un objetivo de codificación/descodificación es un bloque superior derecho cuando el bloque se divide en cuatro partes.
[0062] La FIGURA 38B es un diagrama que muestra un ejemplo de elementos de una lista de candidatos a predictor de vector de movimiento basado en el historial en un caso en el que un bloque de codificación de un objetivo de codificación/descodificación es un bloque inferior izquierdo cuando el bloque se divide en cuatro partes.
[0063] La FIGURA 38C es un diagrama que muestra un ejemplo de elementos de una lista de candidatos a predictor de vector de movimiento basado en el historial en un caso en el que un bloque de codificación de un objetivo de codificación/descodificación es un bloque inferior derecho cuando el bloque se divide en cuatro partes.
[0064] La FIGURA 38D es un diagrama que muestra la comprobación/comparación de elementos de la lista de candidatos al predictor de vectores de movimiento basado en el historial.
[0065] La FIGURA 39 es un diagrama de flujo que ilustra un procedimiento de procesamiento de derivación de candidato de fusión basado en el historial de acuerdo con una segunda realización de la presente invención.
[0066] La FIGURA 40 es un diagrama de flujo de un procedimiento de procesamiento de comprobación de elemento idéntico en un procedimiento de procesamiento para inicializar y actualizar una lista de candidatos a predictor de vector de movimiento basado en el historial de acuerdo con una tercera realización de la presente invención. La FIGURA 41 es un diagrama de flujo de un procedimiento de procesamiento de comprobación de elemento idéntico en un procedimiento de procesamiento para inicializar y actualizar una lista de candidatos a predictor de vector de movimiento basado en el historial de acuerdo con una cuarta realización de la presente invención.
[0067] Descripción detallada de la invención
[0069] Se definirán la tecnología y los términos técnicos utilizados en la realización.
[0071] <Bloque de árbol>
[0073] En la realización, una imagen diana de codificación/descodificación se divide igualmente en unidades de un tamaño predeterminado. Esta unidad se define como un bloque de árbol. Aunque el tamaño del bloque de árbol es de 128*128 muestras en FIG. 4, el tamaño del bloque de árboles no está limitado y puede fijarse cualquier tamaño. El bloque de árbol de un objetivo (correspondiente a un objetivo de codificación en un procedimiento de codificación o a un objetivo de descodificación en el procedimiento de descodificación) se conmuta en un orden de exploración de trama, es decir, de izquierda a derecha y de arriba abajo. El interior de cada bloque de árbol puede dividirse a su vez recursivamente. Un bloque que es un objetivo de codificación/descodificación después de que el bloque de árbol se divide recursivamente se define como un bloque de codificación. Además, un bloque de árbol y un bloque de codificación se definen colectivamente como bloques. La codificación eficiente se consigue realizando una división de bloques adecuada. El tamaño del bloque de árbol puede ser un valor fijo predeterminado por el dispositivo de codificación y el dispositivo de descodificación o el tamaño del bloque de árbol determinado por el dispositivo de codificación puede estar configurado para ser transmitido al dispositivo de descodificación. El tamaño máximo del bloque de árbol es de 128*128 muestras y el tamaño mínimo es de 16*16 muestras. Además, el tamaño máximo del bloque de codificación es de 64x64 muestras y el tamaño mínimo del bloque de codificación es de 4*4 muestras.
[0075] <Modo de predicción>
[0077] La conmutación se realiza entre la intra predicción (MODE_INTRA) en la que la predicción se realiza a partir de una señal de imagen procesada de la imagen diana y la inter predicción (MODE_INTER) en la que la predicción se realiza a partir de una señal de imagen de una imagen procesada en unidades de bloques de codificación diana.
[0079] La imagen procesada se utiliza para una imagen, una señal de imagen, un bloque de árbol, un bloque, un bloque de codificación y similares obtenidos al descodificar una señal completamente codificada en el procedimiento de codificación y se utiliza para una imagen, una señal de imagen, un bloque de árbol, un bloque, un bloque de codificación y similares obtenidos al completar la descodificación en un procedimiento de descodificación.
[0081] El modo en el que se identifican la intra predicción (MODE_INTRA) y la inter predicción (MODE_INTER) se define como el modo de predicción (PredMode). El modo de predicción (PredMode) tiene como valor la intrapredicción (MODE_INTRA) o la interpredicción (MODE_INTER).
[0083] <Inter predicción>
[0084] En la inter predicción en la que la predicción se realiza a partir de una señal de imagen de una imagen procesada, se puede utilizar una pluralidad de imágenes procesadas como imágenes de referencia. Para gestionar una pluralidad de imágenes de referencia, se definen dos tipos de listas de referencia L0 (lista de referencia 0) y L1 (lista de referencia 1) y se identifica una imagen de referencia utilizando cada índice de referencia. En un corte P, se puede utilizar la predicción LO (Pred_L0). En un corte B, se puede utilizar la predicción LO (Pred_L0), la predicción L1 (Pred_L1) y la predicción bi (Pred_BI). La predicción LO (Pred_L0) es una inter predicción que se refiere a una imagen de referencia gestionada en L0 y la predicción L1 (Pred_L1) es una inter predicción que se refiere a una imagen de referencia gestionada en L1. La bi-predicción (Pred_BI) es una inter-predicción en la que se realizan tanto la LO-predicción como la L1-predicción y se hace referencia a una imagen de referencia gestionada en cada una de las L0 y L1. La información para identificar la predicción L0, la predicción L1 y la bi-predicción se define como un modo de inter predicción. En el procesamiento posterior, se supone que las constantes y variables con el subíndice LX en la salida se procesan para cada una de L0 y L1.
[0086] <Modo de predicción del vector de movimiento>
[0088] El modo de predictor de vector de movimiento es un modo para transmitir un índice para identificar un predictor de vector de movimiento, una diferencia de vector de movimiento, un modo de inter predicción, y un índice de referencia y determinar información de inter predicción de un bloque diana. El predictor del vector de movimiento se deriva de un candidato a predictor del vector de movimiento derivado de un bloque procesado vecino al bloque diana o de un bloque situado en la misma posición que el bloque diana o en sus proximidades (cerca) entre los bloques pertenecientes a la imagen procesada y un índice para identificar un predictor del vector de movimiento.
[0090] <Modo de fusión>
[0092] El modo de fusión es un modo en el que la información de inter predicción de un bloque diana se deriva de la información de inter predicción de un bloque procesado vecino al bloque diana o de un bloque situado en la misma posición que el bloque diana o en sus proximidades (cerca) entre los bloques pertenecientes a la imagen procesada sin transmitir una diferencia de vector de movimiento y un índice de referencia.
[0094] El bloque procesado vecino al bloque diana y la información de inter predicción del bloque procesado se definen como candidatos de fusión espacial. El bloque situado en la misma posición o en las proximidades (cerca) del bloque diana entre los bloques pertenecientes a la imagen procesada y la información de inter predicción derivada de la información de inter predicción del bloque se definen como candidatos de fusión temporal. Cada candidato a la fusión se registra en una lista de candidatos a la fusión, y un candidato a la fusión utilizado para la predicción de un bloque diana se identifica mediante un índice de fusión.
[0096] <Bloque vecino>
[0098] La FIG. 11 es un diagrama explicativo que muestra un bloque de referencia al que se hace referencia al derivar información de inter predicción en el modo de predicción de vector de movimiento y en el modo de fusión. A0, A1, A2, B0, B1, B2 y B3 son bloques procesados vecinos al bloque diana. T0 es un bloque situado en la misma posición o en las proximidades (cerca) del bloque diana en la imagen objetivo entre los bloques pertenecientes a la imagen procesada.
[0100] A1 y A2 son bloques situados a la izquierda del bloque de codificación diana y vecinos al bloque de codificación diana. B1 y B3 son bloques situados en la parte superior del bloque de codificación diana y vecinos al bloque de codificación diana. A0, B0 y B2 son bloques situados en la parte inferior izquierda, superior derecha y superior izquierda del bloque de codificación diana, respectivamente.
[0102] A continuación se describen los detalles de cómo tratar los bloques vecinos en el modo de predicción del vector de movimiento y en el modo de fusión.
[0104] <Compensación de movimiento afín>
[0106] La compensación de movimiento afín es un procedimiento para realizar la compensación de movimiento dividiendo un bloque de codificación en subbloques de una unidad predeterminada y determinando individualmente un vector de movimiento para cada uno de los subbloques en los que se divide el bloque de codificación. El vector de movimiento de cada subbloque se obtiene a partir de uno o varios puntos de control derivados de la información de inter predicción de un bloque procesado vecino al bloque diana o de un bloque situado en la misma posición que el bloque diana o en sus proximidades (cerca de él) entre los bloques pertenecientes a la imagen procesada. Aunque el tamaño del subbloque es de 4*4 muestras en la presente realización, el tamaño del subbloque no está limitado a ello y un vector de movimiento puede derivarse en unidades de muestras.
[0108] Un ejemplo de compensación de movimiento afín en el caso de dos puntos de control se muestra en la FIG. 14. En este caso, los dos puntos de control tienen dos parámetros de una componente de dirección horizontal y una componente de dirección vertical. Así, una transformación afín en el caso de dos puntos de control se denomina transformación afín de cuatro parámetros. CP1 y CP2 de FIG. 14 son puntos de control.
[0109] Un ejemplo de compensación de movimiento afín en el caso de tres puntos de control se muestra en la FIG. 15. En este caso, los tres puntos de control tienen dos parámetros: un componente de dirección horizontal y un componente de dirección vertical. Así, una transformación afín en el caso de tres puntos de control se denomina transformación afín de seis parámetros. CP1, CP2, y CP3 de la FIG. 15 son puntos de control.
[0111] La compensación de movimiento Affine puede utilizarse tanto en el modo de predicción de vector de movimiento como en el modo de fusión. Un modo en el que la compensación del movimiento afín se aplica en el modo de predicción del vector de movimiento se define como un modo de predicción del vector de movimiento basado en subbloques, y un modo en el que la compensación del movimiento afín se aplica en el modo de fusión se define como un modo de fusión basado en subbloques.
[0113] <Sintaxis de inter predicción>
[0115] La sintaxis relacionada con la inter predicción se describirá utilizando las FIGS. 12 y 13.
[0117] El indicador merge_flag en la FIG. 12 indica si el bloque de codificación diana está en modo fusión o en modo predictor de vector de movimiento. El indicador merge_affine_flag indica si el modo de fusión basado en subbloques se aplica o no al bloque de codificación diana del modo de fusión. El indicador inter_afín _Indicador indica si se aplica o no el modo de predictor de vectores de movimiento basado en subbloques al bloque de codificación diana del modo de predictor de vectores de movimiento. El indicador cu_affine_type_flag se utiliza para determinar el número de puntos de control en el modo de predicción de vectores de movimiento basado en subbloques.
[0119] La FIG. 13 muestra un valor de cada elemento de sintaxis y un procedimiento de predicción correspondiente. El modo de fusión normal corresponde a merge_flag=1 y merge_affine_flag=0 y no es un modo de fusión basado en subbloques. El modo de fusión basado en subbloques corresponde a merge_flag=1 y merge_affine_flag=1. El modo de predicción del vector de movimiento normal corresponde a merge_flag=0 e inter_affine_flag=0. El modo normal de predicción de vectores de movimiento es un modo de fusión de predicción de vectores de movimiento que no es un modo de predicción de vectores de movimiento basado en subbloques. El modo de predicción del vector de movimiento basado en subbloques corresponde a merge_flag=0 e inter_affine_flag=1. Cuando fusionar_indicador=0 y inter_afín_indicador=1, cu_afín_tipo_indicador se transmite además para determinar la cantidad de puntos de control.
[0121] <POC>
[0123] Un recuento de orden de imágenes (POC) es una variable asociada con una imagen a codificar y se establece en un valor que se incrementa en 1 de acuerdo con un orden de salida de imágenes. de acuerdo con el valor POC, es posible discriminar si las imágenes son iguales, discriminar una relación anteroposterior entre imágenes en el orden de salida o deducir la distancia entre imágenes. Por ejemplo, si los POC de dos imágenes tienen el mismo valor, se puede determinar que son la misma imagen. Cuando los POC de dos imágenes tienen valores diferentes, puede determinarse que la imagen con el valor de POC más pequeño es la que debe salir primero. Una diferencia entre los POC de las dos imágenes indica una distancia entre imágenes en una dirección del eje temporal.
[0125] (Primera realización)
[0127] Se describirán el dispositivo de codificación de imágenes 100 y el dispositivo de descodificación de imágenes 200 de acuerdo con la primera realización de la presente invención.
[0129] La FIG. 1 es un diagrama de bloques de un dispositivo de codificación de imágenes 100 de acuerdo con la primera realización. El dispositivo de codificación de imágenes 100 de acuerdo con la realización incluye una unidad de división de bloques 101, una unidad de inter predicción 102, una unidad de inter predicciónna 103, una memoria de imágenes descodificadas 104, una unidad de determinación del procedimiento de predicción 105, una unidad de generación residual 106, una unidad de transformación ortogonal/cuantificación 107, una unidad de codificación de cadenas de bits 108, una unidad de cuantificación inversa/transformación ortogonal inversa 109, una unidad de superposición de señales de imágenes descodificadas 110, y una memoria de almacenamiento de información de codificación 111.
[0130] La unidad de división en bloques 101 divide recursivamente la imagen de entrada para generar un bloque de codificación. La unidad de división de bloques 101 incluye una unidad de división cuádruple que divide un bloque diana dividido en la dirección horizontal y en la dirección vertical y una unidad de división binaria-ternaria que divide el bloque diana dividido en la dirección horizontal o en la dirección vertical. La unidad de división de bloques 101 establece el bloque de codificación generado como bloque de codificación diana y suministra una señal de imagen del bloque de codificación diana a la unidad de inter predicción 102, la unidad de intra predicción 103 y la unidad de generación residual 106. Además, la unidad de división de bloques 101 suministra información que indica una estructura de división recursiva determinada a la unidad de codificación de cadenas de bits 108. La operación detallada de la unidad de división de bloques 101 se describirá a continuación.
[0132] La unidad de inter predicción 102 realiza la inter predicción del bloque de codificación diana. La unidad de inter predicción 102 deriva una pluralidad de candidatos de información de inter predicción a partir de la información de inter predicción almacenada en la memoria de almacenamiento de información de codificación 111 y la señal de imagen decodificada almacenada en la memoria de imagen decodificada 104, selecciona un modo de inter predicción
adecuado a partir de la pluralidad de candidatos derivados, y suministra el modo de inter predicción seleccionado y una señal de imagen predicha de acuerdo con el modo de inter predicción seleccionado a la unidad de determinación del procedimiento de predicción 105. A continuación se describirá en detalle la configuración y el funcionamiento de la unidad de inter predicción 102.
[0134] La unidad de intra predicción 103 realiza la intra predicción del bloque de codificación diana. La unidad de intra predicción 103 se refiere a una señal de imagen decodificada almacenada en la memoria de imagen decodificada 104 como una muestra de referencia y genera una señal de imagen predicha de acuerdo con la intra predicción basada en información de codificación tal como un modo de intra predicción almacenado en la memoria de almacenamiento de información de codificación 111. En la intra predicción, la unidad de intra predicción 103 selecciona un modo de intra predicción adecuado de entre una pluralidad de modos de intra predicción y suministra un modo de intra predicción seleccionado y una señal de imagen predicha de acuerdo con el modo de intra predicción seleccionado a la unidad de determinación del procedimiento de predicción 105.
[0136] Los ejemplos de intra predicción se muestran en las FIGS. 10A y 10B. La FIGURA 10A muestra la correspondencia entre una dirección de predicción de intra predicción y un número de modo de intra predicción. Por ejemplo, en el modo de intra predicción 50, se genera una imagen de intra predicción copiando muestras de referencia en la dirección vertical. El modo de intra predicción 1 es un modo de CC y es un modo en el que todos los valores de muestra del bloque diana son un valor medio de muestras de referencia. El modo de intra predicción 0 es un modo planar y es un modo para crear una imagen de intra predicción bidimensional a partir de muestras de referencia en las direcciones vertical y horizontal. La FIGURA 10B es un ejemplo en el que se genera una imagen de intra predicción en el caso del modo de intra predicción 40. La unidad de intra predicción 103 copia el valor de la muestra de referencia en la dirección indicada por el modo de intra predicción con respecto a cada muestra del bloque diana. Cuando la muestra de referencia del modo de intra predicción no se encuentra en una posición entera, la unidad de intra predicción 103 determina un valor de muestra de referencia de acuerdo con una interpolación a partir de valores de muestra de referencia de posiciones enteras vecinas.
[0138] La memoria de imagen descodificada 104 almacena una imagen descodificada generada por la unidad de superposición de señal de imagen descodificada 110. La memoria de imagen decodificada 104 suministra la imagen decodificada almacenada a la unidad de interpredicción 102 y a la unidad de intrapredicción 103.
[0140] La unidad de determinación del procedimiento de predicción 105 determina el modo de predicción óptimo evaluando cada una de las predicciones intra e inter utilizando información de codificación, una cantidad de código residual, una cantidad de distorsión entre una señal de imagen predicha y una señal de imagen diana, y similares. En el caso de intra predicción, la unidad de determinación del procedimiento de predicción 105 suministra información de intra predicción tal como un modo de intra predicción como información de codificación a la unidad de codificación de cadenas de bits 108. En el caso del modo de fusión de inter predicción, la unidad de determinación del procedimiento de predicción 105 suministra información de inter predicción tal como un índice de fusión e información que indica si el modo es o no un modo de fusión basado en subbloques (una bandera de fusión basada en subbloques) como información de codificación a la unidad de codificación de cadenas de bits 108. En el caso del modo de predicción de vector de movimiento de inter predicción, la unidad de determinación del procedimiento de predicción 105 suministra información de inter predicción tal como el modo de inter predicción, un índice de predictor de vector de movimiento, índices de referencia de L0 y L1, una diferencia de vector de movimiento, e información que indica si el modo es o no un modo de predictor de vector de movimiento basado en subbloques (una bandera de predictor de vector de movimiento basado en subbloques) como la información de codificación a la unidad de codificación de cadenas de bits 108. Además, la unidad de determinación del procedimiento de predicción 105 suministra la información de codificación determinada a la memoria de almacenamiento de información de codificación 111. La unidad de determinación del procedimiento de predicción 105 suministra una señal de imagen predicha a la unidad de generación residual 106 y a la unidad de superposición de señales de imagen de descodificación 110.
[0142] La unidad de generación residual 106 genera un residuo sustrayendo la señal de imagen predicha de la señal de imagen diana y suministra el residuo a la unidad de transformación/cuantificación ortogonal 107.
[0144] La unidad de transformación ortogonal/cuantificación 107 realiza una transformación ortogonal y una cuantificación en el residuo de acuerdo con el parámetro de cuantificación para generar un residuo transformado ortogonalmente/cuantificado y suministra el residuo generado a la unidad de codificación de cadenas de bits 108 y a la unidad de cuantificación inversa/transformación ortogonal inversa 109. La unidad de cuantificación inversa 109 es una unidad de codificación de cadenas de bits.
[0146] La unidad de codificación de cadenas de bits 108 codifica información de codificación de acuerdo con el procedimiento de predicción determinado por la unidad de determinación del procedimiento de predicción 105 para cada bloque de codificación además de información de unidades de secuencias, imágenes, porciones y bloques de codificación. Específicamente, la unidad de codificación de cadenas de bits 108 codifica el modo de predicción PredMode para cada bloque de codificación. Cuando el modo de predicción es inter predicción (MODE_INTER), la unidad de codificación de cadenas de bits 108 codifica información de codificación (información de inter predicción) como un indicador para discriminar si el modo es o no un modo de fusión, un indicador de fusión con base en subbloques, un índice de fusión cuando el modo es el modo de fusión, un modo de inter predicción cuando el modo no es el modo de
fusión, un índice de predicción de vector de movimiento, información sobre una diferencia de vector de movimiento, y un indicador de predicción de vector de movimiento con base en subbloque de acuerdo con una sintaxis especificada (una regla de sintaxis de cadenas de bits) y genera primeras cadenas de bits. Cuando el modo de predicción es intra predicción (MODE_INTRA), la información de codificación (información de intra predicción) como el modo de intra predicción se codifica de acuerdo con la sintaxis especificada (una regla de sintaxis de cadenas de bits) y se genera la primera cadena de bits. Además, la unidad de codificación de cadenas de bits 108 codifica con entropía el residuo transformado ortogonalmente y cuantificado de acuerdo con la sintaxis especificada para generar segundas cadenas de bits. La unidad de codificación de cadenas de bits 108 multiplexa las primeras cadenas de bits y las segundas cadenas de bits de acuerdo con la sintaxis especificada y emite un flujo de bits.
[0148] La unidad de cuantificación inversa/transformación ortogonal inversa 109 calcula el residuo realizando una cuantificación inversa y una transformación ortogonal inversa en el residuo transformado ortogonalmente/cuantificado suministrado desde la unidad de transformación ortogonal/cuantificación 107 y suministra el residuo calculado a la unidad de superposición de señal de imagen descodificadora 110.
[0150] La unidad de superposición de señal de imagen de descodificación 110 superpone la señal de imagen predicha de acuerdo con la determinación de la unidad de determinación de procedimiento de predicción 105 y el residuo cuantificado inversamente y transformado ortogonalmente de forma inversa por la unidad de cuantificación inversa/transformación ortogonal inversa 109 para generar una imagen descodificada y almacena la imagen descodificada en la memoria de imagen descodificada 104. Además, la unidad de superposición de señales de imagen decodificada 110 puede almacenar la imagen decodificada en la memoria de imagen decodificada 104 después de realizar un procedimiento de filtrado para reducir la distorsión, como la distorsión de bloque debida a la codificación de la imagen decodificada.
[0152] La memoria de almacenamiento de información de codificación 111 almacena información de codificación tal como un modo de predicción (inter predicción o intra predicción) determinado por la unidad 105 de determinación del procedimiento de predicción. En el caso de la inter predicción, la información de codificación almacenada en la memoria de almacenamiento de información de codificación 111 incluye información de inter predicción como un vector de movimiento determinado, índices de referencia de las listas de referencia L0 y L1, y una lista de candidatos a predictor de vector de movimiento con base en el historial. Además, en el caso del modo de fusión entre predicciones, la información de codificación almacenada en la memoria de almacenamiento de información de codificación 111 incluye información de inter predicción como un índice de fusión e información que indica si el modo es o no el modo de fusión con base en subbloques (un indicador de fusión con base en subbloques) además de la información descrita anteriormente. Además, en el caso del modo de predicción de vector de movimiento de la inter predicción, la información de codificación almacenada en la memoria de almacenamiento de información de codificación 111 incluye información de inter predicción como un modo de inter predicción, un índice de predicción de vector de movimiento, una diferencia de vector de movimiento e información que indica si el modo es o no el modo de predicción de vector de movimiento con base en subbloques (un indicador de predicción de vector de movimiento con base en subbloques) además de la información descrita anteriormente. En el caso de la intra predicción, la información de codificación almacenada en la memoria de almacenamiento de información de codificación 111 incluye información de intra predicción como el modo de intra predicción determinado.
[0154] La FIG. 2 es un diagrama de bloques que muestra una configuración del dispositivo de descodificación de imágenes de acuerdo con la realización de la presente invención correspondiente al dispositivo de codificación de imágenes de la FIG. 1. El dispositivo de descodificación de imágenes de acuerdo con la realización incluye una unidad de descodificación de cadenas de bits 201, una unidad de división de bloques 202, una unidad de inter predicción 203, una unidad de intra predicción 204, una memoria de almacenamiento de información de codificación 205, una unidad de cuantificación inversa/transformación ortogonal inversa 206, una unidad de superposición de señal de imagen descodificada 207 y una memoria de imagen descodificada 208.
[0156] Debido a que un procedimiento de descodificación del dispositivo descodificador de imágenes de la FIG. 2 corresponde a un procedimiento de descodificación proporcionado en el dispositivo de codificación de imágenes de la FIG. 1, los componentes de la memoria de almacenamiento de información de codificación 205, la unidad de cuantificación inversa/transformación ortogonal inversa 206, la unidad de superposición de señal de imagen descodificada 207 y la memoria de imagen descodificada 208 de la FIG. 2 tienen funciones correspondientes a los componentes de la memoria de almacenamiento de información de codificación 111, la unidad de cuantificación inversa/transformación ortogonal inversa 109, la unidad de superposición de señal de imagen descodificada 110 y la memoria de imagen descodificada 104 del dispositivo de codificación de imagen de la FIG. 1.
[0158] Un flujo de bits suministrado a la unidad de descodificación de cadenas de bits 201 se separa de acuerdo con una regla de sintaxis especificada. La unidad de descodificación de cadenas de bits 201 descodifica una primera cadena de bits separada y obtiene información de unidades de secuencias, imágenes, cortes, bloques de codificación e información de codificación de unidades de bloques de codificación. Específicamente, la unidad de descodificación de cadenas de bits 201 descodifica un modo de predicción PredMode para discriminar la inter predicción (MODE_INTER) o intra (MODE_INTRA) en unidades de bloques de codificación. Cuando el modo de predicción es interpredicción (MODO INTER), la unidad de descodificación de cadenas de bits 201 descodifica información de codificación (información de interpredicción) sobre un indicador para discriminar si el modo es o no un modo de fusión, un índice
de fusión cuando el modo es el modo de fusión, un indicador de fusión con base en subbloques, un modo de interpredicción cuando el modo es un modo de predictor de vector de movimiento, un índice de predicción de vector de movimiento, una diferencia de vector de movimiento, un indicador de predicción de vector de movimiento con base en subbloque, y similares de acuerdo con la sintaxis especificada y suministra la información de codificación (la información de interpredicción) a la memoria de almacenamiento de información de codificación 205 a través de la unidad de interpredicción 203 y la unidad de división de bloque 202. Cuando el modo de predicción es intra predicción (MODE_INTRA), la información de codificación (información de intra predicción) como el modo de intra predicción se descodifica de acuerdo con la sintaxis especificada y la información de codificación (la información de intra predicción) se suministra a la memoria de almacenamiento de información de codificación 205 a través de la unidad de inter predicción 203 o la unidad de intra predicción 204 y la unidad de división en bloques 202. La unidad de descodificación de cadenas de bits 201 descodifica las segundas cadenas de bits separadas para calcular un residuo cuantificado/transformado ortogonalmente y suministra el residuo cuantificado/transformado ortogonalmente a la unidad 206 de cuantificación inversa/transformación ortogonal inversa.
[0160] Cuando el modo de predicción PredMode del bloque de codificación diana es el modo de predicción de vector de movimiento en la inter predicción (MODE_INTER), la unidad de inter predicción 203 deriva una pluralidad de candidatos a predictor de vector de movimiento utilizando la información de codificación de la señal de imagen previamente descodificada almacenada en la memoria de almacenamiento de información de codificación 205 y registra la pluralidad de candidatos a predictor de vector de movimiento derivados en la lista de candidatos a predictor de vector de movimiento que se describirá más adelante. La unidad de inter predicción 203 selecciona un predictor de vector de movimiento de acuerdo con el índice de predictor de vector de movimiento descodificado y suministrado por la unidad de descodificación de cadenas de bits 201 de entre la pluralidad de candidatos a predictor de vector de movimiento registrados en la lista de candidatos a predictor de vector de movimiento, calcula un vector de movimiento a partir de la diferencia de vector de movimiento descodificada por la unidad de descodificación de cadenas de bits 201 y el predictor de vector de movimiento seleccionado, y almacena el vector de movimiento calculado en la memoria de almacenamiento de información de codificación 205 junto con otra información de codificación. La información de codificación del bloque de codificación suministrada/almacenada aquí es un modo de predicción PredModo, indicadores predindicadorL0[xP][yP] y predIndicadorL 1 [xP][yP] que indican si se utiliza o no la predicción LO y la predicción L1, índices de referencia refIdxL0[xP][yP] y refIdxL1[xP][yP] de L0 y L1, vectores de movimiento mvL0[xP][yP] y mvL1[xP][yP] de L0 y L1, y similares. Aquí, xP e yP son índices que indican una posición de una muestra superior izquierda del bloque de codificación dentro de la imagen. Cuando el modo de predicción Predmodo es inter predicción (modo_INTER) y el modo de inter predicción es LO-predicción (Pred_L0), el indicador predindicadorLO que indica si se utiliza o no LO-predicción es 1, y el indicador predindicadorL1 que indica si se utiliza o no L1-predicción es 0. Cuando el modo de inter predicción es L1-predicción (Pred_L1), el indicador predindicadorLO que indica si se utiliza o no LO-predicción es 0 y el indicador predindicadorL1 que indica si se utiliza o no L1-predicción es 1. Cuando el modo de interpredicción es bi-predicción (Pred BI), tanto el Indicador predIndicadorLO que indica si se usa o no la predicción L0 como el Indicador predIndicadorL1 que indica si se usa o no la predicción L1 son 1. Además, los candidatos a la fusión se derivan en el modo de fusión en el que el modo de predicción PredMode del bloque de codificación del objetivo es la inter predicción (MODE_INTER). Una pluralidad de candidatos a fusión se derivan utilizando la información de codificación de los bloques de codificación previamente descodificados almacenados en la memoria de almacenamiento de información de codificación 205 y se registran en una lista de candidatos a fusión que se describirá más adelante, un candidato a fusión correspondiente a un índice de fusión a descodificar y suministrado por la unidad de descodificación de cadenas de bits 201 se selecciona de entre la pluralidad de candidatos a fusión registrados en la lista de candidatos a fusión, e información de inter predicción, como los indicadores predFlagL0[xP][yP] y predFlagL1[xP][yP], que indican si se utiliza o no la predicción L0 y la predicción L1 del candidato a la fusión seleccionado, los índices de referencia refldxL0[xP][yP] y refIdxL1[xP][yP] de L0 y L1, y los vectores de movimiento mvL0[xP][yP] y mvL1[xP][yP] de L0 y L1 se almacenan en la memoria 205 de almacenamiento de información de codificación. Aquí, xP e yP son índices que indican la posición de la muestra superior izquierda del bloque de codificación en la imagen. A continuación se describirá en detalle la configuración y el funcionamiento de la unidad de inter predicción 203.
[0162] La unidad de intra predicción 204 realiza intra predicción cuando el modo de predicción PredMode del bloque de codificación del objetivo es intra predicción (MODE_INTRA). La información de codificación decodificada por la unidad de decodificación de cadenas de bits 201 incluye un modo de intrapredicción. La unidad de intra predicción 204 genera una señal de imagen predicha de acuerdo con la intra predicción a partir de la señal de imagen descodificada almacenada en la memoria de imagen descodificada 208 de acuerdo con el modo de intra predicción incluido en la información de codificación descodificada por la unidad de descodificación de cadenas de bits 201 y suministra la señal de imagen predicha generada a la unidad de superposición de señal de imagen descodificada 207. Dado que la unidad de intra predicción 204 se corresponde con la unidad de intra predicción 103 del dispositivo de codificación de imágenes 100, se realiza un procedimiento similar al de la unidad de intra predicción 103.
[0164] La unidad de cuantificación inversa/transformación ortogonal inversa 206 realiza una transformación ortogonal inversa y una cuantificación inversa en el residuo transformado ortogonalmente/cuantificado descodificado por la unidad de descodificación de cadenas de bits 201 y obtiene el residuo transformado ortogonalmente de forma inversa/cuantificado inversamente.
[0165] La unidad de superposición de señal de imagen descodificada 207 descodifica una señal de imagen descodificada superponiendo una señal de imagen predicha inter-predicha por la unidad de inter-predicción 203 o una señal de imagen predicha intra-predicha por la unidad de intra-predicción 204 y el residuo transformado inversamente ortogonalmente/cuantificado inversamente por la unidad de cuantificación inversa/transformación ortogonal inversa 206 y almacena la señal de imagen descodificada descodificada en la memoria de imagen descodificada 208. En el momento del almacenamiento en la memoria de imágenes descodificadas 208, la unidad de superposición de señales de imágenes descodificadas 207 puede almacenar una imagen descodificada en la memoria de imágenes descodificadas 208 después de realizar en la imagen descodificada un procedimiento de filtrado para reducir la distorsión de bloque o similar debido a la codificación.
[0167] A continuación, se describirá una operación de la unidad de división de bloques 101 en el dispositivo de codificación de imágenes 100. La FIGURA 3 es un diagrama de flujo que muestra una operación de división de una imagen en bloques de árbol y la posterior división de cada bloque de árbol. En primer lugar, una imagen de entrada se divide en bloques de árbol que tienen un tamaño predeterminado (etapa S1001). Cada bloque de árbol se explora ópticamente en un orden predeterminado, es decir, orden de exploración de trama (etapa S1002), y el interior del bloque de árbol de una diana se divide (etapa S1003).
[0169] La FIG. 7 es un diagrama de flujo que muestra una operación detallado de un procedimiento de división de la etapa S1003. En primer lugar, se determina si un bloque diana se dividirá o no en cuatro partes (etapa S1101).
[0171] Cuando se determina que el bloque diana se dividirá en cuatro partes, el bloque diana se divide en cuatro partes (etapa S1102). Cada bloque obtenido dividiendo el bloque diana se explora ópticamente en un orden de exploración Z, es decir, en el orden superior izquierdo, superior derecho, inferior izquierdo e inferior derecho (etapa S1103). La FIGURA 5 muestra un ejemplo de orden de exploración Z, y el número de referencia 601 de la FIG. 6A muestra un ejemplo en el que el bloque diana se divide en cuatro partes. Los números 0 a 3 del número de referencia 601 de la FIG. 6A indican el orden de procesamiento. A continuación, el procedimiento de división de FIG. 7 se ejecuta recursivamente para cada bloque desde la división en la etapa S1101 (etapa S1104).
[0173] Cuando se determina que el bloque diana no se dividirá en cuatro partes, se realiza una división binaria-ternaria (etapa S1105).
[0175] La FIG. 8 es un diagrama de flujo que muestra el funcionamiento detallado de un procedimiento de división binarioternario de la etapa S1105. En primer lugar, se determina si un bloque diana se dividirá o no en dos o tres partes, es decir, si se realizará o no una división binaria o ternaria (etapa S1201).
[0177] Cuando no se determina que el bloque diana se dividirá en dos o tres partes, es decir, cuando se determina que el bloque diana no se dividirá, finaliza la división (etapa S1211). Es decir, no se realiza un procedimiento de división recursivo en bloques divididos de acuerdo con el procedimiento de división recursivo.
[0179] Cuando se determina que el bloque diana se dividirá en dos o tres partes, se determina además si el bloque diana se dividirá o no en dos partes (etapa S1202).
[0181] Cuando se determina que el bloque diana se dividirá en dos partes, se determina si el bloque diana se dividirá o no en partes superior e inferior (en dirección vertical) (etapa S1203). Sobre la base de un resultado de determinación, el bloque diana se divide en dos partes que son superior e inferior (en dirección vertical) (etapa S1204) o el bloque diana se divide en dos partes que son izquierda y derecha (en dirección horizontal) (etapa S1205). Como resultado de la etapa S1204, el bloque diana se divide en dos partes que son superior e inferior (en la dirección vertical) como se indica con el número de referencia 602 en la FIG. 6B. Como resultado de la etapa S1205, el bloque diana se divide en dos partes que son izquierda y derecha (en la dirección horizontal) como se indica con el número de referencia 604 de la FIG. 6D.
[0183] Cuando no se determina que el bloque diana se dividirá en dos partes, es decir, cuando se determina que el bloque diana se dividirá en tres partes, en la etapa S 1202, se determina si el bloque diana se dividirá o no en partes superior, media e inferior (en la dirección vertical) (etapa S 1206). Sobre la base de un resultado de determinación, el bloque diana se divide en tres partes que son superior, media e inferior (en la dirección vertical) (etapa S 1207) o el bloque diana se divide en tres partes que son izquierda, media y derecha (en la dirección horizontal) (etapa S1208). Como resultado de la etapa S1207, el bloque diana se divide en tres partes que son superior, media e inferior (en la dirección vertical) como se indica con el número de referencia 603 de la FIG. 6C. Como resultado de la etapa S1208, el bloque diana se divide en tres partes que son izquierda, media y derecha (en la dirección horizontal) como se indica con el número de referencia 605 de la FIG. 6E.
[0185] Una vez ejecutada cualquiera de las etapas S 1204, S 1205, S 1207 y S1208, cada uno de los bloques en los que se divide el bloque diana se explora ópticamente en orden de izquierda a derecha y de arriba abajo (etapa S1209). Los números 0 a 2 de los números de referencia 602 a 605 de las FIGS. 6B a 6E indican el orden de procesamiento. Para cada uno de los bloques en los que se divide el bloque diana, se realiza un procedimiento de división binario-ternario de la FIG. 8 se ejecuta recursivamente (etapa S1210).
[0186] La división recursiva de bloques aquí descrita puede limitar la necesidad de una división de acuerdo con el número de divisiones o un tamaño del bloque diana o similares. La información que limita la necesidad de una división puede implementarse mediante una configuración en la que la información no se entrega mediante un acuerdo previo entre el dispositivo de codificación y el dispositivo de descodificación, o implementarse mediante una configuración en la que el dispositivo de codificación determina la información que limita la necesidad de una división, registra la información en una cadena de bits y entrega la información al dispositivo de descodificación.
[0188] Cuando se divide un determinado bloque, el bloque anterior a la división se denomina bloque padre y cada bloque posterior a la división se denomina bloque hijo.
[0190] A continuación, se describirá una operación de la unidad de división de bloques 202 en el dispositivo de descodificación de imágenes 200. La unidad de división de bloques 202 divide el bloque de árbol de acuerdo con un procedimiento de procesamiento similar al de la unidad de división de bloques 101 del dispositivo de codificación de imágenes 100. Sin embargo, hay una diferencia en que la unidad de división de bloques 101 del dispositivo de codificación de imágenes 100 aplica una técnica de optimización tal como la estimación de una forma óptima con base en el reconocimiento de imágenes o la optimización de la tasa de distorsión para determinar una forma de división de bloques óptima, mientras que la unidad de división de bloques 202 del dispositivo de descodificación de imágenes 200 determina una forma de división de bloques descodificando la información de división de bloques registrada en la cadena de bits.
[0192] La sintaxis (una regla de sintaxis de cadenas de bits) relacionada con una división de bloques de acuerdo con la primera realización se muestra en la FIG. 9. coding_quadtree() representa la sintaxis relacionada con un procedimiento de división cuádruple en el bloque. multi_type_tree() representa la sintaxis relacionada con un procedimiento de división binaria o ternaria en un bloque. qt_split es un indicador que indica si un bloque está dividido o no en cuatro partes. qt_split=1 cuando el bloque está dividido en cuatro partes y qt_split=0 cuando el bloque no está dividido en cuatro partes. Cuando el bloque se divide en cuatro partes (qt_split=1), se realiza recursivamente un procedimiento de división cuádruple en bloques, cada uno de los cuales se ha dividido en cuatro partes (coding_quadtree(0), coding_quadtree(1), coding_quadtree(2), coding_quadtree(3), y los argumentos 0 a 3 corresponden a los números indicados por el número de referencia 601 de la FIG. 6A). Cuando el bloque no se divide en cuatro partes (qt_división=0), la división posterior se determina de acuerdo con multi_tipo_árbol(). mtt_división es un indicador que indica si se realiza o no una división posterior. Cuando además se realiza una división (mtt_split=1), se transmiten mtt_split_vertical que es un indicador que indica si el bloque se divide vertical u horizontalmente y mtt_split_binary que es un indicador para determinar si se realiza una división binaria o ternaria. mtt_split_vertical=1 indica una división en dirección vertical y mtt_split_vertical=0 indica una división en dirección horizontal. mtt_split_binary=1 indica una división binaria y mtt_split_binary=0 indica una división ternaria. En la división binaria (mtt_split_binary=1), se realiza recursivamente un procedimiento de división en bloques, cada uno de los cuales se divide en dos partes (multi_type_tree(0), multi_type_tree(1), y los argumentos 0 a 1 corresponden a los números indicados por el número de referencia 602 o 604 en las FIGS. 6B a 6D). En el caso de la división ternaria (mtt_split_binary=0), se realiza recursivamente un procedimiento de división en bloques, cada uno de los cuales se divide en tres partes (multi_type_tree(0), multi_type_tree(1), multi_type_tree(2), y los argumentos 0 a 2 corresponden a los números indicados por el número de referencia 603 de la FIG. 6B o los números indicados por el número de referencia 605 de la FIG. 6E). Hasta que se alcanza mtt_split=0, se realiza una división jerárquica de bloques llamando recursivamente a multi_type_tree.
[0194] <Inter predicción>
[0196] Un procedimiento de inter predicción de acuerdo con la realización se realiza en la unidad de inter predicción 102 del dispositivo de codificación de imagen de la FIG. 1 y la unidad de inter predicción 203 del dispositivo de descodificación de imágenes de la FIG. 2.
[0198] El procedimiento de inter predicción de acuerdo con la realización se describirá con referencia a los dibujos. El procedimiento de inter predicción se realiza tanto en los procedimientos de codificación como de descodificación en unidades de bloques de codificación.
[0200] <Descripción de la unidad de inter predicción 102 del lado de codificación>
[0202] La FIG. 16 es un diagrama que muestra una configuración detallada de la unidad de inter predicción 102 del dispositivo de codificación de imágenes de la FIG. 1. La unidad de derivación de modo de predictor de vector de movimiento normal 301 deriva una pluralidad de candidatos de predictor de vector de movimiento normal para seleccionar un predictor de vector de movimiento, y calcula una diferencia de vector de movimiento entre el predictor de vector de movimiento seleccionado y un vector de movimiento detectado. Un modo de inter predicción detectado, un índice de referencia y un vector de movimiento, así como la diferencia de vector de movimiento calculada, se convierten en información de inter predicción del modo de predicción de vector de movimiento normal. Esta información de inter predicción se suministra a la unidad 305 de determinación del modo de inter predicción. A continuación se describirá una configuración detallada y un procedimiento de la unidad de derivación del modo de predicción del vector de movimiento normal 301.
[0203] La unidad de derivación de modo de fusión normal 302 deriva una pluralidad de candidatos de fusión normal para seleccionar un candidato de fusión normal y obtiene información de inter predicción del modo de fusión normal. Esta información de inter predicción se suministra a la unidad 305 de determinación del modo de inter predicción. A continuación se describirá una configuración detallada y un procedimiento de la unidad de derivación de modo de fusión normal 302.
[0205] Una unidad de derivación de modo de predictor de vector de movimiento con base en subbloque 303 deriva una pluralidad de candidatos de predictor de vector de movimiento con base en subbloque para seleccionar un predictor de vector de movimiento con base en subbloque y calcula una diferencia de vector de movimiento entre el predictor de vector de movimiento con base en subbloque seleccionado y el vector de movimiento detectado. El modo de predicción entre bloques detectado, el índice de referencia, el vector de movimiento y la diferencia de vector de movimiento calculada se convierten en la información de predicción entre bloques del modo de predicción de vector de movimiento con base en subbloques. Esta información de inter predicción se suministra a la unidad 305 de determinación del modo de inter predicción.
[0207] La unidad de derivación de modo de fusión con base en subbloques 304 deriva una pluralidad de candidatos de fusión con base en subbloques para seleccionar un candidato de fusión con base en subbloques, y obtiene información de inter predicción del modo de fusión con base en subbloques. Esta información de inter predicción se suministra a la unidad 305 de determinación del modo de inter predicción.
[0209] La unidad 305 de determinación del modo de predicción entre bloques determina la información de predicción entre bloques en base a la información de predicción entre bloques suministrada por la unidad 301 de derivación del modo de predicción del vector de movimiento normal, la unidad 302 de derivación del modo de fusión normal, la unidad 303 de derivación del modo de predicción del vector de movimiento con base en subbloques y la unidad 304 de derivación del modo de fusión con base en subbloques. La información de inter predicción de acuerdo con el resultado de la determinación se suministra desde la unidad 305 de determinación del modo de inter predicción a la unidad 306 de predicción compensado por movimiento.
[0211] La unidad de predicción compensado por movimiento 306 realiza la inter predicción en la señal de imagen de referencia almacenada en la memoria de imagen descodificada 104 en base a la información de inter predicción determinada. Una configuración detallada y un procedimiento de la unidad de predicción compensado por movimiento 306 se describirán a continuación.
[0213] <Descripción de la unidad de inter predicción 203 del lado de descodificación>
[0215] La FIG. 22 es un diagrama que muestra una configuración detallada de la unidad de inter predicción 203 del dispositivo de descodificación de imágenes de la FIG. 2.
[0217] La unidad de derivación de modo de predictor de vector de movimiento normal 401 deriva una pluralidad de candidatos de predictor de vector de movimiento normal para seleccionar un predictor de vector de movimiento, calcula una suma del predictor de vector de movimiento seleccionado y la diferencia de vector de movimiento descodificado, y establece la suma calculada como un vector de movimiento. Un modo de inter predicción descodificado, un índice de referencia y un vector de movimiento se convierten en información de inter predicción del modo de predicción de vector de movimiento normal. Esta información de inter predicción se suministra a la unidad de predicción compensado por movimiento 406 a través del conmutador 408. A continuación se describirá una configuración detallada y un procedimiento de la unidad de derivación del modo de predicción del vector de movimiento normal 401.
[0219] La unidad de derivación de modo de fusión normal 402 deriva una pluralidad de candidatos de fusión normal para seleccionar un candidato de fusión normal y obtiene información de inter predicción del modo de fusión normal. Esta información de inter predicción se suministra a la unidad de predicción compensado por movimiento 406 a través del conmutador 408. A continuación se describirá una configuración detallada y un procedimiento de la unidad de derivación de modo de fusión normal 402.
[0221] Una unidad de derivación de modo de predictor de vector de movimiento con base en subbloque 403 deriva una pluralidad de candidatos de predictor de vector de movimiento con base en subbloque para seleccionar un predictor de vector de movimiento con base en subbloque, calcula una suma del predictor de vector de movimiento con base en subbloque seleccionado y la diferencia de vector de movimiento descodificado, y establece la suma calculada como un vector de movimiento. El modo de predicción entre bloques descodificado, el índice de referencia y el vector de movimiento se convierten en la información de predicción entre bloques del modo de predicción del vector de movimiento con base en subbloques. Esta información de inter predicción se suministra a la unidad de predicción compensado por movimiento 406 a través del conmutador 408.
[0223] La unidad de derivación de modo de fusión con base en subbloques 404 deriva una pluralidad de candidatos de fusión con base en subbloques para seleccionar un candidato de fusión con base en subbloques y obtiene información de inter predicción del modo de fusión con base en subbloques. Esta información de inter predicción se suministra a la unidad de predicción compensado por movimiento 406 a través del conmutador 408.
[0224] La unidad de predicción compensado por movimiento 406 realiza la inter predicción en la señal de imagen de referencia almacenada en la memoria de imagen descodificada 208 en base a la información de inter predicción determinada. Una configuración detallada y un procedimiento de la unidad de predicción compensada de movimiento 406 son similares a los de la unidad de predicción compensada de movimiento 306 de la parte de codificación.
[0226] <Unidad de derivación del modo de predicción del vector de movimiento normal (AMVP normal)>
[0228] La unidad de derivación de modo de predictor de vector de movimiento normal 301 de la Fig. 17 incluye una unidad de derivación de candidato de predictor de vector de movimiento espacial 321, una unidad de derivación de candidato de predictor de vector de movimiento temporal 322, una unidad de derivación de candidato de predictor de vector de movimiento con base en historia 323, una unidad de reposición de candidato de predictor de vector de movimiento 325, una unidad de detección de vector de movimiento normal 326, una unidad de selección de candidato de predictor de vector de movimiento 327, y una unidad de sustracción de vector de movimiento 328.
[0230] La unidad de derivación del modo de predicción del vector de movimiento normal 401 de la FIG. 23 incluye una unidad de derivación de candidatos a predictor de vector de movimiento espacial 421, una unidad de derivación de candidatos a predictor de vector de movimiento temporal 422, una unidad de derivación de candidatos a predictor de vector de movimiento con base en el historial 423, una unidad de reposición de candidatos a predictor de vector de movimiento 425, una unidad de selección de candidatos a predictor de vector de movimiento 426 y una unidad de adición de vector de movimiento 427.
[0232] Los procedimientos de procesamiento de la unidad de derivación de modo de predictor de vector de movimiento normal 301 del lado de codificación y la unidad de derivación de modo de predictor de vector de movimiento normal 401 del lado de descodificación se describirán utilizando los diagramas de flujo de las FIGS. 19 y 25, respectivamente. La FIGURA 19 es un diagrama de flujo que muestra un procedimiento de procesamiento de derivación de modo de predictor de vector de movimiento normal de la unidad de derivación de modo de predictor de vector de movimiento normal 301 de la parte de codificación y la FIG. 25 es un diagrama de flujo que muestra un procedimiento de procesamiento de derivación de modo de predictor de vector de movimiento normal de la unidad de derivación de modo de predictor de vector de movimiento normal 401 del lado de descodificación.
[0234] <Unidad de derivación del modo de predicción del vector de movimiento normal (AMVP normal): descripción de la cara de codificación>
[0236] El procedimiento de procesamiento de derivación de modo de predicción de vector de movimiento normal del lado de codificación se describirá con referencia a la FIG. 19. En la descripción del procedimiento de procesamiento de la FIG.
[0237] 19, el término "normal" mostrado en la FIG. 19 se pueden omitir.
[0239] En primer lugar, la unidad de detección del vector de movimiento normal 326 detecta un vector de movimiento normal para cada modo de inter predicción y cada índice de referencia (etapa S100 de la FIG. 19).
[0241] Posteriormente, en la unidad de derivación de candidato a predictor de vector de movimiento espacial 321, la unidad de derivación de candidato a predictor de vector de movimiento temporal 322, la unidad de derivación de candidato a predictor de vector de movimiento con base en el historial 323, la unidad de reposición de candidato a predictor de vector de movimiento 325, la unidad de selección de candidato de predictor de vector de movimiento 327, y la unidad de sustracción de vector de movimiento 328, una diferencia de vector de movimiento de un vector de movimiento utilizado para inter predicción del modo de predictor de vector de movimiento normal se calcula para cada de L0 y L1 (etapas S101 a S106 de la FIG. 19). Específicamente, cuando el modo de predicción PredMode del bloque diana es inter predicción (MODE_INTER) y el modo de inter predicción es LO-predicción (Pred_L0), se calcula la lista de candidatos a predictor de vector de movimiento mvpListLO de L0 para seleccionar el predictor de vector de movimiento mvpLO y se calcula la diferencia de vector de movimiento mvdL0 del vector de movimiento mvLO de L0. Cuando el modo de inter predicción del bloque diana es L1-predicción (Pred_L1), se calcula la lista de candidatos a predictor de vector de movimiento mvpListL1 de L1 para seleccionar el predictor de vector de movimiento mvpL1 y se calcula la diferencia de vector de movimiento mvdL1 del vector de movimiento mvL1 de L1. Cuando el modo de inter predicción del bloque diana es la bipredicción (Pred BI), se realizan tanto la predicción LO como la predicción L1, se calcula la lista de candidatos a predictor de vectores de movimiento mvpListLO de L0 para seleccionar un predictor de vectores de movimiento mvpLO de L0, se calcula la diferencia de vector de movimiento mvdL0 de un vector de movimiento mvLO de L0, se calcula la lista de candidatos a predictor de vector de movimiento mvpListL1 de L1 para seleccionar un predictor de vector de movimiento mvpL1 de L1, y se calcula la diferencia de vector de movimiento mvdL1 de un vector de movimiento mvL1 de L1.
[0243] Aunque se realiza un procedimiento de cálculo de diferencia de vector de movimiento para cada uno de L0 y L1, el procedimiento de cálculo de diferencia de vector de movimiento se convierte en un procedimiento común a ambos L0 y L1. Por lo tanto, en la siguiente descripción, L0 y L1 se representan como LX común. X de LX es 0 en el procedimiento de cálculo de la diferencia del vector de movimiento de L0 y X de LX es 1 en el procedimiento de cálculo de la diferencia del vector de movimiento de L1. Además, cuando se hace referencia a la información de otra lista en lugar de LX durante el procedimiento de cálculo de la diferencia del vector de movimiento de LX, la otra lista se representa como LY.
[0244] Cuando el vector de movimiento mvLX de LX es usado (etapa S102 de FIG. 19: SÍ), los candidatos a predictor de vector de movimiento de LX se calculan para construir la lista de candidatos a predictor de vector de movimiento mvpListLX de LX (etapa S103 de FIG. 19). En la unidad de derivación de candidatos a predictor de vector de movimiento espacial 321, la unidad de derivación de candidatos a predictor de vector de movimiento temporal 322, la unidad de derivación de candidatos a predictor de vector de movimiento con base en historia 323, y la unidad de reposición de candidatos a predictor de vector de movimiento 325 de la unidad de derivación de modo de predictor de vector de movimiento normal 301, se derivan una pluralidad de candidatos a predictor de vector de movimiento para construir la lista de candidatos a predictor de vector de movimiento mvpListLX. Un procedimiento de procesamiento detallado de la etapa S103 de la FIG. 19 se describirá a continuación utilizando el diagrama de flujo de la FIG. 20.
[0245] Posteriormente, la unidad de selección de candidatos a predictor de vector de movimiento 327 selecciona un predictor de vector de movimiento mvpLX de LX de la lista de candidatos a predictor de vector de movimiento mvpListLX de LX (etapa S104 de FIG. 19). Aquí, un elemento (un elemento iésimo cuando se cuenta desde un elemento 0ésimo) en la lista de candidatos a predictor de vector de movimiento mvpListLX se representa como mvpListLX[i]. Se calcula cada diferencia de vector de movimiento que es una diferencia entre el vector de movimiento mvLX y cada candidato a predictor de vector de movimiento mvpListLX[i] almacenado en la lista de candidatos a predictor de vector de movimiento mvpListLX. Se calcula una cantidad de código cuando se codifican las diferencias de vector de movimiento para cada elemento (candidato a predictor de vector de movimiento) de la lista de candidatos a predictor de vector de movimiento mvpListLX. A continuación, se selecciona como predictor de vector de movimiento mvpListLX[i] aquel que minimiza la cantidad de código para cada candidato a predictor de vector de movimiento entre los elementos registrados en la lista de candidatos a predictor de vector de movimiento mvpListLX y se adquiere su índice i. Cuando hay una pluralidad de candidatos a predictor de vector de movimiento con la menor cantidad de código generado en la lista de candidatos a predictor de vector de movimiento mvpListLX, se selecciona un candidato a predictor de vector de movimiento mvpListLX[i] representado por un número menor en el índice i de la lista de candidatos a predictor de vector de movimiento mvpListLX como predictor de vector de movimiento óptimo mvpLX y se adquiere su índice i.
[0246] Posteriormente, la unidad de sustracción de vector de movimiento 328 sustrae el predictor de vector de movimiento seleccionado mvpLX de LX del vector de movimiento mvLX de LX y calcula una diferencia de vector de movimiento mvdLX de LX como mvdLX=mvLX-mvpLX (etapa S105 de FIG. 19).
[0248] <Unidad de derivación del modo de predicción del vector de movimiento normal (AMVP normal): descripción de la parte de descodificación>
[0250] A continuación, se describirá el procedimiento de procesamiento del modo de predicción de vector de movimiento normal del lado de descodificación con referencia a la FIG. 25. En el lado de descodificación, en la unidad de derivación de candidato a predictor de vector de movimiento espacial 421, la unidad de derivación de candidato a predictor de vector de movimiento temporal 422, la unidad de derivación de candidato a predictor de vector de movimiento con base en el historial 423, y la unidad de reposición de candidato a predictor de vector de movimiento 425, se calcula un vector de movimiento para su uso en la inter predicción del modo de predictor de vector de movimiento normal para cada uno de L0 y L1 (etapas S201 a S206 de la FIG. 25). Específicamente, cuando el modo de predicción PredMode del bloque diana es inter predicción (MODE_INTER) y el modo de inter predicción del bloque diana es LO-predicción (Pred_L0), se calcula la lista de candidatos a predictor de vector de movimiento mvpListLO de L0 para seleccionar el predictor de vector de movimiento mvpLO y se calcula un vector de movimiento mvLO de L0. Cuando el modo de inter predicción del bloque diana es L1-predicción (Pred_L1), se calcula la lista de candidatos a predictor de vector de movimiento mvpListL1 de L1 para seleccionar el predictor de vector de movimiento mvpL1 y se calcula el vector de movimiento mvL1 de L1. Cuando el modo de inter predicción del bloque diana es la bipredicción (Pred BI), se realizan tanto la predicción LO como la predicción L1, se calcula la lista de candidatos a predictor de vectores de movimiento mvpListLO de L0 para seleccionar un predictor de vectores de movimiento mvpLO de L0, se calcula un vector de movimiento mvLO de L0, se calcula la lista de candidatos a predictor de vectores de movimiento mvpListL1 de L1 para seleccionar un predictor de vectores de movimiento mvpL1 de L1, y se calcula cada vector de movimiento mvL1 de L1.
[0252] Aunque se realiza un procedimiento de cálculo de vector de movimiento para cada uno de L0 y L1 en el lado de descodificación como en el lado de codificación, el procedimiento de cálculo de vector de movimiento se convierte en un procedimiento común a ambos L0 y L1. Por lo tanto, en la siguiente descripción, L0 y L1 se representan como LX común. LX representa un modo de inter predicción para su uso en la inter predicción de un bloque de codificación diana. X es 0 en el procedimiento de cálculo del vector de movimiento de L0 y X es 1 en el procedimiento de cálculo del vector de movimiento de L1. Asimismo, cuando durante el procedimiento de cálculo del vector de movimiento de LX se hace referencia a la información de otra lista de referencia en lugar de a una lista de referencia idéntica a la de LX de un objetivo de cálculo, la otra lista de referencia se representa como LY.
[0254] Cuando se utiliza el vector de movimiento mvLX de LX (etapa S202 de la FIG. 25: SÍ), los candidatos a predictor de vector de movimiento de LX se calculan para construir la lista de candidatos a predictor de vector de movimiento mvpListLX de LX (etapa S203 de FIG. 25). En la unidad de derivación de candidatos a predictor de vector de movimiento espacial 421, la unidad de derivación de candidatos a predictor de vector de movimiento temporal 422, la unidad de derivación de candidatos a predictor de vector de movimiento con base en historia 423, y la unidad de reposición de candidatos a predictor de vector de movimiento 425 de la unidad de derivación de modo de predictor de
vector de movimiento normal 401, se calcula una pluralidad de candidatos a predictor de vector de movimiento para construir una lista de candidatos a predictor de vector de movimiento mvpListLx. Un procedimiento de procesamiento detallado de la etapa S203 de la FIG. 25 se describirá a continuación utilizando el diagrama de flujo de la FIG. 20.
[0255] Posteriormente, el candidato a predictor de vector de movimiento mvpListLX[mvpIdxLX] correspondiente al índice mvpIdxLX del predictor de vector de movimiento descodificado y suministrado por la unidad de descodificación de cadenas de bits 201 a partir de la lista de candidatos a predictor de vector de movimiento mvpListLX se extrae como un predictor de vector de movimiento seleccionado mvpLX en la unidad de selección de candidatos a predictor de vector de movimiento 426 (etapa S204 de la FIG. 25).
[0257] Posteriormente, la unidad de adición de vector de movimiento 427 suma la diferencia de vector de movimiento mvdLX de LX que es descodificada y suministrada por la unidad de descodificación de cadenas de bits 201 y el predictor de vector de movimiento mvpLX de LX y calcula el vector de movimiento mvLX de LX como mvLX=mvpLX+mvdLX (etapa S205 de FIG. 25).
[0259] <Unidad de derivación del modo de predicción del vector de movimiento normal (AMVP normal): procedimiento de predicción del vector de movimiento>
[0261] La FIG. 20 es un diagrama de flujo que muestra un procedimiento de procesamiento de un procedimiento de derivación de modo de predictor de vector de movimiento normal que tiene una función común a la unidad de derivación de modo de predictor de vector de movimiento normal 301 del dispositivo de codificación de imagen y la unidad de derivación de modo de predictor de vector de movimiento normal 401 del dispositivo de descodificación de imagen de acuerdo con la realización de la presente invención.
[0263] La unidad de derivación de modo de predictor de vector de movimiento normal 301 y la unidad de derivación de modo de predictor de vector de movimiento normal 401 incluyen una lista de candidatos a predictor de vector de movimiento mvpListLX. La lista de candidatos a predictor de vector de movimiento mvpListLX tiene una estructura de lista y está provista de un área de almacenamiento donde se almacenan como elementos un índice de predictor de vector de movimiento que indica la ubicación dentro de la lista de candidatos a predictor de vector de movimiento y un candidato a predictor de vector de movimiento correspondiente al índice. El número del índice del predictor del vector de movimiento comienza en 0 y los candidatos a predictor del vector de movimiento se almacenan en el área de almacenamiento de la lista de candidatos a predictor del vector de movimiento mvpListLX. En la presente realización, se asume que al menos dos candidatos a predictor de vector de movimiento (información de inter predicción) pueden ser registrados en la lista de candidatos a predictor de vector de movimiento mvpListLX. Además, se establece en 0 una variable numCurrMvpCand que indica el número de candidatos a predictor de vector de movimiento registrados en la lista de candidatos a predictor de vector de movimiento mvpListLX.
[0265] Las unidades de derivación de candidatos a predictor de vector de movimiento espacial 321 y 421 derivan candidatos a predictor de vector de movimiento de bloques vecinos en el lado izquierdo. En este procedimiento, se deriva un predictor de vector de movimiento mvLXA con referencia a la información de inter predicción del bloque vecino del lado izquierdo (A0 o A1 de FIG. 11), es decir, un indicador que indica si se puede utilizar o no un candidato a predictor de vector de movimiento, un vector de movimiento, un índice de referencia y similares, y el mvLXA derivado se añade a la lista de candidatos a predictor de vector de movimiento mvpListLX (etapa S301 de FIG. 20). Además, X es 0 en el momento de la predicción LO y X es 1 en el momento de la predicción L1 (lo mismo se aplica en adelante en la presente memoria). Posteriormente, las unidades de derivación de candidatos a predictor de vector de movimiento espacial 321 y 421 derivan un candidato a predictor de vector de movimiento de un bloque vecino del lado superior. En este procedimiento, el predictor del vector de movimiento mvLXB se deriva con referencia a la información de inter predicción de un bloque vecino del lado superior (B0, B1 o B2 de la FIG. 11), es decir, un indicador que indica si se puede utilizar o no un candidato a predictor de vector de movimiento, un vector de movimiento, un índice de referencia y similares, y mvLXB se añade a la lista de candidatos a predictor de vector de movimiento mvpListLX si el mvLXA derivado no es igual al mvLXB derivado (etapa S302 de FIG. 20). El procesamiento de los etapas S301 y S302 de la FIG. 20 es común, salvo que las posiciones de los bloques vecinos a los que hay que hacer referencia y el número de bloques vecinos a los que hay que hacer referencia son diferentes, y se obtienen un indicador disponibleindicadorLXN que indica si se puede utilizar o no un candidato a predictor de vector de movimiento del bloque de codificación, un vector de movimiento mvLXN y un índice de referencia refldxN (N representa A o B y lo mismo se aplica en adelante en la presente memoria).
[0267] Posteriormente, las unidades de derivación de candidatos a predictor de vector de movimiento temporal 322 y 422 derivan candidatos a predictor de vector de movimiento de bloques en una imagen cuyo tiempo es diferente al de la imagen diana actual. En este procedimiento, se obtiene un indicador disponibleindicadorLXCol que indica si se puede utilizar o no un candidato a predictor de vector de movimiento de un bloque de codificación de una imagen de tiempo diferente, un vector de movimiento mvLXCol, un índice de referencia refldxCol y una lista de referencia listCol, y se añade mvLXCol a la lista de candidatos a predictor de vector de movimiento mvpListLX (etapa S303 de la FIG. 20).
[0268] Además, se supone que los procedimientos de las unidades de derivación de candidatos a predictor de vector de movimiento temporal 322 y 422 pueden omitirse en unidades de secuencias (SPS), imágenes (PPS) o porciones.
[0269] Posteriormente, las unidades de derivación de candidatos a predictor de vector de movimiento con base en historial 323 y 423 añaden los candidatos a predictor de vector de movimiento con base en historial registrados en la lista de candidatos a predictor de vector de movimiento con base en historial HmvpCandList a la lista de candidatos a predictor de vector de movimiento mvpListLX (etapa S304 de FIG. 20). Los detalles del procedimiento de procesamiento de registro de la etapa S304 se describirán a continuación utilizando el diagrama de flujo de la FIG. 29.
[0271] Posteriormente, las unidades de reabastecimiento de candidatos a predictor de vector de movimiento 325 y 425 agregan candidatos a predictor de vector de movimiento que tienen un valor predeterminado tal como (0, 0) hasta que la lista de candidatos a predictor de vector de movimiento mvpListLX es satisfecha (S305 de FIG. 20).
[0273] <Unidad de derivación del modo de fusión normal (fusión normal)>
[0275] La unidad de derivación de modo de fusión normal 302 de la FIG. 18 incluye una unidad de derivación de candidatos a la fusión espacial 341, una unidad de derivación de candidatos a la fusión temporal 342, una unidad de derivación de candidatos a la fusión promedio 344, una unidad de derivación de candidatos a la fusión con base en el historial 345, una unidad de reposición de candidatos a la fusión 346 y una unidad de selección de candidatos a la fusión 347.
[0276] La unidad de derivación del modo de fusión normal 402 de la FIG. 24 incluye una unidad de derivación de candidatos a la fusión espacial 441, una unidad de derivación de candidatos a la fusión temporal 442, una unidad de derivación de candidatos a la fusión promedio 444, una unidad de derivación de candidatos a la fusión con base en el historial 445, una unidad de reposición de candidatos a la fusión 446 y una unidad de selección de candidatos a la fusión 447.
[0277] La FIG. 21 es un diagrama de flujo explicativo que muestra un procedimiento de un procedimiento de derivación de modo de fusión normal que tiene una función común a la unidad de derivación de modo de fusión normal 302 del dispositivo de codificación de imagen y la unidad de derivación de modo de fusión normal 402 del dispositivo de descodificación de imagen de acuerdo con la realización de la presente invención.
[0279] A continuación en la presente memoria, se describirán etapa a etapa diversos procedimientos. Aunque se describirá un caso en el que un tipo de porción slice_type es una porción B a menos que se especifique lo contrario en la siguiente descripción, la presente invención también puede aplicarse al caso de una porción P Sin embargo, cuando el tipo de porción slice_type es una porción P, como sólo se proporciona la predicción L0 (Pred_L0) como modo de inter predicción y la predicción L1 (Pred_L1) y la bi-predicción (Pred_BI) están ausentes, se puede omitir un procedimiento relacionado con L1.
[0281] La unidad de derivación de modo de fusión normal 302 y la unidad de derivación de modo de fusión normal 402 tienen una lista de candidatos a fusión fusionarCandList. La lista de candidatos a la fusión mergeCandList tiene una estructura de lista y está provista de un índice de fusión que indica la ubicación dentro de la lista de candidatos a la fusión y un área de almacenamiento donde los candidatos a la fusión correspondientes al índice se almacenan como elementos. El número del índice de fusión comienza en 0 y los candidatos a la fusión se almacenan en el área de almacenamiento de la lista de candidatos a la fusión mergeCandList. En el procedimiento posterior, el candidato a fusión del índice de fusión i registrado en la lista de candidatos a fusión mergeCandList se representa mediante mergeCandList[i]. En la presente realización, se supone que al menos seis candidatos a la fusión (información de inter predicción) pueden registrarse en la lista de candidatos a la fusión mergeCandList. Además, se establece en 0 una variable numCurrMergeCand que indica el número de candidatos a la fusión registrados en la lista de candidatos a la fusión mergeCandList.
[0283] En la unidad de derivación de candidatos a fusión espacial 341 y la unidad de derivación de candidatos a fusión espacial 441, los candidatos a fusión espacial de los respectivos bloques (B1, A1, B0, A0 y B2 de la FIG. 11) vecinos al bloque diana se derivan en el orden B1, A1, B0, A0 y B2 a partir de la información de codificación almacenada en la memoria de almacenamiento de información de codificación 111 del dispositivo de codificación de imágenes o en la memoria de almacenamiento de información de codificación 205 del dispositivo de descodificación de imágenes, y los candidatos a fusión espacial derivados se registran en la lista de candidatos a fusión mergeCandList (etapa S401 de la FIG. 21). Aquí, N indica uno de B1, A1, B0, A0 y B2 y se define el candidato de fusión temporal Col. Un indicador disponibleindicadorN que indica si la información de inter predicción del bloque N puede o no utilizarse como candidato a la fusión espacial, un índice de referencia refIdxL0N de L0 y un índice de referencia refldxLIN de L1 del candidato a la fusión espacial N, un indicador de predicción LO predindicadorL0N que indica si se realiza o no la predicción LO, un indicador de predicción L1 predindicadorLIN que indica si se realiza o no la predicción L1, un vector de movimiento mvL0N de L0 y un vector de movimiento mvL1N de L1. Sin embargo, como el candidato a fusión se obtiene sin hacer referencia a la información de inter predicción del bloque incluido en el bloque de codificación que es un objetivo en la presente realización, no se obtiene ningún candidato a fusión espacial que utilice la información de inter predicción del bloque incluido en el bloque de codificación diana.
[0285] Posteriormente, la unidad de derivación de candidatos a fusión temporal 342 y la unidad de derivación de candidatos a fusión temporal 442 derivan candidatos a fusión temporal a partir de imágenes de diferentes momentos y registran los candidatos a fusión temporal derivados en la lista de candidatos a fusión fusionarCandList (etapa S402 de FIG.
[0286] 21). Se derivan un indicador disponibleindicadorCol que indica si se puede utilizar o no el candidato de fusión temporal, un indicador de predicción LO predindicadorLOCol que indica si se realiza o no la predicción LO del candidato de
fusión temporal, un indicador de predicción L1 predindicadorLICol que indica si se realiza o no la predicción L1, un vector de movimiento mvLOCol de L0 y un vector de movimiento mvLlCol de L1.
[0288] También, se asume que los procedimientos de la unidad de derivación de candidatos a fusión temporal 342 y la unidad de derivación de candidatos a fusión temporal 442 pueden ser omitidos en unidades de secuencias (SPS), imágenes (PPS), o porciones.
[0290] Posteriormente, la unidad de derivación de candidato a fusión con base en historia 345 y la unidad de derivación de candidato a fusión con base en historia 445 registran los candidatos a predictor de vector de movimiento con base en historia registrados en la lista de candidatos a predictor de vector de movimiento con base en historia HmvpCandList en la lista de candidatos a fusión fusionarCandList (etapa S403 de FIG. 21).
[0292] Además, cuando el número de candidatos a la fusión numCurrfusionarCand registrado dentro de la lista de candidatos a la fusión fusionarCandList es menor que el número máximo de candidatos a la fusión MaxNumfusionarCand, el número máximo de candidatos a la fusión MaxNumfusionarCand se establece como límite superior del número de candidatos a la fusión numCurrfusionarCand registrado dentro de la lista de candidatos a la fusión fusionarCandList y los candidatos a la fusión con base en el historial se derivan y registran en la lista de candidatos a la fusión fusionarCandList.
[0294] Posteriormente, la unidad de derivación de candidato a fusión promedio 344 y la unidad de derivación de candidato a fusión promedio 444 derivan un candidato a fusión promedio de la lista de candidatos a fusión fusionarCandList y agregan el candidato a fusión promedio derivado a la lista de candidatos a fusión fusionarCandList (etapa S404 de la FIG. 21).
[0296] Además, cuando el número de candidatos a la fusión numCurrfusionarCand registrado dentro de la lista de candidatos a la fusión fusionarCandList es menor que el número máximo de candidatos a la fusión MaxNumfusionarCand, el número máximo de candidatos a la fusión MaxNumfusionarCand se establece como límite superior del número de candidatos a la fusión numCurrfusionarCand registrado dentro de la lista de candidatos a la fusión fusionarCandList y se derivan candidatos a la fusión promedio y se registran en la lista de candidatos a la fusión fusionarCandList.
[0297] En el presente documento, el candidato a fusión promedio es un nuevo candidato a fusión que tiene un vector de movimiento obtenido promediando los vectores de movimiento de un primer candidato a fusión y un segundo candidato a fusión registrados en la lista de candidatos a fusión fusionarCandList para cada una de la predicción LO y la predicción L1.
[0299] Posteriormente, en la unidad de reabastecimiento de candidatos a fusión 346 y la unidad de reabastecimiento de candidatos a fusión 446, cuando el número de candidatos a fusión numCurrfusionarCand registrado dentro de la lista de candidatos a fusión fusionarCandList es menor que el número máximo de candidatos a fusión MaxNumfusionarCand, el número máximo de candidatos a fusión MaxNumfusionarCand se establece como límite superior del número de candidatos a fusión numCurrfusionarCand registrados dentro de la lista de candidatos a fusión fusionarCandList y se deriva un candidato a fusión adicional y se registra en la lista de candidatos a fusión fusionarCandList (etapa S405 de FIG. 21). En el segmento P, se añade un candidato a fusión para el que un vector de movimiento tiene un valor de (0, 0) y el modo de predicción es LO-predicción (Pred_L0) utilizando el número máximo de candidatos a fusión MaxNumMergeCand como límite superior. En la porción B, se añade un candidato a la fusión cuyo vector de movimiento tiene un valor de (0, 0) y el modo de predicción es bipredicción (Pred_BI). Un índice de referencia cuando se añade el candidato a la fusión es diferente del índice de referencia añadido anteriormente.
[0300] Posteriormente, la unidad de selección de candidatos a la fusión 347 y la unidad de selección de candidatos a la fusión 447 seleccionan candidatos a la fusión de entre los candidatos a la fusión registrados dentro de la lista de candidatos a la fusión fusionarCandList. La unidad de selección del candidato a la fusión 347 de la parte de codificación selecciona un candidato a la fusión calculando una cantidad de código y una cantidad de distorsión, y suministra un índice de fusión que indica el candidato a la fusión seleccionado e información de inter predicción del candidato a la fusión a la unidad de predicción con compensación de movimiento 306 a través de la unidad de determinación del modo de inter predicción 305. Por otro lado, la unidad de selección de candidatos a la fusión 447 de la parte de descodificación selecciona un candidato a la fusión basándose en un índice de fusión descodificado y suministra el candidato a la fusión seleccionado a la unidad de predicción 406 con compensación de movimiento.
[0302] Cuando el tamaño de un determinado bloque de codificación (producto de su anchura y altura) es inferior a 32, la unidad de derivación de modo de fusión normal 302 y la unidad de derivación de modo de fusión normal 402 derivan los candidatos a fusión en un bloque padre del bloque de codificación. En todos los bloques hijos, se utilizan los candidatos a la fusión derivados en el bloque padre. Sin embargo, esto se limita al caso en que el tamaño del bloque padre sea de 32 o más y se encuentre dentro de una pantalla.
[0304] Actualización de la lista de candidatos al predictor de vectores de movimiento con base en el historial>
[0305] A continuación, se describirán en detalle un procedimiento de inicialización y un procedimiento de actualización de la lista de candidatos a predictor de vector de movimiento con base en el historial HmvpCandList proporcionada en la memoria de almacenamiento de información de codificación 111 del lado de codificación y la memoria de
almacenamiento de información de codificación 205 del lado de descodificación. La FIGURA 26 es un diagrama de flujo explicativo que muestra un procedimiento de procesamiento de inicialización/actualización de una lista de candidatos a predictor de vector de movimiento con base en el historial.
[0307] En la presente realización, se asume que la lista de candidatos a predictor de vector de movimiento con base en el historial HmvpCandList se actualiza en la memoria de almacenamiento de información de codificación 111 y en la memoria de almacenamiento de información de codificación 205. Se puede instalar una unidad de actualización de la lista de candidatos a predictor de vector de movimiento con base en el historial en la unidad de inter predicción 102 y en la unidad de inter predicción 203 para actualizar la lista de candidatos a predictor de vector de movimiento con base en el historial HmvpCyList.
[0309] La lista de candidatos a predictor de vector de movimiento con base en el historial HmvpCandList se establece inicialmente al principio de la porción, la lista de candidatos a predictor de vector de movimiento con base en el historial HmvpCandList se actualiza cuando el modo de predictor de vector de movimiento normal o el modo de fusión normal ha sido seleccionado por la unidad de determinación de procedimiento de predicción 105 en el lado de codificación, y la lista de candidatos a predictor de vector de movimiento con base en el historial HmvpCandList se actualiza cuando la información de predicción descodificada por la unidad de descodificación de cadenas de bits 201 es sobre el modo de predictor de vector de movimiento normal o el modo de fusión normal en el lado de descodificación.
[0311] La información de inter predicción utilizada cuando se realiza la inter predicción en el modo de predicción de vector de movimiento normal o en el modo de fusión normal se registra como un candidato de información de inter predicción hMvpCand en la lista de candidatos de predicción de vector de movimiento con base en el historial HmvpCandList. La información de inter predicción candidata hMvpCand incluye un índice de referencia refldxL0 de L0, un índice de referencia refIdxL1 de L1, un indicador de predicción L0 predindicadorLO que indica si se realiza o no la predicción LO, un indicador de predicción L1 predindicadorL1 que indica si se realiza o no la predicción L1, un vector de movimiento mvLO de L0 y un vector de movimiento mvL1 de L1.
[0313] Se comprueba si hay o no información de inter predicción que tenga el mismo valor que una información de inter predicción candidata hMvpCand entre los elementos (es decir, información de inter predicción) registrados en la lista de candidatos a predictor de vector de movimiento con base en el historial HmvpCandList proporcionado en la memoria de almacenamiento de información de codificación 111 del lado de codificación y la memoria de almacenamiento de información de codificación 205 del lado de descodificación en orden desde el principio hacia el final de la lista de candidatos a predictor de vector de movimiento con base en el historial HmvpCandList. Cuando hay información de inter predicción que tiene el mismo valor que un candidato de información de inter predicción hMvpCand, el elemento se elimina de la lista de candidatos a predictor de vector de movimiento con base en el historial HmvpCandList. Por otro lado, cuando no hay información de inter predicción que tenga el mismo valor que una información de inter predicción candidata hMvpCand, el elemento al principio de la lista de candidatos a predictor de vector de movimiento con base en el historial HmvpCandList se elimina y la información de inter predicción candidata hMvpCand se añade al final de la lista de candidatos a predictor de vector de movimiento con base en el historial HmvpCandList.
[0315] El tamaño máximo de la lista de candidatos a predictor de vector de movimiento con base en el historial, es decir, el número máximo de elementos (el número máximo de candidatos) MaxNumHmvpCand de la lista de candidatos a predictor de vector de movimiento con base en el historial HmvpCandList, que es el número máximo proporcionado en la memoria de almacenamiento de información de codificación 111 del lado de codificación y la memoria de almacenamiento de información de codificación 205 del lado de descodificación de acuerdo con la presente invención se supone que es seis. Además, MaxNumHmvpCand puede establecerse en un valor, que es el mismo que el número máximo de candidatos a fusión MaxNumMergeCand - 1, puede establecerse en un valor, que es el mismo que el número máximo de candidatos a fusión MaxNumMergeCand, o puede ser un valor fijo predeterminado, como 5 o 6.
[0316] Primero, la lista de candidatos a predictor de vector de movimiento con base en el historial HmvpCandList se inicializa en unidades de porciones (etapa S2101 de FIG. 26). Todos los elementos de la lista de candidatos a predictor de vector de movimiento con base en el historial HmvpCandList están vacíos al principio del porción y se establece en 0 el valor del número de candidatos a predictor de vector de movimiento con base en el historial (el número actual de candidatos) NumHmvpCand registrado en la lista de candidatos a predictor de vector de movimiento con base en el historial HmvpCandList.
[0318] Además, un valor de desplazamientohMvpIdxOffset se establece en un valor predeterminado. El valor de desplazamiento hMvpIdxOffset se establece en cualquier valor predeterminado de 0 a (tamaño de la lista de candidatos a predictor de vector de movimiento con base en historial MaxNumHmvpCand - 1). Estableciendo el valor de desplazamiento hMvpIdxOffset en un valor menor que el número máximo de elementos de la lista de candidatos a predictor de vector de movimiento con base en el historial HmvpCandList, se puede reducir el número de comparaciones entre los elementos que se describirán a continuación. Aunque el valor de desplazamiento hMvpIdxOffset se establece en el valor predeterminado, el valor del valor de desplazamiento hMvpIdxOffset puede establecerse realizando la codificación/descodificación en unidades de secuencias o realizando la codificación/descodificación en unidades de porciones. El valor de desplazamientohMvpIdxOffset se describirá en detalle más adelante.
[0319] Además, la inicialización de la lista de candidatos a predictor de vector de movimiento con base en el historial HmvpCandList se realiza en unidades de porciones (un primer bloque de codificación de una porción), pero puede realizarse en unidades de imágenes, mosaicos o filas de bloques de árbol.
[0321] Posteriormente, el siguiente procedimiento de actualización de la lista de candidatos a predictor de vector de movimiento con base en el historial HmvpCandList se realiza iterativamente para cada bloque de codificación dentro de la porción (etapas S2102 a S2107 de la FIG. 26).
[0323] En primer lugar, se realiza el ajuste inicial para cada bloque de codificación. Un indicador identicalCandExist que indica si hay o no un candidato idéntico se establece en un valor de FALSO y un índice de diana de eliminación removeIdx que indica un candidato de diana de eliminación se establece en 0 (etapa S2103 de la FIG. 26).
[0325] Se determina si hay o no información de inter predicción que tenga el mismo valor que una información de inter predicción candidata hMvpCand del objetivo de registro en la lista de candidatos a predictor de vector de movimiento con base en historia HmvpCandList (etapa S2104 de FIG. 26). Cuando la unidad de determinación del procedimiento de predicción 105 del lado de codificación determina que el modo es el modo de predicción de vector de movimiento normal o el modo de fusión normal, o cuando la unidad de descodificación de cadenas de bits 201 del lado de descodificación descodifica el modo como el modo de predicción de vector de movimiento normal o el modo de fusión normal, su información de inter predicción se establece como una información de inter predicción candidata hMvpCy del objetivo de registro. Cuando la unidad de determinación del procedimiento de predicción 105 del lado de la codificación determina que el modo es el modo de intra-predicción, el modo de predicción de vectores de movimiento con base en sub-bloques, o el modo de fusión con base en sub-bloques, o cuando la unidad de descodificación de cadenas de bits 201 del lado de la descodificación descodifica el modo como el modo de intra-predicción, el modo de predicción de vectores de movimiento con base en subbloques, o el modo de fusión con base en subbloques, no se realiza un procedimiento de actualización de la lista de candidatos a predicción de vectores de movimiento con base en el historial HmvpCandList y el candidato a información de inter predicción hMvpCand del objetivo de registro no existe. Cuando no hay información de inter predicción candidata hMvpCy del objetivo de registro, se omiten los etapas S2105 a S2106 (etapa S2104 de la FIG. 26: NO). Cuando hay un candidato de información de inter predicción hMvpCy del objetivo de registro, se realiza el procesamiento de la etapa S2105 (etapa S2104 de la FIG. 26: SÍ).
[0327] Posteriormente, se determina si existe o no un elemento (información de inter predicción) que tenga el mismo valor que la información de inter predicción candidata hMvpCand de la diana de registro, es decir, un elemento idéntico, entre los elementos de la lista de candidatos a predictor de vector de movimiento con base en el historial HmvpCandList (etapa S2105 de la FIG. 26). La FIGURA 27 es un diagrama de flujo de un procedimiento idéntico de tratamiento de comprobación de elementos. Cuando un valor del número de candidatos a predictor de vector de movimiento con base en el historial NumHmvpCy es 0 (etapa S2121 de FIG. 27: NO), la lista de candidatos a predictor de vector de movimiento con base en el historial HmvpCandList está vacía y no hay ningún candidato idéntico, de modo que los etapas S2122 a S2125 de la FIG. 27 se omiten y finaliza el procedimiento actual de comprobación de elementos idénticos. Cuando el valor del número de candidatos a predictor del vector de movimiento con base en el historial NumHmvpCy es mayor que 0 (etapa S2121 de FIG. 27: SÍ), se comprueba si existe o no información de inter predicción que tenga el mismo valor que una información de inter predicción candidata hMvpCand del objetivo de registro ordenada desde el principio hacia el final de la lista de candidatos a predictor de vector de movimiento con base en el historial HmvpCandList. El procesamiento de la etapa S2123 se itera hasta que el índice predictor del vector de movimiento con base en el historial hMvpIdx cambia de 0 a NumHmvpCy-1 (etapas S2122 a S2125 de la FIG. 27). En primer lugar, se compara si un elementohMvpIdxésimo HmvpCandList[hMvpIdx] cuando se cuenta desde un elemento 0ésim° de la lista de candidatos a predictor de vector de movimiento con base en el historial es idéntico o no al candidato a información de inter predicción hMvpCand (etapa S2123 de la FIG. 27). Cuando el elemento hMvpIdxésimo HmvpCandList[hMvpIdx] es idéntico al candidato de información de inter predicción hMvpCand (etapa S2123 de FIG. 27: SÍ), se establece un valor de VERDADEROen un indicador identicalCandExist que indica si hay o no un candidato idéntico y se establece un valor actual del índice del predictor de vector de movimiento con base en el historial hMvpIdx en un índice de diana de eliminación removeIdx que indica una posición de un elemento de una diana de eliminación, y finaliza el procedimiento de comprobación de elemento idéntico actual. Cuando el elemento hMvpIdx®^™ HmvpCandList[hMvpIdx] no es idéntico al candidato de información de inter predicción hMvpCand (etapa S2123 de FIG. 27: NO), la indicador identicalCandExist que indica si hay o no un candidato idéntico permanece FALSO y hMvpIdx se incrementa en 1. Si el índice predictor del vector de movimiento con base en el historial hMvpIdx es menor o igual que NumHmvpCy-1, se realiza el procesamiento desde la etapa S2123 (etapas S2122 a S2125 de la FIG. 27).
[0329] Nuevamente por referencia al diagrama de flujo de la FIG. 26, se realiza un procedimiento de desplazamiento y adición de un elemento de la lista de candidatos a predictor del vector de movimiento con base en el historial HmvpCandList (etapa S2106 de la FIG. 26). La FIGURA 28 es un diagrama de flujo de un procedimiento de procesamiento para cambiar/añadir un elemento de la lista de candidatos a predictor de vector de movimiento con base en el historial HmvpCyList de la etapa S2106 de la FIG. 26. En primer lugar, se determina si se añade o no un nuevo elemento después de eliminar un elemento almacenado en la lista de candidatos a predictor de vector de movimiento con base en el historial HmvpCandList o si se añade un nuevo elemento sin eliminar el elemento. Específicamente, se hace una comparación con respecto a si la indicador identicalCandExist que indica si hay o no un candidato idéntico es VERDADERO o si el número actual de candidatos NumHmvpCand ha alcanzado o no el número máximo de
candidatos MaxNumHmvpCand (etapa S2141 de la FIG. 28). Cuando el número actual de candidatos NumHmvpCand es el mismo valor que el número máximo de candidatos MaxNumHmvpCand, indica que se ha añadido el número máximo de elementos a la lista de candidatos del predictor de vectores de movimiento con base en el historial HmvpCandList. Cuando se cumple una de las condiciones en las que la indicador identicalCandExist que indica si hay o no un candidato idéntico es VERDADERO y una condición en la que NumHmvpCand tiene el mismo valor que MaxNumHmvpCand (etapa S2141 de FIG. 28: SÍ), se añade un nuevo elemento después de eliminar un elemento almacenado en la lista de candidatos a predictor de vector de movimiento con base en historial HmvpCandList. Específicamente, cuando la indicador identicalCandExist que indica si hay o no un candidato idéntico es VERDADERO, se elimina un candidato idéntico de la lista de candidatos del predictor de vectores de movimiento con base en el historial HmvpCandList. Cuando NumHmvpCand tiene el mismo valor que MaxNumHmvpCand, se elimina un candidato (un elemento) al principio de la lista de candidatos del predictor de vectores de movimiento con base en el historial HmvpCandList. El valor inicial del índice i se establece en un valor de removeIdx+1. removeIdx es un índice de diana de eliminación que indica un candidato a objetivo de eliminación. Se itera un procedimiento de desplazamiento de elementos de la etapa S2143 hasta que el índice i se establece desde el valor inicial de removeIdx+1 hasta NumHmvpCand-1 (etapas S2142 a S2144 de FIG. 28). Copiando el elemento de HmvpCandList[i] a HmvpCandList[i-1], el elemento se desplaza hacia delante (etapa S2143 de FIG. 28) e i se incrementa en 1 (etapas S2142 a S2144 de FIG. 28). Cuando el índice i se convierte en NumHmvpCand y se completa el procedimiento de desplazamiento de elementos de la etapa S2143, el candidato a información de inter predicción hMvpCand se añade al final de la lista de candidatos a predictor de vector de movimiento con base en el historial (etapa S2145 de la FIG.
[0330] 28). Aquí, el final de la lista de candidatos a predictor de vector de movimiento con base en el historial es el (NumHmvpCand-1)ésimo elemento HmvpCandList[NumHmvpCand-1] cuando se cuenta desde el elemento 0ésimo. En consecuencia, finaliza el presente procedimiento de desplazamiento y adición de un elemento de la lista de candidatos a predictor de vector de movimiento con base en el historial HmvpCandList. Por otro lado, cuando no se cumple la condición en la que el indicador identicalCandExist que indica si hay o no un candidato idéntico es VERDADERO y la condición en la que NumHmvpCand tiene el mismo valor que MaxNumHmvpCand (etapa S2141 de la FIG. 28: NO), es decir, cuando el indicador identicalCandExist que indica si existe o no un candidato idéntico es FALSO y NumHmvpCand es menor que MaxNumHmvpCand, se añade un candidato de información de inter predicción hMvpCand en una posición próxima al último elemento de la lista de candidatos a predictor de vectores de movimiento con base en el historial sin eliminar los elementos almacenados en la lista de candidatos a predictor de vectores de movimiento con base en el historial HmvpCandList (etapa S2146 de la FIG. 28). Aquí, la posición junto al último elemento de la lista de candidatos a predictor de vector de movimiento con base en historial corresponde a un elementoNumHmvpCandth HmvpCandList[NumHmvpCand] cuando se cuenta desde un elemento0. Cuando no se añade ningún elemento a la lista de candidatos a predictor de vector de movimiento con base en el historial, la posición será la del elemento0. Además, NumHmvpCand se incrementa en 1 y finaliza el procedimiento actual de desplazamiento y adición de un elemento de la lista de candidatos a predictor del vector de movimiento con base en el historial HmvpCandList.
[0332] Las FIGS. 31A a 31C son diagramas explicativos que muestran un ejemplo de un procedimiento de actualización de la lista de candidatos a predictor de vector de movimiento con base en el historial. Si se añade un nuevo elemento cuando se han registrado seis elementos (información de inter predicción) correspondientes a un tamaño MaxNumMergeCand de la lista de candidatos a predictor de vectores de movimiento con base en el historial en la lista de candidatos a predictor de vectores de movimiento con base en el historial HmvpCandList, los elementos se comparan con la nueva información de inter predicción en orden a partir de un elemento frontal de la lista de candidatos a predictor de vectores de movimiento con base en el historial HmvpCandList (FIG. 31A). Si el nuevo elemento tiene el mismo valor que un tercer elemento HMVP2 desde el principio de la lista de candidatos a predictor de vectores de movimiento con base en el historial HmvpCandList, el elemento HMVP2 se elimina de la lista de candidatos a predictor de vectores de movimiento con base en el historial HmvpCandList y los siguientes elementos HMVP3 a HMVP5 se desplazan hacia delante (copian) uno a uno, y el nuevo elemento se añade al final de la lista de candidatos a predictor de vectores de movimiento con base en el historial HmvpCandList (FIG. 31B) para completar la actualización de la lista de candidatos a predictores de vectores de movimiento con base en el historial HmvpCandList (FIG. 31C).
[0333] <Procedimiento de derivación de candidatos a predictor de vectores de movimiento con base en el historial>
[0334] A continuación, un procedimiento de derivación de un candidato a predictor de vector de movimiento con base en el historial a partir de la lista de candidatos a predictor de vector de movimiento con base en el historial HmvpCyList que es un procedimiento de procesamiento de la etapa S304 de la FIG. 20 que es un procedimiento común a la unidad 323 de derivación de candidato a predictor de vector de movimiento con base en el historial de la unidad 301 de derivación de modo de predictor de vector de movimiento normal del lado de codificación y a la unidad 423 de derivación de candidato a predictor de vector de movimiento con base en el historial de la unidad 401 de derivación de modo de predictor de vector de movimiento normal del lado de descodificación. La FIGURA 29 es un diagrama de flujo explicativo que muestra un procedimiento de procesamiento de derivación de candidatos a predictor de vector de movimiento con base en el historial.
[0336] Cuando el número actual de candidatos a predictor de vector de movimiento numCurrMvpCy es mayor o igual que el número máximo de elementos de la lista de candidatos a predictor de vector de movimiento mvpListLX (aquí, 2) o un valor del número de candidatos a predictor de vector de movimiento con base en el historial NumHmvpCy (el número de elementos registrados en la lista de candidatos a predictor de vector de movimiento con base en el historial) es 0
(etapa S2201 de la FIG. 29: NO), el procesamiento de las etapas S2202 a S2210 de la FIG. 29 se omite y finaliza el procedimiento de derivación del candidato a predictor del vector de movimiento con base en el historial. Cuando el número actual de candidatos a predictor de vector de movimiento numCurrMvpCy es menor que 2 que es el número máximo de elementos de la lista de candidatos a predictor de vector de movimiento mvpListLX y el valor del número de candidatos a predictor de vector de movimiento con base en el historial NumHmvpCy es mayor que 0 (etapa S2201 de FIG. 29: SÍ), el procesamiento de las etapas S2202 a S2210 de la FIG. 29.
[0338] Posteriormente, el procesamiento de las etapas S2203 a S2209 de la FIG. 29 se itera hasta que el índice i cambia de 1 a un valor menor entre 4, que es un valor límite superior predeterminado, y el número de candidatos a predictor de vector de movimiento con base en el historial NumHmvpCy (etapas S2202 a S2210 de FIG. 29). Cuando el número actual de candidatos a predictor de vector de movimiento numCurrMvpCy es mayor o igual a 2, que es el número máximo de elementos de la lista de candidatos a predictor de vector de movimiento mvpListLX (etapa S2203 de la FIG. 29: NO), el procesamiento de las etapas S2204 a S2210 de la FIG. 29 se omite y el presente procedimiento de derivación del candidato a predictor del vector de movimiento con base en el historial finaliza. Cuando el número actual de candidatos a predictor de vector de movimiento numCurrMvpCy es menor que 2, que es el número máximo de elementos de la lista de candidatos a predictor de vector de movimiento mvpListLX (etapa S2203 de FIG. 29: SÍ), el procesamiento desde la etapa S2204 de la FIG. 29.
[0340] Posteriormente, el procedimiento de las etapas S2205 a S2208 se realiza para cada caso en el que una lista de referencia LY de cada elemento de la lista de candidatos a predictor de vector de movimiento con base en el historial HmvpCandList es L0 y L1 (etapas S2204 a S2209 de la FIG. 29). Se muestra que el procesamiento de las etapas S2205 a S2208 de la FIG. 29 se realiza para L0 y L1 de la lista de candidatos a predictor de vector de movimiento con base en el historial HmvpCyList, respectivamente. Cuando el número actual de candidatos a predictor de vector de movimiento numCurrMvpCy es mayor o igual a 2, que es el número máximo de elementos de la lista de candidatos a predictor de vector de movimiento mvpListLX (etapa S2205 de la FIG. 29: NO), el procedimiento de las etapas S2206 a S2210 de la FIG. 29 se omite y el presente procedimiento de derivación del candidato a predictor del vector de movimiento con base en el historial finaliza. Cuando el número actual de candidatos a predictor de vector de movimiento numCurrMvpCy es menor que 2, que es el número máximo de elementos de la lista de candidatos a predictor de vector de movimiento mvpListLX (etapa S2205 de FIG. 29: SÍ), el procesamiento desde la etapa S2206 de la FIG. 29.
[0342] Posteriormente, el vector de movimiento del elemento de la lista de candidatos a predictor de vector de movimiento con base en el historial se añade a la lista de candidatos a predictor de vector de movimiento como candidato a predictor de vector de movimiento. En este momento, se comprueba si un número de elementos especificados por el valor de desplazamiento hMvpIdxOffset desde el extremo posterior de la lista de candidatos a predictor de vectores de movimiento con base en el historial son elementos que no están incluidos en la lista de candidatos a predictor de vectores de movimiento en orden descendente, un elemento que no está incluido en la lista de candidatos a predictor de vectores de movimiento se añade a la lista de candidatos a predictor de vectores de movimiento. Posteriormente, un elemento de la lista de candidatos a predictor de vectores de movimiento con base en el historial se añade a la lista de candidatos a predictor de vectores de movimiento sin comprobar si los elementos son o no elementos que no están incluidos en la lista de candidatos a predictor de vectores de movimiento en orden descendente. Es posible reducir el número de comparaciones entre los elementos que se describirán a continuación estableciendo el valor de desplazamiento hMvpIdxOffset en un valor menor que el número máximo de elementos de la lista de candidatos a predictor de vector de movimiento con base en el historial HmvpCandList. La razón por la que las comparaciones se realizan por el número de elementos especificados por el valor de desplazamiento hMvpIdxOffset desde el extremo posterior de la lista de candidatos a predictor de vector de movimiento con base en el historial cuando se comprueba la lista de candidatos a predictor de vector de movimiento con base en el historial se describirá con referencia a las FIGS. 38A a 38D.
[0344] La FIG. 38A a 38D muestran las relaciones entre tres ejemplos cuando el bloque se divide en cuatro partes y la lista de candidatos a predictor de vector de movimiento con base en el historial. Se describirá un caso en el que cada bloque de codificación se ha codificado en el modo normal de predictor de vector de movimiento o en el modo normal de fusión. La FIGURA 38A es un diagrama cuando el bloque de codificación del objetivo de codificación/descodificación es un bloque superior derecho. En este caso, es probable que la información de inter predicción del bloque situado a la izquierda del bloque de codificación del objetivo de codificación/descodificación sea el último elemento HMVP5 de la lista de candidatos a predictor de vector de movimiento con base en el historial. La FIGURA 38B es un diagrama cuando el bloque de codificación del objetivo de codificación/descodificación es un bloque inferior izquierdo. En este caso, es probable que la información de inter predicción del bloque situado en la parte superior derecha del bloque de codificación del objetivo de codificación/descodificación sea el último elemento HMVP5 de la lista de candidatos a predictor de vector de movimiento con base en el historial y que la información de inter predicción del bloque situado en la parte superior derecha del bloque de codificación del objetivo de codificación/descodificación sea el penúltimo elemento HMVP4 de la lista de candidatos a predictor de vector de movimiento con base en el historial.
[0346] La FIG. 38C es un diagrama cuando el bloque de codificación del objetivo de codificación/descodificación es el bloque inferior derecho. En este caso, es probable que la información de inter predicción del bloque de la izquierda del bloque de codificación del objetivo de codificación/descodificación sea el último elemento HMVP5 de la lista de candidatos a predictores de vectores de movimiento con base en el historial, es probable que la información de inter predicción del
bloque de la parte superior del bloque de codificación del objetivo de codificación/descodificación sea el penúltimo elemento HMVP4 de la lista de candidatos a predictores de vectores de movimiento con base en el historial, y la información de inter predicción del bloque de la parte superior izquierda del bloque de codificación del objetivo de codificación/descodificación es probable que sea el antepenúltimo elemento HMVP3 de la lista de candidatos a predictores de vectores de movimiento con base en el historial. Es decir, el último elemento de la lista de candidatos a predictor de vector de movimiento con base en el historial tiene más probabilidades de ser derivado como candidato a predictor de vector de movimiento espacial.
[0348] Como se muestra en la FIG. 38D, el valor de desplazamiento hMvpIdxOffset se establece en 1 para realizar la comparación sólo con el último elemento HMVP5 de la lista de candidatos a predictor de vector de movimiento con base en el historial, que es más probable que se derive como candidato a predictor de vector de movimiento espacial. Además, el valor de desplazamiento hMvpIdxOffset puede establecerse en 2 para realizar la comparación con el penúltimo elemento de la lista de candidatos a predictor de vector de movimiento con base en el historial, que es el segundo con más probabilidades de ser derivado como candidato a predictor de vector de movimiento espacial. Además, el valor de desplazamiento hMvpIdxOffset puede establecerse en 3 para realizar la comparación con el antepenúltimo elemento de la lista de candidatos a predictor de vector de movimiento con base en el historial, que es el tercero con más probabilidades de ser derivado como candidato a predictor de vector de movimiento espacial. Estableciendo el valor de desplazamientohMvpIdxOffset a un valor de 1 o más como se ha descrito anteriormente, se reduce el número máximo de veces que se comparan los elementos de la lista de candidatos a predictor de vector de movimiento con base en el historial, de modo que se reduce la cantidad máxima de procesamiento. Además, al establecer el valor de desplazamiento hMvpIdxOffset en 0, el número de comparaciones de los elementos de la lista de candidatos a predictor del vector de movimiento con base en el historial pasa a ser 0 y se omite el procedimiento de comparación.
[0350] Cuando el índice i es menor que el valor de desplazamiento hMvpIdxOffset, es decir, cuando se comprueba si el elemento es o no un elemento no incluido en la lista de candidatos a predictor de vector de movimiento, (etapa S2206 de FIG. 29: SÍ) y cuando un índice de referencia de LY de un elemento HmvpCandList[NumHmvpCand-i] en la lista de candidatos a predictor de vector de movimiento con base en el historial es el mismo valor que un índice de referencia refIdxLX de un vector de movimiento objetivo de codificación/descodificación y LY del elemento HmvpCandList[NumHmvpCand-i] en la lista de candidatos a predictor de vector de movimiento con base en el historial es diferente de cualquier elemento de la lista de candidatos a predictor de vector de movimiento mvpListLX (etapa S2207 de la FIG. 29: SÍ), un vector de movimiento de LY del candidato a predictor de vector de movimiento con base en historia HmvpCandList [NumHmvpCand-i] se añade a un elernentonumCurrMvpCandth mvpListLX[numCurrMvpCand] cuando se cuenta desde un elemento0 de la lista de candidatos a predictor de vector de movimiento en la lista de candidatos a predictor de vector de movimiento mvpListLX como el último elemento de la lista de candidatos a predictor de vector de movimiento (etapa S2208 en FIG. 29) y el número actual de candidatos a predictor de vector de movimiento numCurrMvpCy se incrementa en 1. Cuando no hay ningún elemento en la lista de candidatos a predictores de vectores de movimiento con base en el historial HmvpCandList, que tenga el mismo índice de referencia que el índice de referencia refldxLX del vector de movimiento objetivo de codificación/descodificación y sea diferente de cualquier elemento de la lista de predictores de vectores de movimiento mvpListLX (etapa S2207 de la FIG. 29: NO), se omite el procedimiento de adición de la etapa S2208.
[0352] Por otro lado, cuando el índice i no es menor que el valor de desplazamiento hMvpIdxOffset, es decir, cuando no se comprueba si el elemento es o no un elemento no incluido en la lista de candidatos a predictor de vector de movimiento (etapa S2206 de FIG. 29: NO), un vector de movimiento de LY del candidato a predictor de vector de movimiento con base en el historial HmvpCandList [NumHmvpCand-i] se añade a un elemento numCurrMvpCandésimo mvpListLX[numCurrMvpCand] cuando se cuenta desde un elemento 0ésimo de la lista de candidatos a predictor de vector de movimiento como el último elemento de la lista de candidatos a predictor de vector de movimiento (etapa S2208 en FIG. 29) y el número actual de candidatos a predictor de vector de movimiento numCurrMvpCy se incrementa en 1.
[0354] El procesamiento anterior de las etapas S2205 a S2208 de la FIG. 29 se realiza tanto en L0 como en L1 (etapas S2204 a S2209 de la FIG. 29).
[0356] Cuando el índice i se incrementa en 1 (etapas S2202 y S2210 de FIG. 29) y el índice i es menor o igual que un valor menor entre 4, que es el valor límite superior predeterminado, y el número de candidatos a predictor de vector de movimiento con base en el historial NumHmvpCy, se realiza de nuevo el procesamiento desde la etapa S2203 (etapas S2202 a S2210 de FIG. 29).
[0358] <Procedimiento de derivación de candidatos a la fusión con base en el historial>
[0360] A continuación, un procedimiento para derivar un candidato a la fusión con base en el historial desde la lista de candidatos a la fusión con base en el historial HmvpCyList en un procedimiento del procesamiento de la etapa S404 de la FIG. 21 que es el procesamiento común entre la unidad de derivación de candidatos a la fusión con base en el historial 345 de la unidad de derivación de modo de fusión normal 302 en el lado de codificación y la unidad de derivación de candidatos a la fusión con base en el historial 445 de la unidad de derivación de modo de fusión normal
402 en el lado de descodificación se describirá en detalle. La FIGURA 30 es un diagrama de flujo que muestra un procedimiento de procesamiento de derivación de candidatos a la fusión con base en el historial.
[0362] En primer lugar, se realiza un procedimiento de inicialización (etapa S2301 en FIG. 30). Se establece un valor de FALSO en cada uno de los elementos desde el elemento 0ésimo hasta el elemento (numCurrMergeCand-1)ésimo de la indicador isPruned[i] y el número de elementos numCurrMergeCand registrados en la lista actual de candidatos a la fusión se establece en una variable numOrigMergeCand.
[0364] Posteriormente, un elemento, que no está incluido en la lista de candidatos a la fusión, entre los elementos de la lista de predictores de vectores de movimiento con base en el historial se añade a la lista de candidatos a la fusión. En este momento, la lista de predictores de vectores de movimiento con base en el historial se comprueba en orden descendente desde el extremo posterior de la misma y se añade un elemento. Un valor inicial del índice hMvpIdx se establece en 1 y el procedimiento de adición desde la etapa S2303 hasta la etapa S2311 de la FIG. 30 se itera desde el valor inicial hasta NumHmvpCy (etapas S2302 a S2312 de FIG. 30). Si el número de elementos numCurrMergeCand registrados en la lista actual de candidatos a la fusión no es menor o igual que (número máximo de candidatos a la fusión MaxNumMergeCand-1), es decir, si el número de elementos numCurrMergeCand registrados en la lista actual de candidatos a la fusión alcanza el número máximo de candidatos a la fusión MaxNumMergeCand, los candidatos a la fusión se han añadido a todos los elementos de la lista de candidatos a la fusión y, por tanto, el presente procedimiento de derivación de candidatos a la fusión con base en el historial finaliza (etapa S2303 de la FIG. 30: NO). Cuando el número de elementos numCurrMergeCand registrados en la lista actual de candidatos a fusión es menor o igual que (número máximo de candidatos a fusión MaxNumMergeCand-1) (etapa S2303 de FIG. 30: SÍ), se realiza el procesamiento de la etapa S2304.
[0366] Se establece un valor de FALSO en una variable mismoMovimiento que indica la misma información de movimiento (etapa S2304 de FIG. 30). Posteriormente, la información de inter predicción, que es un elemento de la lista de candidatos a predictor de vector de movimiento con base en el historial, se añade a la lista de candidatos a fusión como candidato a fusión. En este momento, se comprueba si un número de elementos especificados por el valor de desplazamiento hMvpIdxOffset desde el elemento del extremo posterior de la lista de candidatos al predictor del vector de movimiento con base en el historial (el elemento añadido más recientemente) son elementos que no están incluidos en la lista de candidatos a la fusión en orden descendente, un elemento que no está incluido en la lista de candidatos a la fusión se añade a la lista de candidatos a la fusión. Posteriormente, un elemento de la lista de candidatos a predictor del vector de movimiento con base en el historial se añade a la lista de candidatos a la fusión sin comprobar si los elementos son o no elementos que no están incluidos en la lista de candidatos a la fusión en orden descendente. Es posible reducir el número de comparaciones entre los elementos que se describirán a continuación estableciendo el valor de desplazamiento hMvpIdxOffset en un valor menor que el número máximo de elementos de la lista de candidatos a predictor de vector de movimiento con base en el historial HmvpCandList. La razón por la que las comparaciones se realizan por el número de elementos especificados por el valor de desplazamiento hMvpIdxOffset desde el elemento del extremo posterior de la lista de candidatos a predictor de vector de movimiento con base en el historial (el elemento añadido más recientemente) cuando se comprueba la lista de candidatos a predictor de vector de movimiento con base en el historial se describirá con referencia a las FIGS. 38A a 38D. Las FIGS. 38A a 38D muestran las relaciones entre tres ejemplos cuando el bloque se divide en cuatro partes y la lista de candidatos a predictor de vector de movimiento con base en el historial. Se describirá un caso en el que cada bloque de codificación se ha codificado en el modo normal de predictor de vector de movimiento o en el modo normal de fusión. La FIGURA 38A es un diagrama cuando el bloque de codificación del objetivo de codificación/descodificación es un bloque superior derecho. En este caso, es probable que la información de inter predicción del bloque situado a la izquierda del bloque de codificación del objetivo de codificación/descodificación sea el último elemento HMVP5 de la lista de candidatos a predictor de vector de movimiento con base en el historial. La FIGURA 38B es un diagrama cuando el bloque de codificación del objetivo de codificación/descodificación es un bloque inferior izquierdo. En este caso, es probable que la información de inter predicción del bloque situado en la parte superior derecha del bloque de codificación del objetivo de codificación/descodificación sea el último elemento HMVP5 de la lista de candidatos a predictor de vector de movimiento con base en el historial y que la información de inter predicción del bloque situado en la parte superior derecha del bloque de codificación del objetivo de codificación/descodificación sea el penúltimo elemento HMVP4 de la lista de candidatos a predictor de vector de movimiento con base en el historial. La FIGURA 38C es un diagrama cuando el bloque de codificación del objetivo de codificación/descodificación es el bloque inferior derecho. En este caso, es probable que la información de inter predicción del bloque de la izquierda del bloque de codificación del objetivo de codificación/descodificación sea el último elemento HMVP5 de la lista de candidatos a predictores de vectores de movimiento con base en el historial, es probable que la información de inter predicción del bloque de la parte superior del bloque de codificación del objetivo de codificación/descodificación sea el penúltimo elemento HMVP4 de la lista de candidatos a predictores de vectores de movimiento con base en el historial, y la información de inter predicción del bloque de la parte superior izquierda del bloque de codificación del objetivo de codificación/descodificación es probable que sea el antepenúltimo elemento HMVP3 de la lista de candidatos a predictores de vectores de movimiento con base en el historial. Es decir, lo más probable es que el último elemento de la lista de candidatos al predictor de vectores de movimiento con base en el historial se derive como candidato a la fusión espacial. Como se muestra en la FIG. 38D, el valor de desplazamiento hMvpIdxOffset se establece en 1 para realizar la comparación sólo con el último elemento HMVP5 de la lista de candidatos a predictor de vector de movimiento con base en el historial, que es más probable que se derive como candidato a fusión espacial. Además,
el valor de desplazamiento hMvpIdxOffset puede establecerse en 2 para realizar la comparación con el penúltimo elemento de la lista de candidatos a predictor de vector de movimiento con base en el historial, que es el segundo con más probabilidades de ser derivado como candidato a fusión espacial. Además, el valor de desplazamiento hMvpIdxOffset puede establecerse en 3 para realizar la comparación con el antepenúltimo elemento de la lista de candidatos a predictor de vector de movimiento con base en el historial, que es el tercero con más probabilidades de ser derivado como candidato a fusión espacial. Al establecer el valor de desplazamiento hMvpIdxOffset en un valor de 1 a 3 como se ha descrito anteriormente como el valor predeterminado y establecer un número de elementos especificados por el valor de desplazamiento hMvpIdxOffset desde el elemento del extremo posterior de la lista de candidatos a predictor de vector de movimiento con base en el historial (el elemento añadido más recientemente) y los candidatos a fusión espaciales o sólo los elementos almacenados en la lista de candidatos a fusión como objetivos de comparación, se reduce el número máximo de comparaciones de elementos de la lista de candidatos a predictor de vector de movimiento con base en el historial y, por lo tanto, se reduce la cantidad máxima de procesamiento.
[0367] Cuando el índice hMvpIdx es menor o igual que el valor de desplazamiento predeterminado hMvpIdxOffset, es decir, cuando se comprueba si el elemento es o no un elemento que no está incluido en la lista de candidatos a la fusión (etapa S2305 de FIG. 30: SÍ), el valor inicial del índice i se establece en 0 y el procesamiento de las etapas S2307 y S2308 de la FIG. 30 se realiza desde el valor inicial hasta numOrigMergeCand-1 (S2306 a S2309 de FIG. 30). Se compara si un (NumHmvpCand-hMvpIdx)ésimo elemento HmvpCandList[NumHmvpCand-hMvpIdx] cuando se cuenta desde un elemento 0ésimo de la lista de candidatos a predictor de vector de movimiento con base en el historial tiene el mismo valor que un elernentofésim° mergeCandList[i] cuando se cuenta desde un elemento 0ésimo de la lista de candidatos a fusión (etapa S2307 de la FIG. 30). Los mismos valores entre los candidatos a la fusión indican que los valores de todos los componentes de información de inter predicción que tienen los candidatos a la fusión (un modo de inter predicción, índices de referencia de L0 y L1, y vectores de movimiento de L0 y L1) son iguales. Por lo tanto, en el procedimiento de comparación de la etapa S2307, cuando isPruned[i] es FALSO, se compara si los valores de todos los componentes que tienen mergeCandList[i] y HmvpCandList[NumHmvpCand-hMvpIdx] (un modo de inter predicción, índices de referencia de L0 y L1, y vectores de movimiento de L0 y L1) son los mismos. Cuando los valores son iguales (etapa S2307 de FIG. 30: S í), se establece VERDADERO tanto para sameMotion como para isPruned[i] (etapa S2308 de FIG. 30). Además, la indicador isPruned[i] es un indicador que indica que un elemento i-®5™ cuando se cuenta desde un elemento 0-®5™ de la lista de candidatos a la fusión tiene el mismo valor que cualquier elemento de la lista de candidatos al predictor del vector de movimiento con base en el historial. Cuando los valores no son iguales (etapa S2307 de la FIG. 30: NO), se omite el procesamiento de la etapa S2308. Cuando el procedimiento iterativo de la etapa S2306 al etapa S2309 de la FIG. 30, se compara si sameMotion es FALSO o no (etapa S2310 de FIG. 30). Cuando sameMotion es FALSO (etapa S2310 de FiG. 30: SÍ), es decir porque un (NumHmvpCandhMvpIdx)ésimo elemento contado desde el 0ésimo elemento de la lista de candidatos a predictor del vector de movimiento con base en el historial no está presente en mergeCandList, un (NumHmvpCand-hMvpldxf^™ elemento HmvpCandList[NumHmvpCand-hMvpIdx] contado a partir del elemento 0ésimo de la lista de candidatos a vectores de movimiento con base en el historial no está presente en mergeCandListse añade al elemento numCurrMergeCand*^™ mergeCandList[numCurrMergeCand] de la lista de candidatos a la fusión como el último elemento de la lista de candidatos a la fusión y numCurrMergeCand se incrementa en 1 (etapa S2311 de FIG. 30). Por otra parte, cuando el índice hMvpldx no es menor que el valor de desplazamiento hMvpIdxOffset, es decir, cuando no se comprueba si el elemento es o no un elemento que no está incluido en la lista de candidatos a la fusión (etapa S2305 de la FIG. 30: NO), un (NumHmvpCand-hMvpIdx)ési™ elemento HmvpCandList[NumHmvpCand-hMvpldx] cuando se cuenta desde el elemento 0ési™ de la lista de candidatos al predictor de vectores de movimiento con base en el historialse añade al elemento numCurrMergeCandési™ mergeCandList[numCurrMergeCand] de la lista de candidatos a la fusión como último elemento de la lista de candidatos a la fusión y numCurrMergeCand se incrementa en 1 (etapa S2312 de FIG. 30).
[0369] Además, el índice hMvpldx se incrementa en 1 (etapa S2302 de FIG. 30) y el procesamiento iterativo de las etapas S2302 a S2312 de la FIG. 30.
[0371] Cuando la comprobación de todos los elementos de la lista de candidatos a predictor de vector de movimiento con base en historia se completa o cuando los candidatos a fusión se añaden a todos los elementos de la lista de candidatos a fusión, el presente procedimiento de derivación de candidatos a fusión con base en historia se completa.
[0373] <Procedimiento de predicción con compensación de movimiento>
[0375] La unidad de predicción compensada por movimiento 306 adquiere una posición y un tamaño de un bloque que es una diana actual de un procedimiento de predicción en codificación. Además, la unidad de predicción compensada por movimiento 306 adquiere información de inter predicción de la unidad de determinación del modo de inter predicción 305. Un índice de referencia y un vector de movimiento se derivan de la información de inter predicción adquirida y se genera una señal de predicción después de que se adquiere una señal de imagen de una posición a la que se desplaza una imagen de referencia identificada por el índice de referencia dentro de la memoria de imagen descodificada 104 desde una posición idéntica a la de una señal de imagen de un bloque de predicción por una cantidad de vector de movimiento.
[0377] Se suministra una señal de predicción con compensación de movimiento a una unidad de determinación del procedimiento de predicción 105 utilizando una señal de predicción adquirida a partir de una imagen de referencia
como señal de predicción con compensación de movimiento cuando el modo de inter predicción en la inter predicción es la predicción a partir de una única imagen de referencia, como la predicción LO o la predicción L1, y mediante el uso de una señal de predicción obtenida mediante el promedio ponderado de las señales de predicción adquiridas a partir de dos imágenes de referencia como señal de predicción con compensación de movimiento cuando el modo de predicción es la predicción a partir de dos imágenes de referencia, como el modo de inter predicción de la predicción BI. Aunque un radio promedio ponderado de bipredicción es 1:1 aquí, un promedio ponderado puede ser realizado mediante el uso de otro radio. Por ejemplo, una relación de ponderación puede aumentar a medida que disminuye el intervalo de imágenes entre una imagen, que es una diana de predicción, y una imagen de referencia. Asimismo, la relación de ponderación puede calcularse utilizando una tabla correspondiente entre combinaciones de intervalos de imágenes y relaciones de ponderación.
[0379] La unidad de predicción compensada de movimiento 406 tiene una función similar a la de la unidad de predicción compensada de movimiento 306 de la parte de codificación. La unidad de predicción compensada de movimiento 406 adquiere información de inter predicción de la unidad de derivación de modo de predictor de vector de movimiento normal 401, la unidad de derivación de modo de fusión normal 402, la unidad de derivación de modo de predictor de vector de movimiento con base en subbloques 403 y la unidad de derivación de modo de fusión con base en subbloques 404 a través del conmutador 408. La unidad de predicción compensado por movimiento 406 suministra una señal de predicción compensado por movimiento obtenida a la unidad de superposición de señal de imagen descodificada 207.
[0381] <Acerca del modo de inter predicción>
[0383] Un procedimiento de predicción a partir de una única imagen de referencia se define como uni-predicción. En el caso de la uni-predicción, la predicción se realiza utilizando una de las dos imágenes de referencia registradas en las listas de referencia L0 y L1, como la predicción LO o la predicción L1.
[0385] La FIG. 32 muestra el caso de uni-predicción en el que un tiempo de reloj de una imagen de referencia (RefL0Pic) de L0 es anterior al de una imagen diana (CurPic). La FIGURA 33 muestra el caso de uni-predicción en el que un tiempo de reloj de una imagen de referencia de la L0-predicción es posterior al de una imagen diana. Asimismo, la imagen de referencia de la predicción L0 de las FIGS. 32 y 33 pueden sustituirse por una imagen de referencia (RefL1Pic) de L1-predicción para realizar uni-predicción.
[0387] El procedimiento de realizar una predicción a partir de dos imágenes de referencia se define como bi-predicción y la bi-predicción se representa como predicción BI utilizando tanto la predicción L0 como la predicción L1. La FIGURA 34 muestra el caso de la bi-predicción en el que una hora de reloj de una imagen de referencia de la predicción LO es anterior a la de una imagen diana y una hora de reloj de una imagen de referencia de la predicción L1 es posterior a la de la imagen diana. La FIGURA 35 muestra el caso de bi-predicción en el que los tiempos de reloj de la imagen de referencia de LO-predicción y de la imagen de referencia de L1-predicción son anteriores a los de una imagen diana. La FIGURA 36 muestra el caso de bi-predicción en el que una hora de reloj de una imagen de referencia de LO-predicción y una hora de reloj de una imagen de referencia de L1-predicción son posteriores a la de una imagen diana.
[0388] Como se ha descrito anteriormente, se puede utilizar una relación entre un tipo de predicción de L0/L1 y el tiempo sin limitarse a L0 que está en la dirección pasada y L1 que está en la dirección futura. En el caso de la bi-predicción, cada una de las predicciones LO y L1 puede realizarse utilizando la misma imagen de referencia. Además, se determina si realizar la predicción con compensación de movimiento de acuerdo con la uni-predicción o la bi-predicción con base, por ejemplo, en información (por ejemplo, un indicador) que indique si utilizar la LO-predicción y si utilizar la L1-predicción.
[0390] <Índice de referencia>
[0392] En la realización de la presente invención, es posible seleccionar una imagen de referencia óptima a partir de una pluralidad de imágenes de referencia en la predicción compensada por movimiento para mejorar la precisión de la predicción compensada por movimiento. Así, la imagen de referencia utilizada en la predicción con compensación de movimiento se utiliza como índice de referencia y el índice de referencia se codifica en el flujo de bits junto con la diferencia del vector de movimiento.
[0394] <Procedimiento de compensación de movimiento con base en el modo normal de predicción del vector de movimiento>
[0396] Como se muestra en la unidad de inter predicción 102 del lado de codificación de la FIG. 16, cuando la información de inter predicción de la unidad de derivación de modo de predicción de vector de movimiento normal 301 se ha seleccionado en la unidad de determinación de modo de inter predicción 305, la unidad de predicción compensada de movimiento 306 adquiere la información de inter predicción de la unidad de determinación de modo de inter predicción 305, deriva un modo de inter predicción, un índice de referencia y un vector de movimiento de un bloque diana actual, y genera una señal de predicción compensada de movimiento. La señal de predicción compensado por movimiento generada se suministra a la unidad 105 de determinación del procedimiento de predicción.
[0397] Igualmente, como se muestra en la unidad de inter predicción 203 del lado de descodificación de la FIG. 22, cuando el conmutador 408 ha sido conectado a la unidad de derivación de modo de predicción de vector de movimiento normal 401 en el procedimiento de descodificación, la unidad de predicción compensada de movimiento 406 adquiere información de inter predicción de la unidad de derivación de modo de predicción de vector de movimiento normal 401, deriva un modo de inter predicción, un índice de referencia y un vector de movimiento de un bloque diana actual, y genera una señal de predicción compensada de movimiento. La señal de predicción con compensación de movimiento generada se suministra a la unidad de superposición de señales de imagen descodificadora 207.
[0399] <Procedimiento de compensación de movimiento con base en el modo de fusión normal>
[0401] También, como se muestra en la unidad de inter predicción 102 en el lado de codificación de la FIG. 16, cuando se ha seleccionado información de inter predicción de la unidad de derivación de modo de fusión normal 302 en la unidad de determinación de modo de inter predicción 305, la unidad de predicción compensada por movimiento 306 adquiere la información de inter predicción de la unidad de determinación de modo de inter predicción 305, deriva un modo de inter predicción, un índice de referencia y un vector de movimiento de un bloque diana actual, y genera una señal de predicción compensada por movimiento. La señal de predicción compensado por movimiento generada se suministra a la unidad 105 de determinación del procedimiento de predicción.
[0403] Igualmente, como se muestra en la unidad de inter predicción 203 en el lado de descodificación de la FIG. 22, cuando el conmutador 408 se ha conectado a la unidad de derivación de modo de fusión normal 402 en el procedimiento de descodificación, la unidad de predicción compensada de movimiento 406 adquiere información de inter predicción de la unidad de derivación de modo de fusión normal 402, deriva un modo de inter predicción, un índice de referencia y un vector de movimiento de un bloque diana actual, y genera una señal de predicción compensada de movimiento. La señal de predicción con compensación de movimiento generada se suministra a la unidad de superposición de señales de imagen descodificadora 207.
[0405] <Procedimiento de compensación de movimiento con base en el modo de predictor de vector de movimiento con base en subbloques>
[0407] También, como se muestra en la unidad de inter predicción 102 en el lado de codificación de la FIG. 16, cuando la información de inter predicción de la unidad de derivación de modo de predicción de vector de movimiento con base en subbloque 303 se ha seleccionado en la unidad de determinación de modo de inter predicción 305, la unidad de predicción compensada de movimiento 306 adquiere la información de inter predicción de la unidad de determinación de modo de inter predicción 305, deriva un modo de inter predicción, un índice de referencia y un vector de movimiento de un bloque diana actual, y genera una señal de predicción compensada de movimiento. La señal de predicción compensado por movimiento generada se suministra a la unidad 105 de determinación del procedimiento de predicción.
[0409] Igualmente, como se muestra en la unidad de inter predicción 203 en el lado de descodificación de la FIG. 22, cuando el conmutador 408 se ha conectado a la unidad 403 de derivación del modo de predicción del vector de movimiento con base en subbloques en el procedimiento de descodificación, la unidad 406 de predicción compensada de movimiento adquiere información de inter predicción de la unidad 403 de derivación del modo de predicción del vector de movimiento con base en subbloques, deriva un modo de inter predicción, un índice de referencia y un vector de movimiento de un bloque diana actual, y genera una señal de predicción compensada de movimiento. La señal de predicción con compensación de movimiento generada se suministra a la unidad de superposición de señales de imagen descodificadora 207.
[0411] <Procedimiento de compensación de movimiento con base en el modo de fusión por subbloques>
[0412] También, como se muestra en la unidad de inter predicción 102 en el lado de codificación de la FIG. 16, cuando la información de inter predicción de la unidad 304 de derivación de modo de fusión con base en subbloques se ha seleccionado en la unidad 305 de determinación de modo de inter predicción, la unidad 306 de predicción compensada de movimiento adquiere la información de inter predicción de la unidad 305 de determinación de modo de inter predicción, deriva un modo de inter predicción, un índice de referencia y un vector de movimiento de un bloque diana actual, y genera una señal de predicción compensada de movimiento. La señal de predicción compensado por movimiento generada se suministra a la unidad 105 de determinación del procedimiento de predicción.
[0414] Igualmente, como se muestra en la unidad de inter predicción 203 en el lado de descodificación de la FIG. 22, cuando el conmutador 408 se ha conectado a la unidad de derivación de modo de fusión con base en subbloques 404 en el procedimiento de descodificación, la unidad de predicción compensada por movimiento 406 adquiere información de inter predicción de la unidad de derivación de modo de fusión con base en subbloques 404, deriva un modo de inter predicción, un índice de referencia y un vector de movimiento de un bloque diana actual, y genera una señal de predicción compensada por movimiento. La señal de predicción con compensación de movimiento generada se suministra a la unidad de superposición de señales de imagen descodificadora 207.
[0416] <Procedimiento de compensación del movimiento con base en la predicción por transformada afín>En el modo normal de predicción del vector de movimiento y en el modo normal de fusión, se puede utilizar la compensación de movimiento de un modelo afín sobre la base de los siguientes indicadores. Los siguientes indicadores se reflejan en los siguientes indicadores en función de las condiciones de inter predicción determinadas por la unidad de determinación del modo de inter predicción 305 en el procedimiento de codificación y se codifican en un flujo de bits. En el procedimiento de descodificación, se identifica si se debe realizar la compensación de movimiento del modelo afín en función de los siguientes indicadores del flujo de bits.
[0418] sps_afín_permitir_indicador representa si la compensación de movimiento del modelo afín puede utilizarse o no en la inter predicción. Si sps_affine_enabled_flag es 0, se realiza la supresión para que no sea compensación de movimiento de un modelo afín en unidades de secuencias. Además, inter_affine_flag y cu_affine_type_flag no se transmiten en la sintaxis CU (bloque de codificación) de una secuencia de vídeo de codificación. Si sps_affine_enabled_flag es 1, se puede utilizar la compensación de movimiento de un modelo afín en una secuencia de vídeo de codificación.
[0419] sps_afín_tipo_indicador representa si la compensación de movimiento de un modelo afín de seis parámetros puede utilizarse o no en la inter predicción. Si sps_affine_type_flag es 0, se realiza la supresión para que no sea una compensación de movimiento del modelo afín de seis parámetros. Además, cu_affine_type_flag no se transmite en la sintaxis CU de una secuencia de vídeo de codificación. Si sps_affine_type_flag es 1, se puede utilizar la compensación de movimiento del modelo afín de seis parámetros en la secuencia de vídeo de codificación. Cuando sps_affine_type_flag no existe, se asume que es 0.
[0421] Cuando se descodifica una porción P o B, si inter_afín_indicador es 1 en la CU diana actual, se utiliza la compensación de movimiento del modelo afín para generar una señal de predicción compensada de movimiento de la CU diana actual. Si inter_affine_flag es 0, el modelo afín no se utiliza en la CU diana actual. Cuando inter_affine_flag no existe, se asume que es 0.
[0423] Cuando se descodifica una porción P o B, si cu_afín_tipo_indicador es 1 en la CU diana actual, se utiliza la compensación de movimiento de un modelo afín de seis parámetros para generar una señal de predicción compensada por movimiento de la CU diana actual. Si cu_affine_type_flag es 0, se utiliza la compensación de movimiento de un modelo afín de cuatro parámetros para generar una señal de predicción con compensación de movimiento de la CU diana actual.
[0425] En la compensación de movimiento de un modelo afín, dado que un índice de referencia y un vector de movimiento se derivan en unidades de subbloques, se genera una señal de predicción compensada por movimiento utilizando un índice de referencia o un vector de movimiento que es una diana en unidades de subbloques.
[0427] Un modelo afín de cuatro parámetros es un modo en el que el vector de movimiento del subbloque se deriva de cuatro parámetros de componentes horizontales y componentes verticales de vectores de movimiento de los dos puntos de control y la compensación de movimiento se realiza en unidades de subbloques.
[0429] (Segunda realización)
[0431] A continuación, se describirá un dispositivo de codificación de imágenes y un dispositivo de descodificación de imágenes de acuerdo con una segunda realización. Aunque el dispositivo de codificación de imágenes y el dispositivo de descodificación de imágenes de acuerdo con la segunda realización tienen las mismas configuraciones que el dispositivo de codificación de imágenes y el dispositivo de descodificación de imágenes de acuerdo con la primera realización, estas son diferentes en un procedimiento de procesamiento de las unidades de derivación candidatas de fusión con base en el historial 345 y 445. El procedimiento de procesamiento de las unidades de derivación candidatas a la fusión con base en el historial 345 y 445 se muestra en el diagrama de flujo de la FIG. 39 en lugar del diagrama de flujo de la FIG. 30 y se describirán las diferencias entre ellos.
[0433] <Procedimiento de derivación de candidatos a la fusión con base en el historial de la segunda realización>
[0434] El procedimiento de derivación de candidatos a la fusión con base en el historial del dispositivo de codificación de imágenes y del dispositivo de descodificación de imágenes de acuerdo con la segunda realización se describirá con referencia al diagrama de flujo de la FIG. 39.
[0436] La segunda realización es diferente de la primera en que un candidato a fusión espacial A1 derivado de un bloque A1 adyacente al lado izquierdo de un bloque de codificación diana y un candidato a fusión espacial B1 derivado de un bloque B1 adyacente al lado superior del mismo se comparan sólo con un número de elementos especificado por un valor de desplazamiento hMvpIdxOffset desde un elemento de un extremo posterior de una lista de candidatos a predictor de vector de movimiento con base en el historial (el elemento añadido más recientemente). El diagrama de flujo de acuerdo con la segunda realización es diferente del diagrama de flujo de la FIG. 30 que muestra el procedimiento de derivación de candidatos a fusión con base en el historial del dispositivo de codificación de imágenes y el dispositivo de descodificación de imágenes de acuerdo con la primera realización en la que las etapas S2306, S2307 y S2309 de la FIG. 30 se cambian a las etapas S2326, S2327 y S2329 de la FIG. 39, respectivamente, y los diagramas de flujo tienen el mismo procedimiento en otras. En la segunda realización, primero se lleva a cabo el procedimiento de inicialización (etapa S2301 de la FIG. 39). Se establece un valor de FALSO en cada uno de los elementos desde el elemento 0ésimo hasta el (numCurrMergeCand-1)ésimo elemento de isPruned[i] y el número de
elementos numCurrMergeCand registrados en la lista actual de candidatos a la fusión se establece en una variable numOrigMergeCand.
[0438] Posteriormente, un valor inicial del índice hMvpIdx se establece en 1 y un procedimiento de adición desde la etapa S2303 a la etapa S2311 de la FIG. 39 se itera desde el valor inicial hasta NumHmvpCy (etapas S2302 a S2312 de FIG. 39). Cuando el número de elementos numCurrMergeCand registrados en una lista actual de candidatos a la fusión no es menor o igual que (número máximo de candidatos a la fusión MaxNumMergeCand-1), se han añadido candidatos a la fusión a todos los elementos de la lista de candidatos a la fusión y, por tanto, finaliza el presente procedimiento de derivación de candidatos a la fusión con base en el historial (etapa S2303 de la FIG. 39: NO). Cuando el número de elementos numCurrMergeCand registrados en la lista actual de candidatos a fusión es menor o igual que (número máximo de candidatos a fusión MaxNumMergeCand-1) (etapa S2303 de FIG. 39: SÍ), se realiza el procesamiento de la etapa S2304.
[0440] Primero, se establece un valor de FALSO en mismoMovimiento (etapa S2304 de FIG. 39). Posteriormente, cuando el índice hMvpIdx es menor o igual que el valor de desplazamiento predeterminado hMvpIdxOffset, es decir, cuando se comprueba si el elemento es o no un elemento que no está incluido en la lista de candidatos a la fusión (etapa S2305 de la FIG. 39: SÍ), el valor inicial del índice i se establece en 0 y el procesamiento de las etapas S2327 y S2308 de la FIG. 39 se realiza desde el valor inicial hasta un valor menor entre 1, que es un valor límite superior predeterminado, y numOrigMergeCand-1 (etapas S2326 a S2329 de FIG. 39). Aquí, en la segunda realización, un candidato de fusión espacial A1 derivado de un bloque A1 adyacente al lado izquierdo de un bloque de codificación diana y un candidato de fusión espacial B1 adyacente al lado superior del mismo se comparan sólo con un número de elementos especificados por un valor de desplazamiento hMvpIdxOffset desde un elemento de un extremo posterior de una lista de candidatos a predictor de vector de movimiento con base en el historial (el elemento añadido más recientemente). El valor límite superior predeterminado es 1 porque el candidato a fusión espacial A1 derivado del bloque A1 adyacente al lado izquierdo del bloque de codificación diana o el candidato a fusión espacial B1 adyacente al lado superior del mismo es probable que se almacene sólo en los elementos 0ésimo y 1° cuando se cuenta desde un elemento 0ésimo de la lista de candidatos a fusión. Un (NumHmvpCand-hMvpIdx)ésimo elemento HmvpCandList[NumHmvpCand-hMvpIdx] cuando se cuenta desde un 0ésimo elemento de la lista de candidatos a predictor de vector de movimiento con base en el historial se compara con los candidatos a fusión espacial A1 y B 1 (etapa S2327 de la FIG. 39). Se compara si los valores de todos los componentes que tienen los candidatos a la fusión (un modo de inter predicción, índices de referencia de L0 y L1, y vectores de movimiento de L0 y L1) son iguales o no. Aquí, los mismos valores entre los candidatos a la fusión indican que los valores de todos los componentes que tienen los candidatos a la fusión (un modo de inter predicción, índices de referencia de L0 y L1, y vectores de movimiento de L0 y L1) son los mismos. Por lo tanto, cuando un elemento i-ésim° fusionarCandList[i] cuando se cuenta desde un elemento 0'ési™ de la lista de candidatos a la fusión es el candidato a la fusión espacial A1 derivado del bloque A1 adyacente al lado izquierdo o el candidato a la fusión espacial B 1 adyacente al lado superior y isPruned[i] es FALSO en el procedimiento de comparación de la etapa S2327, se compara si los valores de todos los componentes que tienen fusionarCandList[i] y HmvpCandList[NumHmvpCand-hMvpIdx] (un modo de inter-predicción, índices de referencia de L0 y L1, y vectores de movimiento de L0 y L1) son o no los mismos. Cuando los valores son iguales (etapa S2327 de FIG. 39: SÍ), se establece VERDADERO tanto para sameMotion como para isPruned[i] (etapa S2308 de FIG. 39). Además, la indicador isPruned[i] es un indicador que indica que un elemento i-ési™ cuando se cuenta desde un elemento 0'ési™ de la lista de candidatos a la fusión tiene el mismo valor que cualquier elemento de la lista de candidatos al predictor del vector de movimiento con base en el historial. Cuando los valores no son iguales (etapa S2327 de la FIG. 39: NO), se omite el procesamiento de la etapa S2308. Cuando el procedimiento iterativo de la etapa S2326 al etapa S2329 de la FIG.
[0441] 39, se compara si sameMotion es FALSO o no (etapa S2310 de FIG. 39). Cuando sameMotion es FALSO (etapa S2310 de FIG. 39: SÍ), un (NumHmvpCand-hMvpIdx)ési™ elemento HmvpCandList[NumHmvpCand-hMvpIdx] cuando se cuenta desde un elemento 0ési™ de la lista de candidatos a predictor de vector de movimiento con base en el historial se añade a un numCurrMergeCand^™ elemento mergeCandList[numCurrMergeCand] de la lista de candidatos a fusión y numCurrMergeCand se incrementa en 1 (etapa S2311 de FIG. 39). El índice hMvpIdx se incrementa en 1 (etapa S2302 de FIG. 39) y el procesamiento iterativo de las etapas S2302 a S2312 de la F<i>G. 39.
[0442] Cuando se completa la comprobación de todos los elementos de la lista de candidatos a predictor de vector de movimiento con base en el historial o se añaden los candidatos a fusión a todos los elementos de la lista de candidatos a fusión, se completa el procedimiento de derivación del presente candidato a fusión con base en el historial.
[0444] Aunque en la segunda realización se ha descrito un caso en el que los candidatos a fusión espacial A1 y B1 almacenados en la lista de candidatos a fusión se comparan con los elementos de la lista de candidatos a predictor de vector de movimiento con base en el historial, los candidatos a fusión espacial A1 y B1 pueden almacenarse en una memoria distinta de la lista de candidatos a fusión y los candidatos a fusión espacial A1 y B1 almacenados en la memoria distinta de la lista de candidatos a fusión pueden compararse con los elementos de la lista de candidatos a predictor de vector de movimiento con base en el historial.
[0446] (Tercera realización)
[0448] A continuación, se describirán un dispositivo de codificación de imágenes y un dispositivo de descodificación de imágenes de acuerdo con una tercera realización. Aunque el dispositivo de codificación de imágenes y el dispositivo de descodificación de imágenes de acuerdo con la tercera realización tienen las mismas configuraciones que el
dispositivo de codificación de imágenes y el dispositivo de descodificación de imágenes de acuerdo con la primera realización, éstas son diferentes en un procedimiento de procesamiento de comprobación de elementos idénticos en un procedimiento de procesamiento para la inicialización y actualización de una lista de candidatos a predictor de vector de movimiento con base en el historial proporcionada en una memoria de almacenamiento de información de codificación 111 de un lado de codificación y una memoria de almacenamiento de información de codificación 205 de un lado de descodificación. En lugar el diagrama de flujo de la FIG. 27, que es el procedimiento de procesamiento de comprobación de elemento idéntico en el procedimiento de procesamiento para la inicialización y actualización de una lista de candidatos a predictor de vector de movimiento con base en el historial de acuerdo con la primera realización, un procedimiento de procesamiento de comprobación de elemento idéntico en el procedimiento de procesamiento para la inicialización y actualización de la lista de candidatos a predictor de vector de movimiento con base en el historial de acuerdo con la tercera realización es como se muestra en un diagrama de flujo de la FIG. 40. Se describirán las diferencias mencionadas.
[0450] <Procedimiento de procesamiento de comprobación de elemento idéntico en procedimiento de procesamiento para inicialización y actualización de lista de candidatos a predictor de vector de movimiento con base en historia de acuerdo con tercera realización>
[0452] El procedimiento de procesamiento de comprobación de elementos idénticos en el procedimiento de procesamiento para la inicialización y actualización de la lista de candidatos a predictor de vector de movimiento con base en el historial en el dispositivo de codificación de imágenes y el dispositivo de descodificación de imágenes de acuerdo con la tercera realización se describirá con referencia al diagrama de flujo de la FIG. 40.
[0454] En un procedimiento de actualización de la lista de candidatos a predictor de vector de movimiento con base en historia, la tercera realización es diferente de la primera realización en que, cuando el número máximo de elementos se añaden a la lista de candidatos a predictor de vector de movimiento con base en historia HmvpCandList, i.e., cuando el número actual de candidatos a predictores de vectores de movimiento con base en el historial NumHmvpCandList alcanza el número máximo de candidatos a predictores de vectores de movimiento con base en el historial MaxNumHmvpCandList, se realiza una comparación sólo con elementos a partir de un1er elemento sin realizar una comparación con un elemento al principio incluido en la lista de candidatos a predictores de vectores de movimiento con base en el historial, es decir, un elemento0 (candidato a predictor de vector de movimiento con base en el historial) cuando se cuenta a partir del0° elemento. Los elementos incluidos en la lista de candidatos a predictor de vector de movimiento con base en el historial incluyen un modo de inter-predicción, un índice de referencia y un vector de movimiento. Dado que la comparación no se realiza con el elemento del principio incluido en la lista de candidatos a predictor de vector de movimiento con base en el historial, el número de comparaciones de elementos se limita al máximo (MaxNumHmvpCand-1) y se reduce la cantidad máxima de procesamiento asociado a la comparación de elementos. El diagrama de flujo de acuerdo con la tercera realización es diferente del diagrama de flujo de la FIG. 27 que muestra el procedimiento de procesamiento de comprobación de elementos idénticos en el procedimiento de procesamiento para la inicialización y actualización de la lista de candidatos a predictor de vector de movimiento con base en el historial de acuerdo con la primera realización en que las etapas S2122 y S2125 de la FIG. 27 se cambian a las etapas S2132 y S2135 de la FIG. 40, respectivamente, y los diagramas de flujo tienen el mismo procedimiento en otras.
[0456] Además, en la tercera realización, cuando el valor del número de candidatos a predictor de vector de movimiento con base en el historial NumHmvpCy es 0 (etapa S2121 de FIG. 40: NO), la lista de candidatos a predictor de vector de movimiento con base en el historial HmvpCandList está vacía y no hay ningún candidato idéntico, de modo que las etapas S2132 a S2135 de la FIG. 40 se omiten y finaliza el presente procedimiento de comprobación de elementos idénticos. Cuando el valor del número de candidatos a predictor del vector de movimiento con base en el historial NumHmvpCy es mayor que 0 (etapa S2121 de FIG. 40: SÍ), el procesamiento de la etapa S2123 se itera con respecto a los índices del predictor del vector de movimiento con base en el historial hMvpIdx desde 0 o 1 hasta NumHmvpCy-1 (etapas S2132 a S2135 de la FIG. 40). En primer lugar, cuando el número actual de candidatos a predictor de vector de movimiento con base en el historial NumHmvpCy es menor que el número máximo de candidatos a predictor de vector de movimiento con base en el historial MaxNumHmvpCy, hMvpIdx se establece en 0 porque se realiza una comparación con un elemento al principio incluido en la lista de candidatos a predictor de vector de movimiento con base en el historial, es decir, un elemento 0ésimo (candidato a predictor de vector de movimiento con base en el historial) cuando se cuenta desde el elemento 0ésimo. Por otro lado, cuando el número actual de candidatos a predictor de vector de movimiento con base en el historial NumHmvpCy alcanza el número máximo de candidatos a predictor de vector de movimiento con base en el historial MaxNumHmvpCy, hMvpIdx se establece en 1 porque no se realiza una comparación con un elemento al principio incluido en la lista de candidatos a predictor de vector de movimiento con base en el historial, es decir, un elemento 0ésimo (candidato a predictor de vector de movimiento con base en el historial) cuando se cuenta desde el elemento 0ésimo (etapa S2132 de la FIG. 40). Posteriormente, se compara si un elementohMvpIdxésimo HmvpCandList[hMvpIdx] contado a partir de un elemento 0ésimo de la lista de candidatos a predictor de vector de movimiento con base en el historial es idéntico o no al candidato a información de inter predicción hMvpCand de una diana de registro (etapa S2123 de la FIG. 40). Cuando son iguales (etapa S2123 de F<i>G. 40: SÍ), se establece un valor de VERDADERO en la indicador identicalCandExist indicando si existe o no un candidato idéntico y se establece un valor de hMvpIdx en un índice diana de eliminación removeldx y finaliza el procedimiento de comprobación de elemento idéntico presente. Cuando no son iguales (etapa S2123 de FIG. 40: NO), hMvpIdx se
incrementa en 1. Si el índice predictor del vector de movimiento con base en el historial hMvpIdx es menor o igual que NumHmvpCy-1, se realiza el procesamiento desde la etapa S2123 (etapas S2132 a S2135 de la FIG. 40).
[0458] (Cuarta Realización)
[0460] A continuación, se describirán un dispositivo de codificación de imágenes y un dispositivo de descodificación de imágenes de acuerdo con una cuarta realización. Aunque el dispositivo de codificación de imágenes y el dispositivo de descodificación de imágenes de acuerdo con la cuarta realización tienen las mismas configuraciones que el dispositivo de codificación de imágenes y el dispositivo de descodificación de imágenes de acuerdo con la cuarta realización, éstas son diferentes en un procedimiento de procesamiento de comprobación de elementos idénticos en un procedimiento de procesamiento para la inicialización y actualización de una lista de candidatos a predictor de vector de movimiento con base en el historial proporcionada en una memoria de almacenamiento de información de codificación 111 de un lado de codificación y una memoria de almacenamiento de información de codificación 205 de un lado de descodificación. En lugar del diagrama de flujo de la FIG. 27, que es el procedimiento de procesamiento de comprobación de elemento idéntico en el procedimiento de procesamiento para la inicialización y actualización de una lista de candidatos a predictor de vector de movimiento con base en el historial de acuerdo con la primera realización, un procedimiento de procesamiento de comprobación de elemento idéntico en el procedimiento de procesamiento para la inicialización y actualización de la lista de candidatos a predictor de vector de movimiento con base en el historial de acuerdo con la cuarta realización es como se muestra en un diagrama de flujo de la FIG. 41. Se describirán las diferencias mencionadas.
[0462] <Procedimiento de procesamiento de comprobación de elemento idéntico en procedimiento de procesamiento para inicialización y actualización de lista de candidatos a predictor de vector de movimiento con base en historia de acuerdo con cuarta realización>
[0464] El procedimiento de procesamiento de comprobación de elementos idénticos en el procedimiento de procesamiento para la inicialización y actualización de la lista de candidatos a predictor de vector de movimiento con base en el historial en el dispositivo de codificación de imágenes y el dispositivo de descodificación de imágenes de acuerdo con la cuarta realización se describirá con referencia al diagrama de flujo de la FIG. 41.
[0466] La cuarta realización es diferente de la primera realización y de la tercera realización en que se hace una comparación con elementos del último elemento de la lista de candidatos a predictor de vector de movimiento con base en el historial en orden descendente en el procedimiento de actualización de la lista de candidatos a predictor de vector de movimiento con base en el historial. Además, en un procedimiento de actualización de la lista de candidatos de predictor de vector de movimiento con base en el historial, la cuarta realización es diferente de la primera realización dado que, cuando el número máximo de elementos se añade a la lista de candidatos de predictor de vector de movimiento con base en el historial HmvpCandList, se lleva a cabo una comparación sólo con elementos de un 1° elemento sin realizar una comparación con elemento al principio incluido en la lista de candidatos de predictor de vector de movimiento con base en el historial, es decir, un 0ésimo elemento cuando se recuenta desde el 0ésimo elemento. Los elementos incluidos en la lista de candidatos a predictor de vector de movimiento con base en el historial incluyen un modo de inter-predicción, un índice de referencia y un vector de movimiento. Dado que la comparación no se realiza con el elemento del principio incluido en la lista de candidatos a predictor de vector de movimiento con base en el historial, el número de comparaciones de elementos se limita al máximo (MaxNumHmvpCand-1) y se reduce la cantidad máxima de procesamiento asociado a la comparación de elementos.
[0468] También, en la cuarta realización, cuando el valor del número de candidatos a predictor de vector de movimiento con base en el historial NumHmvpCy es 0 (etapa S2151 de FIG. 41: NO), la lista de candidatos a predictor de vector de movimiento con base en el historial HmvpCandList está vacía y no hay ningún candidato idéntico, de modo que las etapas S2152 a S2155 de la FIG. 41 se omiten y finaliza el presente procedimiento de comprobación de elementos idénticos. Cuando el valor del número de candidatos a predictor del vector de movimiento con base en el historial NumHmvpCy es mayor que 0 (etapa S2152 de FIG. 41: SÍ), el procesamiento de la etapa S2153 se itera con respecto a los índices i desde 1 hasta un valor menor entre el número máximo de candidatos a predictor de vector de movimiento con base en el historial MaxNumHmvpCy-1 y el número de candidatos a predictor de vector de movimiento con base en el historial NumHmvpCy (etapas S2152 a S2155 de la FIG. 41). En primer lugar, se realiza una comparación con respecto a si un elemento NumHmvpCand-iésimo HmvpCandList[NumHmvpCand-i] cuando se cuenta desde un elemento 0ésimo de la lista de candidatos a predictor de vector de movimiento con base en el historial es idéntico o no al candidato a información de inter predicción hMvpCand de una diana de registro (etapa S2153 de la FIG. 41). Cuando el elemento NumHmvpCand-iésimo HmvpCandList[NumHmvpCand-i] es idéntico al candidato de información de inter predicción hMvpCand (etapa S2153 de FIG. 41: SÍ), se establece un valor de VERDADERO en la indicador identicalCandExist indicando si hay o no un candidato idéntico y se establece un valor de NumHmvpCand-i en un índice de diana de eliminación removeIdx y finaliza el procedimiento de comprobación de elemento idéntico presente (etapa S2154 de la FIG. 41). Cuando el elemento NumHmvpCand-iésimo HmvpCandList[NumHmvpCand-i] no es idéntico al candidato de información de inter predicción hMvpCand (etapa S2153 de FIG. 41: NO), i se incrementa en 1. Cuando i es menor o igual a un valor menor entre el número máximo de candidatos a predictor de vector de movimiento con base en el historial MaxNumHmvpCy-1 y el número de candidatos a predictor de vector de movimiento con base en el historial NumHmvpCy, se realiza el procesamiento desde la etapa S2153 (etapas S2152 a S2155 de la FIG. 41). Cuando el índice i es 1, que es el valor inicial, el elemento NumHmvpCandjésimo HmvpCandList[NumHmvpCand-i] contado desde el elemento0 de la lista de candidatos a predictores de vectores de movimiento con base en el historial indica el último elemento registrado en la lista de candidatos a predictores de vectores de movimiento con base en el historial. Los elementos de la lista de candidatos a predictor del vector de movimiento con base en el historial se muestran en orden descendente a medida que el índice i se incrementa en 1. Al establecer el índice i al máximo (MaxNumHmvpCand-1), no se realiza una comparación con un elemento HMVPCandList[0] al principio del candidato a predictor del vector de movimiento con base en el historial.
[0470] Puede combinarse una pluralidad de las realizaciones descritas anteriormente.
[0472] En todas las realizaciones descritas anteriormente, un flujo de bits emitido por el dispositivo de codificación de imágenes tiene un formato de datos específico para que el flujo de bits pueda descodificarse de acuerdo con el procedimiento de codificación utilizado en la realización. Además, un dispositivo de descodificación de imágenes correspondiente al dispositivo de codificación de imágenes puede descodificar el flujo de bits del formato de datos específico.
[0474] Cuando se utiliza una red cableada o inalámbrica para intercambiar un flujo de bits entre el dispositivo de codificación de imágenes y el dispositivo de descodificación de imágenes, el flujo de bits puede convertirse en un formato de datos adecuado para una forma de transmisión de una ruta de comunicación y transmitirse. En este caso, se proporciona un dispositivo de transmisión para convertir la salida de flujo de bits del dispositivo de codificación de imágenes en datos codificados de un formato de datos adecuado para la forma de transmisión de la ruta de comunicación y transmitir los datos codificados a la red y un dispositivo de recepción para recibir los datos codificados de la red, restaurar los datos codificados al flujo de bits y suministrar el flujo de bits al dispositivo de descodificación de imágenes. El dispositivo de transmisión incluye una memoria que almacena el flujo de bits generado por el dispositivo de codificación de imágenes, una unidad de procesamiento de paquetes que empaqueta el flujo de bits y una unidad de transmisión que transmite los datos codificados empaquetados a través de la red. El dispositivo de recepción incluye una unidad de recepción que recibe los datos codificados empaquetados a través de la red, una memoria que almacena en memoria intermedia los datos codificados recibidos y una unidad de procesamiento de paquetes que genera un flujo de bits realizando el procesamiento de paquetes en los datos codificados y suministra el flujo de bits al dispositivo de descodificación de imágenes.
[0476] También, un dispositivo de exhibición puede ser proporcionado agregando una unidad de exhibición que exhiba un cuadro descifrado por el dispositivo de desciframiento del cuadro a la configuración. En este caso, la unidad de visualización lee una señal de imagen descodificada generada por la unidad de superposición de señal de imagen descodificada 207 y almacenada en la memoria de imagen descodificada 208 y muestra la señal de imagen descodificada en una pantalla.
[0478] Además, puede proporcionarse un dispositivo de formación de imágenes añadiendo a la configuración una unidad de formación de imágenes que introduce una imagen capturada en el dispositivo de codificación de imágenes. En este caso, la unidad de imagen introduce una señal de imagen capturada en la unidad de división de bloques 101.
[0480] La FIG. 37 muestra un ejemplo de configuración de hardware del dispositivo de codificación/descodificación de acuerdo con la presente realización. El dispositivo de codificación/descodificación incluye la configuración del dispositivo de codificación de imagen y del dispositivo de descodificación de imagen de acuerdo con la realización de la presente invención. Un dispositivo de codificación/descodificación relacionado 9000 incluye una CPU 9001, un códec IC 9002, una interfaz de E/S 9003, una memoria 9004, una unidad de disco óptico 9005, una interfaz de red 9006, y una interfaz de vídeo 9009 y las partes respectivas están conectadas por un bus 9010.
[0482] Una unidad de codificación de imagen 9007 y una unidad de descodificación de imagen 9008 son típicamente implementadas como el códec IC 9002. Un procedimiento de codificación de imagen del dispositivo de codificación de imagen de acuerdo con la realización de la presente invención es ejecutado por la unidad de codificación de imagen 9007 y un procedimiento de descodificación de imagen en el dispositivo de descodificación de imagen de acuerdo con la realización de la presente invención es realizado por la unidad de descodificación de imagen 9008. La interfaz de E/S 9003 se implementa mediante, por ejemplo, una interfaz USB, y se conecta a un teclado externo 9104, un ratón 9105, y similares. La CPU 9001 controla el dispositivo de codificación/descodificación 9000 para que se ejecute una operación deseada por el usuario en base a una entrada de operación del usuario a través de la interfaz de E/S 9003. Las operaciones del usuario utilizando el teclado 9104, el ratón 9105, y similares incluyen la selección de una función de codificación o descodificación a ejecutar, el ajuste de la calidad de codificación, la designación de un destino de entrada/salida de un flujo de bits, la designación de un destino de entrada/salida de una imagen, y similares.
[0484] Cuando el usuario desea una operación de reproducción de una imagen grabada en un medio de registro de disco 9100, la unidad de disco óptico 9005 lee un flujo de bits del medio de registro de disco 9100 que ha sido insertado y transmite el flujo de bits leído a la unidad de descodificación de imagen 9008 del códec IC 9002 a través del bus 9010. La unidad de descodificación de imágenes 9008 ejecuta un procedimiento de descodificación de imágenes en el flujo de bits de entrada en el dispositivo de descodificación de imágenes de acuerdo con la realización de la presente invención y transmite una imagen descodificada a un monitor externo 9103 a través de la interfaz de vídeo 9009. El dispositivo de codificación/descodificación 9000 incluye una interfaz de red 9006 y puede conectarse a un servidor de distribución externo 9106 y a un terminal portátil 9107 a través de una red 9101. Cuando el usuario desea reproducir
la imagen grabada en el servidor de distribución 9106 o en el terminal portátil 9107 en lugar de la imagen grabada en el medio de registro de disco 9100, la interfaz de red 9006 adquiere un flujo de bits de la red 9101 en lugar de leer el flujo de bits del medio de registro de disco de entrada 9100. Cuando el usuario desea reproducir la imagen grabada en la memoria 9004, el procedimiento de descodificación de imágenes en el dispositivo de descodificación de imágenes de acuerdo con la realización de la presente invención se ejecuta en el flujo de bits grabado en la memoria 9004.
[0486] Cuando el usuario desea realizar una operación de codificación de una imagen capturada por la cámara externa 9102 y grabar la imagen codificada en la memoria 9004, la interfaz de vídeo 9009 introduce la imagen desde la cámara 9102 y transmite la imagen a la unidad de codificación de imagen 9007 del códec IC 9002 a través del bus 9010. La unidad de codificación de imagen 9007 ejecuta un procedimiento de codificación de imagen en una entrada de imagen a través de la interfaz de vídeo 9009 en el dispositivo de codificación de imagen de acuerdo con la realización de la presente invención para crear un flujo de bits. A continuación, el flujo de bits se transmite a la memoria 9004 a través del bus 9010. Cuando el usuario desea grabar un flujo de bits en el soporte de registro de disco 9100 en lugar de en la memoria 9004, la unidad de disco óptico 9005 escribe el flujo de bits en el soporte de registro de disco 9100 que se ha insertado.
[0488] También es posible implementar una configuración de hardware que incluya un dispositivo de codificación de imágenes sin incluir un dispositivo de descodificación de imágenes o una configuración de hardware que incluya un dispositivo de descodificación de imágenes sin incluir un dispositivo de codificación de imágenes. Dicha configuración de hardware se implementa, por ejemplo, sustituyendo el códec IC 9002 por la unidad de codificación de imagen 9007 o la unidad de descodificación de imagen 9008.
[0490] Los procedimientos anteriores relacionados con la codificación y descodificación pueden ser implementados como un dispositivo de transmisión, almacenamiento y recepción utilizando hardware e implementado por firmware almacenado en una memoria de sólo lectura (ROM), una memoria flash, o similar o software de un ordenador o similar. Un programa de firmware y un programa de software del mismo pueden proporcionarse grabando los programas en un medio de registro capaz de ser leído por un ordenador o similar o pueden proporcionarse desde un servidor a través de una red cableada o inalámbrica o pueden proporcionarse como emisiones de datos de radiodifusión digital terrestre o por satélite.
[0492] La presente invención se ha descrito anteriormente sobre la base de las realizaciones. Las realizaciones son ejemplos y los expertos en la técnica entenderán que son posibles diversas modificaciones en combinaciones de los respectivos componentes y procesos de procesamiento. Siempre que tales modificaciones entren en el ámbito de aplicación de las reivindicaciones adjuntas, pertenecen a la invención.
[0494] EXPLICACIÓN DE LAS REFERENCIAS
[0496] 100 Dispositivo de codificación de imágenes
[0497] 101 Unidad dividida en bloques
[0498] 102 Unidad de inter predicción
[0499] 103 Unidad de intra predicción
[0500] 104 Memoria de imágenes descodificadas
[0501] 105 Unidad de determinación del procedimiento de predicción
[0502] 106 Unidad de generación residual
[0503] 107 Unidad de transformación/cuantificación ortogonal
[0504] 108 Unidad de codificación de cadenas de bits
[0505] 109 Unidad de cuantificación inversa/transformada ortogonal inversa
[0506] 110 Unidad de superposición de la señal de imagen de descodificación
[0507] 111 Memoria de almacenamiento de información de codificación
[0508] 200 Dispositivo de descodificación de imágenes
[0509] 201 Unidad de descodificación de cadenas de bits
[0510] 202 Unidad dividida en bloques
[0511] 203 Unidad de inter predicción
[0512] 204 Unidad de intra predicción
[0513] 205 Memoria de almacenamiento de información de codificación
[0514] 206 Unidad de cuantificación inversa/transformada ortogonal inversa
[0515] 207 Unidad de superposición de la señal de imagen de descodificación
[0516] 208 Memoria de imágenes descodificadas
Claims (7)
1. REIVINDICACIONES
1. Un dispositivo de codificación de imágenes para codificar una imagen en movimiento utilizando inter predicción con base en información de inter predicción en unidades de bloques, comprendiendo el dispositivo de codificación de imágenes:
una unidad de almacenamiento de información de codificación (111) configurada para almacenar información de inter predicción utilizada en la inter predicción de un bloque codificado en una lista de candidatos a predictor de vector de movimiento con base en el historial;
una unidad de derivación de candidato a fusión espacial (341) configurada para derivar un candidato a fusión espacial a partir de la información de inter predicción de un bloque espacialmente vecino a un bloque diana de codificación y para añadir el candidato a fusión espacial a una lista de candidatos a fusión;
una unidad de derivación de candidatos a la fusión temporal (342) configurada para derivar un candidato a la fusión temporal a partir de la información de inter predicción de un bloque situado en la misma posición que el bloque diana de codificación o cerca de él en una imagen de un tiempo diferente, y para añadir el candidato a la fusión temporal a la lista de candidatos a la fusión; y
una unidad de derivación de candidatos a la fusión con base en el historial (345) configurada para derivar un candidato a la fusión con base en el historial a partir de la información de inter predicción almacenada en la lista de candidatos a la predicción de vectores de movimiento con base en el historial y para añadir el candidato a la fusión con base en el historial a la lista de candidatos a la fusión,
en el que la unidad de derivación de candidatos de fusión basados en el historial (345) compara un número predeterminado de elementos de información de interpredicción del elemento añadido más recientemente a la lista de candidatos de predictor de vector de movimiento basado en el historial con un candidato de fusión espacial derivado de un bloque vecino en el lado izquierdo y un candidato de fusión espacial derivado de un bloque vecino en el lado superior, y añade un elemento de información de interpredicción de la lista de candidatos de predictor de vector de movimiento basado en el historial a la lista de candidatos de fusión como candidato de fusión basado en el historial cuando un valor del elemento de información de interpredicción de la lista de candidatos de predictor de vector de movimiento basado en el historial es diferente de un valor de información de interpredicción de los candidatos de fusión espacial, siendo dicho número predeterminado menor que el número de elementos almacenados en la lista de candidatos de predictor de vector de movimiento basado en el historial,
caracterizado porque
a continuación, la etapa de derivación de candidatos a la fusión con base en el historial (345) añade los elementos de información de inter predicción almacenados antes del número predeterminado de elementos de información de inter predicción a la lista de candidatos a la fusión como candidatos a la fusión con base en el historial sin realizar una comparación con los candidatos a la fusión de la lista.
2. Un procedimiento de codificación de imágenes para codificar una imagen en movimiento mediante el uso de predicción entre bloques basada en información de predicción entre bloques en unidades de bloques, formando así un flujo de bits, comprendiendo el procedimiento de codificación de imágenes:
una etapa de almacenamiento de información de codificación (111) que consiste en almacenar la información de inter predicción utilizada en la inter predicción de un bloque codificado en una lista de candidatos a predictor de vector de movimiento con base en el historial;
una etapa de derivación de candidato a fusión espacial (341) que consiste en derivar un candidato a fusión espacial a partir de la información de inter predicción de un bloque espacialmente vecino a un bloque diana de codificación y añadir el candidato a fusión espacial a una lista de candidatos a fusión;
una etapa de derivación de candidato a fusión temporal (342) que consiste en derivar un candidato a fusión temporal a partir de la información de inter predicción de un bloque situado en la misma posición que el bloque diana de codificación o cerca de él en una imagen de un momento diferente, y añadir el candidato a fusión temporal a la lista de candidatos a fusión; y
una etapa (345) de derivación de un candidato a la fusión con base en el historial, consistente en derivar un candidato a la fusión con base en el historial a partir de la información de inter predicción almacenada en la lista de candidatos al predictor de vectores de movimiento con base en el historial, y añadir el candidato a la fusión con base en el historial a la lista de candidatos a la fusión,
en el que la etapa de derivación de candidatos de fusión basada en el historial (345) incluye comparar un número predeterminado de elementos de información de interpredicción del elemento añadido más recientemente a la lista de candidatos de predictor de vector de movimiento basada en el historial con un candidato de fusión espacial derivado de un bloque vecino en el lado izquierdo y un candidato de fusión espacial derivado de un bloque vecino en el lado superior, y añadir un elemento de información de interpredicción de la lista de candidatos de predictor de vector de movimiento basada en el historial a la lista de candidatos de fusión como candidato de fusión basada en el historial cuando un valor del elemento de información de interpredicción de la lista de candidatos de predictor de vector de movimiento basada en el historial es diferente de un valor de la información de interpredicción de los candidatos de fusión espacial, siendo dicho número predeterminado menor que el número de elementos almacenados en la lista de candidatos de predictor de vector de movimiento basada en el historial,caracterizado porque
a continuación, la etapa de derivación de candidatos a la fusión con base en el historial (345) añade los elementos de información de inter predicción almacenados antes del número predeterminado de elementos de información de inter predicción a la lista de candidatos a la fusión como candidatos a la fusión con base en el historial sin realizar una comparación con los candidatos a la fusión de la lista.
3. Un dispositivo de descodificación de imágenes para descodificar cadenas de bits codificadas en las que una imagen en movimiento se codifica utilizando la inter predicción en unidades de bloques, comprendiendo el dispositivo de descodificación de imágenes:
una unidad de almacenamiento de información de codificación (205) configurada para almacenar información de inter predicción utilizada en la inter predicción de un bloque descodificado en una lista de candidatos a predictor de vector de movimiento con base en el historial;
una unidad de derivación de candidato a fusión espacial (441) configurada para derivar un candidato a fusión espacial a partir de la información de inter predicción de un bloque espacialmente vecino a un bloque diana de descodificación y para añadir el candidato a fusión espacial a una lista de candidatos a fusión;
una unidad de derivación de candidatos a la fusión temporal (442) configurada para derivar un candidato a la fusión temporal a partir de la información de inter predicción de un bloque situado en la misma posición que el bloque diana de descodificación o cerca de él en una imagen de un tiempo diferente, y para añadir el candidato a la fusión temporal a la lista de candidatos a la fusión; y
una unidad de derivación de candidatos a la fusión con base en el historial (445) configurada para derivar un candidato a la fusión con base en el historial a partir de la información de inter predicción almacenada en la lista de candidatos a la predicción de vectores de movimiento con base en el historial y para añadir el candidato a la fusión con base en el historial a la lista de candidatos a la fusión,
en el que la unidad de derivación de candidatos de fusión basados en el historial (345) compara un número predeterminado de elementos de información de interpredicción del elemento añadido más recientemente a la lista de candidatos de predictor de vector de movimiento basado en el historial con un candidato de fusión espacial derivado de un bloque vecino en el lado izquierdo y un candidato de fusión espacial derivado de un bloque vecino en el lado superior, y añade un elemento de información de interpredicción de la lista de candidatos de predictor de vector de movimiento basado en el historial a la lista de candidatos de fusión como candidato de fusión basado en el historial cuando un valor del elemento de información de interpredicción de la lista de candidatos de predictor de vector de movimiento basado en el historial es diferente de un valor de información de interpredicción de los candidatos de fusión espacial, siendo dicho número predeterminado menor que el número de elementos almacenados en la lista de candidatos de predictor de vector de movimiento basado en el historial,
caracterizado porque
a continuación, la etapa de derivación de candidatos a la fusión con base en el historial (445) añade los elementos de información de inter predicción almacenados antes del número predeterminado de elementos de información de inter predicción a la lista de candidatos a la fusión como candidatos a la fusión con base en el historial sin realizar una comparación con los candidatos a la fusión de la lista.
4. Un procedimiento de descodificación de imágenes para descodificar cadenas de bits codificadas en las que una imagen en movimiento se codifica utilizando la inter predicción en unidades de bloques, comprendiendo el procedimiento de descodificación de imágenes:
una etapa de almacenamiento de información de codificación (205) que consiste en almacenar la información de inter predicción utilizada en la inter predicción de un bloque descodificado en una lista de candidatos a predictor de vector de movimiento con base en el historial;
una etapa de derivación de candidato a fusión espacial (441) que consiste en derivar un candidato a fusión espacial a partir de la información de inter predicción de un bloque espacialmente vecino a un bloque diana de descodificación y añadir el candidato a fusión espacial a una lista de candidatos a fusión;
una etapa (442) de derivación de un candidato a la fusión temporal, consistente en derivar un candidato a la fusión temporal a partir de la información de inter predicción de un bloque situado en la misma posición o cerca del bloque diana de descodificación en una imagen de un momento diferente, y añadir el candidato a la fusión temporal a la lista de candidatos a la fusión; y
una etapa (445) de derivación de un candidato a la fusión con base en el historial, consistente en derivar un candidato a la fusión con base en el historial a partir de la información de inter predicción almacenada en la lista de candidatos al predictor de vectores de movimiento con base en el historial, y añadir el candidato a la fusión con base en el historial a la lista de candidatos a la fusión,
en el que la etapa de derivación de candidatos de fusión basada en el historial (345) incluye comparar un número predeterminado de elementos de información de interpredicción del elemento añadido más recientemente a la lista de candidatos de predictor de vector de movimiento basada en el historial con un candidato de fusión espacial derivado de un bloque vecino en el lado izquierdo y un candidato de fusión espacial derivado de un bloque vecino en el lado superior, y añadir un elemento de información de interpredicción de la lista de candidatos de predictor de vector de movimiento basada en el historial a la lista de candidatos de fusión como candidato de fusión basada en el historial cuando un valor del elemento de información de interpredicción de la lista de candidatos de predictor de vector de movimiento basada en el historial es diferente de un valor de la información de interpredicción de los candidatos de fusión espacial, siendo dicho número predeterminado
menor que el número de elementos almacenados en la lista de candidatos de predictor de vector de movimiento basada en el historial,
caracterizado porque
la etapa de derivación de candidatos a la fusión con base en el historial (445) añade a continuación los elementos de información de inter predicción almacenados antes del número predeterminado de elementos de información de inter predicción a la lista de candidatos a la fusión como candidatos a la fusión con base en el historial sin realizar una comparación con los candidatos a la fusión de la lista.
5. Un medio de grabación que almacena un flujo de bits formado por el procedimiento de codificación de imágenes de acuerdo con la reivindicación 2.
6. Un procedimiento de almacenamiento que comprende:
una etapa de almacenamiento de información de codificación (111) que consiste en almacenar la información de inter predicción utilizada en la inter predicción de un bloque codificado en una lista de candidatos a predictor de vector de movimiento con base en el historial;
una etapa de derivación de candidato a fusión espacial (341) que consiste en derivar un candidato a fusión espacial a partir de la información de inter predicción de un bloque espacialmente vecino a un bloque diana de codificación y añadir el candidato a fusión espacial a una lista de candidatos a fusión;
una etapa de derivación de candidato a fusión temporal (342) que consiste en derivar un candidato a fusión temporal a partir de la información de inter predicción de un bloque situado en la misma posición que el bloque diana de codificación o cerca de él en una imagen de un momento diferente, y añadir el candidato a fusión temporal a la lista de candidatos a fusión; y
una etapa (345) de derivación de un candidato a la fusión con base en el historial, consistente en derivar un candidato a la fusión con base en el historial a partir de la información de inter predicción almacenada en la lista de candidatos al predictor de vectores de movimiento con base en el historial, y añadir el candidato a la fusión con base en el historial a la lista de candidatos a la fusión,
una etapa de codificación de la información para formar un flujo de bits; y
una etapa de almacenamiento del flujo de bits en un soporte de grabación,
en el que la etapa de derivación de candidatos de fusión basada en el historial (345) incluye comparar un número predeterminado de elementos de información de interpredicción del elemento añadido más recientemente a la lista de candidatos de predictor de vector de movimiento basada en el historial con un candidato de fusión espacial derivado de un bloque vecino en el lado izquierdo y un candidato de fusión espacial derivado de un bloque vecino en el lado superior, y añadir un elemento de información de interpredicción de la lista de candidatos de predictor de vector de movimiento basada en el historial a la lista de candidatos de fusión como candidato de fusión basada en el historial cuando un valor del elemento de información de interpredicción de la lista de candidatos de predictor de vector de movimiento basada en el historial es diferente de un valor de la información de interpredicción de los candidatos de fusión espacial, siendo dicho número predeterminado menor que el número de elementos almacenados en la lista de candidatos de predictor de vector de movimiento basada en el historial,
caracterizado porque
a continuación, la etapa de derivación de candidatos a la fusión con base en el historial (345) añade los elementos de información de inter predicción almacenados antes del número predeterminado de elementos de información de inter predicción a la lista de candidatos a la fusión como candidatos a la fusión con base en el historial sin realizar una comparación con los candidatos a la fusión de la lista.
7. Un procedimiento de transmisión que comprende:
una etapa de almacenamiento de información de codificación (111) que consiste en almacenar la información de inter predicción utilizada en la inter predicción de un bloque codificado en una lista de candidatos a predictor de vector de movimiento con base en el historial;
una etapa de derivación de candidato a fusión espacial (341) que consiste en derivar un candidato a fusión espacial a partir de la información de inter predicción de un bloque espacialmente vecino a un bloque diana de codificación y añadir el candidato a fusión espacial a una lista de candidatos a fusión;
una etapa de derivación de candidato a fusión temporal (342) que consiste en derivar un candidato a fusión temporal a partir de la información de inter predicción de un bloque situado en la misma posición que el bloque diana de codificación o cerca de él en una imagen de un momento diferente, y añadir el candidato a fusión temporal a la lista de candidatos a fusión; y
una etapa (345) de derivación de un candidato a la fusión con base en el historial, consistente en derivar un candidato a la fusión con base en el historial a partir de la información de inter predicción almacenada en la lista de candidatos al predictor de vectores de movimiento con base en el historial, y añadir el candidato a la fusión con base en el historial a la lista de candidatos a la fusión,
una etapa de codificación de la información para formar un flujo de bits; y
una etapa de transmisión del flujo de bits,
en el que la etapa de derivación de candidatos de fusión basada en el historial (345) incluye comparar un número predeterminado de elementos de información de interpredicción del elemento añadido más recientemente a la lista de candidatos de predictor de vector de movimiento basada en el historial con un
candidato de fusión espacial derivado de un bloque vecino en el lado izquierdo y un candidato de fusión espacial derivado de un bloque vecino en el lado superior, y añadir un elemento de información de interpredicción de la lista de candidatos de predictor de vector de movimiento basada en el historial a la lista de candidatos de fusión como candidato de fusión basada en el historial cuando un valor del elemento de información de interpredicción de la lista de candidatos de predictor de vector de movimiento basada en el historial es diferente de un valor de la información de interpredicción de los candidatos de fusión espacial, siendo dicho número predeterminado menor que el número de elementos almacenados en la lista de candidatos de predictor de vector de movimiento basada en el historial,
caracterizado porque
a continuación, la etapa de derivación de candidatos a la fusión con base en el historial (345) añade los elementos de información de inter predicción almacenados antes del número predeterminado de elementos de información de inter predicción a la lista de candidatos a la fusión como candidatos a la fusión con base en el historial sin realizar una comparación con los candidatos a la fusión de la lista.
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2018247899 | 2018-12-28 | ||
| JP2019042585 | 2019-03-08 | ||
| JP2019171787 | 2019-09-20 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES3047582T3 true ES3047582T3 (en) | 2025-12-04 |
Family
ID=71127638
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES19903738T Active ES2971293T3 (es) | 2018-12-28 | 2019-12-19 | Dispositivo de codificación de imágenes, procedimiento de codificación de imágenes, programa de codificación de imágenes, dispositivo de descodificación de imágenes, procedimiento de descodificación de imágenes y programa de descodificación de imágenes |
| ES23196333T Active ES3047582T3 (en) | 2018-12-28 | 2019-12-19 | Video coding and decoding considering hmvp candidates for a merge mode motion vector candidate list |
Family Applications Before (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES19903738T Active ES2971293T3 (es) | 2018-12-28 | 2019-12-19 | Dispositivo de codificación de imágenes, procedimiento de codificación de imágenes, programa de codificación de imágenes, dispositivo de descodificación de imágenes, procedimiento de descodificación de imágenes y programa de descodificación de imágenes |
Country Status (9)
| Country | Link |
|---|---|
| US (5) | US11431986B2 (es) |
| EP (3) | EP3905687B1 (es) |
| JP (5) | JP6864841B2 (es) |
| KR (2) | KR102601014B1 (es) |
| CN (1) | CN113491126B (es) |
| BR (1) | BR112021012484A8 (es) |
| ES (2) | ES2971293T3 (es) |
| MX (2) | MX2021007758A (es) |
| WO (1) | WO2020137787A1 (es) |
Families Citing this family (19)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP3794824A1 (en) | 2018-06-29 | 2021-03-24 | Beijing Bytedance Network Technology Co. Ltd. | Conditions for updating luts |
| WO2020003261A1 (en) | 2018-06-29 | 2020-01-02 | Beijing Bytedance Network Technology Co., Ltd. | Selection from multiple luts |
| WO2020003279A1 (en) | 2018-06-29 | 2020-01-02 | Beijing Bytedance Network Technology Co., Ltd. | Concept of using one or multiple look up tables to store motion information of previously coded in order and use them to code following blocks |
| KR20240007298A (ko) | 2018-06-29 | 2024-01-16 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | Lut에서의 모션 후보들의 검사 순서 |
| KR20240007299A (ko) | 2018-06-29 | 2024-01-16 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | 룩업 테이블의 업데이트: fifo, 제약된 fifo |
| WO2020003270A1 (en) | 2018-06-29 | 2020-01-02 | Beijing Bytedance Network Technology Co., Ltd. | Number of motion candidates in a look up table to be checked according to mode |
| CN114125450B (zh) | 2018-06-29 | 2023-11-17 | 北京字节跳动网络技术有限公司 | 一种用于处理视频数据的方法、装置和计算机可读介质 |
| MX392418B (es) | 2018-06-29 | 2025-03-24 | Beijing Bytedance Network Tech Co Ltd | Poda parcial/total cuando se añade un candidato a hmvp para fusión/amvp. |
| WO2020008351A1 (en) | 2018-07-02 | 2020-01-09 | Beijing Bytedance Network Technology Co., Ltd. | Luts with lic |
| US11336914B2 (en) * | 2018-08-16 | 2022-05-17 | Qualcomm Incorporated | History-based candidate list with classification |
| GB2590310B (en) | 2018-09-12 | 2023-03-22 | Beijing Bytedance Network Tech Co Ltd | Conditions for starting checking HMVP candidates depend on total number minus K |
| ES2971293T3 (es) * | 2018-12-28 | 2024-06-04 | Godo Kaisha Ip Bridge 1 | Dispositivo de codificación de imágenes, procedimiento de codificación de imágenes, programa de codificación de imágenes, dispositivo de descodificación de imágenes, procedimiento de descodificación de imágenes y programa de descodificación de imágenes |
| CN112042191B (zh) * | 2019-01-01 | 2024-03-19 | Lg电子株式会社 | 以基于历史的运动矢量为基础预测处理视频信号的方法和设备 |
| WO2020143741A1 (en) | 2019-01-10 | 2020-07-16 | Beijing Bytedance Network Technology Co., Ltd. | Invoke of lut updating |
| CN113383554B (zh) | 2019-01-13 | 2022-12-16 | 北京字节跳动网络技术有限公司 | LUT和共享Merge列表之间的交互 |
| CN113302937B (zh) | 2019-01-16 | 2024-08-02 | 北京字节跳动网络技术有限公司 | 运动候选推导 |
| AU2020232109C1 (en) * | 2019-03-04 | 2023-10-19 | Nokia Technologies Oy | Intra block coding-based video or image coding |
| CN113615193B (zh) | 2019-03-22 | 2024-06-25 | 北京字节跳动网络技术有限公司 | Merge列表构建和其他工具之间的交互 |
| CN114079788B (zh) * | 2020-08-20 | 2024-09-20 | 腾讯科技(深圳)有限公司 | 视频编解码中的运动信息列表构建方法、装置及设备 |
Family Cites Families (21)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3277111B2 (ja) | 1995-10-18 | 2002-04-22 | シャープ株式会社 | 動画像符号化装置および動画像復号化装置 |
| JP4003128B2 (ja) * | 2002-12-24 | 2007-11-07 | ソニー株式会社 | 画像データ処理装置および方法、記録媒体、並びにプログラム |
| JP4759503B2 (ja) * | 2006-12-20 | 2011-08-31 | キヤノン株式会社 | 画像処理装置、画像処理装置の制御方法、プログラム |
| WO2011095259A1 (en) | 2010-02-05 | 2011-08-11 | Telefonaktiebolaget L M Ericsson (Publ) | Selecting predicted motion vector candidates |
| KR101900986B1 (ko) | 2011-06-30 | 2018-09-20 | 선 페이턴트 트러스트 | 화상 복호 방법, 화상 부호화 방법, 화상 복호 장치, 화상 부호화 장치, 및, 화상 부호화 복호 장치 |
| JP2013090033A (ja) | 2011-10-14 | 2013-05-13 | Jvc Kenwood Corp | 動画像復号装置、動画像復号方法及び動画像復号プログラム |
| WO2013065301A1 (ja) | 2011-10-31 | 2013-05-10 | 株式会社Jvcケンウッド | 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、送信装置、送信方法及び送信プログラム、並びに動画像復号装置、動画像復号方法、動画像復号プログラム、受信装置、受信方法及び受信プログラム |
| JP5942782B2 (ja) * | 2011-10-31 | 2016-06-29 | 株式会社Jvcケンウッド | 動画像復号装置、動画像復号方法、動画像復号プログラム、受信装置、受信方法及び受信プログラム |
| CN107396101B (zh) | 2012-02-03 | 2019-12-20 | 太阳专利托管公司 | 图像编码方法及图像编码装置 |
| KR20130116216A (ko) | 2012-04-15 | 2013-10-23 | 삼성전자주식회사 | 인터 예측의 참조영상을 결정하는 방법과 그 장치 |
| KR102480350B1 (ko) * | 2016-10-14 | 2022-12-23 | 세종대학교산학협력단 | 영상 부호화 방법/장치, 영상 복호화 방법/장치 및 비트스트림을 저장한 기록 매체 |
| JP6673282B2 (ja) * | 2017-04-13 | 2020-03-25 | 株式会社デンソー | ステップモータ及び車両用指針計器 |
| KR20240007299A (ko) | 2018-06-29 | 2024-01-16 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | 룩업 테이블의 업데이트: fifo, 제약된 fifo |
| RU2769146C1 (ru) * | 2018-09-22 | 2022-03-28 | ЭлДжи ЭЛЕКТРОНИКС ИНК. | Способ и устройство для обработки сигналов видео с использованием интер-предсказания |
| GB2591906B (en) | 2018-09-24 | 2023-03-08 | Beijing Bytedance Network Tech Co Ltd | Bi-prediction with weights in video coding and decoding |
| WO2020114407A1 (en) * | 2018-12-03 | 2020-06-11 | Beijing Bytedance Network Technology Co., Ltd. | Partial pruning method for hmvp mode |
| US11394989B2 (en) | 2018-12-10 | 2022-07-19 | Tencent America LLC | Method and apparatus for video coding |
| MX2020007287A (es) * | 2018-12-12 | 2020-09-10 | Lg Electronics Inc | Metodo y aparato para procesamiento de se?al de video con base en prediccion de vector de movimiento basada en la historia. |
| ES2971293T3 (es) * | 2018-12-28 | 2024-06-04 | Godo Kaisha Ip Bridge 1 | Dispositivo de codificación de imágenes, procedimiento de codificación de imágenes, programa de codificación de imágenes, dispositivo de descodificación de imágenes, procedimiento de descodificación de imágenes y programa de descodificación de imágenes |
| WO2020135465A1 (en) * | 2018-12-28 | 2020-07-02 | Beijing Bytedance Network Technology Co., Ltd. | Modified history based motion prediction |
| US10979716B2 (en) * | 2019-03-15 | 2021-04-13 | Tencent America LLC | Methods of accessing affine history-based motion vector predictor buffer |
-
2019
- 2019-12-19 ES ES19903738T patent/ES2971293T3/es active Active
- 2019-12-19 KR KR1020217003086A patent/KR102601014B1/ko active Active
- 2019-12-19 MX MX2021007758A patent/MX2021007758A/es unknown
- 2019-12-19 EP EP19903738.3A patent/EP3905687B1/en active Active
- 2019-12-19 ES ES23196333T patent/ES3047582T3/es active Active
- 2019-12-19 US US17/417,346 patent/US11431986B2/en active Active
- 2019-12-19 EP EP25191786.0A patent/EP4614974A3/en active Pending
- 2019-12-19 BR BR112021012484A patent/BR112021012484A8/pt unknown
- 2019-12-19 KR KR1020237038360A patent/KR102735127B1/ko active Active
- 2019-12-19 WO PCT/JP2019/049804 patent/WO2020137787A1/ja not_active Ceased
- 2019-12-19 EP EP23196333.1A patent/EP4262211B1/en active Active
- 2019-12-19 CN CN201980050634.9A patent/CN113491126B/zh active Active
- 2019-12-27 JP JP2019239377A patent/JP6864841B2/ja active Active
-
2021
- 2021-03-19 JP JP2021045721A patent/JP7129641B2/ja active Active
- 2021-06-24 MX MX2024012559A patent/MX2024012559A/es unknown
- 2021-09-10 JP JP2021147604A patent/JP7236646B2/ja active Active
-
2022
- 2022-07-25 US US17/872,632 patent/US11812029B2/en active Active
-
2023
- 2023-02-10 JP JP2023019223A patent/JP7445936B2/ja active Active
- 2023-06-14 US US18/209,639 patent/US12088818B2/en active Active
-
2024
- 2024-02-14 JP JP2024020097A patent/JP7620857B2/ja active Active
- 2024-06-25 US US18/753,087 patent/US12382058B2/en active Active
-
2025
- 2025-07-03 US US19/259,972 patent/US20250337913A1/en active Pending
Also Published As
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2971293T3 (es) | Dispositivo de codificación de imágenes, procedimiento de codificación de imágenes, programa de codificación de imágenes, dispositivo de descodificación de imágenes, procedimiento de descodificación de imágenes y programa de descodificación de imágenes | |
| ES3027532T3 (en) | Image encoding device, image encoding method, image encoding program, image decoding device, image decoding method, and image decoding program | |
| JP6866919B2 (ja) | 動画像復号装置、動画像復号方法、動画像復号プログラム、動画像符号化装置、動画像符号化方法及び動画像符号化プログラム | |
| JP2022051734A (ja) | 動画像符号化装置、動画像符号化方法及び動画像符号化プログラム、動画像復号装置、動画像復号方法及び動画像復号プログラム | |
| BR112021012485A2 (pt) | Dispositivo de codificação de imagem, método de codificação de imagem, e programa de codificação de imagem, dispositivo de decodificação de imagem, método de decodificação de imagem, e programa de decodificação de imagem | |
| JP6801830B1 (ja) | 動画像符号化装置、動画像符号化方法、及び動画像符号化プログラム、動画像復号装置、動画像復号方法及び動画像復号プログラム | |
| ES3016584T3 (en) | Image decoding device, image decoding method, and image decoding program | |
| BR112021012481A2 (pt) | Dispositivo de codificação de imagem em movimento, método de codificação de imagem em movimento, programa de codificação de imagem em movimento, dispositivo de decodificação de imagem em movimento, método de decodificação de imagem em movimento, e programa de decodificação de imagem em movimento | |
| BR112021012418A2 (pt) | Dispositivo de codificação de imagem, método de codificação de imagem, dispositivo de decodificação de imagem e método de decodificação de imagem | |
| JP6950847B2 (ja) | 動画像符号化装置、動画像符号化方法、及び動画像符号化プログラム、動画像復号装置、動画像復号方法及び動画像復号プログラム | |
| JP2021057870A (ja) | 画像符号化装置、画像符号化方法、画像符号化プログラム、画像復号装置、画像復号方法及び画像復号プログラム |