ES2986742T3 - Dispositivo de codificación de imágenes en movimiento, procedimiento de codificación de imágenes en movimiento y programa de codificación de imágenes en movimiento así como dispositivo de decodificación de imágenes en movimiento, procedimiento de decodificación de imágenes en movimiento y programa de decodificación de imágenes en movimiento - Google Patents
Dispositivo de codificación de imágenes en movimiento, procedimiento de codificación de imágenes en movimiento y programa de codificación de imágenes en movimiento así como dispositivo de decodificación de imágenes en movimiento, procedimiento de decodificación de imágenes en movimiento y programa de decodificación de imágenes en movimiento Download PDFInfo
- Publication number
- ES2986742T3 ES2986742T3 ES21153596T ES21153596T ES2986742T3 ES 2986742 T3 ES2986742 T3 ES 2986742T3 ES 21153596 T ES21153596 T ES 21153596T ES 21153596 T ES21153596 T ES 21153596T ES 2986742 T3 ES2986742 T3 ES 2986742T3
- Authority
- ES
- Spain
- Prior art keywords
- motion vector
- prediction block
- vector predictor
- prediction
- block
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
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
- H04N19/139—Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
-
- 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/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/124—Quantisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/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/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/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
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/172—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/184—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 bits, e.g. of the compressed video stream
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Una unidad de generación de candidatos a predictores de vectores de movimiento 120 deriva una pluralidad de candidatos a predictores de vectores de movimiento por predicción a partir de primeros bloques de predicción codificados vecinos a un bloque de predicción sujeto a codificación dentro de la misma imagen que el bloque de predicción sujeto a codificación, o a partir de un segundo bloque de predicción codificado ubicado en la misma posición que o en la vecindad del bloque de predicción sujeto a codificación en una imagen diferente a la del bloque de predicción sujeto a codificación, y agrega los candidatos a predictores de vectores de movimiento derivados en un candidato a predictor de vectores de movimiento. La unidad de generación de candidatos a predictores de vectores de movimiento 120 determina, con el propósito de obtener un número predeterminado de candidatos a predictores de vectores de movimiento, cuál de los primeros bloques de predicción codificados proporciona el vector de movimiento a partir del cual derivar el candidato a predictor de vectores de movimiento, organizando los bloques en orden de prioridad. (Traducción automática con Google Translate, sin valor legal)
Description
DESCRIPCIÓN
Dispositivo de codificación de imágenes en movimiento, procedimiento de codificación de imágenes en movimiento y programa de codificación de imágenes en movimiento así como dispositivo de decodificación de imágenes en movimiento, procedimiento de decodificación de imágenes en movimiento y programa de decodificación de imágenes en movimiento
rCampo técnico!
La presente invención se refiere a una tecnología de codificación y decodificación de instantáneas en movimiento y, más particularmente, a una tecnología de codificación y decodificación de instantáneas en movimiento usando una predicción de compensación de movimiento.
ITécnica antecedente!
La norma MPEG-4AVC/H.264 es conocida como un procedimiento típico para codificación de compresión de instantáneas en movimiento. En la compensación de movimiento de acuerdo con MPEG-4AVC/H.264, una instantánea se parte en una pluralidad de bloques rectangulares. Una instantánea ya codificada y decodificada se usa como una instantánea de referencia. Se predice el movimiento de la instantánea de referencia. La predicción de movimiento basada en la compensación de movimiento se denomina como inter predicción. En inter predicción de acuerdo con MPEG-4AVC/H.264, puede usarse una pluralidad de instantáneas como instantáneas de referencia. Para compensación de movimiento, se selecciona una referencia óptima para cada instantánea de bloque de la pluralidad de instantáneas de referencia. Un índice de referencia se asigna a cada instantánea de referencia. Una instantánea de referencia se identifica mediante el índice de referencia. En una instantánea B, puede seleccionarse un máximo de dos instantáneas de las instantáneas de referencia ya codificadas y decodificadas y puede usarse para inter predicción. La predicción de una de las dos instantáneas de referencia se indica mediante predicción L0 (predicción de lista 0), que se usa principalmente para predicción hacia delante, y la predicción de la otra se indica mediante predicción L1 (predicción de lista 1), que se usa principalmente para predicción hacia atrás.
También se define la bi-predicción, que usa dos tipos de inter predicción, es decir, predicción L0 y predicción L1. En el caso de bi-predicción, se realizan dos predicciones. Las señales de inter predicción de la predicción L0 y predicción L1 se multiplican mediante respectivos factores de peso, y se añaden valores de desplazamiento a los respectivos resultados de multiplicación. Las señales resultantes se superponen entre sí para producir una señal de inter predicción final. Los valores típicos de factores de peso y valores de desplazamiento usados para predicción ponderada se definen y codifican en unidades de instantáneas y para cada instantánea de referencia en una lista. La información de codificación relacionada con inter predicción definida para cada bloque incluye un modo de predicción para distinguir entre predicción L0, predicción L1, y bi-predicción. La información de codificación definida para cada lista de referencias para un bloque dado incluye un índice de referencia que identifica una instantánea de referencia, y un vector de movimiento que indica la dirección y cantidad de movimiento del bloque. Estos elementos de información de codificación se codifican y decodifican.
En un esquema de codificación de instantáneas en movimiento en el que se realiza compensación de movimiento, se predice un vector de movimiento para reducir el tamaño de código de vectores de movimiento generados en los bloques. En MPEG-4AVC/H.264, se reduce el tamaño de código aprovechándose de la fuerte correlación de un vector de movimiento sometido a codificación a un vector de movimiento para que un bloque vecino derive un predictor de vector de movimiento basándose en la predicción del bloque vecino, derivando una diferencia de vector de movimiento entre el vector de movimiento sometido a codificación y el predictor de vector de movimiento, y codificando la diferencia de vector de movimiento.
Más específicamente, se reduce el tamaño de código de un vector de movimiento derivando un valor de mediana de los vectores de movimiento para los bloques vecinos A, B, C y definiendo el valor como un predictor de vector de movimiento, y determinando una diferencia entre el vector de movimiento y el predictor de vector de movimiento (Documento No de Patente 1). Si la forma de un bloque sometido a codificación y la del bloque vecino difiere como se muestra en la Figura 48B, el bloque más superior se define como un bloque de predicción si hay una pluralidad de bloques vecinos a la izquierda, o el bloque más a la izquierda se define como un bloque de predicción si hay una pluralidad de bloques vecinos por encima. Si el bloque sometido a codificación se parte en bloques individuales de 16x8 píxeles o bloques individuales de 8x16 píxeles, como se muestra en las Figuras 48C y 48D, se determina un bloque de predicción objetivo de referencia para cada bloque individual de acuerdo con la disposición del bloque de compensación de movimiento, como se indica por las flechas vacías de las Figuras 48C y 48D, en lugar de derivar un valor de mediana de los vectores de movimiento para los bloques vecinos. Se realiza a continuación la predicción de los vectores de movimiento para los bloques de predicción determinados.
PARK J Y COL.: "CE9 Subtests N and O: Improvement on AMVP", 5. JCTVC MEETING; 96. MPEG MEETING; 16-3-2011 - 23-3-2011; GINEBRA;(JOINT COLLABORATIVE TEAM ON VIDEO CODING OF ISO/IEC JTC1/SC29/WG11AND ITU-T SG.16); URL: HTTP://WFTP3.ITU.INT/AV-ARCH/JCTVC-SITE/, n.° JCTVC-E350, 11 de marzo de 2011 (11-03-2011), XP030008856, ISSN: 0000-0005, desvela la derivación de una lista de candidatos de predictor de vector de movimiento que incluye dos candidatos de predictor de vector de movimiento espaciales y un candidato de predictor de vector de movimiento temporalmente co-ubicado. Se consideran los candidatos de predictor de vector de movimiento espaciales con diferente índice de referencia y/o diferente lista de referencias. Para obtener los dos candidatos de predictor de vector de movimiento espaciales mvLeft y mvAbove, se exploran dos grupos de bloques vecinos en orden: todos los bloques vecinos izquierdos desde abajo a arriba y todos los bloques vecinos por encima de derecha a izquierda. Para cada uno de los bloques vecinos se comprueba si el vector de movimiento satisface cualquiera de las siguientes condiciones en el orden: 1. mismo índice de referencia, misma lista de referencias (que el vector de movimiento del bloque actual), 2. mismo índice de referencia, diferente lista de referencias, 3. diferente índice de referencia, misma lista de referencias, 4. diferente índice de referencia, diferente lista de referencias. El candidato de predictor de vector de movimiento seleccionado se escala de acuerdo con la distancia temporal relativa.
[Documento No de Patente 1]
ISO/IEC 14496-10 Information technology -- Coding of audio-visual objects -- Part 10: Advanced Video Coding
rSumario de la invención!
La invención está definida por las reivindicaciones independientes adjuntas.
rProblema a resolver por la invención!
De acuerdo con el procedimiento descrito en el Documento No de Patente 1, únicamente se obtiene un bloque de predicción. Esto puede dar como resultado, dependiendo del tipo de instantánea, una precisión de predicción pobre proporcionada por un predictor de vector de movimiento o una eficacia de codificación pobre.
En estos antecedentes, nos hemos dado cuenta de la necesidad de proporcionar un esquema de codificación de instantáneas basado en predicción de compensación de movimiento en el que se comprime adicionalmente la información de codificación y se reduce el tamaño de código global.
rMedios para resolver el problema!
Por consiguiente, el fin de la invención es proporcionar una tecnología de codificación y decodificación de instantáneas en movimiento que pueda reducir el tamaño de código de las diferencias de vector de movimiento y mejorar la eficacia de codificación en consecuencia, derivando candidatos de predictor de vector de movimiento.
La divulgación habilitante para la invención se encuentra en las figuras 12 y 13 y los pasajes correspondientes de la descripción, así como en la descripción del Procedimiento 2. Cualquier ejemplo y realización de la descripción que no pertenece al ámbito de las reivindicaciones no forman parte de la invención y se proporcionan únicamente para fines de ilustración.
Un dispositivo de codificación de imágenes en movimiento según una realización de la presente invención está adaptado para codificar imágenes en movimiento en unidades de bloques obtenidos mediante la división de cada imagen de las imágenes en movimiento, utilizando compensación de movimiento, según la reivindicación 1 adjunta.
Otra realización de la presente invención se refiere a un procedimiento de codificación de imágenes en movimiento. El procedimiento de codificación de imágenes en movimiento está adaptado para codificar imágenes en movimiento en unidades de bloques obtenidos mediante la división de cada imagen de las imágenes en movimiento, utilizando compensación de movimiento, según la reivindicación 2 adjunta.
Un dispositivo de decodificación de instantáneas en movimiento de acuerdo con una realización de la presente invención está adaptado para decodificar una secuencia de bits en la que se codifican instantáneas en movimiento en unidades de bloques obtenidas mediante partición de cada instantánea de las instantáneas en movimiento, usando movimiento, de acuerdo con la reivindicación adjunta 4.
Otra realización de la presente invención se refiere a un procedimiento de decodificación de imágenes en movimiento. El procedimiento de decodificación de instantáneas en movimiento está adaptado para decodificar una secuencia de bits en la que se codifican instantáneas en movimiento en unidades de bloques obtenidas mediante partición de cada instantánea de las instantáneas en movimiento, usando compensación de movimiento, de acuerdo con la reivindicación adjunta 5.
Los programas de ordenador según las reivindicaciones adjuntas 3 y 6 y un procedimiento de transmisión según la reivindicación adjunta 7 son modos adicionales de la presente invención.
[Ventaja de la presente invención!
De acuerdo con una realización, puede reducirse el tamaño de código de las diferencias de vector de movimiento y puede mejorarse la eficacia de codificación en consecuencia, calculando una pluralidad de predictores de vector de movimiento y seleccionando el predictor de vector de movimiento óptimo de la pluralidad de predictores de vector de movimiento. De acuerdo con una realización, puede reducirse el tamaño de código de información de codificación que va a transmitirse y puede mejorarse la eficacia de codificación en consecuencia, calculando una pluralidad de candidatos de información de codificación y seleccionando la información de movimiento óptima de la pluralidad de candidatos de información de codificación.
rBreve descripción de los dibujos!
La Figura 1 es un diagrama de bloques que muestra la configuración de un dispositivo de codificación de instantáneas en movimiento para realizar un procedimiento de predicción de un vector de movimiento de acuerdo con una realización;
La Figura 2 es un diagrama de bloques que muestra la configuración de un dispositivo de decodificación de instantáneas en movimiento para realizar un procedimiento de predicción de un vector de movimiento de acuerdo con una realización;
La Figura 3 muestra un bloque de codificación;
La Figura 4 muestra tipos de forma de bloques de predicción;
La Figura 5 muestra un grupo de bloques de predicción;
La Figura 6 muestra un grupo de bloques de predicción;
La Figura 7 muestra un grupo de bloques de predicción;
La Figura 8 muestra un grupo de bloques de predicción;
La Figura 9 muestra un grupo de bloques de predicción;
La Figura 10 muestra una sintaxis de nivel de corte de una secuencia de bits relacionada con un procedimiento de selección de un vector de movimiento;
La Figura 11 muestra una sintaxis de nivel de bloque de predicción de una secuencia de bits relacionada con un procedimiento de predicción de un vector de movimiento;
La Figura 12 es un diagrama de bloques que muestra la configuración detallada de la unidad de derivación de diferencia de vector de movimiento de la Figura 1; La Figura 13 es un diagrama de bloques que muestra la configuración detallada de la unidad de derivación de vector de movimiento de la Figura 2;
La Figura 14 es un diagrama de flujo que muestra la operación de la unidad de derivación de diferencia de vector de movimiento de la Figura 1;
La Figura 15 es un diagrama de flujo que muestra la operación de la unidad de derivación de vector de movimiento de la Figura 2;
La Figura 16 es un diagrama de ijo que muestra un procedimiento de predicción de un vector de movimiento;
La Figura 17 es un diagrama que muestra un procedimiento de derivación de un candidato de predictor de vector de movimiento;
La Figura 18 es un diagrama de f que muestra un procedimiento de derivación de un candidato de predictor de vector de movimiento;
La Figura 19 es un diagrama de f que muestra un procedimiento de derivación de un candidato de predictor de vector de movimiento;
La Figura 20 es un diagrama de f que muestra un procedimiento de derivación de un candidato de predictor de vector de movimiento;
La Figura 21 es un diagrama que muestra un procedimiento de derivación de un candidato de predictor de vector de movimiento;
La Figura 22 es un diagrama que muestra un procedimiento de derivación de un candidato de predictor de vector de movimiento;
La Figura 23 muestra el escalamier de un vector de movimiento;
La Figura 24 es un diagrama de f que muestra un procedimiento de derivación de un candidato de predictor de vector de movimiento;
La Figura 25 es un diagrama de f que muestra un procedimiento de derivación de un candidato de predictor de vector de movimiento;
La Figura 26 es un diagrama de f que muestra un procedimiento de derivación de un candidato de predictor de vector de movimiento;
La Figura 27 es un diagrama de f que muestra un procedimiento de derivación de un candidato de predictor de vector de movimiento;
La Figura 28 es un diagrama que muestra un procedimiento de derivación de un candidato de predictor de vector de movimiento;
La Figura 29 es un diagrama que muestra un procedimiento de derivación de un candidato de predictor de vector de movimiento;
La Figura 30 es un diagrama de flujo que muestra un procedimiento de adición de candidato de predictor de vector de movimiento en una lista de candidatos de predictor de vector de movimiento;
La Figura 31 es un diagrama de flujo que muestra un procedimiento de adición de candidato de predictor de vector de movimiento en una lista de candidatos de predictor de vector de movimiento;
La Figura 32 es un diagrama de flujo que muestra un procedimiento de adición de candidato de predictor de vector de movimiento en una lista de candidatos de predictor de vector de movimiento;
La Figura 33 es un diagrama de flujo que muestra un procedimiento de adición de candidato de predictor de vector de movimiento en una lista de candidatos de predictor de vector de movimiento;
La Figura 34 es un diagrama de flujo que muestra un procedimiento de adición de candidato de predictor de vector de movimiento en una lista de candidatos de predictor de vector de movimiento;
La Figura 35 es un diagrama de flujo que muestra un procedimiento de adición de candidato de predictor de vector de movimiento en una lista de candidatos de predictor de vector de movimiento;
La Figura 36 es un diagrama de flujo que muestra un procedimiento de adición de candidato de predictor de vector de movimiento en una lista de candidatos de predictor de vector de movimiento;
La Figura 37 muestra bloques de predicción vecinos en el modo de unión;
La Figura 38 es un diagrama de bloques que muestra la configuración detallada de la unidad de estimación de información de inter predicción de la Figura 1;
La Figura 39 es un diagrama de bloques que muestra la configuración detallada de la unidad de estimación de información de inter predicción de la Figura 2;
La Figura 40 es un diagrama de flujo que muestra la operación en el modo de unión;
La Figura 41 es un diagrama de flujo que muestra la operación en el modo de unión;
La Figura 42 es un diagrama de flujo que muestra la operación en el modo de unión;
La Figura 43 es un diagrama de flujo que muestra la operación en el modo de unión;
La Figura 44 es un diagrama de flujo que muestra la operación en el modo de unión;
La Figura 45 es un diagrama de flujo que muestra la operación en el modo de unión;
La Figura 46 es un diagrama de flujo que muestra la operación en el modo de unión;
La Figura 47 es un diagrama de flujo que muestra la operación en el modo de unión; y
La Figura 48 muestra un procedimiento de derivación de un predictor de vector de movimiento de acuerdo con la técnica relacionada.
rMeior modo para llevar a cabo la invención!
La presente solicitud se refiere a codificación de instantáneas en movimiento, y, más particularmente, a derivar una pluralidad de predictores de vectores de movimiento desde vectores de movimiento de bloques vecinos codificados, derivar una diferencia de vector de movimiento entre un vector de movimiento de un bloque sometido a codificación y un predictor de vector de movimiento seleccionado, y codificar la diferencia de vector de movimiento, para el fin de mejorar la eficacia de codificación de instantáneas en movimiento mediante lo cual se parte una instantánea en bloques rectangulares y se realiza compensación de movimiento entre instantáneas en unidades de bloques. Como alternativa, se reduce el tamaño de código usando información de codificación de bloques vecinos codificados y estimando información de codificación de un bloque sometido a codificación. En el caso de decodificación de instantáneas en movimiento, se deriva una pluralidad de predictores de vectores de movimiento de vectores de movimiento de bloques vecinos decodificados, y se deriva un vector de movimiento de un bloque sometido a decodificación de una diferencia de vector decodificada de una secuencia de bits y un predictor de vector de movimiento seleccionado. Aún como alternativa, se estima información de codificación de un bloque sometido a decodificación usando información de codificación de bloques vecinos decodificados.
La Figura 1 es un diagrama de bloques que muestra la configuración de un aparato de codificación de instantáneas en movimiento de acuerdo con una realización. El dispositivo de codificación de instantáneas en movimiento de acuerdo con la realización incluye una memoria 101 de instantánea, una unidad 102 de estimación de vector de movimiento, una unidad 103 de derivación de diferencia de vector de movimiento, una unidad 104 de estimación de información de inter predicción, una unidad 105 de predicción de compensación de movimiento, una unidad 106 de decisión de procedimiento de predicción, una unidad 107 de generación de señal residual, una unidad 108 de transformada/cuantificación ortogonal, una primera unidad 109 de generación de secuencia de bits, una segunda unidad 110 de generación de secuencia de bits, una unidad 111 de multiplexación, una unidad 112 de transformada de cuantificación inversa/ortogonal inversa, una unidad 113 de superposición de señal de instantánea decodificada, una memoria 114 de almacenamiento de información de codificación, y una memoria 115 de instantánea decodificada.
La memoria 101 de instantánea almacena temporalmente una señal de instantánea sometida a codificación suministrada en el orden del tiempo representado/visualizado. La memoria 101 de instantánea suministra, en unidades predeterminadas de bloques de píxeles, la señal de instantánea almacenada sometida a codificación a la unidad 102 de estimación de vector de movimiento, a la unidad 106 de decisión del procedimiento de predicción, y a la unidad 107 de generación de señal residual. En este procedimiento, las instantáneas almacenadas en el orden de tiempo representado/visualizado se reorganizan en el orden de codificación y se emiten desde la memoria 101 de instantánea en unidades de bloques de píxeles.
La unidad 102 de estimación de vector de movimiento detecta vectores de movimiento para respectivos bloques de predicción, organizando los vectores de acuerdo con el tamaño de bloque de predicción y modo de predicción, sometiendo la señal de instantánea suministrada desde la memoria 101 de instantánea y una instantánea decodificada (instantánea de referencia) suministrada desde la memoria 115 de instantánea decodificada para adaptación de bloque. La unidad 102 de estimación de vector de movimiento suministra los vectores de movimiento detectados a la unidad 105 de predicción de compensación de movimiento, a la unidad 103 de derivación de diferencia de vector de movimiento, y a la unidad 106 de decisión del procedimiento de predicción. Un bloque de predicción es una unidad en la que se realiza compensación de movimiento. Se analizarán detalles más adelante.
La unidad 103 de derivación de diferencia de vector de movimiento deriva una pluralidad de candidatos de predictor de vector de movimiento usando información de codificación en la señal de instantánea codificada almacenada en la memoria 114 de almacenamiento de información de codificación y añade la pluralidad de candidatos de predictor de vector de movimiento en una lista de MVP. La unidad 103 de derivación de diferencia de vector de movimiento selecciona el predictor de vector de movimiento óptimo de la pluralidad de candidatos de predictor de vector de movimiento añadidos en la lista de MVP, deriva una diferencia de vector de movimiento del vector de movimiento detectado mediante la unidad 102 de estimación de vector de movimiento y el predictor de vector de movimiento, y suministra la diferencia de vector de movimiento derivada a la unidad 106 de decisión del procedimiento de predicción. En el caso de conmutación entre los parámetros de peso para realizar predicción ponderada para respectivos bloques de predicción como se describe a continuación, la unidad 103 de derivación de diferencia de vector de movimiento también suministra, además de la información de codificación anteriormente descrita, parámetros de peso (un factor de peso multiplicado por una señal de instantánea de compensación de movimiento y un valor de desplazamiento de peso añadido a la señal resultante) para predicción ponderada de un bloque de predicción seleccionado a la unidad 106 de decisión del procedimiento de predicción. Además, la unidad 103 de derivación de diferencia de vector de movimiento suministra un índice de MVP que identifica el predictor de vector de movimiento seleccionado seleccionado de los candidatos de predictor de vector de movimiento añadidos en la lista de MVP a la unidad 106 de decisión del procedimiento de predicción. Se describirá a continuación la configuración detallada y la operación de la unidad 103 de derivación de diferencia de vector de movimiento.
La unidad 104 de estimación de información de inter predicción estima información de inter predicción en el modo de unión. Un modo de unión se define como un modo en el que la información de inter predicción de un bloque de predicción vecino codificado sometido a inter predicción o la información de inter predicción de un bloque de predicción en una instantánea diferente sometida a inter predicción, en lugar de codificación de información de inter predicción tal como un modo de predicción de un bloque de predicción, un índice de referencia (información de identificación de una de una pluralidad de instantáneas de referencia añadidas en una lista de referencias que se usa para predicción de compensación de movimiento), un vector de movimiento, etc. La unidad 104 de estimación de información de inter predicción deriva una pluralidad de candidatos de unión (candidatos de información de inter predicción) usando información de codificación de bloques de predicción codificados almacenados en la memoria 114 de almacenamiento de información de codificación, añade los candidatos en una lista de candidatos de unión descrita más adelante, y selecciona el candidato de unión óptimo de la pluralidad de candidatos de unión añadidos a la lista de candidatos de unión. La unidad 104 de estimación de información de inter predicción suministra información de inter predicción del candidato de unión seleccionado que incluye un modo de predicción, un índice de referencia, un vector de movimiento, etc., a la unidad 105 de predicción de compensación de movimiento, y suministra un índice de unión que identifica el candidato de unión seleccionado a la unidad 106 de decisión del procedimiento de predicción. En el caso de conmutación entre parámetros de peso dependiendo del bloque de predicción como se describe a continuación, la unidad 104 de estimación de información de inter predicción suministra, además de la información de codificación descrita anteriormente, los parámetros de peso para predicción ponderada de un candidato de unión seleccionado a la unidad 105 de predicción de compensación de movimiento. La unidad 104 de estimación de información de inter predicción también suministra el índice de unión que identifica el candidato de unión seleccionado a la unidad 106 de decisión del procedimiento de predicción. Además de la información de codificación anteriormente descrita, puede usarse información de codificación tal como un parámetro de cuantificación para cuantificar un bloque de predicción codificado seleccionado, etc., para predicción. La unidad 104 de estimación de información de inter predicción suministra tal información de codificación a la unidad 106 de decisión del procedimiento de predicción si tal información se usa para predicción. Se describirá más adelante la configuración detallada y operación de la unidad 104 de estimación de información de inter predicción.
La unidad 105 de predicción de compensación de movimiento usa el vector de movimiento detectado mediante la unidad 102 de estimación de vector de movimiento y la unidad 104 de estimación de información de inter predicción para generar una señal de instantánea prevista de la instantánea de referencia mediante predicción de compensación de movimiento. La unidad 105 de predicción de compensación de movimiento suministra la señal de instantánea prevista a la unidad 106 de decisión del procedimiento de predicción. En la predicción L0 principalmente usada para predicción hacia delante, y en predicción L1 principalmente usada para predicción hacia atrás, la unidad 105 de predicción de compensación de movimiento realiza uni-predicción. En el caso de bi-predicción, la unidad 105 de predicción de compensación de movimiento realiza bi-predicción de manera que las señales de inter predicción de la predicción L0 y de la predicción L1 se multiplican de manera adaptativa multiplicadas mediante factores de peso, respectivamente, usándose principalmente la predicción L0 para predicción hacia delante, y usándose principalmente la predicción L1 para predicción hacia atrás. La unidad 105 de predicción de compensación de movimiento superpone las señales resultantes entre sí, con un valor de desplazamiento añadido, para generar una señal de instantánea prevista final. La unidad 105 de predicción de compensación de movimiento puede conmutar los parámetros de peso usados para predicción ponderada y comprendidos de factores de peso y valores de desplazamiento, en unidades de instantáneas, cortes, o bloques de predicción. En caso de que la unidad 105 de predicción de compensación de movimiento conmute los parámetros de peso en unidades de instantáneas o cortes, se definen valores representativos para respectivas instantáneas de referencia en una lista, ya sea en unidades de instantáneas o en unidades de cortes, y se codifican los valores representativos. En caso de que la unidad 105 de predicción de compensación de movimiento conmute los parámetros de peso dependiendo de las unidades de bloques de predicción, se definen los parámetros de peso para cada unidad de predicción y se codifican.
La unidad 106 de decisión del procedimiento de predicción determina un procedimiento de predicción (un tamaño de bloque de predicción óptimo y una indicación en cuanto a si se usa el modo de predicción o el modo de unión, etc.) de una pluralidad de procedimientos de predicción, evaluando el tamaño de código de la diferencia de vector de movimiento, la cantidad de distorsión entre la señal de predicción de movimiento compensado y la señal de instantánea, etc. La unidad 106 de decisión del procedimiento de predicción suministra información de codificación que incluye información que indica el procedimiento de predicción determinado y que incluye una diferencia de vector de movimiento dependiente del procedimiento de predicción determinado a la primera unidad 109 de generación de secuencia de bits. La unidad 106 de decisión del procedimiento de predicción también suministra, según sean necesarios, valores previstos de información de codificación que incluyen parámetros de peso usados para predicción ponderada y un parámetro de cuantificación usado para cuantificación/cuantificación inversa, a la primera unidad 109 de generación de secuencia de bits.
Además, la unidad 106 de decisión del procedimiento de predicción almacena, en la memoria 114 de almacenamiento de información de codificación, información de codificación que incluye información que indica el procedimiento de predicción determinado y que incluye un vector de movimiento dependiente del procedimiento de predicción determinado. La unidad 106 de decisión del procedimiento de predicción suministra, según sea necesario, los parámetros de peso para predicción ponderada suministrada desde la unidad 106 de decisión del procedimiento de predicción a la memoria 114 de almacenamiento de información de codificación. La unidad 106 de decisión del procedimiento de predicción suministra una señal de instantánea prevista de movimiento compensado dependiente del modo de predicción determinado a la unidad 107 de generación de señal residual y a la unidad 113 de superposición de señal de instantánea decodificada.
La unidad 107 de generación de señal residual resta la señal de predicción de la señal de instantánea sometida a codificación para generar una señal residual, y suministra la señal residual a la unidad 108 de transformada/cuantificación ortogonal. La unidad 108 de transformada/cuantificación ortogonal somete la señal residual a transformada ortogonal y cuantificación de acuerdo con un parámetro de cuantificación para generar una señal residual cuantificada de ortogonalidad transformada. La unidad 108 de transformada/cuantificación ortogonal suministra la señal residual a la segunda unidad 110 de generación de secuencia de bits y a la unidad 112 de transformada de cuantificación inversa/ortogonal inversa. Además, la unidad 108 de transformada/cuantificación ortogonal almacena el parámetro de cuantificación en la memoria 114 de almacenamiento de información de codificación.
La primera unidad 109 de generación de secuencia de bits codifica información de codificación dependiente del procedimiento de predicción determinado mediante la unidad 106 de decisión del procedimiento de predicción, además de información de codificación definida para cada secuencia, instantánea, corte, bloque de codificación. Más específicamente, la primera unidad 109 de generación de secuencia de bits genera un primera secuencia de bits codificando, de acuerdo con una regla de sintaxis predefinida descrita más adelante, información de codificación que incluye un parámetro que indica si se usa inter predicción, un parámetro que indica si se usa el modo de unión (en el caso de inter predicción), un índice de unión en el caso del modo de unión, un modo de predicción en el caso de que no se use el modo de unión, un índice de MVP, e información sobre una diferencia de vector de movimiento, etc. La primera unidad 109 de generación de secuencia de bits suministra la primera secuencia de bits a la unidad 111 de multiplexación. Si se usa el modo de unión y si hay únicamente un candidato de unión disponible para enumeración en la lista de candidatos de unión descrita más adelante, puede identificarse el índice de unión mergeIdx como 0 de modo que no se codifica el índice de unión. De manera similar, si no se usa el modo de unión y si hay únicamente un candidato de predictor de vector de movimiento disponible para enumerar en la lista de MVP descrita más adelante, el índice de MVP mergeIdx puede identificarse como 0 de modo que no se codifica el índice de MVP.
Los índices de MVP están codificados con longitud variable de manera que cuanto más alto son en el orden de prioridad en la lista de MVP (es decir, menor es el número de índice), menor es el tamaño de código del código asignado al índice de MVP. De manera similar, los índices de unión están codificados con longitud variable que cuanto más alta es la prioridad en la lista de unión (es decir, menor es el número de índice), menor es el tamaño de código del código asignado al índice de unión.
En el caso de la capacidad de conmutación usando predicción ponderada adaptada a cada bloque de predicción, se crean también los parámetros de peso para predicción ponderada suministrados desde la unidad 106 de decisión del procedimiento de predicción si no se usa el modo de unión. Se codifica la diferencia entre el valor previsto de la información de codificación de parámetro de cuantificación para cuantificación y el valor realmente usado.
La segunda unidad 110 de generación de secuencia de bits somete la señal residual transformada de manera ortogonal y cuantificada a codificación de entropía de acuerdo con una regla de sintaxis predefinida para generar la segunda secuencia de bits y suministra la segunda secuencia de bits a la unidad 111 de multiplexación. La unidad 111 de multiplexación multiplexa la primera secuencia de bits y la segunda secuencia de bits de acuerdo con una regla de sintaxis predefinida y emite la secuencia de bits resultante.
La unidad 112 de transformada de cuantificación inversa/ortogonal inversa somete la señal residual transformada de manera ortogonal y cuantificada suministrada desde la unidad 108 de transformada/cuantificación ortogonal a la cuantificación inversa y transformada ortogonal inversa para derivar la señal residual y suministra la señal residual a la unidad 113 de superposición de señal de instantánea decodificada. La unidad 113 de superposición de señal de instantánea decodificada superpone la señal de predicción dependiente de la decisión mediante la unidad 106 de decisión del procedimiento de predicción y la señal residual sometida a cuantificación inversa y transformada ortogonal inversa mediante la unidad 112 de transformada de cuantificación inversa/ortogonal inversa una encima de la otra para generar una instantánea decodificada. La unidad 113 de superposición de señal de instantánea decodificada almacena la instantánea decodificada en la memoria 115 de instantánea decodificada. La instantánea decodificada puede someterse a filtración para reducir la distorsión, tal como la distorsión de bloque resultante de la codificación antes de que se almacene en la memoria 115 de instantánea decodificada. En este caso, se almacena la información de codificación prevista tal como una bandera para discriminar información en un post filtro tal como un ALF o un filtro de desbloqueo en la memoria 114 de almacenamiento de información de codificación según sea necesario.
La Figura 2 es un diagrama de bloques que muestra la configuración de un dispositivo de decodificación de instantáneas en movimiento de acuerdo con la realización que corresponde al dispositivo de codificación de instantáneas en movimiento de la Figura 1. El dispositivo de decodificación de instantáneas en movimiento de acuerdo con la realización incluye una unidad 201 de demultiplexación, una primera unidad 202 de decodificación de secuencia de bits, una segunda unidad 203 de decodificación de secuencia de bits, una unidad 204 de derivación de vector de movimiento, una unidad 205 de estimación de información de inter predicción, una unidad 206 de predicción de compensación de movimiento, una unidad 207 de transformada de cuantificación inversa/ortogonal inversa, una unidad 208 de superposición de señal de instantánea decodificada, una memoria 209 de almacenamiento de información de codificación, y una memoria 210 de instantánea decodificada.
El procedimiento de decodificación del dispositivo de decodificación de instantáneas en movimiento de la Figura 2 corresponde al procedimiento de decodificación proporcionado en el dispositivo de codificación de instantáneas en movimiento de la Figura 1. Por lo tanto, la unidad 206 de predicción de compensación de movimiento, la unidad 207 de transformada de cuantificación inversa/ortogonal inversa, la unidad 208 de superposición de señal de instantánea decodificada, la memoria 209 de almacenamiento de información de codificación, y la memoria 210 de instantánea decodificada de la Figura 2 tienen las mismas funciones que la unidad 105 de predicción de compensación de movimiento, la unidad 112 de transformada de cuantificación inversa/ortogonal inversa, la unidad 113 de superposición de señal de instantánea decodificada, la memoria 114 de almacenamiento de información de codificación, y la memoria 115 de instantánea decodificada del dispositivo de codificación de instantáneas en movimiento de la Figura 1, respectivamente.
La secuencia de bits suministrada a la unidad 201 de demultiplexación se demultiplexa de acuerdo con una regla de sintaxis predefinida. Las secuencias de bits resultantes de la demultiplexación se suministran a la primera unidad 202 de decodificación de secuencia de bits y a la segunda unidad 203 de decodificación de secuencia de bits.
La primera unidad 202 de decodificación de secuencia de bits decodifica la secuencia de bits suministrada para obtener información definida para cada secuencia, instantánea, corte o bloque de codificación, e información de codificación definida para cada bloque de predicción. Más específicamente, la primera unidad 202 de decodificación de secuencia de bits decodifica, de acuerdo con una regla de sintaxis predefinida descrita más adelante, información de codificación relacionada con el parámetro que indica si se usa inter predicción, el índice de unión en el caso de modo de unión, el modo de predicción en el caso de que no se use el modo de unión, el índice de MVP, y la diferencia de vector de movimiento, etc. La primera unidad 202 de decodificación de secuencia de bits suministra la información de codificación decodificada a la unidad 204 de derivación de vector de movimiento o a la unidad 205 de estimación de información de inter predicción, y a la unidad 206 de predicción de compensación de movimiento. La primera unidad 202 de decodificación de secuencia de bits almacena la información de codificación en la memoria 209 de almacenamiento de información de codificación. Si se usa el modo de unión y si hay únicamente un candidato de unión disponible para enumeración en la lista de candidatos de unión descrita más adelante, puede identificarse el índice de unión mergeIdx como 0 de modo que no se codifica el índice de unión. En este caso, mergeIdx se define como 0. Por lo tanto, si se usa el modo de unión, el número de candidatos de unión añadidos en la lista de candidatos de unión derivados en la unidad 205 de estimación de información de inter predicción se suministra a la primera unidad 202 de decodificación de secuencia de bits. De manera similar, si no se usa el modo de unión y si hay únicamente un candidato de predictor de vector de movimiento disponible para enumerar en la lista de MVP descrita más adelante, el índice de MVP mergeIdx puede identificarse como 0 de modo que no se codifica el índice de MVP. En este caso, mvpIdx se define como 0. Por lo tanto, en el caso de que no se use el modo de unión, el número de candidatos de predictor de vector de movimiento añadidos en la lista de MVP derivada en la unidad 204 de derivación de vector de movimiento se suministra a la primera unidad 202 de decodificación de secuencia de bits.
La segunda unidad 203 de decodificación de secuencia de bits decodifica la secuencia de bits suministrada para derivar la señal residual transformada de manera ortogonal y cuantificada. La segunda unidad 203 de decodificación de secuencia de bits suministra la señal residual transformada de manera ortogonal y cuantificada a la unidad 207 de transformada de cuantificación inversa/ortogonal inversa.
En el caso de que no se use el modo de unión en el bloque de predicción sometido a decodificación, la unidad 204 de derivación de vector de movimiento usa la señal de información de codificación de la instantánea decodificada almacenada en la memoria 209 de almacenamiento de información de codificación para derivar una pluralidad de candidatos de predictor de vector de movimiento y almacena los candidatos en la lista de MVP descrita más adelante. La unidad 204 de derivación de vector de movimiento selecciona un predictor de vector de movimiento de acuerdo con la información de codificación decodificada en la primera unidad 202 de decodificación de secuencia de bits y suministrada a partir de la misma. La unidad 204 de derivación de vector de movimiento deriva un vector de movimiento de la diferencia de vector de movimiento recuperada decodificando en la primera unidad 202 de decodificación de secuencia de bits y del predictor de vector de movimiento. La unidad 204 de derivación de vector de movimiento suministra el vector de movimiento derivado a la unidad 206 de predicción de compensación de movimiento y a la memoria 209 de almacenamiento de información de codificación. La unidad 204 de derivación de vector de movimiento suministra adicionalmente a la primera unidad 202 de decodificación de secuencia de bits el número de candidatos de predictor de vector de movimiento derivados en la unidad 204 de derivación de vector de movimiento y añadidos en la lista de MVP. Se describirá más adelante la configuración detallada y la operación de la unidad 204 de derivación de vector de movimiento.
En el caso de que se use el modo de unión en el bloque de predicción sometido a decodificación, la unidad 205 de estimación de información de inter predicción estima la información de inter predicción en el modo de unión. La unidad 205 de estimación de información de inter predicción usa la información de codificación de bloques de predicción decodificados y almacenados en la memoria 114 de almacenamiento de información de codificación para derivar una pluralidad de candidatos de unión y añade los candidatos en la lista de candidatos de unión descrita más adelante. La unidad 205 de estimación de información de inter predicción selecciona un candidato de unión que corresponde al índice de unión recuperado mediante decodificación en la primera unidad 202 de decodificación de secuencia de bits y suministrado a partir de la misma. La unidad 205 de estimación de información de inter predicción suministra información de inter predicción que incluye el modo de predicción del candidato de unión seleccionado, el índice de referencia, el predictor de vector de movimiento, etc., a la unidad 206 de predicción de compensación de movimiento y almacena la información de inter predicción en la memoria 209 de almacenamiento de información de codificación. La unidad 205 de estimación de información de inter predicción suministra adicionalmente a la primera unidad 202 de decodificación de secuencia de bits el número de candidatos de unión derivados en la unidad 205 de estimación de información de inter predicción y añadidos en la lista de candidatos de unión. En el caso de conmutación entre parámetros de peso dependiendo del bloque de predicción como se describe a continuación, la unidad 205 de estimación de información de inter predicción suministra, además de la información de codificación descrita anteriormente, los parámetros de peso para predicción ponderada del candidato de unión seleccionado a la unidad 206 de predicción de compensación de movimiento. Además de la información de codificación anteriormente descrita del bloque de predicción codificado seleccionado, puede usarse información de codificación distinta de información de inter predicción tal como un parámetro de cuantificación para cuantificación, etc., para predicción. La unidad 205 de estimación de información de inter predicción puede suministrar tal información de codificación a la unidad 106 de decisión del procedimiento de predicción si se realiza tal predicción. Se describirá más adelante la configuración detallada y operación de la unidad 205 de estimación de información de inter predicción.
La unidad 206 de predicción de compensación de movimiento usa el vector de movimiento derivado mediante la unidad 204 de derivación de vector de movimiento para generar una señal de instantánea prevista de la instantánea de referencia mediante predicción de compensación de movimiento. La unidad 206 de predicción de compensación de movimiento suministra señal de la instantánea prevista a la unidad 208 de superposición de señal de instantánea decodificada. En el caso de bi-predicción, la unidad 206 de predicción de compensación de movimiento multiplica de manera adaptativa 2 señales de instantánea previstas de movimiento compensado de la predicción L0 y predicción L1 por los factores de peso. La unidad 208 de superposición de señal de instantánea decodificada superpone las señales resultantes para generar una señal de instantánea prevista final.
La unidad 207 de transformada de cuantificación inversa/ortogonal inversa somete la ortogonalidad transformada y señal residual cuantificada decodificada mediante la primera unidad 202 de decodificación de secuencia de bits a la cuantificación inversa y transformada ortogonal inversa para obtener la señal residual transformada de manera ortogonal inversa y la residual cuantificada inversa.
La unidad 208 de superposición de señal de instantánea decodificada superpone la señal de instantánea prevista sometida a predicción de compensación de movimiento mediante la unidad 206 de predicción de compensación de movimiento y la señal residual sometida a cuantificación inversa y la transformada ortogonal inversa mediante la unidad 207 de transformada de cuantificación inversa/ortogonal inversa una encima de la otra para recuperar una señal de instantánea decodificada. La unidad 208 de superposición de señal de instantánea decodificada almacena la señal de instantánea decodificada en la memoria 211 de instantánea decodificada. La instantánea decodificada puede someterse a filtración para reducir, por ejemplo, distorsión de bloque resultante de la codificación antes de que se almacene en la memoria 211 de instantánea decodificada.
El procedimiento de predicción de un vector de movimiento de acuerdo con la realización se realiza en la unidad 103 de derivación de diferencia de vector de movimiento del dispositivo de codificación de instantáneas en movimiento de la Figura 1 y en la unidad 204 de derivación de vector de movimiento del dispositivo de decodificación de instantáneas en movimiento de la Figura 2.
Antes de describir el procedimiento de predicción de un vector de movimiento de acuerdo con la realización, se definirán los términos y expresiones usados en la realización.
(Bloque de codificación)
En la realización, una pantalla se parte de manera equitativa en unidades con forma cuadrada de tamaños iguales como se muestra en la Figura 3. La unidad se define como un bloque de árbol, que es una unidad básica de gestión de dirección para designar un bloque en una instantánea sometida a codificación/decodificación (bloque sometido a codificación en el caso de codificación, y un bloque sometido a decodificación en el caso de decodificación). Dependiendo de la textura en la pantalla, un bloque de árbol puede dividirse en cuartos jerárquicamente según sea necesario para producir bloques de tamaños de bloque más pequeños para optimizar un procedimiento de codificación. El bloque se denominará como un bloque de codificación, que se define como un bloque básico en codificación y decodificación. Un bloque de árbol representa un bloque de codificación del tamaño máximo. Los bloques de codificación del tamaño mínimo más allá del cual se dividirán en cuartos adicionalmente se evita que se hagan referencia como bloques de codificación mínima.
(Bloque de predicción)
Cuando se parte una pantalla para el fin de compensación de movimiento, los tamaños de bloque más pequeños para compensación de movimiento darán como resultado una predicción más sofisticada. A este respecto, se adopta un esquema para compensación de movimiento en el que se seleccionan la forma de bloque óptima y el tamaño de bloque óptimo de múltiples formas de bloque y tamaños de bloque para partir un bloque de codificación en consecuencia para el fin de compensación de movimiento. Una unidad en la que se realiza compensación de movimiento se denominará como un bloque de predicción. Como se muestra en la Figura 4, un bloque de codificación que permanece no partido y definido como un único bloque de predicción (Figura 4A) se denominará como particiones de 2Nx2N, el particionamiento horizontal de un bloque de codificación para producir dos bloques de predicción (Figura 4B) se denominará como particiones de 2NxN, el particionamiento vertical de un bloque de codificación para producir dos bloques de predicción (Figura 4C) se denominará como particiones de Nx2N, y el particionamiento equitativo horizontal y vertical de una codificación para producir cuatro bloques de predicción (Figura 4D) se denominará como particiones de NxN.
Se asignan los números que empiezan con 0 a los bloques de predicción en el bloque de codificación para el fin de identificación de los bloques de predicción. El número se definirá como un índice de bloque de predicción puPartIdx. Los números introducidos para etiquetar los respectivos bloques de predicción en el bloque de codificación de la Figura 4 indican puPartIdx de los respectivos bloques de predicción.
(Grupo de bloques de predicción)
Un grupo comprendido de una pluralidad de bloques de predicción se define como un grupo de bloques de predicción. La Figura 5 muestra un grupo de bloques de predicción vecinos a un bloque de predicción sometido a codificación/decodificación en la misma instantánea que el bloque de predicción sometido a codificación/decodificación. La Figura 9 muestra un grupo de bloques de predicción codificados/decodificados ubicados en la misma posición que o en las cercanías del bloque de predicción sometido a codificación/decodificación en una instantánea en un punto de tiempo diferente del bloque de predicción sometido a codificación/decodificación. Se proporcionará una descripción de grupos de bloques de predicción de acuerdo con la realización con referencia a las Figuras 5, 6, 7, 8, y 9.
El primer grupo de bloques de predicción que incluye un bloque de predicción A1 vecino al bloque de predicción sometido a codificación/decodificación a la izquierda en la misma instantánea que el bloque de predicción sometido a codificación/decodificación, un bloque de predicción A0 vecino al bloque de predicción sometido a codificación/decodificación en la izquierda abajo, un bloque de predicción A2 vecino al bloque de predicción sometido a codificación/decodificación a la izquierda arriba (el mismo que un bloque de predicción B2 descrito más adelante) se definirá como un bloque de predicción vecino a la izquierda.
Incluso si, como se muestra en la Figura 6, el tamaño del bloque de predicción vecino al bloque de predicción sometido a codificación/decodificación a la izquierda es mayor que el del bloque de predicción sometido a codificación/decodificación, se observa la condición anteriormente mencionada. Más específicamente, el bloque de predicción A vecino a la izquierda se define como el bloque de predicción A1 si es vecino al bloque de predicción sometido a codificación/decodificación a la izquierda, se define como el bloque de predicción A0 si es vecino al bloque de predicción sometido a codificación/decodificación a la izquierda abajo, y se define como el bloque de predicción A2 si es vecino al bloque de predicción sometido a codificación/decodificación a la izquierda arriba.
Si, como se muestra en la Figura 7, el tamaño del bloque de predicción vecino al bloque de predicción sometido a codificación/decodificación a la izquierda es menor que el del bloque de predicción sometido a codificación/decodificación, y si hay una pluralidad de tales bloques, únicamente el bloque de predicción más inferior A10 se define como el bloque de predicción A1 vecino a la izquierda y se incluye en el grupo de bloques de predicción vecinos a la izquierda. Como alternativa, únicamente puede definirse el bloque de predicción más superior A12 como el bloque de predicción A1 vecino a la izquierda e incluirse en el grupo de bloques de predicción vecinos a la izquierda. Aún como alternativa, el bloque de predicción más inferior A10 y el bloque de predicción más superior A12 pueden ambos incluirse en el grupo de bloques de predicción vecinos a la izquierda. Aún como alternativa, todos los bloques de predicción vecinos a la izquierda A10, A11, y A12 pueden incluirse en el grupo de bloques de predicción vecinos a la izquierda. El primer grupo de bloques de predicción que incluye un bloque de predicción B1 vecino al bloque de predicción sometido a codificación/decodificación por encima en la misma instantánea que el bloque de predicción sometido a codificación/decodificación, un bloque de predicción B0 vecino al bloque de predicción sometido a codificación/decodificación a la derecha arriba, un bloque de predicción B2 vecino al bloque de predicción sometido a codificación/decodificación a la izquierda arriba (el mismo que el bloque de predicción<a>2) se definirá como un bloque de predicción vecino por encima.
Incluso si, como se muestra en la Figura 8, el tamaño del bloque de predicción vecino al bloque de predicción sometido a codificación/decodificación por encima es mayor que el del bloque de predicción sometido a codificación/decodificación, se observa la condición anteriormente mencionada. Más específicamente, el bloque de predicción B vecino por encima se define como el bloque de predicción B1 si es vecino al bloque de predicción sometido a codificación/decodificación por encima, se define como el bloque de predicción B0 si es vecino al bloque de predicción sometido a codificación/decodificación a la derecha arriba, y se define como el bloque de predicción B2 si es vecino al bloque de predicción sometido a codificación/decodificación a la izquierda arriba.
Si, como se muestra en la Figura 7, el tamaño del bloque de predicción vecino al bloque de predicción sometido a codificación/decodificación por encima es más pequeño, y hay una pluralidad de tales bloques, únicamente se define el bloque de predicción más a la derecha B10 como el bloque de predicción B1 vecino por encima y se incluye en el grupo de bloques de predicción vecinos por encima. Como alternativa, únicamente puede definirse el bloque de predicción más a la izquierda B12 como el bloque de predicción B1 vecino por encima y se incluye en el grupo de bloques de predicción vecinos por encima. Aún como alternativa, el bloque de predicción más a la derecha B10 y el bloque de predicción más a la izquierda B12 pueden ambos estar incluidos en el grupo de bloques de predicción vecinos por encima. Aún como alternativa, todos los bloques de predicción vecinos por encima pueden estar incluidos en el grupo de bloques de predicción vecinos por encima.
El bloque de predicción A2/B2 vecino a la derecha arriba se incluye en el grupo de bloques de predicción vecinos a la izquierda y en el grupo de bloques de predicción vecinos por encima. Si se describe el grupo de bloques de predicción vecinos a la izquierda, a continuación se denominará el bloque como el bloque de predicción A2. Si se describe el grupo de bloques de predicción vecinos por encima, entonces se definirá el bloque como el bloque de predicción B2.
De acuerdo con el esquema descrito en el presente documento, se aumenta la posibilidad de hallar un candidato de predictor de vector de movimiento permitiendo que el bloque de predicción vecino a la izquierda arriba tanto en el grupo de bloques de predicción vecinos a la izquierda como en el grupo de bloques de predicción vecinos por encima. El volumen de procesamiento máximo no se aumentará si se realiza procesamiento paralelo. En el caso de procesamiento en serie, puede permitirse que el bloque de predicción vecino a la izquierda arriba pertenezca únicamente a uno de los grupos si debiera ponderarse la reducción en el volumen de procesamiento.
Como se muestra en la Figura 9, el tercer grupo de bloques de predicción comprendido de bloques de predicción codificados/decodificados T0, T1, T2, T3, y T4 ubicados en la misma posición que o en las cercanías del bloque de predicción sometido a codificación/decodificación en una instantánea en un punto de tiempo diferente del bloque de predicción sometido a codificación/decodificación se definirá como un grupo de bloques de predicción en un punto de tiempo diferente.
(Lista de referencias)
En el procedimiento de codificación o decodificación, un número de instantánea de referencia se designa desde los índices de referencia en cada lista de referencias LX y se hace referencia a la instantánea de referencia identificada de esta manera. Se proporcionan L0 y L1 de modo que 0 o 1 puede sustituirse en X. La inter predicción en la que se denomina a una instantánea de referencia añadida en la lista de referencias L0 se denominará como predicción L0 (Pred_L0). La predicción de compensación de movimiento en la que se hace referencia a una instantánea de referencia añadida en la lista de referencias L1 se denominará como predicción L1 (Pred_L1). La predicción L0 se usa principalmente para predicción hacia delante, y la predicción L1 se usa principalmente para predicción hacia atrás. Únicamente está disponible predicción l0 para los cortes P. Para los cortes B, está disponible la predicción L0, predicción L1, y bi-predicción en la que se promedian o añaden la predicción L0 y predicción L1 con ponderación. Supondremos en los procedimientos descritos a continuación que se emiten los valores con un sufijo LX para cada una de la predicción L0 y la predicción L1.
(POC)
POC es una variable mapeada a una instantánea codificada. Un valor incrementado en 1 en un momento en una secuencia de salida se establece en POC. Un valor de POC permite una decisión en cuanto a si las instantáneas son idénticas, una decisión de relación anteroposterior entre instantáneas en una secuencia de salida, o una decisión de una distancia entre instantáneas. Por ejemplo, se determina que dos instantáneas son idénticas entre sí si tienen el mismo valor de POC. Si dos instantáneas tienen diferentes valores de POC, la de con un POC más pequeño se determina que debe emitirse en primer lugar. La diferencia en POC entre dos instantáneas indica una distancia inter-fotograma.
El procedimiento de predicción de un vector de movimiento de acuerdo con la realización se describirá con referencia a los dibujos. El procedimiento de predicción de un vector de movimiento se ejecuta en unidades de bloques de predicción que crean un bloque de codificación. El procedimiento se realiza tanto en un procedimiento de codificación como en un procedimiento de decodificación. Suponiendo que se selecciona codificación inter-instantánea basada en compensación de movimiento (inter predicción), y en el caso de codificación, se ejecuta el procedimiento de predicción de vector de movimiento cuando se deriva un predictor de vector de movimiento usando un vector de movimiento codificado, que se usa para derivar una diferencia de vector de movimiento sometida a codificación de un vector de movimiento sometido a codificación. En el caso de decodificación, se ejecuta el procedimiento de predicción de vector de movimiento cuando se deriva un predictor de vector de movimiento usando un vector de movimiento codificado usado para derivar un vector de movimiento sometido a decodificación.
(Sintaxis)
Se proporcionará en primer lugar una descripción de la sintaxis, que es una regla común a codificación y decodificación de una secuencia de bits de instantáneas en movimiento codificadas por un dispositivo de codificación de instantáneas en movimiento proporcionado con el procedimiento de predicción de vector de movimiento de acuerdo con la realización.
La Figura 10 muestra un primer patrón de sintaxis escrito en un encabezado de corte de cada corte en una secuencia de bits generados de acuerdo con la realización. En el caso de realización de compensación de predicción inter-instantánea basada en movimiento (inter predicción) en unidades de cortes, es decir, si el tipo de corte es P (uni-predicción) o B (bi-predicción), se establece una primera bandera mv_competition_temporal_flag. La primera bandera mv_competition_temporal_flag indica, en un bloque de predicción en el que no se define el modo de unión para inter predicción, si predecir un vector de movimiento usando un vector de movimiento de un bloque de predicción ubicado en la misma posición que o en las cercanías del bloque de predicción objetivo en una instantánea en un punto de tiempo diferente así como usando un vector de movimiento de un bloque de predicción vecino en la misma instantánea, e indica, en un bloque de predicción en el que se define el modo de unión para inter predicción, si realizar inter predicción usando información de codificación de un bloque de predicción ubicado en la misma posición que o en las cercanías del bloque de predicción objetivo en una instantánea en un punto de tiempo diferente así como usando información de codificación de un bloque de predicción vecino en la misma instantánea.
Además, si se cumple mv_competition_temporal_flag (1), se establece una segunda bandera mv_temporal_high_priority_flag. La segunda bandera mv_temporal_high_priority_flag indica, en un bloque de predicción en el que no se define el modo de unión par inter predicción, si añadir, en una lista de MVP descrita más adelante, un candidato de vector de movimiento de un bloque de predicción ubicado en la misma posición que o en las cercanías del bloque de predicción objetivo en una instantánea en un punto de tiempo diferente en preferencia a otros bloques, e indica, en un bloque de predicción en el que se define el modo de unión para inter predicción, si añadir, en una lista de candidatos de unión descrita más adelante, un candidato de unión ubicado en la misma posición que o en las cercanías del bloque de predicción objetivo en una instantánea en un punto de tiempo diferente en preferencia a cualquier otro candidato. El valor puede fijarse a verdadero (1) o falso (0) para simplificación de un procedimiento de decisión descrito más adelante. El valor puede cambiarse de manera adaptativa fotograma a fotograma para mejorar la eficacia de codificación. De esta manera, se reduce adicionalmente el tamaño de código.
Estableciendo mv_temporal_high_priority_flag a verdadero (1) si la instantánea sometida a codificación/decodificación está a una pequeña distancia de la instantánea de referencia más cercana, y estableciendo mv_temporal_high_priority_flag a falso (0) si la instantánea sometida a codificación/decodificación está a una gran distancia de la instantánea de referencia, se reduce el tamaño de código de un índice de MVP o un índice de unión, que se describe más adelante. Esto es debido a que, si la distancia es relativamente pequeña, puede determinarse que un candidato de MVP o un candidato de unión de un punto de tiempo diferente es relativamente más adecuado como un candidato. Por ejemplo, si la tasa de fotogramas 30 Hz, y la distancia entre la instantánea sometida a codificación/decodificación y la instantánea de referencia más cercana son X fotogramas (X=1 - 3) o menor, mv_temporal_high_priority_flag puede establecerse a verdadero (1). Si la distancia entre las instantáneas sometidas a codificación/decodificación y la instantánea de referencia es más de X fotogramas, mv_temporal_high_priority_flag puede establecerse a verdadero (0). De esta manera, puede reducirse el tamaño de código de índices de MVP o índices de unión, descrito más adelante. Si la distancia es pequeña, se determina que la fiabilidad de inter predicción es más alta que cuando la distancia es grande de modo que el candidato es más adecuado. Modificando el umbral X dependiendo del contenido de la secuencia, se reduce el tamaño de código de manera más eficaz. En el caso de una secuencia de movimiento rico y complicado, se mejora la eficacia de codificación reduciendo el umbral X y reduciendo de esta manera el orden de prioridad del candidato de MVP o candidato de unión en la dimensión temporal. Como alternativa, puede controlarse el orden de prioridad basándose en estadísticas obtenidas durante el procedimiento de codificación. Si, como resultado de contabilizar el número de candidatos seleccionados codificados durante el procedimiento de codificación, se determina que el número de candidatos de vector de movimiento o el número de candidatos de unión para bloques de predicción ubicados en la misma posición que el bloque de predicción objetivo en una instantánea en un punto de tiempo diferente es mayor que el número de vectores de movimiento para bloques de predicción vecinos al bloque objetivo a la izquierda o por encima en la misma instantánea, mv_temporal_high_priority_flag para la instantánea posterior sometida a codificación se establece a verdadero (1). Si el primer número es menor que el último número, y si la distancia entre la instantánea sometida a codificación/decodificación se encuentra a una gran distancia de la instantánea de referencia, la bandera se establece a falso (0). De esta manera, puede reducirse el tamaño de código de índices de MVP o índices de unión, descrito más adelante.
Si el tipo de corte es "B", se establece una tercera bandera collocated_from_10_flag. La bandera collocated_from_10_flag se define para indicar cuál de la lista de referencias de L0 y la lista de referencias L1 para la instantánea que incluye el bloque de predicción objetivo incluye la instantánea colPic ubicada en un punto de tiempo diferente y se usa para derivar el candidato de predictor de vector de movimiento o el candidato de unión en la dimensión temporal.
Además, si el tipo de corte es P (uni-predicción) o B (bi-predicción), se establece una cuarta bandera mv_list_adaptive_idx_flag. La bandera mv_list_adaptive_idx_flag se define para indicar si el orden de adición en la lista de MVP o la lista de candidatos de unión descrita más adelante se cambia de manera adaptativa dependiendo del bloque de predicción.
Los elementos de sintaxis anteriormente descritos pueden definirse en un conjunto de parámetros de instantánea que definen elementos de sintaxis en unidades de instantáneas.
Pueden proporcionarse variaciones de la primera bandera mv_competition_temporal_flag, de la segunda bandera mv_temporal_high_priority_flag, de la tercera bandera collocated_from_10_flag, y de la cuarta bandera mv_list_adaptive_idx_flag para predicción de movimiento de no unión y para el modo de unión y controlarse de manera independiente.
La Figura 11 muestra un patrón de sintaxis definido para cada bloque de predicción. Si se sustituye el valor MODE_INTER en PredMode, que indica el modo de predicción del bloque de predicción, se establece una bandera merge_flag[x0][y0] que indica si se usa el modo de unión. x0 y y0 son índices que indican la posición del píxel izquierda arriba en el bloque de predicción en la pantalla producida mediante las señales de luminancia. merge_flag[x0][y0] es una bandera definida para indicar si se usa el modo de unión en la predicción ubicada en (x0, y0) en la pantalla.
Si merge_flag[x0][y0] es 1, significa que se usa el modo de unión. Si NumMergeCand supera 1, se establece un elemento de sintaxis merge_idx[x0][y0], que indica un índice en una lista de unión (una lista de candidatos de predictor de vector de movimiento a los que se hace referencia). x0 y y0 son índices que indican la posición del píxel izquierdo arriba en el bloque de predicción en la pantalla. merge_idx[x0][y0] es un índice de unión para el bloque de predicción ubicado en (x0, y0) en la pantalla. La función NumMergeCand indica el número de candidatos de unión y se describirá más adelante. El elemento de sintaxis merge_idx[x0][y0], que indica un índice en una lista de unión, se codifica únicamente cuando el número de candidatos de unión NumMergeCand es más de 1 puesto que, si el número total de candidatos de predictor de vector de movimiento es 1, ese candidato será el objetivo de unión de modo que el candidato de unión al que se hace referencia se identifica de manera inequívoca sin transmitir merge_idx[x0][y0].
Mientras tanto, si merge_flag[x0][y0] es 0, significa que no se usa el modo de unión. En el caso de que el tipo de corte sea B, se establece un elemento de sintaxis inter_pred_flag[x0][y0] para discriminar entre diferentes modos de inter predicción. Para cada lista de referencias LX (X=0 o 1), se establece un elemento de sintaxis ref_idx_lX[x0][y0], que indica un índice de instantánea de referencia para identificar una instantánea de referencia, un elemento de sintaxis mvd_lX[x0][y0][j], que indica una diferencia de vector de movimiento entre un vector de movimiento para un bloque de predicción determinado a través de estimación de vector de movimiento y un predictor de vector de movimiento. X es cualquiera de 0 o 1 e indica una dirección de predicción, el índice x0 en la matriz indica la coordenada x de un bloque de predicción, y0 indica la coordenada y del bloque de predicción, y j indica un componente de la diferencia de vector de movimiento, indicando j=0 un componente x, e indicando y j=1 un componente y. Si el número total de candidatos de predictor de vector de movimiento supera 1, se establece un elemento de sintaxis mvp_idx_lX[x0][y0], que indica un índice en una lista de MVP (una lista de candidatos de predictor de vector de movimiento a los que se hace referencia). x0 y y0 son índices que indican la posición del píxel izquierdo arriba en el bloque de predicción en la pantalla. mvp_idx_lX[x0][y0] es un índice de MVP en una lista LX para el bloque de predicción ubicado en (x0, y0) en la pantalla. El sufijo L<x>indica una lista de referencias. Se proporcionan L0 y L1 de modo que pueden sustituirse 0 o 1 en X. NumMVPCand (LX) es una función para derivar el número total de candidatos de predictor de vector de movimiento para el bloque de predicción identificado en la dirección de predicción LX (X es cualquiera de 0 o 1). El índice mvp_idx_lX[x0][y0] en la lista de MVP se codifica únicamente cuando el procedimiento de predicción de un vector de movimiento identifica el número total de candidatos de predictor de vector de movimiento NumMVPCand (LX) como que supera 1. Esto es debido a que, si el número total de candidatos de predictor de vector de movimiento es 1, ese candidato será el predictor de vector de movimiento que va a usarse de modo que el candidato de predictor de vector de movimiento al que se hace referencia se identifica de manera inequívoca sin transmitir mvp_idx_lX[x0][y0].
(Predicción de un vector de movimiento en codificación)
Se proporcionará una descripción de la operación del procedimiento de predicción de un vector de movimiento de acuerdo con la realización realizada en el dispositivo de codificación de instantáneas en movimiento para codificar una secuencia de bits de instantáneas en movimiento de acuerdo con la sintaxis anteriormente descrita. El procedimiento de predicción de un vector de movimiento se aplica a un bloque de predicción para el que se realiza compensación de movimiento basada en inter predicción en unidades de cortes, es decir, se aplica si el tipo de corte indica un corte P (corte predictivo) o un corte B (corte bi-predictivo), y si se identifica inter predicción (MODE_INTER) para el bloque de predicción en el corte.
La Figura 12 muestra la configuración detallada de la unidad 103 de derivación de diferencia de vector de movimiento del dispositivo de codificación de instantáneas en movimiento de la Figura 1. La parte delimitada mediante la línea gruesa en la Figura 12 representa la unidad 103 de derivación de diferencia de vector de movimiento.
La parte delimitada mediante la línea discontinua gruesa en su interior indica la parte donde se realiza el procedimiento de predicción de un vector de movimiento descrito más adelante. El dispositivo de decodificación de instantáneas en movimiento que corresponde al dispositivo de codificación de instantáneas en movimiento de acuerdo con la realización contiene una parte similar de modo que se obtiene el mismo resultado de decisión consistente en el lado de codificación y en el lado de decodificación. El procedimiento de predicción de un vector de movimiento se describirá con referencia a los dibujos.
La unidad 103 de derivación de diferencia de vector de movimiento incluye una unidad 120 de generación de candidato de predictor de vector de movimiento, una unidad 121 de adición de predictor de vector de movimiento, una unidad 122 de decisión de candidato de predictor de vector de movimiento idéntico, una 123 unidad de derivación de tamaño de código de candidato de predictor de vector de movimiento, una unidad 124 de selección de predictor de vector de movimiento, y una unidad 125 de resta de vector de movimiento. La unidad 103 de derivación de diferencia de vector de movimiento deriva predictores de vectores de movimiento que indican diferencias en vectores de movimiento y se usan en el procedimiento de inter predicción seleccionado para el bloque sometido a codificación. Más específicamente, la unidad 103 de derivación de diferencia de vector de movimiento deriva una diferencia de vector de movimiento que indica una diferencia entre vectores de movimiento para predicción L0, si se define la predicción L0 para el bloque sometido a codificación. Si se define la predicción L1 para el bloque sometido a codificación, la unidad 103 de derivación de diferencia de vector de movimiento deriva una diferencia de vector de movimiento que indica una diferencia entre vectores de movimiento para la predicción L1. Si se define la bi-predicción para el bloque sometido a codificación, se realiza tanto predicción L0 como predicción L1. Se define una diferencia de vector de movimiento entre vectores de movimiento para predicción L0, y una diferencia de vector de movimiento entre vectores de movimiento para predicción L1.
Para cada una de la lista de referencias (L0, L1), la unidad 120 de generación de candidato de predictor de vector de movimiento deriva mvLXA, mvLXB, y mvLXCol para tres grupos de bloques de predicción, respectivamente, los tres grupos que incluyen: el grupo de bloques de predicción vecinos a la izquierda (el grupo de bloques de predicción vecinos al bloque de predicción sometido a codificación a la izquierda en la misma instantánea que el bloque de predicción objeto: A0, A1, A2 de la Figura 5); el grupo de bloques de predicción vecinos por encima (el grupo de bloques de predicción vecinos al bloque de predicción sometido a codificación por encima en la misma instantánea como el bloque de predicción objeto: B0, B1, B2 de la Figura 5); y el grupo de bloques de predicción en un punto de tiempo diferente (el grupo de bloques de predicción codificados ubicados en la misma posición que o en las cercanías del bloque de predicción sometido a codificación en una instantánea en un punto de tiempo diferente del bloque de predicción sometido a codificación: T0, T1, T2, T3 de la Figura 9). La unidad 120 de generación de candidato de predictor de vector de movimiento define mvLXA, mvLXB, y mvLXCol como candidatos de predictor de vector de movimiento y suministra los candidatos a la unidad 121 de adición de predictor de vector de movimiento. En lo sucesivo, se definirán mvLXA y mvLXB como vectores de movimiento espaciales, y se definirá mvLXCol como un vector de movimiento temporal. Para derivación de un candidato de predictor de vector de movimiento, la unidad 120 de generación de candidato de predictor de vector de movimiento usa información de codificación que incluye el modo de predicción del bloque de predicción codificado almacenado en la memoria 114 de almacenamiento de información de codificación, los índices de referencia en cada lista de referencias, POC de la instantánea de referencia, el vector de movimiento, etc.
Los candidatos de predictor de vector de movimiento mvLXA, mvLXB, y mvLXCol pueden derivarse escalando de acuerdo con la relación entre el POC de la instantánea sometida a codificación y el POC de la instantánea de referencia.
La unidad 120 de generación de candidato de predictor de vector de movimiento comprueba bloques de predicción en cada grupo de bloques de predicción en un orden predefinido para determinar si se cumplen condiciones predeterminadas descritas más adelante. La unidad 120 de generación de candidato de predictor de vector de movimiento selecciona el vector de movimiento del bloque de predicción que coincide en primer lugar con la condición y define el vector de movimiento seleccionado como el candidato de predictor de vector de movimiento mvLXA, mvLXB, o mvLXCol.
Comprobando mediante la unidad 120 de generación de candidato de predictor de vector de movimiento de los bloques de predicción para determinar si se cumplen las condiciones descritas más adelante continúa: en el orden desde la parte inferior a la parte superior en el grupo de bloques de predicción vecinos a la izquierda (en el orden A0, A1, A2 de la Figura 5) para derivar un predictor de vector de movimiento del grupo de bloques de predicción vecinos a la izquierda; en el orden de derecha a izquierda en el grupo de bloques de predicción vecinos por encima (en el orden B0, B1, B2 de la Figura 5) para derivar un predictor de vector de movimiento del grupo de bloques de predicción vecinos por encima; y en el orden T0, T1, T2, T3 de la Figura 9 para derivar un predictor de vector de movimiento del grupo de bloques de predicción en un punto de tiempo diferente. La unidad 120 de generación de candidato de predictor de vector de movimiento selecciona el vector de movimiento del bloque de predicción que cumple en primer lugar con la condición y define el vector de movimiento seleccionado como el candidato de predictor de vector de movimiento mvLXA, mvLXB, o mvLXCol.
En otras palabras, al bloque de predicción más inferior en el grupo de bloques de predicción vecinos a la izquierda se le proporciona la prioridad más alta, y se asigna la prioridad a los bloques en el orden descendente desde la parte inferior a la parte superior. Al bloque de predicción más a la derecha en el grupo de bloques de predicción vecinos por encima se le proporciona la prioridad más alta, y se asigna la prioridad a los bloques en el orden descendente de derecha a izquierda. Se le proporciona al bloque de predicción T0 la prioridad más alta en el grupo de bloques de predicción en un punto de tiempo diferente, y se asigna la prioridad en el orden descendente de T0, T1, T2, t 3. El orden de prioridad basándose en la posición de bloques de predicción se definirá como el orden de prioridad A.
(Explicación de un bucle para comprobación contra las condiciones)
El grupo de bloques de predicción vecinos a la izquierda y el grupo de bloques de predicción vecinos por encima se comprueban si se cumplen las siguientes condiciones 1, 2, 3, 4 en el orden establecido. Una excepción a esto es el procedimiento 5 descrito más adelante, en el que se aplican las condiciones en el orden 1, 3, 2, 4.
Condición 1: Para predicción en el bloque de predicción vecino, se usa la misma lista de referencias e índice de referencia (fotograma de referencia) al derivar un vector de movimiento desde el que se deriva una diferencia de vector de movimiento para el bloque de predicción sometido a codificación/decodificación. Condición 2: Para predicción en el bloque de predicción vecino, se usa una lista de referencias diferente de la lista usada al derivar un vector de movimiento, desde el que se deriva una diferencia de vector de movimiento para el bloque de predicción sometido a codificación/decodificación, y se usa el mismo fotograma de referencia en el bloque de predicción sometido a codificación/decodificación.
Condición 3: Para predicción en el bloque de predicción vecino, se usa la misma lista de referencias que se usa al derivar un vector de movimiento, desde el que se deriva una diferencia de vector de movimiento para el bloque de predicción sometido a codificación/decodificación, y un fotograma de referencia diferente del fotograma que se usa en el bloque de predicción sometido a codificación/decodificación.
Condición 4: Para predicción en el bloque de predicción vecino, se usa una lista de referencias y un fotograma de referencia diferente de aquellos usados al derivar un vector de movimiento, desde el que se deriva una diferencia de vector de movimiento para el bloque de predicción sometido a codificación/decodificación.
El orden de prioridad basándose en las condiciones enumeradas anteriormente se denominará como el orden de prioridad B. Si se cumple cualquiera de estas condiciones, se determina que está disponible un vector de movimiento que cumple la condición en el bloque de predicción de modo que no se comprueban los bloques posteriores para determinar si se cumplen las condiciones. Si se cumple la condición 1 o la condición 2, el vector de movimiento para el bloque de predicción vecino que cumple la condición corresponde a la misma lista de referencias y de esta manera se define directamente como el candidato de predictor de vector de movimiento. Si se cumple la condición 3 o la condición 4, el vector de movimiento para el bloque vecino que cumple la condición corresponde a un fotograma de referencia diferente de modo que el vector de movimiento se somete a escalamiento antes de que se defina como el candidato de predictor de vector de movimiento. Si se comprueban los bloques de predicción contra las condiciones en la secuencia en lugar de en paralelo, y si se determina, al comprobar el segundo grupo de bloques de predicción en secuencia (por ejemplo, al comprobar el grupo de bloques de predicción vecinos por encima, en el caso de que se compruebe el grupo de bloques de predicción vecinos a la izquierda contra las condiciones en primer lugar), el candidato de predictor de vector de movimiento para el grupo de bloques de predicción es del mismo valor como el candidato de predictor de vector de movimiento determinado en el grupo de bloques de predicción anterior, puede no emplearse el candidato de predictor de vector de movimiento identificado en el segundo grupo y el control puede continuar para comprobar el siguiente bloque de predicción contra las condiciones. Continuando comprobando el siguiente grupo de bloques de predicción como se ha descrito anteriormente, puede evitarse la reducción en el número de candidatos de predictor de vector de movimiento.'
Pueden definirse los siguientes cuatro procedimientos como un medio para formular un bucle para explorar los bloques de predicción espacial. La idoneidad y el volumen de procesamiento máximo diferente dependiendo del procedimiento. Estos factores se tienen en cuenta, y se selecciona uno de los siguientes procedimientos y se definen para su uso. Únicamente se describirá un procedimiento 1 en detalle con referencia a los diagramas de flujo de las Figuras 17-21. Un experto en la materia podría diseñar las etapas para implementar los otros procedimientos 2-4 de conformidad con las etapas para implementar el procedimiento 1, de modo que se omitirá una descripción detallada. La siguiente descripción se refiere a procesamiento de bloques de predicción espacial en un bucle en el dispositivo de codificación de instantáneas en movimiento. Sin embargo, el procedimiento en el dispositivo de decodificación de instantáneas en movimiento podría ser similar al procedimiento descrito a continuación.
Procedimiento 1: Se aplica una de las cuatro condiciones a un bloque de predicción dado. Si no se cumple la condición, se aplica la condición al siguiente bloque de predicción. Cuando se han comprobado los bloques de predicción contra las condiciones, pasando a través de cuatro ciclos, se termina el procedimiento. Más específicamente, se aplican las condiciones en el siguiente orden de prioridad (N es A o B).
1. Bloque de predicción de comprobación N0 contra la condición 1 (misma lista de referencia, mismo fotograma de referencia)
2. Bloque de predicción de comprobación N1 contra la condición 1 (misma lista de referencia, mismo fotograma de referencia)
3. Bloque de predicción de comprobación N2 contra la condición 1 (misma lista de referencia, mismo fotograma de referencia)
4. Bloque de predicción de comprobación N0 contra la condición 2 (diferente lista de referencias, mismo fotograma de referencia)
5. Bloque de predicción de comprobación N1 contra la condición 2 (diferente lista de referencias, mismo fotograma de referencia)
6. Bloque de predicción de comprobación N2 contra la condición 2 (diferente lista de referencias, mismo fotograma de referencia)
7. Bloque de predicción de comprobación N0 contra la condición 3 (misma lista de referencia, diferente fotograma de referencia)
8. Bloque de predicción de comprobación N1 contra la condición 3 (misma lista de referencia, diferente fotograma de referencia)
9. Bloque de predicción de comprobación N2 contra la condición 3 (misma lista de referencia, diferente fotograma de referencia)
10. Bloque de predicción de comprobación N0 contra la condición 4 (diferente lista de referencias, diferente fotograma de referencia)
11. Bloque de predicción de comprobación N1 contra la condición 4 (diferente lista de referencias, diferente fotograma de referencia)
12. Bloque de predicción de comprobación N2 contra la condición 4 (diferente lista de referencias, diferente fotograma de referencia)
De acuerdo con el procedimiento 1, un predictor de vector de movimiento que usa la misma lista de referencias que el bloque objetivo y que no requiere escalamiento es probable que se seleccione de modo que el tamaño de código de la diferencia de vector de movimiento es probable que se reduzca de manera ventajosa.
Procedimiento 2: Se proporciona prioridad a la selección de un predictor de vector de movimiento que usa el mismo fotograma de predicción y que no requiere escalamiento. Se aplican de manera sucesiva dos de las cuatro condiciones aplicadas a cada bloque de predicción. Si no se cumplen las condiciones, se aplican a continuación las condiciones al siguiente bloque de predicción. En el primer ciclo, se aplican las condiciones 1 y 2. En el siguiente ciclo a través de los bloques de predicción, se aplican las condiciones 3 y 4. Más específicamente, se aplican las condiciones en el siguiente orden de prioridad (N es A o B).
1. Bloque de predicción de comprobación N0 contra la condición 1 (misma lista de referencia, mismo fotograma de referencia)
2. Bloque de predicción de comprobación N0 contra la condición 2 (diferente lista de referencias, mismo fotograma de referencia)
3. Bloque de predicción de comprobación N1 contra la condición 1 (misma lista de referencia, mismo fotograma de referencia)
4. Bloque de predicción de comprobación N1 contra la condición 2 (diferente lista de referencias, mismo fotograma de referencia)
5. Bloque de predicción de comprobación N2 contra la condición 1 (misma lista de referencia, mismo fotograma de referencia)
6. Bloque de predicción de comprobación N2 contra la condición 2 (diferente lista de referencias, mismo fotograma de referencia)
7. Bloque de predicción de comprobación N0 contra la condición 3 (misma lista de referencia, diferente fotograma de referencia)
8. Bloque de predicción de comprobación N0 contra la condición 4 (diferente lista de referencias, diferente fotograma de referencia)
9. Bloque de predicción de comprobación N1 contra la condición 3 (misma lista de referencia, diferente fotograma de referencia)
10. Bloque de predicción de comprobación N1 contra la condición 4 (diferente lista de referencias, diferente fotograma de referencia)
11. Bloque de predicción de comprobación N2 contra la condición 3 (misma lista de referencia, diferente fotograma de referencia)
12. Bloque de predicción de comprobación N2 contra la condición 4 (diferente lista de referencias, diferente fotograma de referencia)
De acuerdo con el procedimiento 2, como en el procedimiento 1, un predictor de vector de movimiento que usa la misma lista de referencias como el bloque objetivo y que no requiere escalamiento es probable que se seleccione de modo que el tamaño de código de la diferencia de vector de movimiento es probable que se reduzca de manera ventajosa. Además, el número máximo de ciclos es 2 de modo que el número de accesos a la información de codificación de bloques de predicción en la memoria es menor que el del procedimiento 1 y se reduce en consecuencia la complejidad requerida en la implementación de hardware.
Procedimiento 3: En el primer ciclo, se aplica la condición 1 a los bloques de predicción. Si no se cumple la condición, se aplica a continuación la condición al siguiente bloque de predicción. En el siguiente ciclo, se aplican las condiciones 2, 3, y 4 a cada bloque de predicción antes de continuar al siguiente bloque de predicción. Más específicamente, se aplican las condiciones en el siguiente orden de prioridad (N es A o B).
1. Bloque de predicción de comprobación N0 contra la condición 1 (misma lista de referencia, mismo fotograma de referencia)
2. Bloque de predicción de comprobación N1 contra la condición 1 (misma lista de referencia, mismo fotograma de referencia)
3. Bloque de predicción de comprobación N2 contra la condición 1 (misma lista de referencia, mismo fotograma de referencia)
4. Bloque de predicción de comprobación N0 contra la condición 2 (diferente lista de referencias, mismo fotograma de referencia)
5. Bloque de predicción de comprobación N0 contra la condición 3 (misma lista de referencia, diferente fotograma de referencia)
6. Bloque de predicción de comprobación N0 contra la condición 4 (diferente lista de referencias, diferente fotograma de referencia)
7. Bloque de predicción de comprobación N1 contra la condición 2 (misma lista de referencia, diferente fotograma de referencia)
8. Bloque de predicción de comprobación N1 contra la condición 3 (misma lista de referencia, diferente fotograma de referencia)
9. Bloque de predicción de comprobación N1 contra la condición 4 (diferente lista de referencias, diferente fotograma de referencia)
10. Bloque de predicción de comprobación N2 contra la condición 2 (diferente lista de referencias, mismo fotograma de referencia)
11. Bloque de predicción de comprobación N2 contra la condición 3 (misma lista de referencia, diferente fotograma de referencia)
12. Bloque de predicción de comprobación N2 contra la condición 4 (diferente lista de referencias, diferente fotograma de referencia)
De acuerdo con el procedimiento 3, un predictor de vector de movimiento que usa la misma lista de referencias y el mismo fotograma de referencia que el bloque objetivo y que no requiere escalamiento es probable que se seleccione de modo que el tamaño de código de la diferencia de vector de movimiento es probable que se reduzca de manera ventajosa. Además, el número máximo de ciclos es 2 de modo que el número de accesos a la información de codificación de bloques de predicción en la memoria es menor que el del procedimiento 1 y se reduce en consecuencia la complejidad requerida en la implementación de hardware.
Procedimiento 4: Se aplican sucesivamente cuatro condiciones a un bloque de predicción dado. Si no se cumple ninguna de las condiciones, se determina que ningún vector de movimiento que adapta las condiciones está disponible en el bloque de predicción de modo que se aplican las condiciones al siguiente bloque de predicción. Se le proporciona prioridad para aplicar de manera sucesiva las condiciones a un bloque de predicción dado. Más específicamente, se aplican las condiciones en el siguiente orden de prioridad (N es A o B).
1. Bloque de predicción de comprobación N0 contra la condición 1 (misma lista de referencia, mismo fotograma de referencia)
2. Bloque de predicción de comprobación N0 contra la condición 2 (diferente lista de referencias, mismo fotograma de referencia)
3. Bloque de predicción de comprobación N0 contra la condición 3 (misma lista de referencia, mismo fotograma de referencia)
4. Bloque de predicción de comprobación N0 contra la condición 4 (diferente lista de referencias, diferente fotograma de referencia)
5. Bloque de predicción de comprobación N1 contra la condición 1 (misma lista de referencia, mismo fotograma de referencia)
6. Bloque de predicción de comprobación N1 contra la condición 2 (diferente lista de referencias, mismo fotograma de referencia)
7. Bloque de predicción de comprobación N1 contra la condición 3 (misma lista de referencia, diferente fotograma de referencia)
8. Bloque de predicción de comprobación N1 contra la condición 4 (diferente lista de referencias, diferente fotograma de referencia)
9. Bloque de predicción de comprobación N2 contra la condición 1 (misma lista de referencia, mismo fotograma de referencia)
10. Bloque de predicción de comprobación N2 contra la condición 2 (diferente lista de referencias, diferente fotograma de referencia)
11. Bloque de predicción de comprobación N2 contra la condición 3 (misma lista de referencia, diferente fotograma de referencia)
12. Bloque de predicción de comprobación N2 contra la condición 4 (diferente lista de referencias, diferente fotograma de referencia)
De acuerdo con el procedimiento 4, el número máximo de ciclos es 1 de modo que el número de acceso a la información de codificación de bloques de predicción en la memoria es menor que el del procedimiento 1, el procedimiento 2, o el procedimiento 3 y se reduce en consecuencia la complejidad requerida en la implementación de hardware.
Procedimiento 5: Como en el procedimiento 4, se aplican de manera sucesiva cuatro condiciones a un bloque de predicción dado. Si no se cumple ninguna de las condiciones, se determina que ningún vector de movimiento que adapta las condiciones está disponible en el bloque de predicción de modo que se aplican las condiciones al siguiente bloque de predicción. Se le proporciona prioridad para aplicar de manera sucesiva las condiciones a un bloque de predicción dado. Aunque el procedimiento 4 proporciona prioridad haciendo referencia al mismo fotograma de referencia al comprobar un bloque de predicción dado contra las condiciones, el procedimiento 5 proporciona prioridad haciendo referencia a la misma lista de referencias. Más específicamente, se aplican las condiciones en el siguiente orden de prioridad (N es A o B).
1. Bloque de predicción de comprobación N0 contra la condición 1 (misma lista de referencia, mismo fotograma de referencia)
2. Bloque de predicción de comprobación N0 contra la condición 3 (misma lista de referencia, diferente fotograma de referencia)
3. Bloque de predicción de comprobación N0 contra la condición 2 (diferente lista de referencias, mismo fotograma de referencia)
4. Bloque de predicción de comprobación N0 contra la condición 4 (diferente lista de referencias, diferente fotograma de referencia)
5. Bloque de predicción de comprobación N1 contra la condición 1 (misma lista de referencia, mismo fotograma de referencia)
6. Bloque de predicción de comprobación N1 contra la condición 3 (misma lista de referencia, diferente fotograma de referencia)
7. Bloque de predicción de comprobación N1 contra la condición 2 (diferente lista de referencias, mismo fotograma de referencia)
8. Bloque de predicción de comprobación N1 contra la condición 4 (diferente lista de referencias, diferente fotograma de referencia)
9. Bloque de predicción de comprobación N2 contra la condición 1 (misma lista de referencia, mismo fotograma de referencia)
10. Bloque de predicción de comprobación N2 contra la condición 3 (misma lista de referencia, diferente fotograma de referencia)
11. Bloque de predicción de comprobación N2 contra la condición 2 (diferente lista de referencias, mismo fotograma de referencia)
12. Bloque de predicción de comprobación N2 contra la condición 4 (diferente lista de referencias, diferente fotograma de referencia)
De acuerdo con el procedimiento 5, el número de referencias a la lista de referencias del bloque de predicción se reduce adicionalmente en comparación con el procedimiento 4. La complejidad se reduce reduciendo la frecuencia de accesos de memoria y el volumen de procesamiento requerido para, por ejemplo, comprobar contra las condiciones. Como en el procedimiento 4, el número máximo de ciclos es 1 de modo que el número de acceso a la información de codificación de bloques de predicción en la memoria es menor que el del procedimiento 1, el procedimiento 2, o el procedimiento 3 y se reduce en consecuencia la complejidad requerida en la implementación de hardware.
Posteriormente, la unidad 121 de adición de predictor de vector de movimiento evalúa el orden de prioridad de los candidatos de predictor de vector de movimiento mvLXA, mvLXB, y mvLXCol y almacena los candidatos en una lista de MVP mvpListLX de acuerdo con el orden de prioridad. Las etapas para almacenar los candidatos en la lista de MVP mvpListLX se describirán en detalle más adelante.
La unidad 122 de decisión de candidato de predictor de vector de movimiento idéntico halla valores de vector de movimiento idénticos de los candidatos de predictor de vector de movimiento almacenados en la lista de MVP mvpListLX. La unidad 122 de decisión de candidato de predictor de vector de movimiento idéntico permite que uno de los candidatos de predictor de vector de movimiento hallados tengan los valores de vector de movimiento idénticos para permanecer en la lista de MVP mvpListLX y borra los otros candidatos de la lista, evitando de esta manera la duplicación de candidatos de predictor de vector de movimiento y actualizando la lista de MVP mvpListLX en consecuencia. La unidad 122 de decisión de candidato de predictor de vector de movimiento idéntico suministra la lista de MVP actualizada mvpListLX a la unidad 123 de derivación de tamaño de código de candidato de predictor de vector de movimiento y a la unidad 124 de selección de predictor de vector de movimiento.
Mientras tanto, la unidad 102 de estimación de vector de movimiento de la Figura 1 detecta un vector de movimiento mv en cada bloque de predicción. El vector de movimiento mv se introduce a la unidad 123 de derivación de tamaño de código de candidato de predictor de vector de movimiento junto con los candidatos de predictor de vector de movimiento en la lista de MVP actualizada mvpListLX.
La unidad 123 de derivación de tamaño de código de candidato de predictor de vector de movimiento deriva diferencias de vector de movimiento entre el vector de movimiento mv y los candidatos de predictor de vector de movimiento almacenados en la lista de MVP mvpListLX. La unidad 123 de derivación de tamaño de código de candidato de predictor de vector de movimiento deriva los tamaños de código producidos cuando se codifican las diferencias de vector de movimiento, para cada uno de los elementos en la lista de MVP mvpListLX, y suministra los tamaños de código a la unidad 124 de selección de predictor de vector de movimiento.
La unidad 124 de selección de predictor de vector de movimiento selecciona, de los elementos añadidos en la lista de MVP mvpListLX, el candidato de predictor de vector de movimiento mvpListLX[i] con el tamaño de código más pequeño como el predictor de vector de movimiento mvp. Si se halla una pluralidad de candidatos de predictor de vector de movimiento que tienen el tamaño de código generado más pequeño en la lista de MVP mvpListLX, la unidad 124 de selección de predictor de vector de movimiento selecciona el candidato de predictor de vector de movimiento mvpListLX[i] con el índice más pequeño en la lista de MVP mvpListLX, como el predictor de vector de movimiento óptimo mvp. La unidad 124 de selección de predictor de vector de movimiento suministra el predictor de vector de movimiento seleccionado mvp a la unidad 125 de resta de vector de movimiento. Además, la unidad 124 de selección de predictor de vector de movimiento emite el índice i en la lista de MVP que corresponde al predictor de vector de movimiento seleccionado mvp como un índice de MVP mvp_idx para LX (X=0 o 1).
La unidad 124 de selección de predictor de vector de movimiento también emite, según sea necesario, la información de codificación usada en el bloque de predicción en la lista de MVP indicada mediante mvp_idx a la unidad 106 de decisión del procedimiento de predicción de la Figura 1. La información de codificación emitida incluye parámetros de peso para predicción ponderada, parámetros de cuantificación para cuantificación, etc.
Finalmente, la unidad 125 de resta de vector de movimiento deriva una diferencia de vector de movimiento mvd restando el predictor de vector de movimiento seleccionado mvp del vector de movimiento mv y emite la diferencia de vector de movimiento mvd.
mvd=mv-mvp
Haciendo referencia de vuelta a la Figura 1, la unidad 105 de predicción de compensación de movimiento hace referencia a una instantánea decodificada almacenada en la memoria 115 de instantánea decodificada y realiza compensación de movimiento de acuerdo con el vector de movimiento mv suministrado de la unidad 102 de estimación de vector de movimiento, para obtener una señal de predicción de movimiento compensado. La unidad 105 de predicción de compensación de movimiento suministra la señal de predicción de movimiento compensado a la unidad 106 de decisión del procedimiento de predicción.
La unidad 106 de decisión del procedimiento de predicción determina el procedimiento de predicción. La unidad 106 de decisión del procedimiento de predicción deriva el tamaño de código y distorsión de codificación para cada modo de predicción. Se determina el tamaño de bloque de predicción y modo de predicción que proporcionan el tamaño de código más pequeño y la distorsión de codificación generadas. Se codifica la diferencia de vector de movimiento mvd suministrada desde la unidad 125 de resta de vector de movimiento de la unidad 103 de derivación de diferencia de vector de movimiento y el índice mvp_idx que indica el predictor de vector de movimiento y suministrado desde la unidad 124 de selección de predictor de vector de movimiento y se deriva el tamaño de código de información de movimiento. Además, se deriva el tamaño de código de un código de señal de predicción residual, obtenido codificando un error entre la señal de predicción de movimiento compensado suministrada desde la unidad 105 de predicción de compensación de movimiento y la señal de instantánea sometida a codificación suministrada desde la memoria 101 de instantánea. El tamaño de código generado total se determina derivando una suma del tamaño de código de la información de movimiento y el tamaño de código de la señal residual de predicción. El tamaño derivado se define como el primer valor de evaluación.
La diferencia de instantánea codificada de esta manera se decodifica a continuación para su evaluación como la cantidad de distorsión. Se deriva la distorsión de codificación como una relación que indica un error desde la instantánea original producido como resultado de la codificación. Comparando el tamaño de código total y la distorsión de codificación desde una instancia de compensación de movimiento con los de otra, se determina el tamaño de bloque de predicción y el modo de predicción que dan como resultado el tamaño de código y la distorsión de codificación más pequeños. El procedimiento anteriormente mencionado de predicción de un vector de movimiento se realiza usando el vector de movimiento mv determinado mediante el tamaño de bloque de predicción y el modo de predicción determinado de esta manera. El índice que indica el predictor de vector de movimiento se codifica como una bandera mvp_idx_lX[i] definida en el segundo patrón de sintaxis para cada bloque de predicción. Aunque es deseable derivar el tamaño de código generado simulando las etapas de codificación, el tamaño de código generado puede determinarse mediante derivación aproximada o estimación aproximada.
(Predicción de un vector de movimiento en decodificación)
Se proporcionará una descripción de un procedimiento de acuerdo con la realización de predicción de un vector de movimiento en un dispositivo de decodificación de instantáneas en movimiento para decodificar una secuencia de bits codificados de instantáneas en movimiento.
Se proporcionará una descripción de banderas en una secuencia de bits decodificados mediante la primera unidad 202 de decodificación de secuencia de bits. La Figura 10 muestra un primer patrón de sintaxis escrito en un encabezado de corte de cada corte en una secuencia de bits generados mediante el dispositivo de codificación de instantáneas en movimiento de acuerdo con la realización y decodificado mediante la primera unidad 202 de decodificación de secuencia de bits. Si es conocido a partir de la bandera escrita en el encabezado de corte de una secuencia de bits que el tipo de corte es cualquiera de P o B, se decodifica una primera bandera mv_competition_temporal_flag. La primera bandera mv_competition_temporal_flag indica, en un bloque de predicción en el que no se define el modo de unión para inter predicción, si predecir un vector de movimiento usando un vector de movimiento de un bloque de predicción ubicado en la misma posición que o en las cercanías del bloque de predicción objetivo en una instantánea en un punto de tiempo diferente así como usando un vector de movimiento de un bloque de predicción vecino en la misma instantánea, e indica, en un bloque de predicción en el que se define el modo de unión para inter predicción, si realizar inter predicción usando información de codificación de un bloque de predicción ubicado en la misma posición que o en las cercanías del bloque de predicción objetivo en una instantánea en un punto de tiempo diferente así como usando información de codificación de un bloque de predicción vecino en la misma instantánea. Si mv_competition_temporal_flag es verdadero (1), se predice un vector de movimiento, en un bloque de predicción en el que el modo de unión no se defina para inter predicción, usando un vector de movimiento de un bloque de predicción ubicado en la misma posición que o en las cercanías del bloque de predicción objetivo en una instantánea en un punto de tiempo diferente así como usando un vector de movimiento de un bloque de predicción vecino en la misma instantánea, y se realiza inter predicción, en un bloque de predicción en el que se define el modo de unión para inter predicción, usando información de codificación de un bloque de predicción ubicado en la misma posición que o en las cercanías del bloque de predicción objetivo en una instantánea en un punto de tiempo diferente así como usando información de codificación de un bloque de predicción vecino en la misma instantánea. Además, si mv_competition_temporal_flag es verdadero (1), se decodifica y examina una segunda bandera mv_temporal_high_priority_flag. Si mv_temporal_high_priority_flag es verdadero (1), se añade un vector de movimiento o un candidato de unión de un bloque de predicción ubicando en la misma posición que o en las cercanías del bloque de predicción sometido a codificación/decodificación en una instantánea en un punto de tiempo diferente en la lista de MVP o la lista de candidatos de unión en preferencia a otros candidatos.
Si el tipo de corte es "B", se decodifica una tercera bandera collocated_from_10_flag para determinar cuál de las listas de instantáneas de referencia L0 y L1 para la instantánea que incluye el bloque de predicción objetivo debe usarse. La bandera collocated_from_10_flag se define para indicar cuál de la lista de referencias de L0 y la lista de referencias L1 para la instantánea que incluye el bloque de predicción objetivo incluye la instantánea colPic ubicada en un punto de tiempo diferente y se usa para derivar el candidato de predictor de vector de movimiento o el candidato de unión en la dimensión temporal.
Además, si el tipo de corte es P o B, se decodifica una cuarta bandera mv_list_adaptive_idx_flag para cambiar de manera adaptativa el orden de adición en la lista de MVP o la lista de candidatos de unión descrita más adelante dependiendo del bloque de predicción. La bandera mv_list_adaptive_idx_flag se define para indicar si el orden de adición en la lista de m Vp o la lista de candidatos de unión descrita más adelante se cambia de manera adaptativa dependiendo del bloque de predicción.
Los elementos de sintaxis anteriormente descritos pueden definirse en un conjunto de parámetros de instantánea que definen elementos de sintaxis en unidades de instantáneas.
Pueden proporcionarse variaciones de la primera bandera mv_competition_temporal_flag, de la segunda bandera mv_temporal_high_priority_flag, de la tercera bandera collocated_from_10_flag, y de la cuarta bandera mv_list_adaptive_idx_flag para predicción de movimiento de no unión y para el modo de unión y controlarse de manera independiente.
La Figura 11 muestra un segundo patrón de sintaxis definido para cada bloque de predicción en una secuencia de bits generados mediante el dispositivo de codificación de instantáneas en movimiento de acuerdo con la realización y decodificados mediante la primera unidad 202 de decodificación de secuencia de bits. La Figura 11 muestra un patrón de sintaxis definido para cada bloque de predicción. En el caso de inter predicción (si se sustituye MODE_INTER en PredMode, que indica el modo de predicción del bloque de predicción), se decodifica una bandera merge_flag[x0][y0] que indica si se usa el modo de unión. x0 y y0 son índices que indican la posición del píxel izquierdo arriba en el bloque de predicción en la pantalla. merge_flag[x0][y0] es una bandera definida para indicar si se usa el modo de unión en la predicción ubicada en (x0, y0) en la pantalla.
Si merge_flag[x0] [y0] es 1 y si NumMergeCand, que indica el número total de candidatos en el modo de unión, supera 1, se decodifica el elemento de sintaxis merge_idx[x0][y0], que indica un índice una lista de unión (una lista de candidatos de predictor de vector de movimiento a los que se hace referencia). x0 y y0 son índices que indican la posición del píxel izquierdo arriba en el bloque de predicción en la pantalla. merge_idx[x0][y0] es un índice de unión para el bloque de predicción ubicado en (x0, y0) en la pantalla.
Mientras tanto, si merge_flag[x0][y0] es 0, se decodifica el elemento de sintaxis mvd_lX[x0][y0][j], que indica una diferencia de vector de movimiento entre un vector de movimiento para el bloque de predicción determinado a través de la estimación de vector de movimiento y un predictor de vector de movimiento, para cada lista de referencias LX (X=0 o 1). X es cualquiera de 0 o 1 e indica una dirección de predicción, el índice x0 en la matriz indica la coordenada x del bloque de predicción, y0 indica la coordenada y del bloque de predicción, y j indica un componente de la diferencia de vector de movimiento, indicando j=0 un componente x, e indicando y j=1 un componente y. Si el número total de candidatos de predictor de vector de movimiento supera 1, se decodifica el elemento de sintaxis mvp_idx_lX[x0][y0], que indica un índice en una lista de MVP (una lista de candidatos de predictor de vector de movimiento a los que se hace referencia). x0 y y0 son índices que indican la posición del píxel izquierdo arriba en el bloque de predicción en la pantalla. mvp_idx_lX[x0][y0] es un índice de MVP en una lista LX para el bloque de predicción ubicado en (x0, y0) en la pantalla. El sufijo LX indica una lista de referencias. Se proporcionan L0 y L1 de modo que pueden sustituirse 0 o 1 en X. NumMVPCand (LX) es una función para derivar el número total de candidatos de predictor de vector de movimiento para el bloque de predicción identificado en la dirección de predicción LX (X es cualquiera de 0 o 1) y se describirá más adelante. El índice mvp_idx_1X[x0] [y0] en la lista de MVP se codifica únicamente cuando el procedimiento de predicción de un vector de movimiento identifica el número total de candidatos de predictor de vector de movimiento NumMVPCand (LX) como que supera 1. Esto es debido a que, si el número total de candidatos de predictor de vector de movimiento es 1, ese candidato será el predictor de vector de movimiento que va a usarse de modo que el candidato de predictor de vector de movimiento al que se hace referencia se identifica de manera inequívoca sin transmitir mvp_idx_lX[x0][y0].
Cuando se realiza el procedimiento de predicción de un vector de movimiento de acuerdo con la realización, la unidad 204 de derivación de vector de movimiento del dispositivo de decodificación de instantáneas en movimiento de la Figura 2 realiza el procedimiento asociado. La Figura 13 muestra la configuración detallada de la unidad 204 de derivación de vector de movimiento del dispositivo de decodificación de instantáneas en movimiento de la Figura 2 que corresponde al dispositivo de codificación de instantáneas en movimiento de acuerdo con la realización. La parte delimitada mediante la línea discontinua gruesa en la Figura 13 representa la unidad 204 de derivación de vector de movimiento. La parte delimitada mediante la línea discontinua gruesa en su interior indica la parte donde se realiza el procedimiento de predicción de un vector de movimiento descrito más adelante. El dispositivo de codificación de instantáneas en movimiento que corresponde al dispositivo de decodificación de instantáneas en movimiento contiene una parte similar de modo que se obtiene el mismo resultado de decisión consistente en el lado de codificación y en el lado de decodificación. El procedimiento de predicción de un vector de movimiento en el lado de decodificación se describirá con referencia a los dibujos.
La unidad 204 de derivación de vector de movimiento incluye una unidad 220 de generación de candidato de predictor de vector de movimiento, una unidad 221 de adición de predictor de vector de movimiento, una unidad 222 de decisión de candidato de predictor de vector de movimiento idéntico, una unidad 223 de selección de predictor de vector de movimiento, y una unidad 224 de adición de vector de movimiento.
Definiendo la unidad 220 de generación de candidato de predictor de vector de movimiento, la unidad 221 de adición de predictor de vector de movimiento, y la unidad 222 de decisión de candidato de predictor de vector de movimiento idéntico en la unidad 204 de derivación de vector de movimiento para operar idénticamente con la unidad 120 de generación de candidato de predictor de vector de movimiento, la unidad 121 de adición de predictor de vector de movimiento, y la unidad 122 de decisión de candidato de predictor de vector de movimiento idéntico en la unidad 103 de derivación de diferencia de vector de movimiento en el lado de codificación, respectivamente, pueden obtenerse candidatos de predictor de vector de movimiento idénticos en el lado de codificación y en el lado de decodificación.
La unidad 220 de generación de candidato de predictor de vector de movimiento realiza el mismo procedimiento que la unidad 120 de generación de candidato de predictor de vector de movimiento de la Figura 12. La unidad 220 de generación de candidato de predictor de vector de movimiento lee, desde la memoria 209 de almacenamiento de información de codificación, vectores de movimiento de un bloque de predicción decodificado vecino al bloque sometido a decodificación en la misma instantánea que el bloque sometido a decodificación y de un bloque de predicción decodificado ubicado en la misma posición que o en las cercanías del bloque sometido a decodificación en una instantánea en un punto de tiempo diferente, decodificándose los vectores de movimiento y almacenándose en la memoria 209 de almacenamiento de información de codificación. La unidad 220 de generación de candidato de predictor de vector de movimiento genera al menos un candidato de predictor de vector de movimiento mvLXA, mvLXB, y mvLXCol de los vectores de movimiento decodificados de los otros bloques leídos desde la memoria 209 de almacenamiento de información de codificación. La unidad 220 de generación de candidato de predictor de vector de movimiento suministra los candidatos generados a la unidad 221 de adición de predictor de vector de movimiento. Los candidatos de predictor de vector de movimiento mvLXA, mvLXB, y mvLXCol pueden derivarse escalando, dependiendo del índice de referencia. La unidad 220 de generación de candidato de predictor de vector de movimiento realiza el mismo procedimiento que la unidad 120 de generación de candidato de predictor de vector de movimiento de la Figura 12. Por lo tanto, los procedimientos 1, 2, 3, 4, y 5 descritos en asociación con la unidad 120 de generación de candidato de predictor de vector de movimiento de la Figura 12 como un medio para derivar un predictor de vector de movimiento pueden aplicarse también a la unidad 220 de generación de candidato de predictor de vector de movimiento de modo que se omite una descripción detallada del mismo.
La unidad 221 de adición de predictor de vector de movimiento realiza la misma operación que la unidad 121 de adición de predictor de vector de movimiento de la Figura 12. La unidad 121 de adición de predictor de vector de movimiento evalúa el orden de prioridad de los candidatos de predictor de vector de movimiento mvLXA, mvLXB, y mvLXCol y almacena los candidatos en una lista de MVP mvpListLX de acuerdo con el orden de prioridad. Las etapas para almacenar los candidatos en la lista de MVP mvpListLX se describirán en detalle más adelante.
Posteriormente, la unidad 222 de decisión de candidato de predictor de vector de movimiento idéntico realiza el mismo procedimiento que la unidad 122 de decisión de candidato de predictor de vector de movimiento idéntico de la Figura 12. La unidad 222 de decisión de candidato de predictor de vector de movimiento idéntico halla valores de vector de movimiento idénticos de los candidatos de predictor de vector de movimiento almacenados en la lista de MVP mvpListLX. La unidad 222 de decisión de candidato de predictor de vector de movimiento idéntico permite que uno de los candidatos de predictor de vector de movimiento hallados tengan los valores de vector de movimiento idénticos para permanecer en la lista de MVP mvpListLX y borra los otros candidatos de la lista, evitando de esta manera la duplicación de candidatos de predictor de vector de movimiento y actualizando la lista de MVP mvpListLX en consecuencia. La lista de MVP actualizada mvpListLX se proporciona a la unidad 223 de selección de predictor de vector de movimiento.
La diferencia de vector de movimiento mvd recuperada decodificando en la primera unidad 202 de decodificación de secuencia de bits se introduce a la unidad 224 de adición de vector de movimiento. Si se codifica el índice mvp_idx que indica el predictor de vector de movimiento, el índice mvp_idx del predictor de vector de movimiento recuperado mediante decodificación en la primera unidad 202 de decodificación de secuencia de bits se introduce a la unidad 223 de selección de predictor de vector de movimiento.
Por lo tanto, la unidad 223 de selección de predictor de vector de movimiento recibe el candidato de predictor de vector de movimiento que permanece en la lista de MVP mvpListLX más, si se codifica el índice mvp_idx que indica el predictor de vector de movimiento, el índice mvp_idx que indica el predictor de vector de movimiento decodificado.
La unidad 223 de selección de predictor de vector de movimiento determina en primer lugar si únicamente permanece un candidato de predictor de vector de movimiento en la lista de MVP mvpListLX. Si un candidato permanece en la lista, la unidad 223 de selección de predictor de vector de movimiento recupera el candidato de predictor de vector de movimiento que permanece en la lista de MVP mvpListLX como el predictor de vector de movimiento mvp. Si permanece más de un candidato de predictor de vector de movimiento en la lista de MVP mvpListLX, la unidad 223 de selección de predictor de vector de movimiento lee el índice mvp_idx del predictor de vector de movimiento recuperando decodificando en la primera unidad 202 de decodificación de secuencia de bits y recupera el candidato de predictor de vector de movimiento que corresponde al índice leído mvp_idx de la lista de MVP mvpListLX. La unidad 223 de selección de predictor de vector de movimiento suministra el candidato de predictor de vector de movimiento recuperado a la unidad 224 de adición de vector de movimiento como el predictor de vector de movimiento mvp.
Finalmente, la unidad 224 de adición de vector de movimiento deriva un vector de movimiento mv añadiendo la diferencia de vector de movimiento mvd recuperado mediante decodificación en la primera unidad 202 de decodificación de secuencia de bits y suministrado a partir de la misma al predictor de vector de movimiento mvp, y emite el vector de movimiento mv.
mv=mvp+mvd
Como se ha descrito anteriormente, se deriva un vector de movimiento para cada bloque de predicción. Se usa el vector de movimiento para generar una instantánea prevista mediante compensación de movimiento. Añadiendo la instantánea prevista a la señal residual recuperada de la secuencia de bits mediante decodificación, se genera una instantánea decodificada.
Las etapas de procesamiento en la unidad 103 de derivación de diferencia de vector de movimiento del dispositivo de codificación de instantáneas en movimiento y las de la unidad 204 de derivación de vector de movimiento del dispositivo de decodificación de instantáneas en movimiento se describirán con referencia a los diagramas de flujo de las Figuras 14 y 15, respectivamente. La Figura 14 es un diagrama de flujo que muestra las etapas de procesamiento para derivar una diferencia de vector de movimiento en el dispositivo de codificación de instantáneas en movimiento, y la Figura 15 es un diagrama de flujo que muestra las etapas de procesamiento para derivar un vector de movimiento en el dispositivo de decodificación de instantáneas en movimiento.
Las etapas de procesamiento realizadas en el lado de codificación se describirán con referencia a la Figura 14. En el lado de codificación, la unidad 120 de generación de candidato de predictor de vector de movimiento, la unidad 121 de adición de predictor de vector de movimiento, y la unidad 122 de decisión de candidato de predictor de vector de movimiento idéntico en la unidad 103 de derivación de diferencia de vector de movimiento crea una lista de MVP derivando candidatos de predictor de vector de movimiento, añadiendo los candidatos de predictor de vector de movimiento derivados a la lista de MVP, y borrando candidatos de predictor de vector de movimiento innecesarios (S101).
Posteriormente, la unidad 123 de derivación de tamaño de código de candidato de predictor de vector de movimiento deriva una diferencia de vector de movimiento entre el vector de movimiento mv y los candidatos de predictor de vector de movimiento mvpListLX[i] almacenados en la lista de MVP mvpListLX. La unidad 123 de derivación de tamaño de código de candidato de predictor de vector de movimiento deriva el tamaño de código de la diferencia de vector de movimiento según se codifica para cada elemento en la lista de MVP mvpListLX. La unidad 124 de selección de predictor de vector de movimiento selecciona, de los elementos añadidos en la lista de MVP mvpListLX, el candidato de predictor de vector de movimiento mvpListLX[i] con el tamaño de código más pequeño como el predictor de vector de movimiento mvp. Si se halla una pluralidad de candidatos de predictor de vector de movimiento que tienen el tamaño de código generado más pequeño en la lista de MVP mvpListLX, la unidad 124 de selección de predictor de vector de movimiento selecciona el candidato de predictor de vector de movimiento mvpListLX[i] con el índice más pequeño en la lista de MVP mvpListLX, como el predictor de vector de movimiento óptimo mvp. La unidad 124 de selección de predictor de vector de movimiento suministra el predictor de vector de movimiento seleccionado mvp a la unidad 125 de resta de vector de movimiento. Además, la unidad 124 de selección de predictor de vector de movimiento emite el índice i en la lista de MVP que corresponde al predictor de vector de movimiento seleccionado mvp como un índice de MVP mvp_idx para LX (X=0 o 1) (S102).
Finalmente, la unidad 125 de resta de vector de movimiento deriva una diferencia de vector de movimiento mvd restando el predictor de vector de movimiento seleccionado mvp del vector de movimiento mv y emite la diferencia de vector de movimiento mvd (S103).
mvd=mv-mvp
Se proporcionará ahora una descripción de las etapas de procesamiento realizadas en el lado de decodificación con referencia a la Figura 15. En el lado de decodificación, la unidad 220 de generación de candidato de predictor de vector de movimiento, la unidad 221 de adición de predictor de vector de movimiento, y la unidad 222 de decisión de candidato de predictor de vector de movimiento idéntico en la unidad 204 de derivación de vector de movimiento crea una lista de MVP derivando candidatos de predictor de vector de movimiento, añadiendo los candidatos de predictor de vector de movimiento derivados a la lista de MVP, y borrando candidatos de predictor de vector de movimiento innecesarios (S201).
Posteriormente, la unidad 223 de selección de predictor de vector de movimiento determina en primer lugar si únicamente permanece un candidato de predictor de vector de movimiento en la lista de MVP mvpListLX. Si un candidato permanece en la lista, la unidad 223 de selección de predictor de vector de movimiento recupera el candidato de predictor de vector de movimiento que permanece en la lista de MVP mvpListLX como el predictor de vector de movimiento mvp. Si permanece más de un candidato de predictor de vector de movimiento en la lista de MVP mvpListLX, la unidad 223 de selección de predictor de vector de movimiento lee el índice mvp_idx del predictor de vector de movimiento recuperando decodificando en la primera unidad 202 de decodificación de secuencia de bits y recupera el candidato de predictor de vector de movimiento que corresponde al índice leído mvp_idx de la lista de MVP mvpListLX (S202).
Posteriormente, la unidad 224 de adición de vector de movimiento deriva un vector de movimiento mv añadiendo la diferencia de vector de movimiento mvd recuperado mediante decodificación en la primera unidad 202 de decodificación de secuencia de bits y suministrado a partir de la misma predictor de vector de movimiento mvp, y emite el vector de movimiento mv (S203 de la Figura 15).
mv=mvp+mvd
El procedimiento de derivación de un predictor de vector de movimiento y de creación de una lista de MVP realizada en S101 de la Figura 14 y en S201 de la Figura 15 se describirá en detalle adicional con referencia a la Figura 16.
Se describirá el procedimiento de predicción de un vector de movimiento común al dispositivo de codificación de instantáneas en movimiento y al dispositivo de decodificación de instantáneas en movimiento.
(Procedimiento de predicción de un vector de movimiento)
El procedimiento de derivación de un predictor de vector de movimiento y de creación de una lista de MVP de acuerdo con la realización se realiza en unidades de bloques de predicción y para cada lista de referencias LX (X es 0 o 1) a través de las etapas mostradas en la Figura 16. Si MODE_INTER (inter predicción) se sustituye en PredMode, y si Pred_L0 (predicción L0) o Pred_BI (bi-predicción) se sustituye en la bandera inter_pred_flag[x0][y0] que indica un procedimiento de inter predicción, se derivan candidatos de predictor de vector de movimiento para la lista de referencias L0 y se crea una lista de MVP en consecuencia. x0 y y0 son índices que indican la posición del píxel izquierdo arriba en el bloque de predicción en la pantalla. inter_pred_flag[x0][y0] es una bandera definida para indicar un procedimiento de inter predicción en la predicción ubicada en (x0, y0) en la pantalla. Si se sustituye Pred_L1 (predicción L1) o Pred_BI (bi-predicción) en la bandera inter_pred_flag[x0][y0], se derivan candidatos de predictor de vector de movimiento para la lista de referencias L1 y se crea en consecuencia una lista de MVP. En otras palabras, si se sustituye Pred_BI (bipredicción) en inter_pred_flag[x0][y0], se derivan candidatos de predictor de vector de movimiento tanto para la lista de referencias L0 como la lista de referencias L1 y se crea en consecuencia una lista de MVP. La Figura 16 es un diagrama de flujo que muestra el flujo del procedimiento en las unidades 120, 220 de generación de candidato de predictor de vector de movimiento, las unidades 121, 221 de adición de predictor de vector de movimiento, y las unidades 122, 222 de decisión de candidato de predictor de vector de movimiento idéntico que tienen funciones comunes en la unidad 103 de derivación de diferencia de vector de movimiento del dispositivo de codificación de instantáneas en movimiento y en la unidad 204 de derivación de vector de movimiento del dispositivo de decodificación de instantáneas en movimiento. Las etapas se describirán en secuencia.
Se deriva un candidato de predictor de vector de movimiento para predicción desde un bloque de predicción vecino a la izquierda. Se emite una bandera availableFlagLXA que indica si el bloque vecino está disponible, un vector de movimiento mvLXA, y POC de la instantánea de referencia pocLXA (S301 de la Figura 16). En el caso de L0, X es 0. En el caso de L1, X es 1 (lo mismo deberá aplicarse en lo sucesivo). Se deriva a continuación un vector de movimiento de candidato predictor para predicción desde un bloque de predicción vecino por encima. Se deriva una bandera availableFlagLXB que indica si está disponible el bloque vecino, un vector de movimiento mvLXB, y POC de la instantánea de referencia pocLXB (S302 de la Figura 16). Las etapas S301 y S302 son comunes a la predicción L0 y predicción L1. Las etapas de procesamiento común para derivar la bandera availableFlagLXN que indica la disponibilidad del bloque, el vector de movimiento mvLXN, y POC de la instantánea de referencia pocLXN (N es A o B, las mismas deberán aplicarse en lo sucesivo) se describirán más adelante en detalle con referencia a los diagramas de flujo de las Figuras 17-22.
Posteriormente, se deriva el candidato de predictor de vector de movimiento en la dimensión temporal. Se emite una bandera available-FlagLXCol que indica la disponibilidad del bloque, un vector de movimiento mvLXCol, y una bandera mvXCrossFlag que indica si tiene lugar la intersección (S303 de la Figura 16). Las etapas de procesamiento para estas derivaciones se describirán en detalle con referencia a los diagramas de flujo de las Figuras 24-29 y de la Figura 22.
Posteriormente, se construye la lista de MVP mvpListLX y los candidatos de predictor de vector de movimiento mvLXN (N es A, B, o Col. Lo mismo deberá aplicarse en lo sucesivo) (S304 de la Figura 16). Las etapas de procesamiento para estas derivaciones se describirán en detalle con referencia a los diagramas de flujo de las Figuras 30-36.
Si hay una pluralidad de vectores de movimiento que tienen el mismo valor en la lista de MVP mvpListLX, se eliminan posteriormente los vectores de movimiento excepto para el vector de movimiento más anterior en el orden (s 305 de la Figura 16).
Haciendo referencia de vuelta a la Figura 15, si el número NumMVPCand (LX) de elementos en la lista de MVP mvpListLX es 1, el índice de MVP final mvpIdx se define a continuación para que sea 0. De otra manera, mvp_idx_LX[xP,yP] se define como mvpIdx (S202 en la Figura 15), donde xP, yP son índices que indican la posición del píxel izquierdo arriba en el bloque de predicción en la pantalla. mvp_idx_LX[xP,yP] es un índice de MVP del bloque de predicción ubicado en (xP, yP) en la pantalla de la predicción usando la lista LX (L0 o L1). El sufijo LX indica una lista de referencias. Se proporcionan L0 y L1 de modo que 0 o 1 puede sustituirse en X.
Posteriormente, el vector de movimiento mvpIdx-th mvpListLX[mvpIdx] añadido en la lista de MVP desde la predicción usando LX se asigna como el predictor de vector de movimiento final mvpLX de la predicción usando la lista LX (S203 de la Figura 15).
[Derivación de los candidatos de predictor de vector de movimiento de al menos un bloque de predicción vecino a la izquierda o por encima (S301, S302 de la Figura 16)]
Las entradas en estas etapas incluyen las coordenadas (xP, yP) del píxel izquierdo arriba en el inicio del bloque de predicción sometido a codificación/decodificación en la instantánea objetivo sometida a codificación/decodificación, la anchura nPSW y la altura nPSH del bloque de predicción sometido a codificación/decodificación, y el índice de referencia refIdxLX (X es 0 o 1) para cada lista de referencias del bloque de predicción. El sufijo LX indica una lista de referencias. Se proporcionan L0 y L1 de modo que 0 o 1 puede sustituirse en X. Las listas de referencias L0 y L1 son listas para gestionar una pluralidad de instantáneas de referencia para el fin de realizar compensación de movimiento bloque a bloque en unidades de bloques haciendo referencia a uno arbitrario de una pluralidad de candidatos de instantáneas de referencia. El índice de referencia refIdxLX es un índice asignado a cada instantánea de referencia en cada lista de referencias y usado para designar una instantánea de referencia.
Las salidas desde este procedimiento incluyen el vector de movimiento mvLXN del bloque de predicción vecino a la izquierda o por encima, la bandera availableFlagLXN que indica si está disponible la información de codificación del grupo de bloques de predicción N derivados de la predicción usando la lista de referencias LX.
0 o 1, que indican una lista de referencias, se sustituyen en el sufijo X. A (izquierda) o B (por encima), que indican un área de grupo de bloques de predicción vecinos, se sustituyen en N.
Como se muestra en las Figuras 5, 6, 7, y 8, se derivan candidatos de predictor de vector de movimiento desde bloques de predicción vecinos a un bloque de predicción (bloque de predicción sometido a procesamiento por la parte mostrada en la Figura 12) definido para el fin de compensación de movimiento en bloques de codificación en la misma instantánea.
La Figura 5 muestra un bloque de predicción objetivo y bloques de predicción vecinos. Se seleccionan los candidatos de predictor de vector de movimiento desde un grupo de bloques de predicción A comprendido de los bloques de predicción Ak (k=0, 1,2) vecinos al bloque de predicción objetivo a la izquierda, y un grupo de bloques de predicción B comprendidos de bloques de predicción Bk (k=0, 1,2) vecinos por encima.
El procedimiento de derivación de un candidato de predictor de vector de movimiento mvLXN desde los grupos de bloques de predicción N vecinos a la izquierda y por encima (es decir, las etapas S301 y S302 de la Figura 16) se describirá con referencia al diagrama de flujo de la Figura 17. 0 o 1, que indican una lista de referencias, se sustituyen en el sufijo X. A (izquierda) o B (por encima), que indican un área de grupo de bloques de predicción vecinos, se sustituyen en N.
Haciendo referencia a la Figura 17, la variable N se establece de manera que N=A de modo que se deriva al menos un candidato de predictor de vector de movimiento desde al menos unos bloques de predicción vecinos al bloque de predicción sometido a codificación/decodificación. La variable N se establece de manera que N=B de modo que se deriva al menos un candidato de predictor de vector de movimiento desde al menos unos bloques de predicción vecinos por encima.
Se identifican los bloques de predicción vecinos al bloque de predicción sometido a codificación/decodificación. Si está disponible un bloque de predicción Nk (k=0, 1, 2), se deriva la información de codificación (S1101, S1102, S1103). En el caso del grupo de bloques de predicción vecinos al bloque de predicción sometido a codificación/decodificación a la izquierda (N=A), se identifica el bloque de predicción a 0 vecino a la izquierda abajo, el bloque de predicción A1 vecino a la izquierda, y el bloque de predicción A2 vecino a la izquierda arriba y se deriva en consecuencia la información de codificación. En el caso del grupo de bloques de predicción vecinos al bloque de predicción sometido a codificación/decodificación por encima (N=B), se identifica el bloque de predicción B0 vecino a la derecha arriba, el bloque de predicción B1 vecino por encima, y el bloque de predicción B2 vecino a la izquierda arriba y se deriva en consecuencia la información de codificación (S1101, S1102, S1103). Si el bloque de predicción Nk está ubicado dentro de un corte que incluye el bloque de predicción sometido a codificación/decodificación, el bloque está disponible para predicción. Si el bloque de predicción Nk está ubicado fuera del corte, el bloque no está disponible.
Posteriormente, la bandera availableFlagLXN que indica si puede seleccionarse un predictor de vector de movimiento desde el grupo de bloques de predicción N se establece a 0, el vector de movimiento mvLXN que representa el grupo de bloques de predicción se establece a (0, 0), y la bandera MvXNNonScale que indica el vector de movimiento que representa el grupo de bloques de predicción N que no se somete a escalamiento se establece a 0 (S1104, S1105, S1106).
Posteriormente, se realiza el procedimiento del diagrama de flujo mostrado en la Figura 18 (S1107). Se examinan los bloques de predicción vecinos N0, N1, N2 en el grupo de bloques de predicción N para identificar bloques de predicción que tienen un vector de movimiento con relación a las mismas listas de referencia LX que las listas de referencias LX a las que se hace referencia por el bloque de predicción sometido a codificación/decodificación y el mismo índice de referencia.
La Figura 18 es un diagrama de flujo que muestra las etapas de procesamiento en la etapa S1107 de la Figura 17. Los bloques de predicción vecinos Nk (k=0, 1, 2) se someten a las siguientes etapas en el orden en que k es 0, 1, y 2 (S1201-S1210). En el caso de que N sea A, se aplican las siguientes etapas desde la parte inferior a la parte superior. En el caso de que N sea B, se aplican las etapas de derecha a izquierda.
Si está disponible el bloque de predicción vecino Nk (SÍ en S1202), si el modo de codificación PredMode del bloque de predicción Nk no es intra (MODE_INTRA) (SÍ en S1203), y si predFlagLX (bandera que indica si se usa predicción LX) del bloque de predicción vecino Nk es 1 (SÍ en S1204), se compara el índice de referencia refIdxLX[xNk][yNk] del bloque de predicción vecino Nk con el índice refIdxLX del bloque de predicción objetivo (S1205). Si los índices de referencia son idénticos (SÍ en S1205), la bandera availableFlagLXN se establece a 1 (S1206), mvLXN se establece al mismo valor que mvLXN[xNk][yNk] (S1207), refIdxN se establece al mismo valor que refIdxLX[xNk][yNk] (S1208), ListN se establece a LX (s 1209), y la bandera MvXNNonScale que indica no escalamiento se establece a 1 (S1210).
En la realización, el vector de movimiento mvLXN con la bandera MvXNNonScale establecida a 1, que indica no escalamiento, es decir, el vector de movimiento mvLXN derivado sin escalamiento representa un vector de movimiento previsto desde el vector de movimiento del bloque de predicción haciendo referencia a la misma instantánea de referencia con relación al vector de movimiento del bloque de predicción sometido a codificación/decodificación y así se determina para que sea relativamente más adecuado que un candidato de predictor de vector de movimiento del bloque de predicción sometido a codificación/decodificación. Mientras tanto, el vector de movimiento mvLXN con la bandera MvXCross establecida a 0, es decir, el vector de movimiento mvLXN derivado escalando representa un predictor de vector de movimiento previsto desde el vector de movimiento del bloque de predicción haciendo referencia a una instantánea de referencia diferente de la instantánea de referencia con relación al vector de movimiento del bloque de predicción sometido a codificación/decodificación y así se determina para que sea menos adecuado que un candidato de predictor de vector de movimiento del bloque de predicción sometido a codificación/decodificación. En otras palabras, se usa la bandera MvXNNonScale que indica no escalamiento como una directriz para determinar si un vector de movimiento es adecuado como un candidato de predictor de vector de movimiento.
Si no se cumple ninguna de estas condiciones (NO en S1202, NO en S1203, NO en S1204, o NO en S1205), k se incrementa en 1, y se procesa el siguiente bloque de predicción vecino (S1202-S1209). Se repiten las etapas hasta que available-FlagLXN sea 1 o se completen las etapas para N2.
Haciendo referencia de vuelta al diagrama de flujo de la Figura 17, se realizan a continuación las etapas del diagrama de flujo mostrado en la Figura 19 (S1109) cuando availableFlagLXN es 0 (SÍ en S1108). Se examinan los bloques de predicción N0, N1, N2 vecinos al grupo de bloques de predicción N para identificar bloques de predicción que tienen un vector de movimiento con relación a la lista de referencias LY (Y=!X: cuando la lista de referencias L0 a la que se hace referencia actualmente es L0, la lista de referencias opuesta será L1; cuando la referencia a la que se hace referencia actualmente es L1, la lista de referencias opuesta será L0) opuesta a la lista de referencias LX a la que se hace referencia en el bloque de predicción sometido a codificación/decodificación y con relación al mismo POC de referencia.
La Figura 19 es un diagrama de flujo que muestra las etapas de procesamiento en la etapa S1109 de la Figura 17. Los bloques de predicción vecinos Nk (k=0, 1, 2) se someten a las siguientes etapas en el orden en que k es 0, 1, y 2 (S1301-S1310). En el caso de que N sea A, se aplican las siguientes etapas desde la parte inferior a la parte superior. En el caso de que N sea B, se aplican las etapas de derecha a izquierda.
Si está disponible el bloque de predicción vecino Nk (SÍ en S1302), si el modo de codificación PredMode del bloque de predicción Nk es no intra (MODE_INTRA) (SÍ en S1303), y si predFlagLY (se usa la bandera que indica si se usa predicción LY) del bloque de predicción vecino Nk es 1 (SÍ en S1304), POCRefPicOrderCnt (currPic, refIdxLY[xNk][yNk], lY) de la instantánea de referencia RefPicListY[refIdxLY[xNK][yNk]] de la lista de referencias LY opuesta a la lista de referencias LX a la que se hace referencia actualmente mediante el bloque de predicción vecino Nk se compara con POCRefPicOrderCnt (currPic, refIdxLX, LX) de la instantánea de referencia RefPicListX[refIdxLX] de la lista LY del bloque de predicción objetivo. Si los POC de las instantáneas de referencia son idénticos (SÍ de S1305), la bandera availableFlagLXN se establece a 1 (S1306), mvLXN se establece al mismo valor que mvLXN[xNk][yNk] (S1307), refIdxN se establece al mismo valor que refIdxLY[xNk][yNk] (S1308), ListN se establece a LY (S1309), y la bandera MvXNNonScale que indica no escalamiento se establece a 1 (S1310).
Si no se cumple ninguna de estas condiciones (NO en S1302, NO en S1303, NO en S1304, o NO en S1305), k se incrementa en 1, y se procesa el siguiente bloque de predicción vecino (S1302-S1309). Las etapas se repiten hasta que availableFlagLXN sea 1 o se completen las etapas para N2.
Haciendo referencia de vuelta al diagrama de flujo de la Figura 17, se realizan a continuación las etapas del diagrama de flujo mostrado en la Figura 20 (S1111) cuando availableFlagLXN es 0 (SÍ en S1110). Los bloques de predicción vecinos N0, N1, N2 en el grupo de bloques de predicción N se examinan para identificar bloques de predicción que tienen un vector de movimiento con relación a la misma lista de referencias LX que la lista de referencias LX a la que se hace referencia mediante el bloque de predicción sometido a codificación/decodificación y con relación a un POC de referencia diferente.
La Figura 20 es un diagrama de flujo que muestra las etapas de procesamiento en la etapa S1111 de la Figura 17. Los bloques de predicción vecinos Nk (k=0, 1, 2) se someten a las siguientes etapas en el orden en que k es 0, 1, y 2 (S1401-S1409). En el caso de que N sea A, se aplican las siguientes etapas desde la parte inferior a la parte superior. En el caso de que N sea B, se aplican las etapas de derecha a izquierda.
Si el bloque de predicción vecino Nk está disponible (SÍ en S1402), si el modo de codificación PredMode del bloque de predicción Nk es no intra (MODE_INTRA) (SÍ en S1403), y si predFlagLX (bandera que indica si se usa predicción LX) del bloque de predicción vecino Nk es 1 (SÍ en S1404), la bandera availableFlagLXN se establece a 1 (S1405), mvLXN se establece al mismo valor que mvLXN[xNk][yNk] (S1406), refIdxN se establece al mismo valor que refIdxLX[xNk][yNk] (S1407), y ListN se establece a LX (S1408).
Si no se cumple ninguna de estas condiciones (NO en S1402, NO en S1403, o NO en S1404), k se incrementa en 1, y se procesa el siguiente bloque de predicción vecino (S1402-S1408). Las etapas se repiten hasta que availableFlagLXN sea 1 o se completen las etapas para N2.
Haciendo referencia de vuelta al diagrama de flujo de la Figura 17, se realizan a continuación las etapas del diagrama de flujo mostrado en la Figura 21 (S1113) cuando availableFlagLXN es 0 (SÍ en S1112). (Se examinan los bloques de predicción N0, N1, N2 vecinos al grupo de bloques de predicción N para identificar bloques de predicción que tienen un vector de movimiento con relación a la lista de referencias LY (Y=!X: cuando la lista de referencias L0 a la que se hace referencia actualmente es L0, la lista de referencias opuesta será L1; cuando la referencia a la que se hace referencia actualmente es L1, la lista de referencias opuesta será L0) opuesta a la lista de referencias LX a la que se hace referencia en el bloque de predicción sometido a codificación/decodificación y con relación al POC de referencia diferente).
La Figura 21 es un diagrama de flujo que muestra las etapas de procesamiento en la etapa S1113 de la Figura 17. Los bloques de predicción vecinos Nk (k=0, 1, 2) se someten a las siguientes etapas en el orden en que k es 0, 1, y 2 (S1501-S1509). En el caso de que N sea A, se aplican las siguientes etapas desde la parte inferior a la parte superior. En el caso de que N sea B, se aplican las etapas de derecha a izquierda.
Si el bloque de predicción vecino Nk está disponible (SÍ en S1502), si el modo de codificación PredMode del bloque de predicción Nk es no intra (MODE_INTRA) (SÍ en S1503), y si predFlagLY (bandera que indica si se usa predicción LY) del bloque de predicción vecino Nk es 1 (SÍ en S1504), la bandera availableFlagLXN se establece a 1 (S1505),itM_Xn se establece al mismo valor que mvLXN[xNk][yNk] (S1506), refIdxN se establece al mismo valor que refIdxLX[xNk][yNk] (S1507), y ListN se establece a LX (Sl508).
Si no se cumple ninguna de estas condiciones (NO en S1502, NO en S1503, o NO en S1504), k se incrementa en 1, y se procesa el siguiente bloque de predicción vecino (S1502-S1508). Las etapas se repiten hasta que availableFlagLXN sea 1 o se completen las etapas para N2.
Haciendo referencia de vuelta al diagrama de flujo de la Figura 17, se realizan a continuación las etapas de escalamiento de mvLXN mostradas en la Figura 22 (S1115) cuando availableFlagLXN es 1 (SÍ en S1114).
La Figura 22 es un diagrama de flujo que muestra las etapas de procesamiento en la etapa S1115 de la Figura 15 para el escalamiento de un vector de movimiento.
La Figura 23 ilustra el escalamiento de un vector de movimiento en la dimensión temporal por medio de un ejemplo específico. Si PO-CRefPicOrderCnt (currPic, refIdxN, ListN) de la instantánea de referencia RefPicListN[refIdxLN] de la lista de referencias ListN del bloque de predicción referenciado es idéntico a POCRefPicOrderCnt (currPic, refldxLX, LX) de la instantánea de referencia Ref-PicListX[refIdxLX] de LX (SÍ en S1601), se mantiene el valor de mvLXN (S1602). De lo contrario (NO en S1601), se realiza el escalamiento de acuerdo con la siguiente expresión.
mvLXN=tb/td * mvLXN
donde td indica una diferencia entre POCPicOrderCnt (currPic) de la instantánea actual sometida a codificación/decodificación y POCRefPicOrderCnt (currPic, refIdxN, ListN) de la instantánea de referencia RefPicListN[refIdxN] a la que se hace referencia mediante la lista de referencias ListN del bloque de predicción vecino.
td=PicOrderCnt (currPic)-RefPicOrderCnt (currPic, refIdxN, ListN).
tb indica una diferencia entre POCPicOrderCnt (currPic) de la instantánea actual sometida a codificación/decodificación y POC de la instantánea de referencia a la que se hace referencia mediante la lista de referencias LX de la instantánea actual sometida a codificación/decodificación.
tb=PicOrderCnt (currPic)-RefPicOrderCnt (currPic, refldxLX, LX)
[Derivación de candidatos de predictor de vector de movimiento en la dimensión temporal (S303 de la Figura 16)]
Las entradas en estas etapas incluyen las coordenadas (xP, yP) del píxel izquierdo arriba en el inicio del bloque de predicción sometido a codificación/decodificación, la anchura nPSW y la altura nPSH del bloque de predicción sometido a codificación/decodificación, y el índice de referencia refldxLX (X es 0 o 1) para cada lista de referencias del bloque de predicción. El sufijo LX indica una lista de referencias. Se proporcionan L0 y L1 de modo que 0 o 1 puede sustituirse en X. Las listas de referencias L0 y L1 son listas para gestionar una pluralidad de instantáneas de referencia para el fin de realizar compensación de movimiento bloque a bloque haciendo referencia a una arbitraria de una pluralidad de candidatos de instantáneas de referencia. El índice de referencia refldxLX es un índice asignado a cada instantánea de referencia en cada lista de referencias y usado para designar una instantánea de referencia.
Las salidas de los procedimientos incluyen el vector de movimiento mvLXCol del bloque de predicción ubicando en la misma posición que el bloque de predicción objetivo, y la bandera availableFlagLXCol que indica si está disponible la información de codificación del grupo de bloques de predicción Col derivada de la predicción usando la lista de referencias LX. 0 o 1, que indican una lista de referencias, se sustituyen en el sufijo X.
La Figura 24 es un diagrama de flujo que muestra las etapas de procesamiento en la etapa S303 de la Figura 16. Una instantánea de referencia colPic se deriva desde slice_type y collocated_from_10_flag (S2101 de la Figura 24).
La Figura 25 es un diagrama de flujo que muestra las etapas de procesamiento de derivación de la instantánea de referencia colPic en la etapa S2101 de la Figura 24. Si slice_type es B, y si la tercera bandera collocated_from_10_flag de la Figura 10 es 0 (SÍ en S2201 de la Figura 25, SÍ en S2202 de la Figura 22), RefPicList1[0], es decir, la instantánea en la lista de instantáneas de referencia 1 con el índice de referencia 0 será colPic (S2203 de la Figura 25). De otra manera, (NO en S2201 de la Figura 25, NO en S2202, NO en S2204), RefPicList0[0], la instantánea en la lista de instantáneas de referencia 0 con el índice de referencia 0 será colPic (S2205 de la Figura 25).
El control se devuelve a continuación al diagrama de flujo de la Figura 24, tras lo cual se deriva un bloque de predicción colPu y se deriva información de codificación en consecuencia (S2102 de la Figura 24).
La Figura 26 es un diagrama de flujo que muestra las etapas de procesamiento de derivación del bloque de predicción colPu en la etapa S2102 de la Figura 24.
El bloque de predicción ubicado en la parte derecha inferior (exterior) del bloque de predicción objetivo en colPic se define como colPu (S2301 de la Figura 26). El bloque de predicción corresponde al bloque de predicción T0 de la Figura 9.
A continuación se deriva la información de codificación del bloque de predicción colPu. Si PredMode del bloque de predicción colPu es MODE_INTRA o si el bloque no está disponible (S2303, S2304 de la Figura 26), el bloque de predicción ubicado a la izquierda arriba (interior) del bloque de predicción objetivo en colPic se define como colPu (S2305 de la Figura 26). El bloque de predicción corresponde al bloque de predicción T1 de la Figura 9. Si PredMode del bloque de predicción colPu es MODE_INTRA, o si el bloque no está disponible, se realiza una búsqueda en el orden de los bloques de predicción T2, T3 de la Figura 9 para un bloque de predicción disponible para el que PredMode no es MODE_INTRA.
Haciendo referencia de nuevo al diagrama de flujo de la Figura 24, se derivan mvLXCol y availableFlagLXCol (S2103 de la Figura 24).
La Figura 27 es un diagrama de flujo que muestra las etapas de procesamiento de derivación de información de inter predicción en la etapa S2103 de la Figura 24.
Si PredMode del bloque de predicción colPu es MODE_INTRA o si el bloque no está disponible (NO en S2401, NO en S2402 de la Figura 27), availableFlagLXCol se establece a 0, mvLXCol se establece a (0,0) (S2403, S2404 de la Figura 27), y el proceso se termina.
Si está disponible el bloque de predicción colPu y PredMode no es MODE_INTRA (SÍ en S2401, SÍ en S2402 de la Figura 27), se derivan mvCol y refIdxCol a través de las siguientes etapas.
Si la bandera de predicción L0 PredFlagL0[xPCol][yPCol] del bloque de predicción colPu es 0 (SÍ en S2405 de la Figura 27), el modo de predicción del bloque de predicción colPu es Predl1 de modo que el vector de movimiento mvCol y el índice de referencia refIdxCol se establecen a MvL1[xPCol] [yPCol], el vector de movimiento L1 del bloque de predicción colPu, y el índice de referencia L1 RefIdxL1[xPCol][yPCol], respectivamente (S2406, S2407 de la Figura 27).
Se realiza una decisión en cuanto a si el vector de movimiento mvCol establecido de esta manera cruza la instantánea que incluye el bloque de predicción sometido a codificación/decodificación y MvlCross se establece en consecuencia (S2408 de la Figura 27).
La decisión en cuanto a si el vector de movimiento MV cruza una instantánea se describirá con referencia a la Figura 29. La Figura 29 es un diagrama de flujo que muestra un procedimiento de examinación de si el vector de movimiento mvCol de colPu hace referencia a una instantánea de referencia, que cruza la instantánea que incluye el bloque de predicción sometido a codificación/decodificación. Si POCPicOrderCnt (colPic) de la instantánea de referencia colPic es menor que POCPicOrderCnt (currPic) de la instantánea sometida a codificación/decodificación, y si POCRefPicOrderCnt (colPic, RefIdxColLX, LX) de la instantánea de referencia a la que se hace referencia mediante mvCol es mayor que POCPicOrderCnt (currPic) de la instantánea sometida a codificación/decodificación (SÍ en S2601 de la Figura 27), significa que la instantánea de referencia colPic está ubicada en el pasado y la instantánea de referencia está ubicada en el futuro, rodeando la instantánea sometida a codificación/decodificación. Se realiza a continuación una decisión de que el vector de movimiento mvCol hace referencia a una instantánea de referencia, cruzando la instantánea que incluye el bloque de predicción sometido a codificación/decodificación de modo que MvXCross se establece a 1 (S2602 de la Figura 27). Si no se cumple la condición anterior (NO en S2601 de la Figura 27), es decir, si POCPicOrderCnt (colPic) de la instantánea de referencia colPic es mayor que POCPicOrderCnt (currPic) de la instantánea sometida a codificación/decodificación, y si POCRefPicOrderCnt (colPic, RefIdxColLX, LX) de la instantánea de referencia a la que se hace referencia mediante mvCol es menor que POCPicOrderCnt (currPic) de la instantánea sometida a codificación/decodificación (SÍ en S2603 de la Figura 27), significa que la instantánea de referencia colPic está ubicada en el futuro y la instantánea de referencia está ubicada en el pasado, rodeando la instantánea sometida a codificación/decodificación. Se realiza a continuación una decisión de que el vector de movimiento mvCol hace referencia a una instantánea de referencia, cruzando la instantánea que incluye el bloque de predicción sometido a codificación/decodificación de modo que MvXCross se establece a 1 (S2602 de la Figura 27). Si no se cumple ninguna de las condiciones (NO en S2601, NO en S2603 de la Figura 27), se realiza una decisión de que el vector de movimiento mvCol no hace referencia a una instantánea de referencia y no cruza la instantánea que incluye el bloque de predicción sometido a codificación/decodificación de modo que MvXCross se establece a 0 (S2604 de la Figura 27).
Haciendo referencia de vuelta a la Figura 27, MvCross se establece al valor de MvlCross (S2409 de la Figura 27).
De acuerdo con la realización, si la bandera MvXCross es 1, es decir, si el vector de movimiento mvCol de colPu en la instantánea de referencia colPic hace referencia a una instantánea de referencia, cruzando la instantánea que incluye el bloque de predicción sometido a codificación/decodificación, el vector de movimiento mvCol se determina que es relativamente más adecuado que un vector de movimiento de candidato predictor para el bloque de predicción sometido a codificación/decodificación. Mientras tanto, si la bandera MvXCross es 0, es decir, si el vector de movimiento mvCol de colPu en la instantánea de referencia colPic no hace referencia a una instantánea de referencia, cruzando la instantánea que incluye el bloque de predicción sometido a codificación/decodificación, se determina que el vector de movimiento mvCol es menos adecuado que un vector de movimiento de candidato predictor para el bloque de predicción sometido a codificación/decodificación. En otras palabras, se usa la bandera MvCross como una directriz para determinar si un vector de movimiento es adecuado como un candidato de predictor de vector de movimiento. Si la bandera de predicción L1 PredFlagL1[xPCol][yPCol] no es 0 (SÍ en S2410 de la Figura 27), el modo de predicción del bloque de predicción colPu es Pred_BI de modo que se selecciona uno de los dos vectores de movimiento (S2415 de la Figura 27).
La Figura 28 es un diagrama de flujo que muestra un procedimiento de derivación de información de inter predicción de un bloque de predicción cuando el modo de predicción del bloque de predicción colPu es Pred_BI.
El vector de movimiento mvCol y el índice de referencia refIdxCol se establecen al vector de movimiento L0 MvL0[xPCol][yPCol] del bloque de predicción colPu, y el índice de referencia L0 RefIdxL0[xPCol][yPCol], respectivamente (<s>2411, S2412 de la Figura 27).
En primer lugar, RefIdxColLX se establece al índice de referencia L0 RefIdxL0[xPCol][yPCol] (S2502 de la Figura 28). Se realiza un examen en cuanto a si el vector de movimiento L0 cruza la instantánea que incluye el bloque de predicción sometido a codificación/decodificación, y MvOCross se establece en consecuencia (S2503 de la Figura 28). Además, RefIdxColLX se establece al índice de referencia RefIdxL1[xPCol][yPCol] (S2502 de la Figura 28). Se realiza un examen en cuanto a si el vector de movimiento L1 cruza la instantánea que incluye el bloque de predicción sometido a codificación/decodificación, y MvlCross se establece en consecuencia (S2503 de la Figura 28).
Si MvOCross es 0 y Mv1Cross es 1 (SÍ en S2505 en la Figura 28), o si MvOCross es igual a MvlCross y la lista de índices de referencia es L1 (SÍ en S2506 en la Figura 28), se selecciona la información de inter predicción L1 de modo que el vector de movimiento mvCol, el índice de referencia refIdxCol, la lista ListCol, y MvCross se establecen a MvL1[xPCol] [yPCol], RefIdxColL1, L1, y Mv0Cross, respectivamente.
De lo contrario (NO en S2505, NO en S2506 de la Figura 28), se selecciona la información de inter predicción L0 de modo que el vector de movimiento mvCol, el índice de referencia refIdxCol, la lista ListCol, y MvCross se establecen a MvL0[xPCol][yPCol], RefIdxColL0, L0, y MvOCross, respectivamente.
Haciendo referencia de vuelta a la Figura 27, cuando se deriva la información de inter predicción, availableFlagLXCol se establece a 1 (S2416 de la Figura 27).
A continuación, haciendo referencia de vuelta al diagrama de flujo de la Figura 24, cuando availableFlagLXCol es 1 (SÍ en S2104 de la Figura 24), se escala mvLXCol según sea necesario. Para el escalamiento mvLXCol, se usa el mismo procedimiento que se describe con referencia a la Figura 22 (S2105 de la Figura 24).
(Adición de candidatos de predictor de vector de movimiento a la lista de MVP (S304 de la Figura 16)
Los candidatos de predictor de vector de movimiento mvLXN (N=A, B, Col) derivados en S301, S302, y S303 de la Figura 16 se añaden a la lista de MVP mvpListLX (S304). La Figura 30 es un diagrama de flujo que muestra las etapas de procesamiento de adición de candidatos de predictor de vector de movimiento a la lista de MVP. De acuerdo con el esquema descrito en el presente documento, los candidatos están dispuestos en el orden de prioridad. Los candidatos de predictor de vector de movimiento se añaden en la lista de MVP mvpListLX en el orden de prioridad para reducir el tamaño de código de los índices de MVP mvp_idx_LX[x0][y0]. Ubicando elementos con prioridad superior hacia la parte superior de la lista de MVP, se reduce el tamaño de código. Por ejemplo, si el número de elementos en la lista de MVP mvpListLX es 3, el tamaño de código requerido para definir un índice 0 será 1 bit representando el índice 0 en la lista de MVP como "0", el índice 1 como "10", y el índice 2 como "11".
Añadiendo un elemento con la frecuencia de ocurrencia más alta en el índice 0, se reduce el tamaño de código.
La lista de MVP mvpListLX se crea como una lista. La lista de MVP se proporciona con un área de almacenamiento para almacenamiento, como elementos, índices que indican la ubicación dentro de la lista de MVP y candidatos de predictor de vector de movimiento que corresponden a los índices. Los índices empiezan con 0. El área de almacenamiento para la lista de MVP mvpListLX almacena candidatos de predictor de vector de movimiento. En la siguiente descripción de las etapas, el candidato de predictor de vector de movimiento asigna un índice i añadido en la lista de MVP mvpListLX que se indicará mediante mvpListLX[i] para distinguirlo de la lista de MVP mvpListLX usando notación matricial.
Si la bandera mv_temporal_high_priority_flag codificada para cada corte, secuencia o instantánea es 1, y si mv_list_adaptive_idx_flag es 0 (SÍ en S3101, NO en S3102), se añaden candidatos de predictor de vector de movimiento en la lista de MVP de acuerdo con las etapas de procesamiento del diagrama de flujo mostradas en la Figura 31 de manera que al candidato de predictor de vector de movimiento mvLXCol desde el bloque de predicción ubicado en la misma posición que o en las cercanías del bloque de predicción objetivo en una instantánea en un punto de tiempo se le proporciona prioridad superior que a los candidatos de predictor de vector de movimiento mvLXA, mvLXB de los bloques de predicción vecino a la izquierda y por encima (S3104).
Si la bandera mv_temporal_high_priority_flag es 0, y si mv_list_adaptive_idx_flag es 0 (NO en S3101, NO en S3103), se añaden candidatos de predictor de vector de movimiento en la lista de MVP de acuerdo con las etapas de procesamiento del diagrama de flujo mostrado en la Figura 32 de manera que se les proporciona prioridad superior a los candidatos de predictor de vector de movimiento mvLXA, mvLXB de los bloques de predicción vecino a la izquierda y por encima que al candidato de predictor de vector de movimiento mvLXCol del bloque de predicción ubicado en la misma posición que o en las cercanías del bloque de predicción objetivo en una instantánea en un punto de tiempo (S3105).
Si la bandera mv_temporal_high_priority_flag es 1, y si mv_list_adaptive_idx_flag es 1 (SÍ en S3101, SÍ en 53102) , se añaden candidatos de predictor de vector de movimiento en la lista de MVP de acuerdo con las etapas de procesamiento del diagrama de flujo mostrado en la Figura 33 de manera que se les da prioridad a los candidatos de predictor de vector de movimiento considerados que son relativamente más fiables, y al candidato de predictor de vector de movimiento mvLXCol del bloque de predicción ubicado en la misma posición que o en las cercanías del bloque de predicción objetivo en una instantánea en un punto de tiempo se le proporciona prioridad más alta que a los candidatos de predictor de vector de movimiento mvLXA, mvLXB de los bloques de predicción vecinos a la izquierda y por encima (S3106).
Si la bandera mv_temporal_high_priority_flag es 0, y si mv_list_adaptive_idx_flag es 1 (NO en S3101, SÍ en 53103) , se añaden candidatos de predictor de vector de movimiento en la lista de MVP de acuerdo con las etapas de procesamiento del diagrama de flujo mostradas en la Figura 34 de manera que se proporciona prioridad a los candidatos de predictor de vector de movimiento que se considera que son relativamente más fiables, y se les proporciona prioridad superior a los candidatos de predictor de vector de movimiento mvLXA, mvLXB de los bloques de predicción vecino a la izquierda y por encima que al candidato de predictor de vector de movimiento mvLXCol del bloque de predicción ubicado en la misma posición que o en las cercanías del bloque de predicción objetivo en una instantánea en un punto de tiempo (S3107).
Como se ha descrito anteriormente, el valor de la segunda bandera mv_temporal_high_priority_flag se codifica para cada fotograma o corte para el fin de mejorar la eficacia de codificación, cambiando el valor de manera adaptativa. El tamaño de código de los índices de MVP puede reducirse estableciendo mv_temporal_high_priority_flag a verdadero (1) si la distancia entre la instantánea sometida a codificación/decodificación y la instantánea de referencia más corta es pequeña y estableciendo la bandera a falso (0) si la distancia entre la instantánea sometida a codificación/decodificación y la instantánea de referencia es grande. En caso de que la distancia sea relativamente pequeña, se realiza una decisión de que el candidato de MVP desde un punto de tiempo diferente es relativamente más adecuado que el candidato. Por ejemplo, en el caso de la tasa de fotogramas de 30 Hz, el tamaño de código de los índices de MVP puede reducirse estableciendo mv_temporal_high_priority_flag a verdadero (1) si la distancia entre la instantánea sometida a codificación/decodificación y la instantánea de referencia más cercana es menor que o igual a X fotogramas (X=1-3), y estableciendo la bandera a falso (0) si la distancia entre la instantánea sometida a codificación/decodificación y la instantánea de referencia es más de X fotogramas. Modificando el umbral X dependiendo del contenido de la secuencia, se reduce el tamaño de código de manera más eficaz. En el caso de una secuencia rica en movimiento y complicada, se mejora la eficacia de codificación reduciendo el umbral X y reduciendo de esta manera el orden de prioridad del candidato de MVP en la dimensión temporal.
La Figura 31 es un diagrama de flujo que muestra las etapas de procesamiento de adición de candidatos de predictor de vector de movimiento en la lista de MVP mvpListLX si la bandera mv_temporal_high_priority_flag codificada para cada corte, secuencia o instantánea es 1, y si mv_list_adaptive_idx_flag es 0 (SÍ en S3101, NO en S3102).
En primer lugar, si availableFlagLXCol es 1 (SÍ en S3201), se añade mvLXCol en la parte superior de la lista de MVP mvpListLX (S3202). Posteriormente, si availableFlagLXA es 1 (SÍ en S3203), se añade mvLXA al final de la lista de MVP mvpListLX (S3204). Posteriormente, si availableFlagLXB es 1 (SÍ en S3205), se añade mvLXB al final de la lista de MVP mvpListLX (S3206).
La Figura 32 es un diagrama de flujo que muestra las etapas de procesamiento de adición de candidatos de predictor de vector de movimiento en la lista de MVP mvpListLX si la bandera mv_temporal_high_priority_flag codificada para cada corte, secuencia o instantánea es 1, y si mv_list_adaptive_idx_flag es 0 (NO en S3101, NO en S3103).
En primer lugar, si availableFlagLXA es 1 (SÍ en S3301), se añade mvLXA en la parte superior de la lista de MVP mvpListLX (S3302). Posteriormente, si availableFlagLXB es 1 (SÍ en S3303), se añade mvLXB al final de la lista de MVP mvpListLX (S3304). Posteriormente, si availableFlagLXCol es 1 (SÍ en S3305), se añade mvLXCol al final de la lista de MVP mvpListLX (S3306).
La Figura 33 es un diagrama de flujo que muestra las etapas de procesamiento de adición de candidatos de predictor de vector de movimiento en la lista de MVP mvpListLX si la bandera mv_temporal_high_priority_flag codificada para cada corte, secuencia o instantánea es 1, y si mv_list_adaptive_idx_flag es 1 (SÍ en S3101, YES en S3102).
En primer lugar, si availableFlagLXCol es 1 y MvCross es 1 (SÍ en S3401, SÍ en S3402), se añade mvLXCol en la parte superior de la lista de MVP mvpListLX (S3403). Posteriormente, si availableFlagLXA es 1 y MvXANonScale es 1 (SÍ en S3404, SÍ en S3405), se añade mvLXA al final de la lista de MVP mvpListLX (S3406). Posteriormente, si availableFlagLXB es 1 y MvXBNonScale es 1 (SÍ en S3407, SÍ en S3408), se añade mvLXB al final de la lista de MVP mvpListLX (S3409). Posteriormente, si availableFlagLXCol es 1 y MvCross es 0 (SÍ en S3401, SÍ en S3411), se añade mvLXCol al final de la lista de MVP mvpListLX (S3412). Posteriormente, si availableFlagLXA es 1 y MvXANonScale es 0 (SÍ en S3413, SÍ en S3414), se añade mvLXA al final de la lista de MVP mvpListLX (S3415). Posteriormente, si availableFlagLXB es 1 y MvXBNonScale es 1 (SÍ en S3417, SÍ en S3408), se añade mvLXB al final de la lista de MVP mvpListLX (S3418).
La Figura 34 es un diagrama de flujo que muestra las etapas de procesamiento de adición de candidatos de predictor de vector de movimiento en la lista de MVP mvpListLX si la bandera mv_temporal_high_priority_flag codificada para cada corte, secuencia o instantánea es 0, y si mv_list_adaptive_idx_flag es 1 (NO en S3101, SÍ en S3103).
En primer lugar, si availableFlagLXA es 1 y MvXANonScale es 1 (SÍ en S3501, SÍ en S3502), se añade mvLXA en la parte superior de la lista de MVP mvpListLX (S3503). Posteriormente, si availableFlagLXB es 1 y MvXBNonScale es 1 (SÍ en S3504, SÍ en S3505), se añade mvLXB al final de la lista de MVP mvpListLX (S3506). Posteriormente, si availableFlagLXCol es 1 y MvCross es 1 (SÍ en S3507, SÍ en S3508), se añade mvLXCol al final de la lista de MVP mvpListLX (S3509). Posteriormente, si availableFlagLXA es 1 y MvXANonScale es 0 (SÍ en S3510, SÍ en S3511), se añade mvLXA al final de la lista de MVP mvpListLX (S3512). Posteriormente, si availableFlagLXB es 1 y MvXBNonScale es 0 (SÍ en S3513, Sí en S3514), se añade mvLXB al final de la lista de MVP mvpListLX (S3515). Posteriormente, si availableFlagLXCol es 1 y MvCross es 0 (SÍ en S3516, SÍ en S3517), se añade mvLXCol al final de la lista de MVP mvpListLX (S3518).
En las etapas de procesamiento de la Figura 30 de adición de candidatos de predictor de vector de movimiento en la lista de MVP mvpListLX, se reduce el tamaño de código añadiendo el vector de movimiento temporal mvLXCol hacia la parte superior de la lista de MVP en preferencia a los vectores de movimiento espaciales, si mv_temporal_high_priority_flag es 1, y añadiendo los vectores espaciales mvLXA, mvLXB hacia la parte superior de la lista de MVP en preferencia al vector de movimiento temporal, si mv_temporal_high_priority_flag es 0.
En las etapas de procesamiento de las Figuras 33 y 34 de adición de candidatos de predictor de vector de movimiento en la lista de MVP mvpListLX, se determina que el candidato de predictor de vector de movimiento para el que la bandera MvCross se establece a 1, es decir, el predictor de vector de movimiento derivado del vector de movimiento mvCol de colPu que hace referencia a una instantánea de referencia, cruzando la instantánea que incluye el bloque de predicción sometido a codificación/decodificación, tiene un valor más cerca de el del vector de movimiento sometido a codificación/decodificación y produce un valor menor de la diferencia de vector de movimiento que el candidato de predictor de vector de movimiento para el que la bandera MvCross se establece a 0, es decir, el predictor de vector de movimiento derivado del vector de movimiento mvCol de colPu que hace referencia a una instantánea de referencia sin cruzar la instantánea que incluye el bloque de predicción sometido a codificación/decodificación. El tamaño de código se reduce añadiendo preferencialmente el predictor de vector de movimiento del bloque de predicción Col hacia la parte superior de la lista de MVP. En otras palabras, se reduce el tamaño de código modificando el orden de prioridad dependiendo del valor de información de codificación del bloque de predicción Col en la instantánea en un punto de tiempo diferente y añadiendo los candidatos en consecuencia.
Además, dado un bloque de predicción N (N es A o B), se determina que el candidato de predictor de vector de movimiento previsto del vector de movimiento para el que MvXNNonScale se establece a 1 es relativamente más adecuado que un candidato de predictor de vector de movimiento del bloque de predictor sometido a codificación/decodificación y tiene un valor más cerca del el del vector de movimiento sometido a codificación/decodificación que el candidato de predictor de vector de movimiento previsto del vector de movimiento para el que MvXNNonScale se establece a 0. El tamaño de código se reduce añadiendo preferentemente el candidato para el que MvXNNonScale se establece a 1 en la lista de MVP.
Pueden añadirse candidatos de predictor de vector de movimiento de acuerdo con las etapas de procesamiento de las Figuras 35 y 36 en lugar de las etapas de las Figuras 33 y 34.
La Figura 35 es un diagrama de flujo que muestra las etapas de procesamiento de adición de candidatos de predictor de vector de movimiento en la segunda lista de MVP mvpListLX si la bandera mv_temporal_high_priority_flag codificada para cada corte, secuencia o instantánea es 1, y si mv_list_adaptive_idx_flag es 1 (SÍ en S3101, SÍ en S3102).
En primer lugar, si availableFlagLXCol es 1 y se selecciona el bloque de predicción en la derecha abajo en el grupo de bloques de predicción en un punto de tiempo diferente (SÍ en S3601, SÍ en S3602), se añade mvLXCol en la parte superior de la lista de MVP mvpListLX (S3603). Posteriormente, si availableFlagLXA es 1 y se selecciona el bloque de predicción en la parte izquierda inferior o izquierda en el grupo de bloques de predicción vecinos a la izquierda (SÍ en S3604, SÍ en S3605), se añade mvLXA al final de la lista de MVP mvpListLX (S3606). Posteriormente, si availableFlagLXB es 1 y se selecciona el bloque de predicción a la derecha arriba o por encima en el grupo de bloques de predicción vecinos por encima (SÍ en S3607, SÍ en S3608), se añade mvLXB al final de la lista de MVP mvpListLX (S3609). Posteriormente, si availableFlagLXCol es 1 y se selecciona el bloque de predicción en el centro en el grupo de bloques de predicción en un punto de tiempo diferente (SÍ en S3610, SÍ en S3611), se añade mvLXCol al final de la lista de MVP mvpListLX (S3612). Posteriormente, si availableFlagLXA es 1 y se selecciona el bloque de predicción en la parte izquierda superior en el grupo de bloques de predicción vecinos a la izquierda (SÍ en S3613, SÍ en S3614), se añade mvLXA al final de la lista de MVP mvpListLX (S3615). Posteriormente, si availableFlagLXB es 1 y se selecciona el bloque de predicción en la parte izquierda superior en el grupo de bloques de predicción vecinos por encima (SÍ en S3617, SÍ en S3616), se añade mvLXB al final de la lista de Mv P mvpListLX (S3618).
La Figura 36 es un diagrama de flujo que muestra las etapas de procesamiento de adición de candidatos de predictor de vector de movimiento en la segunda lista de MVP mvpListLX si la bandera mv_temporal_high_priority_flag codificada para cada corte, secuencia o instantánea es 0, y si mv_list_adaptive_idx_flag es 1 (SÍ en S3101, NO en S3103).
En primer lugar, si availableFlagLXA es 1 y se selecciona el bloque de predicción en la parte izquierda inferior o izquierda en el grupo de bloques de predicción vecinos a la izquierda (SÍ en S3701, SÍ en S3702), se añade mvLXA en la parte superior de la lista de MVP mvpListLX (S3703). Posteriormente, si availableFlagLXB es 1 y se selecciona el bloque de predicción a la derecha arriba o por encima en el grupo de bloques de predicción por encima (SÍ en S3704, SÍ en S3705), se añade mvLXB al final de la lista de MVP mvpListLX (S3706). Posteriormente, si availableFlagLXCol es 1 y se selecciona el bloque de predicción en la parte derecha inferior en el grupo de bloques de predicción en un punto de tiempo diferente (SÍ en S3707, SÍ en S3708), se añade mvLXCol al final de la lista de MVP mvpListLX (S3709). Posteriormente, si availableFlagLXA es 1 y se selecciona el bloque de predicción en la parte izquierda superior en el grupo de bloques de predicción vecinos a la izquierda (SÍ en S3710, SÍ en S3711), se añade mvLXA al final de la lista de MVP mvpListLX (S3712). Posteriormente, si availableFlagLXB es 1 y se selecciona el bloque de predicción en la parte izquierda superior en el grupo de bloques de predicción vecinos por encima (SÍ en S3713, SÍ en S3714), se añade mvLXB al final de la lista de MVP mvpListLX (S3715). Posteriormente, si availableFlagLXCol es 1 y se selecciona el bloque de predicción en el centro en el grupo de bloques de predicción en un punto de tiempo diferente (SÍ en S3716, SÍ en S3717), se añade mvLXCol al final de la lista de MVP mvpListLX (S3718).
En las etapas de procesamiento de las Figuras 35 y 36 de adición de candidatos de predictor de vector de movimiento en la lista de MVP mvpListLX, se determina que el candidato de predictor de vector de movimiento previsto desde el vector de movimiento del bloque de predicción en la parte derecha abajo en el grupo de bloques de predicción en un punto de tiempo diferente tiene un valor más cerca de el del vector de movimiento sometido a codificación/decodificación y produce un valor menor de la diferencia de vector de movimiento que el candidato de predictor de vector de movimiento previsto del vector de movimiento del bloque de predicción en el centro en el grupo de bloques de predicción en un punto de tiempo diferente. El tamaño de código se reduce añadiendo preferencialmente el predictor de vector de movimiento previsto desde el vector de movimiento del bloque de predicción en la parte derecha inferior en la lista de MVP. En el grupo de bloques de predicción vecinos a la izquierda, se determina que el candidato de predictor de vector de movimiento previsto desde el vector de movimiento del bloque de predicción en la parte izquierda inferior o izquierda tiene un valor más cerca de el del vector de movimiento sometido a codificación/decodificación y produce un valor menor de la diferencia de vector de movimiento que el del candidato de predictor de vector de movimiento previsto desde el vector de movimiento del bloque de predicción a la izquierda arriba. El tamaño de código se reduce añadiendo preferencialmente el predictor de vector de movimiento previsto desde el vector de movimiento del bloque de predicción en la parte izquierda inferior o izquierda en la lista de MVP. En el grupo de bloques de predicción vecinos por encima, se determina que el candidato de predictor de vector de movimiento previsto desde el vector de movimiento del bloque de predicción a la derecha arriba o por encima tiene un valor más cerca de el del vector de movimiento sometido a codificación/decodificación y produce un valor menor de la diferencia de vector de movimiento que el candidato de predictor de vector de movimiento previsto desde el vector de movimiento del bloque de predicción a la izquierda arriba. El tamaño de código se reduce añadiendo preferencialmente el predictor de vector de movimiento previsto desde el vector de movimiento del bloque de predicción a la derecha arriba o por encima en la lista de MVP.
[Borrado de candidatos de predictor de vector de movimiento en la lista de MVP que tienen el mismo valor (S305 de la Figura 16)]
Si hay candidatos de predictor de vector de movimiento que tienen el mismo valor de vector de movimiento en la lista de MVP mvpListLX, se borran todos los candidatos excepto el candidato de predictor de vector de movimiento que tiene el índice más pequeño en la lista de MVP mvpListLX. Después del borrado, el área de almacenamiento en la lista de MVP mvpListLX ocupada previamente por el candidato de predictor de vector de movimiento borrado se deja sin rellenar de modo que la vacante se rellena mediante candidatos de predictor de vector de movimiento en el orden ascendente del índice, siendo el índice 0 la referencia. Por ejemplo, si se borran los candidatos de predictor de vector de movimiento con los índices 1, 4 y quedan los índices 0, 2, y 3, el índice 0 debe quedar como anteriormente. Los candidatos de predictor de vector de movimiento con el índice 2 se mueven al área de almacenamiento para el índice 1, y el candidato de predictor de vector de movimiento con el índice 3 se mueve al área de almacenamiento para el índice 2, actualizando de esta manera el contenido de la lista de MVP mvpListLX.
El orden de realización de las etapas S301, S302, y S303 puede cambiarse. Como alternativa, las etapas pueden realizarse en paralelo.
Se proporcionará ahora una descripción del modo de unión. Se ha descrito anteriormente el procedimiento de derivación de un predictor de vector de movimiento y el procedimiento de creación de una lista de predictores de vector de movimiento realizada en la unidad 103 de derivación de diferencia de vector de movimiento en el dispositivo de codificación de instantáneas en movimiento y en la unidad 204 de derivación de vector de movimiento en el dispositivo de decodificación de instantáneas en movimiento. La unidad 104 de estimación de información de inter predicción en el dispositivo de codificación de instantáneas en movimiento y la unidad 205 de estimación de información de inter predicción en el dispositivo de decodificación de instantáneas en movimiento realizan un procedimiento similar.
Como se ha descrito anteriormente, el modo de unión no codifica/decodifica información de inter predicción tal como un modo de predicción, un índice de referencia, un vector de movimiento, etc., del bloque de predicción. En su lugar, el modo de unión usa información de inter predicción de un bloque de predicción vecino codificado sometido a inter predicción o información de inter predicción de un bloque de predicción en una instantánea diferente sometida a inter predicción.
La Figura 37 muestra las posiciones de bloques de predicción vecinos en el modo de unión. En el modo de unión, se definen como candidatos un total de 5 bloques de predicción que incluyen el bloque de predicción Col (uno de T0-T3) descritos con referencia a la Figura 9 como que están ubicados en la misma posición que o en las cercanías del bloque de predicción objetivo en una instantánea en un punto de tiempo diferente así como que incluyen el bloque de predicción A vecino a la izquierda, el bloque de predicción B vecino por encima, el bloque de predicción C vecino a la derecha arriba, y el bloque de predicción D vecino a la parte izquierda inferior. La unidad 104 de estimación de información de inter predicción del dispositivo de codificación de instantáneas en movimiento y la unidad 205 de estimación de información de inter predicción del dispositivo de decodificación de instantáneas en movimiento añaden los 5 candidatos en la lista de candidatos de unión de acuerdo con el orden comúnmente definido en el lado de codificación y en el lado de decodificación. La unidad 104 de estimación de información de inter predicción del dispositivo de codificación de instantáneas en movimiento determina un índice de unión que identifica un elemento en la lista de candidatos de unión y codifica el índice de unión mediante la primera unidad de generación de secuencia de bits. La unidad 205 de estimación de información de inter predicción del dispositivo de decodificación de instantáneas en movimiento se suministra con un índice de unión decodificado mediante la primera unidad 202 de decodificación de secuencia de bits, selecciona el bloque de predicción determinado mediante el índice de unión, y realiza predicción de compensación de movimiento usando la información de inter predicción tal como el modo de predicción, el índice de referencia, el vector de movimiento, etc., del bloque de predicción seleccionado.
La Figura 38 muestra la configuración detallada de la unidad 104 de estimación de información de inter predicción del dispositivo de codificación de instantáneas en movimiento de la Figura 1. La Figura 39 muestra la configuración detallada de la unidad 205 de estimación de información de inter predicción del dispositivo de decodificación de instantáneas en movimiento de la Figura 2.
Las partes delimitadas mediante las líneas discontinuas gruesas en la Figura 38 y 39 representan respectivamente la unidad 104 de estimación de información de inter predicción y la unidad 205 de estimación de información de inter predicción.
La parte delimitada por la línea discontinua gruesa más adentro indica la parte donde se realiza el procedimiento de estimación de información de inter predicción. El dispositivo de decodificación de instantáneas en movimiento que corresponde al dispositivo de codificación de instantáneas en movimiento de acuerdo con la realización contiene una parte similar de modo que se obtiene el mismo resultado de decisión consistente en el lado de codificación y en el lado de decodificación.
La unidad 104 de estimación de información de inter predicción incluye una unidad 130 de generación de candidato de unión, una unidad 131 de adición de candidato de unión, una unidad 132 de decisión de candidato de unión idéntico y una unidad 133 de selección de información de codificación.
La unidad 205 de estimación de información de inter predicción incluye una unidad 230 de generación de candidato de unión, una unidad 231 de adición de candidato de unión, una unidad 232 de decisión de candidato de unión idéntico y una unidad 233 de selección de información de codificación.
La Figura 40 es un diagrama de flujo que muestra el flujo del procedimiento de derivación de candidatos de unión y de creación de una lista de candidatos de unión comúnmente realizada en la unidad 104 de estimación de información de inter predicción del dispositivo de codificación de instantáneas en movimiento y en la unidad 205 de estimación de información de inter predicción del dispositivo de decodificación de instantáneas en movimiento. Las etapas se describirán en secuencia.
La unidad 130 de generación de candidato de unión de la unidad 104 de estimación de información de inter predicción del dispositivo de codificación de instantáneas en movimiento y la unidad 230 de generación de candidato de unión de la unidad 205 de estimación de información de inter predicción del dispositivo de decodificación de instantáneas en movimiento derivan, para cada lista, 'bloques de predicción de candidato de unión desde los bloques de predicción vecinos A, B, C, D. Las unidades 130 y 230 de generación de candidato de unión emiten una bandera availableFlagN que indica si está disponible el bloque vecino, un vector de movimiento mvLXN, un índice de referencia refIdxLXN, y una bandera de predicción predFlagLXN de LN N=A, B, C, D) que indica si se realiza predicción LN (S401 de la Figura 40). En el caso de L0, X es 0. En el caso de L1, X es 1 (lo mismo deberá aplicarse en lo sucesivo). Las etapas de procesamiento común para derivar la bandera availableFlagLXN que indica si está disponible el bloque vecino, el vector de movimiento mvLXN, el índice de referencia refIdxLXN, y la bandera de predicción LN predFlagLXN (N=A, B, C, D) se describirán más adelante en detalle con referencia al diagrama de flujo de la Figura 41.
Posteriormente, se deriva un candidato de unión en un punto de tiempo diferente. Para inter predicción que usa información de codificación de un candidato de unión en un punto de tiempo diferente, se derivan dos elementos de información de codificación para L0 y L1 para bi-predicción. En primer lugar, la unidad 130 de generación de candidato de unión de la unidad 104 de estimación de información de inter predicción del dispositivo de codificación de instantáneas en movimiento y la unidad 230 de generación de candidato de unión de la unidad 205 de estimación de información de inter predicción del dispositivo de decodificación de instantáneas en movimiento determinan un índice de referencia refIdxLXCol de un candidato de unión en un punto de tiempo diferente y emiten el índice (S402 de la Figura 40). La información de codificación de bloques de predicción vecinos codificados se examinan en ambas de las predicciones L0 y L1. El valor del índice de referencia que tiene lugar con mayor frecuencia se define como el valor del índice de referencia refIdxLXCol. Si se identifica una pluralidad de índices de referencia como que tienen lugar de manera más frecuente, el de con valor menor del índice de referencia se define como el valor del índice de referencia refIdxLXCol. Si no hay índices de referencia (cualquiera de los bloques de predicción vecinos no están disponibles, o se designa el modo de intra predicción), el valor del índice de referencia refIdxLXCol se establece para que sea 0.
Posteriormente, la unidad 130 de generación de candidato de unión de la unidad 104 de estimación de información de inter predicción del dispositivo de codificación de instantáneas en movimiento y la unidad 230 de generación de candidato de unión de la unidad 205 de estimación de información de inter predicción del dispositivo de decodificación de instantáneas en movimiento determinan un candidato de predictor de vector de movimiento desde una instantánea en un punto de tiempo diferente y emiten una bandera availableFlagCol que indica si el candidato está disponible, una bandera mv-CrossFlag que indica si tiene lugar la intersección, y un vector de movimiento mvLXCol (S403 de la Figura 40). Las etapas de procesamiento para la derivación se describen con referencia a los diagramas de flujo de las Figuras 24-29 y la Figura 22. En el modo de unión, sin embargo, se realiza el escalamiento de MV de acuerdo con la Figura 22 de manera que se escala el vector de movimiento de acuerdo con el índice de referencia refIdxLXCol derivado en la etapa S402.
Posteriormente, la unidad 131 de adición de candidato de unión de la unidad 104 de estimación de información de inter predicción del dispositivo de codificación de instantáneas en movimiento y la unidad 231 de adición de candidato de unión de la unidad 205 de estimación de información de inter predicción del dispositivo de decodificación de instantáneas en movimiento construyen una lista de candidatos de unión mergeCandlist y añaden el candidato de predictor de vector de movimiento mvLXN (N es A, B, C, D, o Col, se aplica lo mismo en lo sucesivo) en la lista (S404 de la Figura 40). Las etapas de procesamiento para adición se describirán más adelante en detalle con referencia a los diagramas de flujo de las Figuras 42-45.
Posteriormente, si los candidatos de unión en la lista de candidatos de unión mergeCandlist tienen el mismo índice de referencia y el mismo valor de vector de movimiento, la unidad 132 de decisión de candidato de unión idéntico de la unidad 104 de estimación de información de inter predicción del dispositivo de codificación de instantáneas en movimiento y la unidad 232 de decisión de candidato de unión idéntico de la unidad 205 de estimación de información de inter predicción del dispositivo de decodificación de instantáneas en movimiento eliminan los vectores de movimiento asociados excepto para el candidato de unión con el índice más pequeño.
[(Derivación de un candidato de unión de bloques de predicción vecinos (S401 de la Figura 40)]
El procedimiento de derivación de un bloque de predicción N desde el grupo de bloques de predicción vecinos N (es decir, la etapa S401 de la Figura 40) se describirá con referencia al diagrama de flujo de la Figura 41. 0 o 1 que indican una lista de referencias, se sustituyen en el sufijo X. A (izquierda) o B (por encima), C (derecha arriba), o D (izquierda abajo) que indica un área de grupo de bloques de predicción vecinos, se sustituye en N.
Haciendo referencia a la Figura 40, se establece la variable N de manera que N=A para examinar el bloque de predicción vecino al bloque de predicción sometido a codificación/decodificación a la izquierda, N=B para examinar el bloque de predicción vecino por encima, N=C para examinar el bloque de predicción vecino a la derecha arriba, y N=D para examinar el bloque de predicción vecino en la izquierda abajo, antes de derivar candidatos de predictor de vector de movimiento en las siguientes etapas (S4101-S4110).
En primer lugar, se identifica el bloque de predicción vecino al bloque de predicción sometido a codificación/decodificación. Si está disponible el bloque de predicción N, se deriva la información de codificación asociada (S4102).
Si no está disponible el bloque de predicción vecino N (SÍ en S4103) o si el modo de codificación PredMode del bloque de predicción N es intra (MODE_INTRA) (SÍ en S4104), la bandera availableFlagN se establece a 0 (S4105), y mvLXN se establece a (0, 0) (S4106).
Mientras tanto, si está disponible el bloque de predicción vecino N (NO en S4103) y si el modo de codificación PredMode del bloque de predicción N no es intra (MODE_INTRA) (NO en S4104), la bandera availableFlagN se establece a 1 (S4107), y se deriva la información de inter predicción del bloque de predicción N. En otras palabras, se asigna el vector de movimiento mvLXN, el índice de referencia refIdxLX[xN,yN], y la bandera predFlagLX[xN,yN] que indica si se realiza la predicción desde LX, del bloque de predicción N como mvLXN, refIdxLXN, y predFlagLXN, respectivamente (S4108, S4108, S4110). X se establece a 0 o 1 para derivación de la información de inter predicción L0 o L1. Si se realiza predicción ponderada y se establecen factores de peso en unidades de bloques de predicción, también se derivan los factores de peso. Si se realiza codificación entrelazada y si el modo de fotograma y el modo de campo se usan de manera conmutable en unidades de bloques de predicción, también se deriva el modo de conmutación de fotograma/campo. Pueden derivarse también parámetros distintos de la información de inter predicción (por ejemplo, parámetro de cuantificación). Las etapas anteriores S4102-S4110 se repiten para N=A, B, C, D (S4101-S4111).
[Adición de un candidato de bloque de predicción a la lista de candidatos de unión S404 de la Figura 40)]
Se proporcionará ahora una descripción del procedimiento de adición de un bloque de predicción de candidato de unión descrito con referencia a las Figuras 37 y 9 a la lista de candidatos de unión. La Figura 42 es un diagrama de flujo que muestra las etapas de procesamiento de adición de bloques de predicción de candidatos de unión a la lista de candidatos de unión. De acuerdo con el esquema descrito en el presente documento, se reduce el tamaño de código de índices de unión merge_idx[x0][y0] añadiendo los candidatos de predictor de vector de movimiento a la lista de candidatos de unión mergeCandlist en el orden de prioridad. Ubicando elementos con prioridad superior hacia la parte superior de la lista de candidatos de unión, se reduce el tamaño de código. Por ejemplo, si el número de elementos en la lista de candidatos de unión mergeCandlist es 5, el tamaño de código requerido para definir un índice 0 será 1 bit que representa el índice 0 en la lista de candidatos de unión como "0", el índice 1 como "10", el índice 2 como "110", el índice 3 como "1110, y el índice 4 como "1110". Añadiendo un elemento con la frecuencia de ocurrencia más alta en el índice 0, se reduce el tamaño de código.
La lista de candidatos de unión mergeCandlist se crea como una lista. La lista de candidatos de unión se proporciona con un área de almacenamiento para almacenamiento, como elementos, de un índice de unión que indica la ubicación dentro de la lista de candidatos de unión y un candidato de predictor de vector de movimiento que corresponde al índice. Los índices de unión empiezan con 0. El área de almacenamiento para la lista de candidatos de unión mergeCandlist almacena los candidatos de predictor de vector de movimiento. En la siguiente descripción de las etapas, el bloque de predicción de candidato de unión añadido en la lista de candidatos de unión mergeCandlist en el índice de unión i se indicará mediante mergeCandlist[i] para distinguirlo de la lista de candidatos de unión mergeCandlist usando notación matricial.
Si la bandera mv_temporal_high_priority_flag codificada para cada corte, secuencia o instantánea es 1, y si mv_list_adaptive_idx_flag es 0 (SÍ en S4201, NO en S4202), se añaden bloques de predicción de candidato de unión en la lista de candidatos de unión de acuerdo con las etapas de procesamiento del diagrama de flujo mostrado en la Figura 43 de manera que al bloque de predicción Col ubicado en la misma posición que o en las cercanías del bloque de predicción objetivo en una instantánea en un punto de tiempo se le proporciona prioridad superior que a los bloques de predicción C, D vecinos a la derecha arriba y a la izquierda abajo (S4204).
Además, si mv_temporal_high_priority_flag es 0, y si mv_list_adaptive_idx_flag es 0 (NO en S4201, NO en S4203), se añaden bloques de predicción de candidato de unión en la lista de candidatos de unión de acuerdo con las etapas de procesamiento del diagrama de flujo mostrado en la Figura 44 de manera que a los bloques de predicción C, D vecinos a la derecha arriba y a la izquierda abajo se les proporciona prioridad superior que al bloque de predicción de candidato de unión Col ubicado en la misma posición que o en las cercanías del bloque de predicción objetivo en una instantánea en un punto de tiempo (S4205).
Si mv_list_adaptive_idx_flag es 1 (SÍ en S4202, SÍ en S4203), se añaden bloques de predicción de candidato de unión en la lista de candidatos de unión de acuerdo con las etapas de procesamiento del diagrama de flujo mostrado en la Figura 45 de manera que a los candidatos de unión considerados que son relativamente más fiables se les proporciona prioridad (S4206).
Como se ha descrito anteriormente, el valor de la segunda bandera mv_temporal_high_priority_flag se codifica para cada fotograma o corte para el fin de mejorar la eficacia de codificación, cambiando el valor de manera adaptativa. El tamaño de código de los índices de MVP puede reducirse estableciendo mv_temporal_high_priority_flag a verdader (1) si la distancia entre la instantánea sometida a codificación/decodificación y la instantánea de referencia más corta es pequeña y establecer la bandera a falso (0) si la distancia entre la instantánea sometida a codificación/decodificación y la instantánea de referencia es grande. En caso de que la distancia sea relativamente pequeña, se realiza una decisión de que el candidato de unión desde un punto de tiempo diferente es relativamente más adecuado que el candidato. Por ejemplo, si la tasa de fotogramas 30 Hz, y la distancia entre la instantánea sometida a codificación/decodificación y la instantánea de referencia más cercana son X fotogramas (X=1 - 3) o menor, mv_temporal_high_priority_flag puede establecerse a verdadero (1). Si la distancia entre la instantánea sometida a codificación/decodificación y la instantánea de referencia es más de X fotogramas, mv_temporal_high_priority_flag puede establecerse a verdadero (0). De esta manera, se reduce el tamaño de código los índices de unión. Modificando el umbral X dependiendo del contenido de la secuencia, se reduce el tamaño de código de manera más eficaz. En el caso de una secuencia rica en movimiento y complicada, se mejora la eficacia de codificación reduciendo el umbral X y reduciendo de esta manera el orden de prioridad del candidato de unión en la dimensión temporal.
La Figura 43 es un diagrama de flujo que muestra las etapas de procesamiento de adición de bloques de predicción de candidato de unión en la lista de candidatos de unión mergeCandlist si la bandera mv_temporal_high_priority_flag codificada para cada corte, secuencia o instantánea es 1, y si mv_list_adaptive_idx_flag es 0 (SÍ en S4201, NO en S4202).
En primer lugar, si availableFlagA es 1 (SÍ en S4301), se añade el bloque de predicción A como un candidato de unión en la parte superior de la lista de candidatos de unión mergeCandlist (S4302). Posteriormente, si availableFlagB es 1 (SÍ en S4303), se añade el bloque de predicción B como un candidato de unión al final de la lista de candidatos de unión mergeCandlist (S4304). Posteriormente, si availableFlagCol es 1 (SÍ en S4305), se añade el bloque de predicción Col como un candidato de unión al final de la lista de candidatos de unión mergeCandlist (S4306). Posteriormente, si availableFlagC es 1 (SÍ en S4307), se añade el bloque de predicción C como un candidato de unión al final de la lista de candidatos de unión mergeCandlist (S4308). Posteriormente, si available-FlagD es 1 (SÍ en S4309), se añade el bloque de predicción D como un candidato de unión al final de la lista de candidatos de unión mergeCandlist (S4310).
La Figura 44 es un diagrama de flujo que muestra las etapas de procesamiento de adición de bloques de predicción de candidato de unión en la lista de candidatos de unión mergeCandlist si la bandera mv_temporal_high_priority_flag codificada para cada corte, secuencia o instantánea es 1, y si mv_list_adaptive_idx_flag es 0 (NO en S4201, NO en S4203).
En primer lugar, si availableFlagA es 1 (SÍ en S4401), se añade el bloque de predicción A como un candidato de unión en la parte superior de la lista de candidatos de unión mergeCandlist (S4402). Posteriormente, si availableFlagB es 1 (SÍ en S4403), se añade el bloque de predicción B como un candidato de unión al final de la lista de candidatos de unión mergeCandlist (S4404). Posteriormente, si availableFlagC es 1 (SÍ en S4405), se añade el bloque de predicción C como un candidato de unión al final de la lista de candidatos de unión mergeCandlist (S4406). Posteriormente, si availableFlagD es 1 (SÍ en S4407), se añade el bloque de predicción D como un candidato de unión al final de la lista de candidatos de unión mergeCandlist (S4408). Posteriormente, si available-FlagCol es 1 (SÍ en S4409), se añade el bloque de predicción Col como un candidato de unión al final de la lista de candidatos de unión mergeCandlist (S4410).
La Figura 45 es un diagrama de flujo que muestra las etapas de procesamiento de adición de bloques de predicción de candidato de unión en la lista de candidatos de unión mergeCandlist si la bandera mv_temporal_high_priority_flag codificada para cada corte, secuencia o instantánea es 0 o 1, y si mv_list_adaptive_idx_flag es 1 (SÍ en S4201, SÍ en S4202).
En primer lugar, si availableFlagA es 1 (SÍ en S4501), se añade el bloque de predicción A como un candidato de unión en la parte superior de la lista de candidatos de unión mergeCandlist (S4502). Posteriormente, si availableFlagB es 1 (SÍ en S4503), se añade el bloque de predicción B como un candidato de unión al final de la lista de candidatos de unión mergeCandlist (S4504). Posteriormente, si availableFlagCol es 1 y MvXCross es 1 (SÍ en S4505, SÍ en S4506), se añade el bloque de predicción Col como un candidato de unión al final de la lista de candidatos de unión mergeCandlist (S4507). Posteriormente, si availableFlagC es 1 (SÍ en S4508), se añade el bloque de predicción C como un candidato de unión al final de la lista de candidatos de unión mergeCandlist (S4509). Posteriormente, si availableFlagD es 1 (SÍ en S4510), se añade el bloque de predicción D como un candidato de unión al final de la lista de candidatos de unión mergeCandlist (S4511). Posteriormente, si availableFlagCol es 1 y MvXCross es 0 (SÍ en S4511, SÍ en S4513), se añade el bloque de predicción Col como un candidato de unión al final de la lista de candidatos de unión mergeCandlist (S4514).
En las etapas de procesamiento de la Figura 42 de adición de candidatos de predictor de vector de movimiento en la lista de candidatos de unión mergeCandlist, se reduce el tamaño de código añadiendo el bloque de predicción temporal Col hacia la parte superior de la lista de candidatos de unión en preferencia a los bloques de predicción C, D vecinos a la derecha arriba y a la izquierda abajo, respectivamente, si mv_temporal_high_priority_flag es 1, y añadiendo los bloques de predicción C, D vecinos a la derecha arriba e izquierda abajo, respectivamente, en preferencia al bloque de predicción temporal Col, si mv_temporal_high_priority_flag es 0.
En las etapas de procesamiento de la Figura 45 de adición de bloques de predicción en la lista de candidatos de unión mergeCandlist, se determina que el candidato de unión para el que la bandera MvCross se establece a 1, es decir, el candidato de unión usando el vector de movimiento derivado del vector de movimiento mvCol de ColPu que hace referencia a una instantánea de referencia, cruzando la instantánea que incluye el bloque de predicción sometido a codificación/decodificación, es relativamente más adecuado como un candidato de unión que el candidato de unión para el que la bandera MvCross se establece a 0, es decir, el candidato de unión que usa un vector de movimiento derivado del vector de movimiento mvCol de ColPu que hace referencia a una instantánea de referencia sin cruzar la instantánea que incluye el bloque de predicción sometido a codificación/decodificación. El tamaño de código se reduce añadiendo el bloque de predicción temporal Col hacia la parte superior de la lista de candidatos de unión, proporcionado al bloque Col prioridad relativamente superior, cuando MvCross se establece a 1, y añadiendo el bloque de predicción temporal Col hacia el final de la lista de candidatos de unión, proporcionando al bloque Col prioridad relativamente inferior, cuando MvCross se establece a 0. En otras palabras, se reduce el tamaño de código modificando el orden de prioridad dependiendo del valor de información de codificación del bloque de predicción Col en la instantánea en un punto de tiempo diferente y modificando el orden o añadiendo bloques a la lista de candidatos de unión en consecuencia.
En el modo de unión, el bloque de predicción A vecino a la izquierda y el bloque de predicción B vecino por encima es probable que experimenten movimiento similar que el bloque de predicción sometido a codificación/decodificación. Por consiguiente, se añade el bloque A o el bloque B hacia la parte superior de la lista de candidatos de unión en preferencia a los otros bloques de predicción C, D, Col.
Pueden añadirse candidatos de unión a través de las etapas de procesamiento de la Figura 46 en lugar de aquellas de la Figura 45.
La Figura 46 es un diagrama de flujo que muestra las etapas de procesamiento de adición de bloques de predicción de candidato de unión en la lista de candidatos de unión mergeCandlist si la bandera mv_temporal_high_priority_flag codificada para cada corte, secuencia o instantánea es 0 o 1, y si mv_list_adaptive_idx_flag es 1 (SÍ en S4202, SÍ en S4203).
En primer lugar, si availableFlagA es 1 y predFlagL0A y predFlagLlA son ambas 1 (SÍ en S4601, SÍ en S4602), se añade el bloque de predicción A para bi-predicción como un candidato de unión en la parte superior de la lista de candidatos de unión mergeCandlist (S4603). Posteriormente, si availableFlagB es 1 y predFlagL0B y predFlagL1B son ambas 1 (SÍ en S4604, SÍ en S4605), se añade el bloque de predicción B para bi-predicción como un candidato de unión al final de la lista de candidatos de unión mergeCandlist (S4606). Posteriormente, si availableFlagA es 1 y una de predFlagL0A y predFlagLlA es 0 (SÍ en S4607, SÍ en S4608), se añade el bloque de predicción A para no bi-predicción como un candidato de unión al final de la lista de candidatos de unión mergeCandlist (S4609). Posteriormente, si availableFlagB es 1 y una de predFlagL0B y predFlagL1B es 0 (SÍ en S4610, SÍ en S4611), se añade el bloque de predicción B para no bi-predicción como un candidato de unión al final de la lista de candidatos de unión mergeCandlist (S4612). Posteriormente, si availableFlagC es 1 y predFlagL0C y predFlagL1C son ambas 1 (SÍ en S4613, SÍ en S4614), se añade el bloque de predicción C para bi-predicción como un candidato de unión al final de la lista de candidatos de unión mergeCandlist (S4615). Posteriormente, si available-FlagD es 1 y predFlagL0D y predFlagL1D son ambas 1 (SÍ en S4616, SÍ en S4617), se añade el bloque de predicción D para bi-predicción como un candidato de unión al final de la lista de candidatos de unión mergeCandlist (S4618). Posteriormente, si availableFlagCol es 1 (SÍ en S4619), se añade el bloque de predicción Col como un candidato de unión al final de la lista de candidatos de unión mergeCandlist (S4620). Posteriormente, si availableFlagC es 1 y una de predFlagL0C y predFlagL1C es 0 (SÍ en S4621, SÍ en S4622), se añade el bloque de predicción C para no bi-predicción como un candidato de unión al final de la lista de candidatos de unión mergeCandlist (S4623). Posteriormente, si availableFlagD es 1 y una de predFlagL0D y predFlagL1D es 0 (SÍ en S4624, SÍ en S4625), se añade el bloque de predicción C para no bipredicción como un candidato de unión al final de la lista de candidatos de unión mergeCandlist (S4626).
En las etapas de procesamiento de la Figura 46 de adición de bloques de predicción en la lista de candidatos de unión mergeCandlist, se determina que el candidato de unión para el que la bandera de predicción predFlagLON y predFlagLIN del bloque de predicción vecino N (N es A, B, C, D) se establecen ambas a 1, es decir, el candidato de unión en el que se realiza compensación de movimiento usando bi-predicción es relativamente más adecuado que un candidato de unión distinto del candidato de unión para el que una de las banderas de predicción predFlagL0N y predFlagL1N del bloque de predicción vecino N (N es A, B, C, D) se establece a 0, es decir, el candidato de unión en el que se realiza compensación de movimiento usando no bipredicción (es decir, predicción L0 o predicción L1). El tamaño de código se reduce añadiendo el candidato de unión en el que se realiza bi-predicción hacia la parte superior de la lista de candidatos de unión, proporcionando a tal candidato una prioridad relativamente superior, y añadiendo el candidato de unión en el que no se realiza bi-predicción hacia el final de la lista de candidatos de unión, proporcionando a un candidato de este tipo prioridad relativamente inferior. En otras palabras, se reduce el tamaño de código modificando el orden de prioridad dependiendo del valor de información de codificación del bloque de predicción vecino N Col y modificando el orden o añadiendo candidatos a la lista de candidatos de unión en consecuencia.
Pueden añadirse candidatos de unión a través de las etapas de procesamiento de la Figura 47 en lugar de aquellos de la Figura 45 o la Figura 46 de manera que los candidatos están dispuestos de acuerdo con la prioridad dependiendo de la distancia entre la instantánea sometida a codificación/decodificación y la instantánea de referencia del candidato de unión.
La Figura 47 es un diagrama de flujo que muestra las etapas de procesamiento de adición de bloques de predicción de candidato de unión en la lista de candidatos de unión mergeCandlist si la bandera mv_temporal_high_priority_flag codificada para cada corte, secuencia o instantánea es 0 o 1, y de esta manera mv_list_adaptive_idx_flag es 1 (SÍ en S4202, SÍ en S4203).
En primer lugar, se deriva un valor absoluto de una diferencia entre el POC de la instantánea sometida a codificación/decodificación y el POC de la instantánea de referencia usada para inter predicción en el bloque de predicción A y se define como una distancia inter-instantánea inter predicción distA (S4701). De manera similar, se derivan valores absolutos de las diferencias entre el POC de la instantánea sometida a codificación/decodificación y el POC de la instantánea de referencia usada para inter predicción en los bloques de predicción B, C, D, Col y se definen como distancias inter-instantánea de inter predicción distB, distC, distD, distCol, respectivamente (S4701-S4705). Si se realiza bi-predicción en el bloque de predicción N (N=A, B, C, D, o Col), se deriva la distancia inter-instantánea de inter predicción L0 y la distancia inter-instantánea inter predicción L1. Se selecciona la menor de las distancias y se define como la distancia inter-instantánea de inter predicción distN (N=A, B, C, D, o Col). Si se realiza predicción L0 o predicción L1 en el bloque de predicción N (N=A, B, C, D, o Col), se deriva la distancia inter-instantánea de inter predicción L0 o la distancia inter instantánea de inter predicción L1, dependiendo de qué predicción se use. Se selecciona la menor de las distancias y se define como la distancia inter-instantánea de inter predicción distN (N=A, B, C, D, o Col).
Si no está disponible el bloque de predicción N (N=A, B, C, D, o Col), y si se usa intra predicción, la distancia inter-instantánea de inter predicción distN (N=A, B, C, D, o Col) se establece al valor máximo que pueda tomar distN.
Posteriormente, se añaden los candidatos de unión A, B, C, D, y Col a la lista de candidatos de unión mergeCandlist de acuerdo con los valores derivados de la distancia inter-instantánea de inter predicción distA, distB, distC, distD, y distCol de los bloques de predicción A, B, C, D, Col (S4706-S4720).
En primer lugar, se añaden los bloques de predicción de bloques de predicción de candidato de unión A, B a la lista de candidatos de unión mergeCandlist en el orden ascendente de distancias inter-instantánea de inter predicción distA, distB (S4706-S4708).
Se compara el valor de la distancia inter-instantánea de inter predicción distA del bloque de predicción A y el valor de la distancia inter-instantánea de inter predicción distB del bloque de predicción B (S4706). Si la distA es menor que la distB, se añaden los bloques de predicción A, B a la lista de candidatos de unión mergeCandlist en el orden establecido (S4707). En otras palabras, se añade el bloque de predicción A y a continuación se añade el bloque de predicción B detrás del bloque A. Si el valor de distB es menor que el valor de distA, se añaden los bloques de predicción B, A en la lista de candidatos de unión mergeCandlist en el orden establecido (S4708).
Posteriormente, se añaden los bloques de predicción de candidato de unión C, D, Co a la lista de candidatos de unión mergeCandlist en el orden ascendente de distancias de inter-instantánea de inter predicción distC, distD, distCol (S4709-S4720).
En las etapas de procesamiento de la Figura 47 de adición de bloques de predicción en la lista de candidatos de unión mergeCandlist, se determina que el candidato de unión para el que la distancia entre la instantánea que incluye el bloque de predicción sometido a codificación/decodificación y la instantánea de referencia del candidato de unión es pequeña es relativamente más adecuado que un candidato de unión que el candidato de unión para el que la distancia entre la instantánea que incluye el bloque de predicción sometido a codificación/decodificación y la instantánea de referencia del candidato de unión es grande. El tamaño de código se reduce añadiendo el candidato de unión con una distancia menor hacia la parte superior de la lista de candidatos de unión en preferencia al candidato de unión con una distancia grande. En otras palabras, se reduce el tamaño de código modificando el orden de prioridad dependiendo del valor de información de codificación del bloque de predicción vecino N Col y modificando el orden o añadiendo candidatos a la lista de candidatos de unión en consecuencia.
En el modo de unión, la información de codificación de los bloques de predicción de candidato de unión puede comprobarse de modo que los candidatos están dispuestos en el orden descendente de riqueza de la información de codificación. Como alternativa, el tamaño de los bloques de predicción de candidato de unión puede comprobarse de modo que los candidatos están dispuestos en el orden descendente de tamaño.
Haciendo referencia de vuelta a la Figura 38, la unidad de selección de información de codificación 133 de la unidad 104 de estimación de información de inter predicción del dispositivo de codificación de instantáneas en movimiento selecciona el candidato óptimo de los candidatos añadidos en la lista de candidatos de unión y emite el índice de unión y la información de codificación que corresponde al índice de unión.
Para la selección del candidato óptimo, puede usarse un procedimiento similar como el usado en la unidad 106 de decisión del procedimiento de predicción. Se deriva el tamaño de código y la distorsión de codificación para cada candidato de unión y se identifica la información de codificación con el tamaño de código más pequeño y la distorsión de codificación. Se codifica el índice de unión merge_idx de cada candidato de unión y se deriva el tamaño de código de la información de codificación. Además, se deriva el tamaño de código de una señal de predicción residual para cada candidato de unión. La señal residual de predicción indica un error entre la señal de predicción de movimiento compensado derivado de la realización de compensación de movimiento de acuerdo con la información de codificación de cada candidato de unión usando el procedimiento realizado en la unidad 105 de predicción de compensación de movimiento y la señal de instantánea sometida a codificación suministrada de la memoria 101 de instantánea. El tamaño de código generado total se determina derivando una suma del tamaño de código de la información de codificación (índice de unión) y el tamaño de código de la señal residual de predicción. El tamaño derivado se define como el primer valor de evaluación.
La diferencia de instantánea codificada de esta manera se decodifica a continuación para su evaluación como la cantidad de distorsión. Se deriva la distorsión de codificación como una relación que indica un error desde la instantánea original producido como resultado de la codificación. Comparando el tamaño de código generado total y la distorsión de codificación de un candidato de unión dado con aquellos de otro, se identifica la información de codificación con el tamaño de código más pequeño y la distorsión de codificación. El índice de unión que corresponde a la información de codificación identificada se codifica como una bandera merge_idx definida en el segundo patrón de sintaxis para cada bloque de predicción. Aunque es deseable derivar el tamaño de código generado simulando las etapas de codificación, el tamaño de código generado puede determinarse mediante derivación aproximada o estimación aproximada.
Mientras tanto, haciendo referencia a la Figura 39, la unidad 233 de selección de información de codificación de la unidad 205 de estimación de información de inter predicción del dispositivo de codificación de instantáneas en movimiento selecciona la información de codificación que corresponde al índice de unión suministrado de los candidatos de unión añadidos en la lista de candidatos de unión, suministra la información de codificación seleccionada a la unidad 206 de predicción de compensación de movimiento, y almacena la información de codificación seleccionada en la memoria 209 de almacenamiento de información de codificación.
Como se ha descrito anteriormente, de acuerdo con el procedimiento de predicción de vector de movimiento de la realización, se reduce el tamaño de código realizando predicción desde un vector de movimiento para un bloque de predicción ya codificado y la codificación de una diferencia de vector entre el vector de movimiento de un bloque objetivo y un valor previsto, para el fin de mejorar la eficacia de codificación un vector de movimiento para codificación de instantáneas en movimiento mediante el cual se parte una instantánea en bloques rectangulares y se realiza estimación de movimiento y compensación entre instantáneas en unidades de bloques. En este procedimiento, una pluralidad de predictores de vectores de movimiento obtenidos como resultado están dispuestos de acuerdo con la prioridad antes de añadirse en la lista de predictores de vector de movimiento. Como se ha descrito en la realización, la secuencia de adición puede modificarse dependiendo del orden de prioridad. Como alternativa, los predictores de vectores de movimiento pueden añadirse en un orden predefinido y a continuación reorganizarse en la lista de acuerdo con el orden de prioridad. Por ejemplo, el predictor de vector de movimiento derivado del primer grupo de bloques de predicción A vecinos a la izquierda puede añadirse temporalmente con el índice 0 en la lista de predictores de vector de movimiento, el predictor de vector de movimiento derivado del segundo grupo de bloques de predicción B vecinos por encima puede añadirse temporalmente con el índice 1, y el predictor de vector de movimiento derivado del tercer grupo de bloques de predicción C en un punto de tiempo diferente puede añadirse temporalmente con el índice 2. Los predictores de vectores de movimiento pueden reorganizarse posteriormente según sea necesario de acuerdo con el orden de prioridad.
De acuerdo adicionalmente con el procedimiento de predicción de vector de movimiento de la realización, puede reducirse el tamaño de código usando la información de codificación de bloques ya codificados, para el fin de mejorar la eficacia de información de codificación para la codificación de instantáneas en movimiento mediante la cual se parte una instantánea en bloques rectangulares y se realiza estimación de movimiento y compensación entre instantáneas en unidades de bloques. En este procedimiento, se dispone una pluralidad de candidatos de unión obtenidos como resultado de acuerdo con la prioridad antes de añadirse en la lista de candidatos de unión. Como se ha descrito en la realización, la secuencia de adición puede modificarse dependiendo del orden de prioridad. Como alternativa, los candidatos de unión pueden añadirse en un orden predefinido y a continuación se reorganizan en la lista de acuerdo con el orden de prioridad. Por ejemplo, el candidato de unión A puede añadirse temporalmente en una posición en la lista de candidatos de unión con el índice 0, el candidato de unión B puede añadirse temporalmente en una posición con el índice 1, y el candidato de unión Col puede añadirse temporalmente en una posición con el índice 2, el candidato de unión C puede añadirse temporalmente en una posición con el índice 3, y el candidato de unión D puede añadirse temporalmente en una posición con el índice 4. Los candidatos de unión pueden reorganizarse posteriormente según sea necesario de acuerdo con el orden de prioridad. La información en un candidato de unión añadido en la lista de candidatos de unión puede ser la totalidad de la información de codificación del candidato de unión. Como alternativa, un puntero o información de dirección que apunta a una memoria a la que puede hacerse referencia para la información de codificación del candidato de unión puede añadirse en la lista de candidatos de unión.
Las realizaciones adicionales del dispositivo de codificación de instantáneas en movimiento incluyen lo siguiente.
Un dispositivo de codificación de instantáneas en movimiento adaptado para codificar instantáneas en movimiento en unidades de bloques obtenidas mediante partición de cada instantánea de las instantáneas en movimiento, usando compensación de movimiento, que comprende: una unidad de generación de candidato de predictor de vector de movimiento configurada para generar una pluralidad de candidatos de predictor de vector de movimiento mediante predicción desde un bloque codificado vecino a un bloque sometido a codificación dentro de la misma instantánea que el bloque sometido a codificación, o desde un bloque codificado ubicado en la misma posición que o en las cercanías del bloque sometido a codificación en una instantánea diferente de la del bloque sometido a codificación, en el que la unidad de generación de candidato de predictor de vector de movimiento añade candidatos de predictor de vector de movimiento en una lista de candidatos de predictor de vector de movimiento de manera que se cambia el orden de prioridad en unidades de instantáneas o cortes.
Un dispositivo de codificación de instantáneas en movimiento adaptado para codificar instantáneas en movimiento en unidades de bloques obtenidas mediante partición de cada instantánea de las instantáneas en movimiento, usando compensación de movimiento, que comprende: una unidad de generación de candidato de predictor de vector de movimiento configurada para generar una pluralidad de candidatos de predictor de vector de movimiento mediante predicción desde un bloque codificado vecino a un bloque sometido a codificación dentro de la misma instantánea que el bloque sometido a codificación, o desde un bloque codificado ubicado en la misma posición que o en las cercanías del bloque sometido a codificación en una instantánea diferente de la del bloque sometido a codificación; en el que la unidad de generación de candidato de predictor de vector de movimiento añade candidatos de predictor de vector de movimiento en una lista de candidatos de predictor de vector de movimiento de manera que se cambia el orden de prioridad en unidades de bloques.
Un dispositivo de codificación de instantáneas en movimiento adaptado para codificar instantáneas en movimiento en unidades de bloques obtenidas mediante partición de cada instantánea de las instantáneas en movimiento, usando compensación de movimiento, que comprende: una unidad de generación de información de inter predicción configurada para generar candidatos de unión que son información de codificación que incluye una pluralidad de elementos de información de inter predicción, haciendo referencia a información de codificación que incluye información de inter predicción de un bloque codificado vecino a un bloque sometido a codificación en la misma instantánea que el bloque sometido a codificación, o de un bloque codificado ubicado en la misma posición que o en las cercanías del bloque sometido a codificación en una instantánea diferente de la del bloque sometido a codificación, en el que la unidad de generación de información de inter predicción añade candidatos de unión en una lista de candidatos de unión de manera que se cambia el orden de prioridad en unidades de instantáneas o cortes.
Un dispositivo de codificación de instantáneas en movimiento adaptado para codificar instantáneas en movimiento en unidades de bloques obtenidas mediante partición de cada instantánea de las instantáneas en movimiento, usando compensación de movimiento, que comprende: una unidad de generación de información de inter predicción configurada para generar candidatos de unión que son información de codificación que incluye una pluralidad de elementos de información de inter predicción, haciendo referencia a información de codificación que incluye información de inter predicción de un bloque codificado vecino a un bloque sometido a codificación en la misma instantánea que el bloque sometido a codificación, o de un bloque codificado ubicado en la misma posición que o en las cercanías del bloque sometido a codificación en una instantánea diferente de la del bloque sometido a codificación, en el que la unidad de generación de información de inter predicción añade candidatos de unión en una lista de candidatos de unión de manera que se cambia el orden de prioridad en unidades de bloques.
Un dispositivo de codificación de instantáneas en movimiento adaptado para codificar instantáneas en movimiento en unidades de bloques obtenidas mediante partición de cada instantánea de las instantáneas en movimiento, usando compensación de movimiento, que comprende: una unidad de generación de información de inter predicción configurada para generar candidatos de unión que son información de codificación que incluye una pluralidad de elementos de información de inter predicción, haciendo referencia a información de codificación que incluye información de inter predicción de un bloque codificado vecino a un bloque sometido a codificación en la misma instantánea que el bloque sometido a codificación, o de un bloque codificado ubicado en la misma posición que o en las cercanías del bloque sometido a codificación en una instantánea diferente de la del bloque sometido a codificación, en el que, cuando un candidato de unión ubicado en una dimensión espacial se somete a inter predicción bi-predictiva, la unidad de generación de información de inter predicción añade candidatos de unión en la lista de candidatos de unión, proporcionando prioridad al candidato de unión ubicado en la dimensión espacial.
Un dispositivo de codificación de instantáneas en movimiento adaptado para codificar instantáneas en movimiento en unidades de bloques obtenidas mediante partición de cada instantánea de las instantáneas en movimiento, usando compensación de movimiento, que comprende: una unidad de generación de información de inter predicción configurada para generar candidatos de unión que son información de codificación que incluye una pluralidad de elementos de información de inter predicción, haciendo referencia a información de codificación que incluye información de inter predicción de un bloque codificado vecino a un bloque sometido a codificación en la misma instantánea que el bloque sometido a codificación, o de un bloque codificado ubicado en la misma posición que o en las cercanías del bloque sometido a codificación en una instantánea diferente de la del bloque sometido a codificación, en el que, la unidad de generación de información de inter predicción añade candidatos de unión en la lista de candidatos de unión, proporcionando prioridad superior a un candidato de unión en el que una distancia entre una instantánea sometida a codificación y una instantánea de referencia es relativamente pequeña de la de los otros candidatos de unión.
Un dispositivo de codificación de instantáneas en movimiento adaptado para codificar instantáneas en movimiento en unidades de bloques obtenidas mediante partición de cada instantánea de las instantáneas en movimiento, usando compensación de movimiento, que comprende: una unidad de generación de candidato de predictor de vector de movimiento configurada para generar una pluralidad de candidatos de predictor de vector de movimiento mediante predicción desde un bloque codificado vecino a un bloque sometido a codificación en la misma instantánea que el bloque sometido a codificación, o desde un bloque codificado ubicado en la misma posición que o en las cercanías del bloque sometido a codificación en una instantánea diferente de la del bloque sometido a codificación, en el que la unidad de generación de candidato de predictor de vector de movimiento explora bloques de predicción en la dimensión espacial de manera que la unidad de generación de candidato de predictor de vector de movimiento procesa bloques de predicción en un grupo de bloques de predicción vecinos a la izquierda y en un grupo de bloques de predicción vecinos por encima, de acuerdo con las condiciones 1 a 4 a continuación en el orden establecido, 1: si se halla un vector de movimiento que se predice usando la misma lista de referencias y la misma instantánea de referencia que la de un modo de codificación seleccionado en el bloque de predicción sometido a codificación; 2: si se halla un vector de movimiento que se ha previsto usando una lista de referencias diferente de la del modo de codificación seleccionado en el bloque de predicción sometido a codificación y usando la misma instantánea de referencia que la del modo de codificación seleccionado en el bloque de predicción sometido a codificación; 3: si se halla un vector de movimiento que se predice usando la misma lista de referencias que la del modo de codificación seleccionado en el bloque de predicción sometido a codificación y usando una instantánea de referencia diferente de la del modo de codificación seleccionado en el bloque de predicción sometido a codificación; y 4: si se halla un vector de movimiento que se predice usando una lista de referencias diferente de la del modo de codificación seleccionado en el bloque de predicción sometido a codificación y usando una instantánea de referencia diferente de la del modo de codificación seleccionado en el bloque de predicción sometido a codificación.
El dispositivo de codificación de instantáneas en movimiento, en el que se exploran bloques de predicción en la dimensión espacial de manera que, cuando el primer bloque de predicción se procesa de acuerdo con la primera condición, un bloque de predicción vecino se procesa a continuación de acuerdo con la primera condición, seguido por el procesamiento de los bloques de predicción vecinos posteriores de acuerdo con la segunda, tercera y cuarta condiciones de manera sucesiva.
El dispositivo de codificación de instantáneas en movimiento, en el que se exploran los bloques de predicción en la dimensión espacial de manera que, cuando se procesa el primer bloque de predicción de acuerdo con la primera y segunda de las cuatro condiciones, se procesa a continuación un bloque de predicción vecino de acuerdo con la primera y segunda condiciones, y, cuando se procesa el primer bloque de predicción de acuerdo con la tercera y cuarta condiciones, se procesan los bloques de predicción vecinos posteriores de acuerdo con las condiciones de manera sucesiva.
El dispositivo de codificación de instantáneas en movimiento, en el que se exploran bloques de predicción en la dimensión espacial de manera que, cuando se procesa el primer bloque de predicción de acuerdo con la primera de las cuatro condiciones, un bloque de predicción vecino se procesa a continuación de acuerdo con la primera condición, y, cuando el primer bloque de predicción se procesa de acuerdo con la segunda, tercera y cuarta condiciones, los bloques de predicción vecinos posteriores se procesan de acuerdo con las condiciones de manera sucesiva.
El dispositivo de codificación de instantáneas en movimiento, en el que se exploran los bloques de predicción en la dimensión espacial de manera que, cuando no se cumple ninguna de las condiciones por el primer bloque de predicción, se determina que no hay vectores de movimiento disponibles que cumplan una condición en el bloque de predicción, tras lo cual se procesan de manera sucesiva los siguientes bloques de predicción vecinos para hallar si se cumple alguna de las cuatro condiciones.
Las realizaciones adicionales del dispositivo de codificación de instantáneas en movimiento incluyen lo siguiente.
Un dispositivo de decodificación de instantáneas en movimiento adaptado para decodificar una secuencia de bits en la que se codifican instantáneas en movimiento en unidades de bloques obtenidas mediante partición de cada instantánea de las instantáneas en movimiento, usando compensación de movimiento, que comprende: una unidad de generación de candidato de predictor de vector de movimiento configurada para generar una pluralidad de candidatos de predictor de vector de movimiento mediante predicción desde un bloque codificado vecino a un bloque sometido a decodificación en la misma instantánea que el bloque sometido a decodificación, o desde un bloque decodificado ubicado en la misma posición que o en las cercanías del bloque sometido a decodificación en una instantánea diferente de la del bloque sometido a decodificación, en el que la unidad de generación de candidato de predictor de vector de movimiento añade candidatos de predictor de vector de movimiento en una lista de candidatos de predictor de vector de movimiento de manera que se cambia el orden de prioridad en unidades de instantáneas o cortes.
Un dispositivo de decodificación de instantáneas en movimiento adaptado para decodificar una secuencia de bits en la que se codifican instantáneas en movimiento en unidades de bloques obtenidas mediante partición de cada instantánea de las instantáneas en movimiento, usando compensación de movimiento, que comprende: una unidad de generación de candidato de predictor de vector de movimiento configurada para generar una pluralidad de candidatos de predictor de vector de movimiento mediante predicción desde un bloque codificado vecino a un bloque sometido a decodificación en la misma instantánea que el bloque sometido a decodificación, o desde un bloque decodificado ubicado en la misma posición que o en las cercanías del bloque sometido a decodificación en una instantánea diferente de la del bloque sometido a decodificación, en el que la unidad de generación de candidato de predictor de vector de movimiento añade candidatos de predictor de vector de movimiento en una lista de candidatos de predictor de vector de movimiento de manera que se cambia el orden de prioridad en unidades de bloques.
Un dispositivo de decodificación de instantáneas en movimiento adaptado para decodificar una secuencia de bits en la que se codifican instantáneas en movimiento en unidades de bloques obtenidas mediante partición de cada instantánea de las instantáneas en movimiento, usando compensación de movimiento, que comprende: una unidad de generación de información de inter predicción configurada para generar candidatos de unión que son información de codificación que incluye una pluralidad de elementos de información de inter predicción, haciendo referencia a información de codificación que incluye información de inter predicción de un bloque decodificado vecino a un bloque sometido a decodificación en la misma instantánea que el bloque sometido a decodificación, o de un bloque decodificado ubicado en la misma posición que o en las cercanías del bloque sometido a decodificación en una instantánea diferente de la del bloque sometido a decodificación, en el que la unidad de generación de información de inter predicción añade candidatos de unión en una lista de candidatos de unión de manera que se cambia el orden de prioridad en unidades de instantáneas o cortes.
Un dispositivo de decodificación de instantáneas en movimiento adaptado para decodificar una secuencia de bits en la que se codifican instantáneas en movimiento en unidades de bloques obtenidas mediante partición de cada instantánea de las instantáneas en movimiento, usando compensación de movimiento, que comprende: una unidad de generación de información de inter predicción configurada para generar candidatos de unión que son información de codificación que incluye una pluralidad de elementos de información de inter predicción, haciendo referencia a información de codificación que incluye información de inter predicción de un bloque decodificado vecino a un bloque sometido a decodificación en la misma instantánea que el bloque sometido a decodificación, o de un bloque decodificado ubicado en la misma posición que o en las cercanías del bloque sometido a decodificación en una instantánea diferente de la del bloque sometido a decodificación, en el que la unidad de generación de información de inter predicción añade candidatos de unión en una lista de candidatos de unión de manera que se cambia el orden de prioridad en unidades de bloques.
Un dispositivo de decodificación de instantáneas en movimiento adaptado para decodificar una secuencia de bits en la que se codifican instantáneas en movimiento en unidades de bloques obtenidas mediante partición de cada instantánea de las instantáneas en movimiento, usando compensación de movimiento, que comprende: una unidad de generación de información de inter predicción configurada para generar candidatos de unión que son información de codificación que incluye una pluralidad de elementos de información de inter predicción, haciendo referencia a información de codificación que incluye información de inter predicción de un bloque decodificado vecino a un bloque sometido a decodificación en la misma instantánea que el bloque sometido a decodificación, o de un bloque decodificado ubicado en la misma posición que o en las cercanías del bloque sometido a decodificación en una instantánea diferente de la del bloque sometido a decodificación, en el que, cuando un candidato de unión ubicado en una dimensión espacial se somete a inter predicción bipredictiva, la unidad de generación de información de inter predicción añade candidatos de unión en la lista de candidatos de unión, proporcionando prioridad al candidato de unión ubicado en la dimensión espacial.
Un dispositivo de decodificación de instantáneas en movimiento adaptado para decodificar una secuencia de bits en la que se codifican instantáneas en movimiento en unidades de bloques obtenidas mediante partición de cada instantánea de las instantáneas en movimiento, usando compensación de movimiento, que comprende: una unidad de generación de información de inter predicción configurada para generar candidatos de unión que son información de codificación que incluyen una pluralidad de elementos de información de inter predicción, haciendo referencia a información de codificación que incluye información de inter predicción de un bloque decodificado vecino a un bloque sometido a decodificación en la misma instantánea que el bloque sometido a decodificación, o de un bloque decodificado ubicado en la misma posición que o en las cercanías del bloque sometido a decodificación en una instantánea diferente de la del bloque sometido a decodificación, en el que, la unidad de generación de información de inter predicción añade candidatos de unión en la lista de candidatos de unión, proporcionando prioridad a un candidato de unión en el que una distancia entre una instantánea sometida a codificación y una instantánea de referencia es relativamente pequeña.
Un dispositivo de decodificación de instantáneas en movimiento adaptado para decodificar una secuencia de bits en la que se codifican instantáneas en movimiento en unidades de bloques obtenidas mediante partición de cada instantánea de las instantáneas en movimiento, usando compensación de movimiento, que comprende: una unidad de generación de candidato de predictor de vector de movimiento configurada para generar una pluralidad de candidatos de predictor de vector de movimiento mediante predicción desde un bloque codificado vecino a un bloque sometido a decodificación en la misma instantánea que el bloque sometido a decodificación, o desde un bloque decodificado ubicado en la misma posición que o en las cercanías del bloque sometido a decodificación en una instantánea diferente de la del bloque sometido a decodificación, en el que la unidad de generación de candidato de predictor de vector de movimiento explora bloques de predicción en la dimensión espacial de manera que la unidad de generación de candidato de predictor de vector de movimiento procesa bloques de predicción en un grupo de bloques de predicción vecinos a la izquierda y en un grupo de bloques de predicción vecinos por encima, de acuerdo con las condiciones 1 a 4 siguientes en el orden establecido, 1: si se halla un vector de movimiento que se predice usando la misma lista de referencias y el mismo fotograma de referencia que el de un modo de codificación seleccionado en el bloque de predicción sometido a decodificación; 2: si se halla un vector de movimiento que se predice usando una lista de referencias diferente de la del modo de codificación seleccionado en el bloque de predicción sometido a decodificación y usando el mismo fotograma de referencia que el del modo de codificación seleccionado en el bloque de predicción sometido a decodificación; 3: si se halla un vector de movimiento que se predice usando la misma lista de referencias que la del modo de codificación seleccionado en el bloque de predicción sometido a decodificación y usando un fotograma de referencia diferente de el del modo de codificación seleccionado en el bloque de predicción sometido a decodificación; y 4: si se halla un vector de movimiento que se predice usando una lista de referencias diferente de la del modo de codificación seleccionado en el bloque de predicción sometido a decodificación y usando un fotograma de referencia diferente de el del modo de codificación seleccionado en el bloque de predicción sometido a decodificación.
El dispositivo de decodificación de instantáneas en movimiento, en el que se exploran los bloques de predicción en la dimensión espacial de manera que, cuando el primer bloque de predicción se procesa de acuerdo con la primera condición, un bloque de predicción vecino se procesa a continuación de acuerdo con la primera condición, seguido por el procesamiento de los bloques de predicción vecinos posteriores de acuerdo con la segunda, tercera y cuarta condiciones de manera sucesiva.
El dispositivo de decodificación de instantáneas en movimiento, en el que se exploran los bloques de predicción en la dimensión espacial de manera que, cuando se procesa el primer bloque de predicción de acuerdo con la primera y segunda de las cuatro condiciones, se procesa a continuación un bloque de predicción vecino de acuerdo con la primera y segunda condiciones, y, cuando se procesa el primer bloque de predicción de acuerdo con la tercera y cuarta condiciones, se procesan los bloques de predicción vecinos posteriores de acuerdo con las condiciones de manera sucesiva.
El dispositivo de decodificación de instantáneas en movimiento, en el que se exploran bloques de predicción en la dimensión espacial de manera que, cuando se procesa el primer bloque de predicción de acuerdo con la primera de las cuatro condiciones, un bloque de predicción vecino se procesa a continuación de acuerdo con la primera condición, y, cuando el primer bloque de predicción se procesa de acuerdo con la segunda, tercera y cuarta condiciones, los bloques de predicción vecinos posteriores se procesan de acuerdo con las condiciones de manera sucesiva.
El dispositivo de decodificación de instantáneas en movimiento, en el que se exploran los bloques de predicción en la dimensión espacial de manera que, cuando no se cumple ninguna de las condiciones por el primer bloque de predicción, se determina que no hay vectores de movimiento disponibles que cumplan una condición en el bloque de predicción, tras lo cual se procesan de manera sucesiva los siguientes bloques de predicción vecinos para hallar si se cumple alguna de las cuatro condiciones.
La secuencia de bits de instantáneas en movimiento emitida desde el dispositivo de codificación de instantáneas en movimiento de acuerdo con cualquiera de las realizaciones tiene un formato predefinido de modo que puede decodificarse de acuerdo con el procedimiento de codificación usado en las realizaciones. El dispositivo de decodificación de instantáneas en movimiento compatible con el dispositivo de codificación de instantáneas en movimiento puede decodificar la secuencia de bits del formato de datos predefinido.
Si se usa una red alámbrica o inalámbrica para intercambiar secuencias de bits entre el dispositivo de codificación de instantáneas en movimiento y el dispositivo de decodificación de instantáneas en movimiento, la secuencia de bits puede convertirse en un formato de datos adecuado al modo de transmisión a través del canal de comunicación y puede transmitirse en consecuencia. En este caso, debe proporcionarse un dispositivo de transmisión de instantáneas en movimiento para convertir las secuencias de bits emitidos desde el dispositivo de codificación de instantáneas en movimiento en datos codificados de un formato de datos adecuado al modo de transmisión a través del canal de comunicación y para transmitir las secuencias de bits a través de la red, y un dispositivo de recepción de instantáneas en movimiento para recibir las secuencias de bits desde la red para recuperar la secuencia de bits y suministrar las secuencias de bits recuperadas al dispositivo de decodificación de instantáneas en movimiento.
El dispositivo de transmisión de instantáneas en movimiento incluye una memoria para almacenar en memoria intermedia secuencias de bits emitidos desde el dispositivo de codificación de instantáneas en movimiento, una unidad de procesamiento de paquetes para empaquetar las secuencias de bits, y una unidad de transmisión para transmitir las secuencias de bits empaquetadas a través de la red. El dispositivo de recepción de instantáneas en movimiento incluye una unidad de recepción para recibir los datos codificados empaquetados a través de la red, una memoria para almacenar en memoria intermedia los datos codificados recibidos, y una unidad de procesamiento de paquetes para someter los datos codificados a un procedimiento de paquetes para generar secuencias de bits y proporcionar las secuencias de bits generados al dispositivo de decodificación de instantáneas en movimiento.
Los procedimientos anteriormente descritos relacionados con la codificación y decodificación pueden implementarse por supuesto por un aparato basado en hardware para transmisión, almacenamiento o recepción. Como alternativa, los procedimientos pueden implementarse por firmware almacenado en una memoria de sólo lectura (ROM), una memoria flash, etc., o por software en un ordenador, etc. El programa de firmware o el programa de software puede hacerse disponibles en, por ejemplo, un medio de grabación legible por ordenador. Como alternativa, los programas pueden hacerse disponibles en un servidor mediante una red alámbrica o inalámbrica. Aún como alternativa, los programas pueden hacerse disponibles en forma de transmisión de datos a través de sistemas de difusión digital terrestre o por satélite.
Se ha descrito anteriormente una explicación basándose en una realización de ejemplo. La realización se pretende que sea ilustrativa únicamente. La invención se define mediante las reivindicaciones independientes adjuntas.
[Descripción de los números de referencia]
101 memoria de imagen, 102 unidad de detección de vector de movimiento, 103 unidad de cálculo de diferencia de vector de movimiento, 104 unidad de estimación de información de inter predicción, 105 unidad de predicción de compensación de movimiento, 106 unidad de determinación de procedimiento de predicción, 107 unidad de generación de señal de error, 108 unidad de transformada/cuantificación ortogonal, 109 primera unidad de generación de secuencia de bits, 110 segunda unidad de generación de secuencia de bits, 112 unidad de transformada de cuantificación inversa/ortogonal inversa, 113 unidad de superposición de señal de imagen decodificada, 114 memoria de almacenamiento de información de codificación, 115 memoria de imagen decodificada, 117 unidad de multiplicación de secuencia de bits, 120 unidad de generación de candidato de predictor de vector de movimiento, 121 unidad de adición de vector de movimiento, 122 unidad de determinación de candidato de predictor de vector de movimiento idéntico, 123 unidad de cálculo de tamaño de código de candidato de predictor de vector de movimiento, 124 unidad de selección de predictor de vector de movimiento, 125 unidad de resta de vector de movimiento,
130 unidad de generación de candidato de unión, 131 unidad de adición de candidato de unión, 132 unidad de determinación de candidato de unión idéntico, 133 unidad de selección de información de codificación, 201 unidad de descomposición, 202 primera unidad de decodificación de secuencia de bits, 203 segunda unidad de decodificación de secuencia de bits, 204 unidad de cálculo de vector de movimiento, 205 unidad de estimación de información de inter predicción, 206 unidad de predicción de compensación de movimiento, 207 unidad de transformada de cuantificación inversa/ortogonal inversa, 208 unidad de superposición de señal de imagen decodificada, 209 memoria de almacenamiento de información de codificación, 210 memoria de imagen decodificada, 220 unidad de generación candidato de predictor de vector de movimiento, 221 unidad de adición de predictor de vector de movimiento, 222 unidad de determinación de candidato de predictor de vector de movimiento, 223 unidad de selección de predictor de vector de movimiento, 224 unidad de adición de vector de movimiento, 230 unidad de generación de candidato de unión, 231 unidad de adición de candidato de unión, 232 unidad de determinación de candidato de unión idéntico, 233 unidad de selección de información de codificación.
rAplicabilidad industrial!
La presente invención puede usarse como una tecnología de codificación y decodificación de instantáneas en movimiento usando predicción compensación de movimiento.
Claims (7)
1. Un dispositivo de codificación de instantáneas en movimiento adaptado para codificar una secuencia de bits en el que se codifican instantáneas en movimiento en unidades de bloques obtenidas mediante partición de cada instantánea de las instantáneas en movimiento, usando compensación de movimiento, que comprende:
una unidad (120, 121, 221) de generación de candidato de predictor de vector de movimiento configurada para derivar un candidato de predictor de vector de movimiento desde un primer grupo de bloques que incluye un primer bloque de predicción vecino a un bloque de predicción sometido a codificación en la misma instantánea que el bloque de predicción sometido a codificación, y un candidato de predictor de vector de movimiento desde un segundo grupo de bloques que incluye un segundo bloque de predicción vecino al bloque de predicción sometido a codificación en la misma instantánea que el bloque de predicción sometido a codificación, y para añadir los candidatos de predictor de vector de movimiento derivados en una lista de candidatos de predictor de vector de movimiento;
una unidad (124) de selección de predictor de vector de movimiento configurada para seleccionar un predictor de vector de movimiento de la lista de candidatos de predictor de vector de movimiento, y para establecer información que indica una posición del predictor de vector de movimiento que debe seleccionarse;
una (109) unidad de codificación configurada para codificar la información que indica la posición del candidato de predictor de vector de movimiento que debe seleccionarse en la lista de candidatos de predictor de vector de movimiento; y
en el que el primer bloque de predicción consiste en al menos un bloque vecino en la parte inferior izquierda y un bloque vecino a la izquierda,
en el que el segundo bloque de predicción consiste en al menos un bloque vecino en la parte superior derecha y un bloque vecino por encima,
en el que la unidad (120, 121) de generación de candidato de predictor de vector de movimiento determina, para el fin de obtención de un número predeterminado de candidatos de predictor de vector de movimiento, cuál de los bloques de predicción codificados proporciona el vector de movimiento a partir del cual derivar el candidato de predictor de vector de movimiento, de manera que la unidad de generación de candidato de predictor de vector de movimiento procesa, en un orden predeterminado, bloques de predicción en el primer grupo de bloques y en el segundo grupo de bloques, haciéndose dicho procesamiento de acuerdo con las condiciones 1 y 2 siguientes en el orden establecido, es decir, la condición 1 en primer lugar y la condición 2 en segundo lugar, para cada bloque de predicción y a continuación de acuerdo con las condiciones 3 y 4 siguientes en el orden establecido, es decir, la condición 3 en primer lugar y la condición 4 en segundo lugar, para cada bloque de predicción, y
en el que la unidad (120, 121) de generación de candidato de predictor de vector de movimiento obtiene, cuando se cumple la condición 1 o la condición 2, un vector de movimiento para el bloque de predicción que cumple la condición 1 o la condición 2 como el candidato de predictor de vector de movimiento, obtiene, cuando se cumple la condición 3 o la condición 4, un vector de movimiento calculado escalando, basándose en un vector de movimiento para el bloque de predicción que cumple la condición 3 o la condición 4 como el candidato de predictor de vector de movimiento, y añade el candidato de predictor de vector de movimiento derivado del primer grupo de bloques, y el candidato de predictor de vector de movimiento derivado del segundo grupo de bloques, en el orden establecido en la lista de candidatos de predictor de vector de movimiento,
condición 1: se halla un vector de movimiento que se ha previsto usando la misma lista de referencias y la misma instantánea de referencia que la de un modo de codificación seleccionado en el bloque de predicción sometido a codificación;
condición 2: se halla un vector de movimiento que se ha previsto usando una lista de referencias diferente de la del modo de codificación seleccionado en el bloque de predicción sometido a codificación y usando la misma instantánea de referencia que la del modo de codificación seleccionado en el bloque de predicción sometido a codificación;
condición 3: se halla un vector de movimiento que se ha previsto usando la misma lista de referencias que la del modo de codificación seleccionado en el bloque de predicción sometido a codificación y usando una instantánea de referencia diferente de la del modo de codificación seleccionado en el bloque de predicción sometido a codificación; y
condición 4: se halla un vector de movimiento que se ha previsto usando una lista de referencias diferente de la del modo de codificación seleccionado en el bloque de predicción sometido a codificación y usando una instantánea de referencia diferente de la del modo de codificación seleccionado en el bloque de predicción sometido a codificación.
2. Un procedimiento de codificación de instantáneas en movimiento adaptado para codificar una secuencia de bits en la que se codifican instantáneas en movimiento en unidades de bloques obtenidas dividiendo cada instantánea de las instantáneas en movimiento, usando compensación de movimiento, que comprende:
generar candidatos de predictor de vector de movimiento derivando un candidato de predictor de vector de movimiento desde un primer grupo de bloques que incluye un primer bloque de predicción vecino a un bloque de predicción sometido a codificación en la misma instantánea que el bloque de predicción sometido a codificación, y un candidato de predictor de vector de movimiento desde un segundo grupo de bloques que incluye un segundo bloque de predicción vecino al bloque de predicción sometido a codificación en la misma instantánea que el bloque de predicción sometido a codificación, y añadiendo los candidatos de predictor de vector de movimiento derivados en una lista de candidatos de predictor de vector de movimiento;
seleccionar un predictor de vector de movimiento de la lista de candidatos de predictor de vector de movimiento, y establecer información que indica una posición del predictor de vector de movimiento que debe seleccionarse;
codificar la información que indica la posición del candidato de predictor de vector de movimiento que debe seleccionarse en la lista de candidatos de predictor de vector de movimiento; y
en el que el primer bloque de predicción consiste en al menos un bloque vecino en la parte inferior izquierda y un bloque vecino a la izquierda,
en el que el segundo bloque de predicción consiste en al menos un bloque vecino en la parte superior derecha y un bloque vecino por encima,
en el que la generación de candidatos de predictor de vector de movimiento determina, para el fin de obtención de un número predeterminado de candidatos de predictor de vector de movimiento, cuál de los bloques de predicción codificados proporciona el vector de movimiento a partir del cual derivar el candidato de predictor de vector de movimiento, de manera que la generación de candidatos de predictor de vector de movimiento procesa, en un orden predeterminado, bloques de predicción en el primer grupo de bloques y en el segundo grupo de bloques, haciéndose dicho procesamiento de acuerdo con las condiciones 1 y 2 siguientes en el orden establecido, es decir, la condición 1 en primer lugar y la condición 2 en segundo lugar, para cada bloque de predicción y a continuación de acuerdo con las condiciones 3 y 4 siguientes en el orden establecido, es decir, la condición 3 en primer lugar y la condición 4 en segundo lugar, para cada bloque de predicción, y
en el que la generación de candidatos de predictor de vector de movimiento obtiene, cuando se cumple la condición 1 o la condición 2, un vector de movimiento para el bloque de predicción que cumple la condición 1 o la condición 2 como el candidato de predictor de vector de movimiento, obtiene, cuando se cumple la condición 3 o la condición 4, un vector de movimiento calculado escalando basándose en un vector de movimiento para el bloque de predicción que cumple la condición 3 o la condición 4 como el candidato de predictor de vector de movimiento, y añade el candidato de predictor de vector de movimiento derivado del primer grupo de bloques, y el candidato de predictor de vector de movimiento derivado del segundo grupo de bloques en el orden establecido en la lista de candidatos de predictor de vector de movimiento, condición 1: se halla un vector de movimiento que se ha previsto usando la misma lista de referencias y la misma instantánea de referencia que la de un modo de codificación seleccionado en el bloque de predicción sometido a codificación;
condición 2: se halla un vector de movimiento que se ha previsto usando una lista de referencias diferente de la del modo de codificación seleccionado en el bloque de predicción sometido a codificación y usando la misma instantánea de referencia que la del modo de codificación seleccionado en el bloque de predicción sometido a codificación;
condición 3: se halla un vector de movimiento que se ha previsto usando la misma lista de referencias que la del modo de codificación seleccionado en el bloque de predicción sometido a codificación y usando una instantánea de referencia diferente de la del modo de codificación seleccionado en el bloque de predicción sometido a codificación; y
condición 4: se halla un vector de movimiento que se ha previsto usando una lista de referencias diferente de la del modo de codificación seleccionado en el bloque de predicción sometido a codificación y usando una instantánea de referencia diferente de la del modo de codificación seleccionado en el bloque de predicción sometido a codificación.
3. Un programa de codificación de imágenes en movimiento embebido en un medio de grabación legible por ordenador no transitorio y adaptado para codificar un flujo de bits en el que las instantáneas en movimiento se codifican en unidades de bloques obtenidos mediante la partición de cada instantánea de las instantáneas en movimiento, mediante el uso de compensación de movimiento, comprendiendo el programa instrucciones que, cuando son ejecutadas por un ordenador, hacen que el ordenador lleve a cabo el procedimiento de la reivindicación 2.
4. Un dispositivo de decodificación de instantáneas en movimiento adaptado para decodificar un flujo de bits en el que las instantáneas en movimiento se codifican en unidades de bloques obtenidos mediante la partición de cada instantánea de las instantáneas en movimiento, mediante el uso de compensación de movimiento, que comprende:
una unidad (220, 221) de generación de candidatos a predictores de vectores de movimiento configurada para derivar un candidato de predictor de vectores de movimiento a partir de un primer grupo de bloques que incluye un primer bloque de predicción vecino a un bloque de predicción sometido a decodificación dentro de la misma instantánea que el bloque de predicción sometido a decodificación, y un candidato de predictor de vector de movimiento a partir de un segundo grupo de bloques que incluye un segundo bloque de predicción vecino al bloque de predicción sometido a decodificación dentro de la misma instantánea que el bloque de predicción sometido a decodificación, y para añadir los candidatos de predictor de vectores de movimiento derivados en una lista de candidatos de predictor de vectores de movimiento;
una unidad de decodificación (202) configurada para decodificar información que indica una posición del candidato de predictor de vector de movimiento que debe seleccionarse en la lista de candidatos de predictor de vector de movimiento;
una unidad (223) de selección de predictor de vector de movimiento configurada para seleccionar un predictor de vector de movimiento de la lista de candidatos de predictor de vector de movimiento, basándose en la información que indica la posición del predictor de vector de movimiento que debe seleccionarse; y en el que el primer bloque de predicción consiste en al menos un bloque vecino en la parte inferior izquierda y un bloque vecino a la izquierda,
en el que el segundo bloque de predicción consiste en al menos un bloque vecino en la parte superior derecha y un bloque vecino por encima,
en el que la unidad (220, 221) de generación de candidatos a predictores de vector de movimiento determina, con el fin de obtener un número predeterminado de candidatos de predictor de vector de movimiento, cuál de los bloques de predicción decodificados proporciona el vector de movimiento del cual derivar el candidato de predictor de vector de movimiento, de tal manera que la unidad de generación de candidatos de predictor de vector de movimiento procesa, en un orden predeterminado, bloques de predicción en el primer grupo de bloques y en el segundo grupo de bloques, realizándose dicho procesamiento de acuerdo con las condiciones 1 y 2 a continuación en el orden indicado, es decir, la condición 1 primero y la condición 2 segundo, para cada bloque de predicción y luego de acuerdo con las condiciones 3 y 4 a continuación en el orden indicado, es decir, la condición 3 primero y la condición 4 segundo, para cada bloque de predicción, y
en el que la unidad (220, 221) de generación de candidatos de predictor de vector de movimiento obtiene, cuando se cumple la condición 1 o la condición 2, un vector de movimiento para el bloque de predicción que cumple la condición 1 o la condición 2 como candidato de predictor de vector de movimiento, obtiene, cuando se cumple la condición 3 o la condición 4, un vector de movimiento calculado mediante escalado con base en un vector de movimiento para el bloque de predicción que cumple la condición 3 o la condición 4 como candidato de predictor de vector de movimiento, y agrega el candidato de predictor de vector de movimiento derivado del primer grupo de bloques, y el candidato de predictor de vector de movimiento derivado del segundo grupo de bloques en el orden indicado en la lista de candidatos de predictor de vector de movimiento,
condición 1: se encuentra un vector de movimiento que se predice utilizando la misma lista de referencia y la misma instantánea de referencia que la de un modo de codificación seleccionado en el bloque de predicción sometido a decodificación;
condición 2: se encuentra un vector de movimiento que se predice utilizando una lista de referencia diferente a la del modo de codificación seleccionado en el bloque de predicción sometido a decodificación y utilizando la misma instantánea de referencia que la del modo de codificación seleccionado en el bloque de predicción sometido a decodificación;
condición 3: se encuentra un vector de movimiento que se predice utilizando la misma lista de referencia que la del modo de codificación seleccionado en el bloque de predicción sometido a decodificación y utilizando una instantánea de referencia diferente a la del modo de codificación seleccionado en el bloque de predicción sujeto a decodificación; y
condición 4: se encuentra un vector de movimiento que se predice utilizando una lista de referencia diferente a la del modo de codificación seleccionado en el bloque de predicción sometido a decodificación y utilizando una instantánea de referencia diferente a la del modo de codificación seleccionado en el bloque de predicción sometido a decodificación.
5. Un procedimiento de decodificación de instantáneas en movimiento adaptado para decodificar un flujo de bits en el que las instantáneas en movimiento se codifican en unidades de bloques obtenidos mediante la partición de cada instantánea de las instantáneas en movimiento, mediante el uso de compensación de movimiento, que comprende:
generar candidatos de predictor de vector de movimiento mediante la derivación de un candidato de predictor de vector de movimiento a partir de un primer grupo de bloques que incluye un primer bloque de predicción vecino a un bloque de predicción sometido a decodificación dentro de la misma instantánea que el bloque de predicción sometido a decodificación, y un candidato de predictor de vector de movimiento a partir de un segundo grupo de bloques que incluye un segundo bloque de predicción vecino al bloque de predicción sometido a decodificación dentro de la misma instantánea que el bloque de predicción sometido a decodificación, y mediante la adición de los candidatos de predictor de vector de movimiento derivados en una lista de candidatos de predictor de vector de movimiento;
decodificar información que indica una posición del candidato de predictor de vector de movimiento que debe seleccionarse en la lista de candidatos de predictor de vector de movimiento;
seleccionar un predictor de vector de movimiento a partir de la lista de candidatos de predictor de vector de movimiento, con base en la información que indica la posición del predictor de vector de movimiento que debe seleccionarse; y
en el que el primer bloque de predicción consiste en al menos un bloque vecino en la parte inferior izquierda y un bloque vecino a la izquierda,
en el que el segundo bloque de predicción consiste en al menos un bloque vecino en la parte superior derecha y un bloque vecino por encima,
en el que la generación de candidatos de predictor de vector de movimiento determina, con el fin de obtener un número predeterminado de candidatos de predictor de vector de movimiento, cuál de los bloques de predicción decodificados proporciona el vector de movimiento del que derivar el candidato de predictor de vector de movimiento, de modo que la generación de candidatos de predictor de vector de movimiento procesa, en un orden predeterminado, bloques de predicción en el primer grupo de bloques y en el grupo de bloques, realizándose dicho procesamiento de acuerdo con las condiciones 1 y 2 a continuación en el orden indicado, es decir, la condición 1 primero y la condición 2 segundo, para cada bloque de predicción y luego de acuerdo con las condiciones 3 y 4 a continuación en el orden indicado, es decir, la condición 3 primero y la condición 4 segundo, para cada bloque de predicción, y
en el que la generación de candidatos de predictor de vector de movimiento obtiene, cuando se cumple la condición 1 o la condición 2, un vector de movimiento para el bloque de predicción que cumple la condición 1 o la condición 2 como candidato de predictor de vector de movimiento, obtiene, cuando se cumple la condición 3 o la condición 4, un vector de movimiento calculado mediante escalado con base en un vector de movimiento para el bloque de predicción que cumple la condición 3 o la condición 4 como candidato de predictor de vector de movimiento, y añade el candidato de predictor de vector de movimiento derivado del primer grupo de bloques, y el candidato de predictor de vector de movimiento derivado del segundo grupo de bloques en el orden indicado en la lista de candidatos de predictor de vector de movimiento, condición 1: se encuentra un vector de movimiento que se predice utilizando la misma lista de referencia y la misma instantánea de referencia que la de un modo de codificación seleccionado en el bloque de predicción sometido a decodificación;
condición 2: se encuentra un vector de movimiento que se predice utilizando una lista de referencia diferente a la del modo de codificación seleccionado en el bloque de predicción sometido a decodificación y utilizando la misma instantánea de referencia que la del modo de codificación seleccionado en el bloque de predicción sometido a decodificación;
condición 3: se encuentra un vector de movimiento que se predice utilizando la misma lista de referencia que la del modo de codificación seleccionado en el bloque de predicción sujeto a decodificación y utilizando una instantánea de referencia diferente a la del modo de codificación seleccionado en el bloque de predicción sometido a decodificación; y
condición 4: se encuentra un vector de movimiento que se predice utilizando una lista de referencia diferente a la del modo de codificación seleccionado en el bloque de predicción sometido a decodificación y utilizando una instantánea de referencia diferente a la del modo de codificación seleccionado en el bloque de predicción sometido a decodificación.
6. Un programa de decodificación de instantáneas en movimiento embebido en un medio de grabación legible por ordenador no transitorio y adaptado para decodificar una secuencia de bits en la que se codifican instantáneas en movimiento en unidades de bloques obtenidas dividiendo cada instantánea de las instantáneas en movimiento, usando compensación de movimiento, comprendiendo el programa instrucciones que, cuando se ejecutan por un ordenador, hacen que el ordenador lleve a cabo el procedimiento de la reivindicación 5.
7. Un procedimiento de transmisión para transmitir una secuencia de bits, que comprende:
generar un flujo de bits utilizando el procedimiento de la reivindicación 2 y, mediante un dispositivo de transmisión, almacenar en memoria intermedia la secuencias de bits, empaquetar la secuencias de bits y transmitir la secuencias de bits empaquetada.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2011122770A JP5477340B2 (ja) | 2011-05-31 | 2011-05-31 | 動画像符号化装置、動画像符号化方法及び動画像符号化プログラム |
| JP2011122771A JP5252029B2 (ja) | 2011-05-31 | 2011-05-31 | 動画像復号装置、動画像復号方法、動画像復号プログラム、受信装置、受信方法、及び受信プログラム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2986742T3 true ES2986742T3 (es) | 2024-11-12 |
Family
ID=47258796
Family Applications (5)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES12792048T Active ES2861773T3 (es) | 2011-05-31 | 2012-05-30 | Dispositivo de decodificación de imágenes en movimiento, procedimiento de decodificación de imágenes en movimiento y programa de decodificación de imágenes en movimiento |
| ES21153600T Active ES3007107T3 (en) | 2011-05-31 | 2012-05-30 | Moving image encoding device, moving image encoding method and moving image encoding program, as well as moving image decoding device, moving image decoding method and moving image decoding program |
| ES21153596T Active ES2986742T3 (es) | 2011-05-31 | 2012-05-30 | Dispositivo de codificación de imágenes en movimiento, procedimiento de codificación de imágenes en movimiento y programa de codificación de imágenes en movimiento así como dispositivo de decodificación de imágenes en movimiento, procedimiento de decodificación de imágenes en movimiento y programa de decodificación de imágenes en movimiento |
| ES21151640T Active ES2980762T3 (es) | 2011-05-31 | 2012-05-30 | Dispositivo de codificación de imágenes en movimiento, procedimiento de codificación de imágenes en movimiento y programa de codificación de imágenes en movimiento así como dispositivo de decodificación de imágenes en movimiento, procedimiento de decodificación de imágenes en movimiento y programa de decodificación de imágenes en movimiento |
| ES21153604T Active ES2980763T3 (es) | 2011-05-31 | 2012-05-30 | Dispositivo de codificación de imágenes en movimiento, procedimiento de codificación de imágenes en movimiento y programa de codificación de imágenes en movimiento así como dispositivo de decodificación de imágenes en movimiento, procedimiento de decodificación de imágenes en movimiento y programa de decodificación de imágenes en movimiento |
Family Applications Before (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES12792048T Active ES2861773T3 (es) | 2011-05-31 | 2012-05-30 | Dispositivo de decodificación de imágenes en movimiento, procedimiento de decodificación de imágenes en movimiento y programa de decodificación de imágenes en movimiento |
| ES21153600T Active ES3007107T3 (en) | 2011-05-31 | 2012-05-30 | Moving image encoding device, moving image encoding method and moving image encoding program, as well as moving image decoding device, moving image decoding method and moving image decoding program |
Family Applications After (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES21151640T Active ES2980762T3 (es) | 2011-05-31 | 2012-05-30 | Dispositivo de codificación de imágenes en movimiento, procedimiento de codificación de imágenes en movimiento y programa de codificación de imágenes en movimiento así como dispositivo de decodificación de imágenes en movimiento, procedimiento de decodificación de imágenes en movimiento y programa de decodificación de imágenes en movimiento |
| ES21153604T Active ES2980763T3 (es) | 2011-05-31 | 2012-05-30 | Dispositivo de codificación de imágenes en movimiento, procedimiento de codificación de imágenes en movimiento y programa de codificación de imágenes en movimiento así como dispositivo de decodificación de imágenes en movimiento, procedimiento de decodificación de imágenes en movimiento y programa de decodificación de imágenes en movimiento |
Country Status (12)
| Country | Link |
|---|---|
| US (5) | US8976867B2 (es) |
| EP (5) | EP2717574B1 (es) |
| KR (3) | KR20140019448A (es) |
| CN (7) | CN103563386A (es) |
| BR (2) | BR122020013893B1 (es) |
| DK (1) | DK2717574T3 (es) |
| ES (5) | ES2861773T3 (es) |
| HU (5) | HUE067847T2 (es) |
| PL (5) | PL3879831T3 (es) |
| SI (1) | SI2717574T1 (es) |
| TW (5) | TWI578768B (es) |
| WO (1) | WO2012164924A1 (es) |
Families Citing this family (80)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2011501555A (ja) * | 2007-10-16 | 2011-01-06 | エルジー エレクトロニクス インコーポレイティド | ビデオ信号処理方法及び装置 |
| GB2501836B (en) * | 2011-03-09 | 2014-08-06 | Canon Kk | Video encoding |
| JP5886950B2 (ja) | 2011-06-14 | 2016-03-16 | サムスン エレクトロニクス カンパニー リミテッド | 動き情報の符号化方法及びその装置、その復号化方法及びその装置 |
| AU2012276455B2 (en) | 2011-06-27 | 2016-02-25 | Samsung Electronics Co., Ltd. | Method and apparatus for encoding motion information, and method and apparatus for decoding same |
| US9473769B2 (en) | 2012-06-08 | 2016-10-18 | Texas Instruments Incorporated | Method and system for reducing slice header parsing overhead in video coding |
| CN102883163B (zh) | 2012-10-08 | 2014-05-28 | 华为技术有限公司 | 用于运动矢量预测的运动矢量列表建立的方法、装置 |
| CN105264894A (zh) * | 2013-04-05 | 2016-01-20 | 三星电子株式会社 | 针对层间解码和编码方法以及设备的确定帧间预测候选的方法 |
| EP3130147B1 (en) | 2014-05-06 | 2022-05-04 | HFI Innovation Inc. | Methods of block vector prediction and decoding for intra block copy mode coding |
| JP6482191B2 (ja) * | 2014-06-12 | 2019-03-13 | キヤノン株式会社 | 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム |
| US10602179B2 (en) | 2014-10-31 | 2020-03-24 | Samsung Electronics Co., Ltd. | Video encoding device and video decoding device using high-precision skip encoding and method thereof |
| WO2016091162A1 (en) * | 2014-12-09 | 2016-06-16 | Mediatek Inc. | Method of motion vector predictor or merge candidate derivation in video coding |
| CN107409214B (zh) | 2015-01-21 | 2021-02-02 | 三星电子株式会社 | 用于对层间视频进行解码的方法和设备以及用于对层间视频进行编码的方法和设备 |
| US9930378B2 (en) * | 2015-02-11 | 2018-03-27 | Qualcomm Incorporated | Signaling of operation points for carriage of HEVC extensions |
| CN104661031B (zh) * | 2015-02-16 | 2017-12-22 | 华为技术有限公司 | 用于视频图像编码和解码的方法、编码设备和解码设备 |
| CN108141582B (zh) | 2015-08-07 | 2022-06-03 | Lg 电子株式会社 | 视频编译系统中的帧间预测方法和装置 |
| EP3355578B1 (en) * | 2015-09-24 | 2020-12-09 | LG Electronics Inc. | Motion vector predictor derivation and candidate list construction |
| US10477233B2 (en) * | 2015-09-30 | 2019-11-12 | Apple Inc. | Predictor candidates for motion estimation search systems and methods |
| CN105430414A (zh) * | 2015-12-03 | 2016-03-23 | 福州瑞芯微电子股份有限公司 | 一种帧间预测解码方法和装置 |
| US11032550B2 (en) * | 2016-02-25 | 2021-06-08 | Mediatek Inc. | Method and apparatus of video coding |
| US20200351505A1 (en) * | 2016-04-28 | 2020-11-05 | Lg Electronics Inc. | Inter prediction mode-based image processing method and apparatus therefor |
| EP4060992B1 (en) * | 2016-05-13 | 2025-07-02 | InterDigital VC Holdings, Inc. | Systems and methods for generalized multi-hypothesis prediction for video coding |
| CN116567260A (zh) * | 2016-05-24 | 2023-08-08 | 韩国电子通信研究院 | 图像编码/解码方法和用于所述方法的记录介质 |
| JP6620079B2 (ja) * | 2016-09-08 | 2019-12-11 | 株式会社ソニー・インタラクティブエンタテインメント | 画像処理システム、画像処理方法およびコンピュータプログラム |
| KR102343668B1 (ko) | 2016-09-30 | 2021-12-24 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 비디오 인코딩 방법, 비디오 디코딩 방법, 및 단말 |
| CN116489400A (zh) | 2016-10-14 | 2023-07-25 | 世宗大学校产学协力团 | 影像解码/编码方法、传送比特流的方法及记录介质 |
| CN116886897A (zh) * | 2017-01-16 | 2023-10-13 | 世宗大学校产学协力团 | 影像解码/编码方法以及传送比特流的方法 |
| US12457321B2 (en) * | 2017-03-22 | 2025-10-28 | Electronics And Telecommunications Research Institute | Prediction method and device using reference block |
| KR20180111378A (ko) * | 2017-03-31 | 2018-10-11 | 주식회사 칩스앤미디어 | 병렬 처리를 위한 움직임 정보를 처리하는 영상 처리 방법, 그를 이용한 영상 복호화, 부호화 방법 및 그 장치 |
| CN109510991B (zh) * | 2017-09-15 | 2021-02-19 | 浙江大学 | 一种运动矢量导出方法及装置 |
| WO2019089933A1 (en) | 2017-11-01 | 2019-05-09 | Vid Scale, Inc. | Sub-block motion derivation and decoder-side motion vector refinement for merge mode |
| EP3744102B1 (en) | 2018-01-24 | 2026-03-04 | InterDigital VC Holdings, Inc. | Generalized bi-prediction for video coding with reduced coding complexity |
| KR102934793B1 (ko) | 2018-01-26 | 2026-03-05 | 한국전자통신연구원 | 시간적 움직임 정보를 이용하는 영상 부호화 및 영상 복호화를 위한 방법 및 장치 |
| WO2019147067A1 (ko) | 2018-01-26 | 2019-08-01 | 한국전자통신연구원 | 시간적 움직임 정보를 이용하는 영상 부호화 및 영상 복호화를 위한 방법 및 장치 |
| WO2019194568A1 (ko) * | 2018-04-03 | 2019-10-10 | 인텔렉추얼디스커버리 주식회사 | 어파인 모델 기반의 영상 부호화/복호화 방법 및 장치 |
| US10491897B2 (en) | 2018-04-13 | 2019-11-26 | Google Llc | Spatially adaptive quantization-aware deblocking filter |
| MX2020012042A (es) * | 2018-05-17 | 2021-01-29 | Panasonic Ip Corp America | Dispositivo de codificacion, dispositivo de decodificacion, metodo de codificacion y metodo de decodificacion. |
| KR20240005239A (ko) | 2018-06-29 | 2024-01-11 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | Lut와 amvp 사이의 상호작용 |
| AU2019293670B2 (en) | 2018-06-29 | 2023-06-08 | Beijing Bytedance Network Technology Co., Ltd. | Update of look up table: FIFO, constrained FIFO |
| KR102660666B1 (ko) | 2018-06-29 | 2024-04-26 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | Lut들을 업데이트하기 위한 조건들 |
| 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 |
| EP4322533A3 (en) | 2018-06-29 | 2024-03-06 | Beijing Bytedance Network Technology Co., Ltd. | Checking order of motion candidates in lut |
| KR102648120B1 (ko) | 2018-06-29 | 2024-03-18 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | 슬라이스/타일/lcu 행마다의 룩업 테이블 리셋 |
| CN110662059B (zh) | 2018-06-29 | 2021-04-20 | 北京字节跳动网络技术有限公司 | 使用查找表存储先前编码的运动信息并用其编码后续块的方法和装置 |
| WO2020003265A1 (en) | 2018-06-29 | 2020-01-02 | Beijing Bytedance Network Technology Co., Ltd. | Conditions of usage of luts |
| 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. |
| CN110677658B (zh) * | 2018-07-01 | 2022-07-12 | 北京字节跳动网络技术有限公司 | 基于优先级的非相邻Merge设计 |
| WO2020009390A1 (ko) * | 2018-07-02 | 2020-01-09 | 엘지전자 주식회사 | 영상 코딩 시스템에서 인터 예측에 따른 영상 처리 방법 및 장치 |
| WO2020008346A1 (en) | 2018-07-02 | 2020-01-09 | Beijing Bytedance Network Technology Co., Ltd. | Rules on updating luts |
| CN118972565A (zh) * | 2018-09-07 | 2024-11-15 | 松下电器(美国)知识产权公司 | 用于视频编码的系统和方法 |
| TWI820211B (zh) | 2018-09-12 | 2023-11-01 | 大陸商北京字節跳動網絡技術有限公司 | 取決於總數減去k的開始檢查hmvp候選的條件 |
| CN119996670A (zh) * | 2018-09-18 | 2025-05-13 | 韩国电子通信研究院 | 图像编码/解码方法和装置以及存储比特流的记录介质 |
| CN112806010B (zh) * | 2018-10-02 | 2024-11-05 | 交互数字Vc控股公司 | 使用预测子候选列表进行视频编码和解码的方法和装置 |
| US11032541B2 (en) * | 2018-10-22 | 2021-06-08 | Tencent America LLC | Method and apparatus for video coding |
| CN112889269B (zh) * | 2018-10-23 | 2023-10-27 | 腾讯美国有限责任公司 | 视频解码方法及装置 |
| WO2020094079A1 (en) | 2018-11-06 | 2020-05-14 | Beijing Bytedance Network Technology Co., Ltd. | Block size dependent storage of motion information |
| WO2020096427A1 (ko) * | 2018-11-08 | 2020-05-14 | 주식회사 엑스리스 | 영상 신호 부호화/복호화 방법 및 이를 위한 장치 |
| EP4546782A3 (en) * | 2018-12-13 | 2025-07-02 | JVCKENWOOD Corporation | Image decoding device, image decoding method, and image decoding program |
| CA3124076C (en) | 2018-12-28 | 2026-02-24 | Godo Kaisha Ip Bridge 1 | Picture decoding device, picture decoding method, and picture decoding program |
| TWI782887B (zh) * | 2018-12-28 | 2022-11-01 | 日商Jvc建伍股份有限公司 | 影像編碼裝置、影像編碼方法、影像編碼程式、影像解碼裝置、影像解碼方法及影像解碼程式 |
| RU2770863C1 (ru) * | 2018-12-28 | 2022-04-22 | ДжейВиСиКЕНВУД Корпорейшн | Устройство кодирования кадров, способ кодирования кадров, устройство декодирования кадров и способ декодирования кадров |
| CN113055690B (zh) * | 2018-12-28 | 2023-11-14 | 知识产权之桥一号有限责任公司 | 图像编码装置和方法、图像解码装置和方法、存储介质 |
| US11032574B2 (en) | 2018-12-31 | 2021-06-08 | Tencent America LLC | Method and apparatus for video coding |
| WO2020143741A1 (en) | 2019-01-10 | 2020-07-16 | Beijing Bytedance Network Technology Co., Ltd. | Invoke of lut updating |
| WO2020143824A1 (en) | 2019-01-13 | 2020-07-16 | Beijing Bytedance Network Technology Co., Ltd. | Interaction between lut and shared merge list |
| WO2020147773A1 (en) | 2019-01-16 | 2020-07-23 | Beijing Bytedance Network Technology Co., Ltd. | Inserting order of motion candidates in lut |
| AR118250A1 (es) * | 2019-03-08 | 2021-09-22 | Jvckenwood Corp | Dispositivos, métodos y programas de codificación y decodificación de imágenes en movimiento |
| JP6897885B2 (ja) * | 2019-03-08 | 2021-07-07 | 株式会社Jvcケンウッド | 動画像符号化装置、動画像符号化方法、及び動画像符号化プログラム、動画像復号装置、動画像復号方法及び動画像復号プログラム |
| EP3941063A4 (en) * | 2019-03-11 | 2022-04-27 | Panasonic Intellectual Property Corporation of America | ENCODING DEVICE, DECODING DEVICE, ENCODING METHOD AND DECODING METHOD |
| JP2022533295A (ja) * | 2019-03-13 | 2022-07-22 | エスゼット ディージェイアイ テクノロジー カンパニー リミテッド | 動画処理方法、装置、及びコンピュータプログラム |
| US11418807B2 (en) * | 2019-03-15 | 2022-08-16 | Tencent America LLC | Temporal motion vector derivation in shared merge region at picture boundary |
| CN113615193B (zh) | 2019-03-22 | 2024-06-25 | 北京字节跳动网络技术有限公司 | Merge列表构建和其他工具之间的交互 |
| CN112055220B (zh) * | 2019-06-05 | 2022-07-29 | 杭州海康威视数字技术股份有限公司 | 一种编解码方法、装置及其设备 |
| CN119967167A (zh) | 2019-06-14 | 2025-05-09 | Lg 电子株式会社 | 使用运动矢量差进行图像编译的方法和装置 |
| KR20250038829A (ko) * | 2019-06-20 | 2025-03-19 | 가부시키가이샤 제이브이씨 켄우드 | 화상 부호화 장치, 화상 부호화 방법, 컴퓨터 판독가능 기록 매체, 화상 복호 장치, 화상 복호 방법, 격납 방법 및 전송 방법 |
| JP7063416B2 (ja) * | 2019-06-21 | 2022-05-09 | 株式会社Jvcケンウッド | 動画像符号化装置、動画像符号化方法、及び動画像符号化プログラム、動画像復号装置、動画像復号方法及び動画像復号プログラム |
| CN115643413A (zh) * | 2019-06-25 | 2023-01-24 | Jvc建伍株式会社 | 动图像编码装置和方法、以及动图像解码装置和方法 |
| EP4052469A4 (en) * | 2019-12-03 | 2023-01-25 | Huawei Technologies Co., Ltd. | Coding method, device, system with merge mode |
| CN114598888B (zh) | 2020-12-04 | 2024-12-10 | 腾讯科技(深圳)有限公司 | 串矢量的编解码方法、编码设备、解码设备及存储介质 |
| US12531996B2 (en) | 2022-04-12 | 2026-01-20 | Telefonaktiebolaget Lm Ericsson (Publ) | Enhanced multi-hypothesis prediction |
| US12081792B2 (en) | 2022-06-07 | 2024-09-03 | Tencent America LLC | Adjacent spatial motion vector predictor candidates improvement |
Family Cites Families (40)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| FR2725577B1 (fr) * | 1994-10-10 | 1996-11-29 | Thomson Consumer Electronics | Procede de codage ou de decodage de vecteurs mouvement et dispositif de codage ou de decodage mettant en oeuvre ledit procede |
| US5608458A (en) * | 1994-10-13 | 1997-03-04 | Lucent Technologies Inc. | Method and apparatus for a region-based approach to coding a sequence of video images |
| US7724827B2 (en) * | 2003-09-07 | 2010-05-25 | Microsoft Corporation | Multi-layer run level encoding and decoding |
| CN1213613C (zh) * | 2003-09-12 | 2005-08-03 | 浙江大学 | 视频编解码中运动矢量的预测方法和装置 |
| JP4064973B2 (ja) * | 2005-03-23 | 2008-03-19 | 株式会社東芝 | ビデオエンコーダ及びこれを用いた携帯無線端末装置 |
| US20070009050A1 (en) * | 2005-04-11 | 2007-01-11 | Nokia Corporation | Method and apparatus for update step in video coding based on motion compensated temporal filtering |
| US8165205B2 (en) * | 2005-09-16 | 2012-04-24 | Sony Corporation | Natural shaped regions for motion compensation |
| US8879635B2 (en) * | 2005-09-27 | 2014-11-04 | Qualcomm Incorporated | Methods and device for data alignment with time domain boundary |
| JP4879558B2 (ja) * | 2005-11-02 | 2012-02-22 | パナソニック株式会社 | 動きベクトル検出装置 |
| US20080092005A1 (en) * | 2006-09-26 | 2008-04-17 | Huott William V | Scan Testing Interface |
| TWI323132B (en) * | 2006-12-29 | 2010-04-01 | Ind Tech Res Inst | Motion vector (mv) prediction method and apparatus |
| US7991237B2 (en) * | 2007-06-28 | 2011-08-02 | Mitsubishi Electric Corporation | Image encoding device, image decoding device, image encoding method and image decoding method |
| US8322874B2 (en) * | 2007-09-06 | 2012-12-04 | 3M Innovative Properties Company | Lightguides having light extraction structures providing regional control of light output |
| KR100926752B1 (ko) * | 2007-12-17 | 2009-11-16 | 한국전자통신연구원 | 동영상 부호화를 위한 미세 움직임 추정 방법 및 장치 |
| CN101686393B (zh) * | 2008-09-28 | 2012-10-17 | 华为技术有限公司 | 应用于模板匹配的快速运动搜索方法及装置 |
| US20100166073A1 (en) * | 2008-12-31 | 2010-07-01 | Advanced Micro Devices, Inc. | Multiple-Candidate Motion Estimation With Advanced Spatial Filtering of Differential Motion Vectors |
| US9503728B2 (en) * | 2009-01-15 | 2016-11-22 | Renesas Electronics Corporation | Image processing device, decoding method, intra-frame decoder, method of decoding intra-frame and intra-frame encoder |
| RU2520425C2 (ru) * | 2009-07-03 | 2014-06-27 | Франс Телеком | Предсказание вектора движения текущего раздела изображения, указывающего на опорную зону, которая перекрывает несколько разделов опорного изображения, кодирование и декодирование с использованием такого предсказания |
| CN101860754B (zh) * | 2009-12-16 | 2013-11-13 | 香港应用科技研究院有限公司 | 运动矢量编码和解码的方法和装置 |
| WO2011095260A1 (en) * | 2010-02-05 | 2011-08-11 | Telefonaktiebolaget L M Ericsson (Publ) | Managing predicted motion vector candidates |
| WO2011110039A1 (en) * | 2010-03-12 | 2011-09-15 | Mediatek Singapore Pte. Ltd. | Motion prediction methods |
| KR101752418B1 (ko) | 2010-04-09 | 2017-06-29 | 엘지전자 주식회사 | 비디오 신호 처리 방법 및 장치 |
| JP2011259204A (ja) * | 2010-06-09 | 2011-12-22 | Sony Corp | 画像復号化装置と画像符号装置およびその方法とプログラム |
| US9635382B2 (en) | 2011-01-07 | 2017-04-25 | Texas Instruments Incorporated | Method, system and computer program product for determining a motion vector |
| CN106878741B (zh) * | 2011-01-07 | 2019-08-06 | 株式会社Ntt都科摩 | 预测解码方法 |
| CN102075751B (zh) * | 2011-01-12 | 2012-12-19 | 浙江大学 | 一种基于宏块运动状态的h264快速模式选择方法 |
| GB2501836B (en) * | 2011-03-09 | 2014-08-06 | Canon Kk | Video encoding |
| KR102117085B1 (ko) | 2011-03-21 | 2020-05-29 | 엘지전자 주식회사 | 움직임 벡터 예측자 선택 방법 및 이를 이용하는 장치 |
| WO2013030456A1 (en) * | 2011-08-30 | 2013-03-07 | Nokia Corporation | An apparatus, a method and a computer program for video coding and decoding |
| US20130188716A1 (en) * | 2012-01-20 | 2013-07-25 | Qualcomm Incorporated | Temporal motion vector predictor candidate |
| US9503720B2 (en) * | 2012-03-16 | 2016-11-22 | Qualcomm Incorporated | Motion vector coding and bi-prediction in HEVC and its extensions |
| US20130343459A1 (en) * | 2012-06-22 | 2013-12-26 | Nokia Corporation | Method and apparatus for video coding |
| AU2013285333A1 (en) * | 2012-07-02 | 2015-02-05 | Nokia Technologies Oy | Method and apparatus for video coding |
| US9357195B2 (en) * | 2012-08-16 | 2016-05-31 | Qualcomm Incorporated | Inter-view predicted motion vector for 3D video |
| CN104813660B (zh) * | 2012-09-28 | 2019-04-05 | 诺基亚技术有限公司 | 用于视频编码和解码的装置和方法 |
| JP5942818B2 (ja) * | 2012-11-28 | 2016-06-29 | 株式会社Jvcケンウッド | 動画像符号化装置、動画像符号化方法、及び動画像符号化プログラム |
| US9357214B2 (en) * | 2012-12-07 | 2016-05-31 | Qualcomm Incorporated | Advanced merge/skip mode and advanced motion vector prediction (AMVP) mode for 3D video |
| JP6290924B2 (ja) * | 2013-01-07 | 2018-03-07 | ノキア テクノロジーズ オサケユイチア | ビデオ・コーディングおよびデコーディングのための方法と装置 |
| JP5692260B2 (ja) | 2013-03-06 | 2015-04-01 | 株式会社Jvcケンウッド | 動画像復号装置、動画像復号方法、動画像復号プログラム、受信装置、受信方法、及び受信プログラム |
| WO2015056182A2 (en) * | 2013-10-15 | 2015-04-23 | Nokia Technologies Oy | Video encoding and decoding |
-
2012
- 2012-05-30 HU HUE21153596A patent/HUE067847T2/hu unknown
- 2012-05-30 WO PCT/JP2012/003540 patent/WO2012164924A1/ja not_active Ceased
- 2012-05-30 CN CN201280026093.4A patent/CN103563386A/zh active Pending
- 2012-05-30 CN CN201510581998.3A patent/CN105187838A/zh active Pending
- 2012-05-30 KR KR1020137034609A patent/KR20140019448A/ko not_active Ceased
- 2012-05-30 EP EP12792048.6A patent/EP2717574B1/en active Active
- 2012-05-30 HU HUE21153604A patent/HUE066563T2/hu unknown
- 2012-05-30 DK DK12792048.6T patent/DK2717574T3/da active
- 2012-05-30 BR BR122020013893-9A patent/BR122020013893B1/pt active IP Right Grant
- 2012-05-30 CN CN201510583940.2A patent/CN105187839A/zh active Pending
- 2012-05-30 PL PL21151640.6T patent/PL3879831T3/pl unknown
- 2012-05-30 HU HUE12792048A patent/HUE053187T2/hu unknown
- 2012-05-30 CN CN201510583942.1A patent/CN105187840A/zh active Pending
- 2012-05-30 ES ES12792048T patent/ES2861773T3/es active Active
- 2012-05-30 PL PL12792048T patent/PL2717574T3/pl unknown
- 2012-05-30 PL PL21153600.8T patent/PL3879833T3/pl unknown
- 2012-05-30 BR BR112013030935-0A patent/BR112013030935B1/pt active IP Right Grant
- 2012-05-30 PL PL21153596.8T patent/PL3879832T3/pl unknown
- 2012-05-30 ES ES21153600T patent/ES3007107T3/es active Active
- 2012-05-30 KR KR1020187033273A patent/KR20180126616A/ko not_active Ceased
- 2012-05-30 EP EP21153596.8A patent/EP3879832B1/en active Active
- 2012-05-30 CN CN201710352859.2A patent/CN107257479A/zh active Pending
- 2012-05-30 EP EP21151640.6A patent/EP3879831B1/en active Active
- 2012-05-30 HU HUE21151640A patent/HUE066386T2/hu unknown
- 2012-05-30 CN CN201510582489.2A patent/CN105245900A/zh active Pending
- 2012-05-30 HU HUE21153600A patent/HUE068108T2/hu unknown
- 2012-05-30 CN CN201710353533.1A patent/CN107181961A/zh active Pending
- 2012-05-30 ES ES21153596T patent/ES2986742T3/es active Active
- 2012-05-30 KR KR1020157019366A patent/KR101921789B1/ko active Active
- 2012-05-30 ES ES21151640T patent/ES2980762T3/es active Active
- 2012-05-30 SI SI201231886T patent/SI2717574T1/sl unknown
- 2012-05-30 ES ES21153604T patent/ES2980763T3/es active Active
- 2012-05-30 EP EP21153600.8A patent/EP3879833B1/en active Active
- 2012-05-30 PL PL21153604.0T patent/PL3879834T3/pl unknown
- 2012-05-30 EP EP21153604.0A patent/EP3879834B1/en active Active
- 2012-05-31 TW TW104141919A patent/TWI578768B/zh active
- 2012-05-31 TW TW106101417A patent/TWI586154B/zh active
- 2012-05-31 TW TW106101419A patent/TWI584635B/zh active
- 2012-05-31 TW TW106101418A patent/TWI594623B/zh active
- 2012-05-31 TW TW101119547A patent/TWI524741B/zh active
-
2013
- 2013-11-27 US US14/092,560 patent/US8976867B2/en active Active
-
2015
- 2015-01-28 US US14/607,951 patent/US9635381B2/en active Active
-
2016
- 2016-10-11 US US15/290,372 patent/US9807413B2/en active Active
-
2017
- 2017-01-10 US US15/402,451 patent/US9729895B2/en active Active
- 2017-01-10 US US15/402,518 patent/US9736491B2/en active Active
Also Published As
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2986742T3 (es) | Dispositivo de codificación de imágenes en movimiento, procedimiento de codificación de imágenes en movimiento y programa de codificación de imágenes en movimiento así como dispositivo de decodificación de imágenes en movimiento, procedimiento de decodificación de imágenes en movimiento y programa de decodificación de imágenes en movimiento | |
| JP5692262B2 (ja) | 動画像復号装置、動画像復号方法、動画像復号プログラム、受信装置、受信方法、及び受信プログラム | |
| JP5252029B2 (ja) | 動画像復号装置、動画像復号方法、動画像復号プログラム、受信装置、受信方法、及び受信プログラム | |
| JP5692260B2 (ja) | 動画像復号装置、動画像復号方法、動画像復号プログラム、受信装置、受信方法、及び受信プログラム | |
| JP5477340B2 (ja) | 動画像符号化装置、動画像符号化方法及び動画像符号化プログラム | |
| JP2015111910A (ja) | 動画像復号装置、動画像復号方法、動画像復号プログラム、受信装置、受信方法、及び受信プログラム | |
| JP5692263B2 (ja) | 動画像復号装置、動画像復号方法、動画像復号プログラム、受信装置、受信方法、及び受信プログラム | |
| JP5692261B2 (ja) | 動画像復号装置、動画像復号方法、動画像復号プログラム、受信装置、受信方法、及び受信プログラム |