ES2911670T3 - Aparato, procedimiento y programa para decodificar imágenes en movimiento - Google Patents

Aparato, procedimiento y programa para decodificar imágenes en movimiento Download PDF

Info

Publication number
ES2911670T3
ES2911670T3 ES19203347T ES19203347T ES2911670T3 ES 2911670 T3 ES2911670 T3 ES 2911670T3 ES 19203347 T ES19203347 T ES 19203347T ES 19203347 T ES19203347 T ES 19203347T ES 2911670 T3 ES2911670 T3 ES 2911670T3
Authority
ES
Spain
Prior art keywords
candidate
merge
block
fusion
candidates
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES19203347T
Other languages
English (en)
Inventor
Toshiyasu Sugio
Takahiro Nishi
Youji Shibahara
Kyoko Tanikawa
Hisao Sasai
Toru Matsunobu
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Patent Trust Inc
Original Assignee
Sun Patent Trust Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Patent Trust Inc filed Critical Sun Patent Trust Inc
Application granted granted Critical
Publication of ES2911670T3 publication Critical patent/ES2911670T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods 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/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/17Methods 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/176Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/184Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • H04N19/197Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters including determination of the initial value of an encoding parameter

Landscapes

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

Abstract

Un aparato de decodificación de imágenes en movimiento para decodificar un bloque actual incluido en un flujo de bits, comprendiendo el aparato de decodificación de imágenes en movimiento: un procesador (ex502); y una memoria no transitoria (ex511), en el que el procesador (ex502) realiza, usando la memoria no transitoria (ex511), procesos que incluyen: derivar un primer candidato en función de un primer vector de movimiento que se ha usado para decodificar un primer bloque, siendo adyacente el primer bloque al bloque actual; derivar, para cada una de una pluralidad de imágenes de referencia referibles, un segundo candidato que tiene un segundo vector de movimiento predeterminado que incluye un valor no cero, asignado el valor no cero a una imagen de referencia correspondiente, teniendo el segundo vector de movimiento predeterminado un valor de compensación de eje x y un valor de compensación de eje y que se incluyen en un encabezado de imagen; seleccionar un candidato desde una pluralidad de candidatos, en función de un índice recibido del flujo de bits, incluyendo la pluralidad de candidatos el primer candidato y el segundo candidato, y decodificar el bloque actual usando el candidato seleccionado, y el segundo candidato incluye el valor no cero de la imagen de referencia correspondiente, seleccionada de la pluralidad de imágenes de referencia referibles, en el que un candidato es una combinación de una dirección de predicción, un vector de movimiento y un índice de imagen de referencia.

Description

DESCRIPCIÓN
Aparato, procedimiento y programa para decodificar imágenes en movimiento
rCampo Técnico!
La presente invención se refiere a un aparato de decodificación de imágenes en movimiento, un procedimiento de decodificación de imágenes en movimiento y un medio legible por ordenador no transitorio que incluye un programa para decodificar.
Antecedentes de la técnica!
En general, en el procesamiento de codificación de una imagen en movimiento, la cantidad de información se reduce por compresión para lo que se hace uso de la redundancia de una imagen en movimiento en la dirección espacial y en la dirección temporal. En general, la conversión a un dominio de frecuencia se realiza como un procedimiento en el que se usa la redundancia en la dirección espacial, y la codificación usando la predicción entre imágenes (en lo sucesivo en el presente documento, la predicción se denomina inter predicción) se realiza como un procedimiento de compresión para el que se usa la redundancia en la dirección temporal. En la codificación de inter predicción, una imagen actual se codifica usando, como imagen de referencia, una imagen codificada que precede o sigue a la imagen actual en orden de tiempo de visualización. Posteriormente, se obtiene un vector de movimiento realizando una estimación de movimiento en la imagen actual haciendo referencia a la imagen de referencia. A continuación, la redundancia en la dirección temporal se elimina usando una diferencia calculada entre los datos de imágenes de la imagen actual y los datos de imágenes de predicción que se obtienen mediante la compensación de movimiento basándose en el vector de movimiento obtenido (véase NPL 1, por ejemplo). En este caso, en la estimación de movimiento, se calculan los valores de diferencia entre los bloques actuales en la imagen actual y los bloques en la imagen de referencia, y se determina un bloque que tiene el valor de diferencia menor en la imagen de referencia como un bloque de referencia. A continuación, se estima un vector de movimiento a partir del bloque actual y del bloque de referencia. JUNG J Y COL.: “Proposition for robust parsing with temporal predictor”, 95. REUNIÓN MPEG; 24-1-2011 - 28-1-2011; DAEGU; (MOTION IMAGEN GRUPO DE EXPERTOS o ISO/IEC JTC1/SC29/WG11) “n.° m18957, 21 de enero de 2011 (21-01-2011), XP030047526,) se refiere a la construcción de una lista de candidatos de fusión donde los predictores no disponibles se reemplazan por vectores de movimiento cero.
El documento US 2010/284465 A1 (BENZLER ULRICH-LORENZ [DE] ET AL) 11 de noviembre de 2010 (11-11-2010) desvela predicción de vector de movimiento con la selección de un predictor desde una lista de candidatos que comprende candidatos espaciales y un vector de movimiento cero.
JUNG J ET AL y el documento US 2010/284465 no especifican el uso de un candidato con vector de movimiento no cero predeterminado para cada trama de referencia, adicionalmente a los candidatos espaciales, señalándose el vector de movimiento no cero predeterminado con compensaciones en el encabezado de la imagen.
ILista de citas!
[Bibliografía no patentada]
[NPL 1] Recomendación ITU-T H.264 “Advanced video coding for generic audiovisual services”, marzo de 2010 [NPL 2] JCT-VC, “WD3: Working Draft 3 of High-Efficiency Video Coding”, JCTVC-E603, marzo de 2011
[Sumario de la invención!
[Problema técnico!
Todavía puede desearse aumentar la eficacia de codificación para la codificación y la decodificación de imágenes en las que se usa la inter predicción, más allá de la técnica convencional descrita anteriormente.
En vista de lo presente, el objeto de la presente invención es proporcionar un aparato de decodificación de imágenes en movimiento, un medio legible por ordenador no transitorio de procedimiento de decodificación de imágenes en movimiento que incluye un programa para decodificar con el que se aumenta la eficacia de codificación usando inter predicción.
[Solución al problema!
Esto se consigue mediante las características de las reivindicaciones independientes que definen la presente invención. La divulgación habilitante para la invención se encuentra en la realización 1 y en las figuras 9, 14-15 con pasajes correspondientes. Las realizaciones restantes deben entenderse como ejemplos que no describen partes de la presente invención, a menos que comprendan las características de la realización 1 como se reivindicó.
Debería observarse que estos aspectos generales o específicos pueden implementarse como un sistema, un procedimiento, un circuito integrado, un programa de ordenador, un medio de grabación legible por ordenador tal como un disco compacto de memoria de solo lectura (CD-ROM), o como cualquier combinación de un sistema, un procedimiento, un circuito integrado, un programa de ordenador y un medio de grabación legible por ordenador.
rEfectos ventajosos de la invención!
De acuerdo con un aspecto de la presente invención, puede aumentarse la eficacia de codificación para codificar y decodificar imágenes usando inter predicción.
[Breve descripción de los dibujos!
[FIG. 1A] La figura 1A es un diagrama para ilustrar una lista de imágenes de referencia a modo de ejemplo para una imagen B.
[FIG. 1B] La figura 1B es un diagrama para ilustrar una lista de imágenes de referencia a modo de ejemplo de una dirección 0 de predicción para una imagen B.
[FIG. 1C] La figura 1C es un diagrama para ilustrar una lista de imágenes de referencia a modo de ejemplo de una dirección 1 de predicción para una imagen B.
[FIG. 2] La figura 2 es un diagrama para ilustrar vectores de movimiento para su uso en el modo de predicción de vector de movimiento temporal.
[FIG. 3] La figura 3 muestra un vector de movimiento a modo de ejemplo de un bloque vecino para su uso en el modo de fusión.
[FIG. 4] La figura 4 es un diagrama para ilustrar una lista de candidatos de bloque de fusión a modo de ejemplo.
[FIG. 5] La figura 5 muestra una relación entre el tamaño de una lista de candidatos de bloque de fusión y las secuencias de bits asignadas a los índices de candidatos de bloque de fusión.
[FIG. 6] La figura 6 es un diagrama de flujo que muestra un ejemplo de un procedimiento para codificar cuándo se usa el modo de fusión.
[FIG. 7] La figura 7 es un diagrama de flujo que muestra un procedimiento para decodificar usando el modo de fusión.
[FIG. 8] La figura 8 muestra la sintaxis para la unión de los índices de candidatos de bloque de fusión a un flujo de bits.
[FIG. 9] La figura 9 es un diagrama de bloques que muestra una configuración de un aparato de codificación de imágenes de acuerdo con la realización 1.
[FIG. 10] La figura 10 es un diagrama de flujo que muestra las operaciones de procesamiento del aparato de codificación de imágenes de acuerdo con la realización 1.
[FIG. 11] La figura 11 muestra una lista de candidatos de bloque de fusión a modo de ejemplo de acuerdo con la realización 1.
[FIG. 12] La figura 12 es un diagrama de flujo que ilustra un procedimiento para calcular los candidatos de bloque de fusión y el tamaño de una lista de candidatos de bloque de fusión de acuerdo con la realización 1.
[FIG. 13] La figura 13 es un diagrama de flujo que ilustra un procedimiento para determinar si un candidato de bloque de fusión es o no un candidato utilizable para la fusión y para actualizar el número total de candidatos utilizables para la fusión de acuerdo con la realización 1.
[FIG. 14] La figura 14 es un diagrama de flujo que ilustra un procedimiento para añadir un candidato de bloque de fusión cero de acuerdo con la realización 1.
[FIG. 15] La figura 15 es un diagrama de flujo que ilustra un procedimiento para determinar si hay o no un candidato de bloque de fusión cero de acuerdo con la realización 1.
[FIG. 16] La figura 16 muestra un ejemplo de un bloque de fusión cero de acuerdo con la realización 1.
[FIG. 17] La figura 17 es un diagrama de flujo que ilustra un procedimiento para seleccionar un candidato de bloque de fusión de acuerdo con la realización 1.
[FIG. 18] La figura 18 es un diagrama de bloques que muestra una configuración de un aparato de codificación de imágenes de acuerdo con la realización 2.
[FIG. 19] La figura 19 es un diagrama de flujo que muestra las operaciones de procesamiento del aparato de codificación de imágenes de acuerdo con la realización 2.
[FIG. 20] La figura 20 es un diagrama de bloques que muestra la configuración de un aparato de decodificación de imágenes de acuerdo con la realización 3.
[FIG. 21] La figura 21 es un diagrama de flujo que muestra las operaciones de procesamiento del aparato de decodificación de imágenes de acuerdo con la realización 3.
[FIG. 22] La figura 22 es un diagrama de bloques que muestra una configuración de un aparato de decodificación de imágenes de acuerdo con la realización 4.
[FIG. 23] La figura 23 es un diagrama de flujo que muestra las operaciones de procesamiento del aparato de decodificación de imágenes de acuerdo con la realización 4.
[FIG. 24] La figura 24 es un diagrama de bloques que muestra una configuración de un aparato de codificación de imágenes de acuerdo con la realización 5.
[FIG. 25] La figura 25 es un diagrama de flujo que muestra las operaciones de procesamiento del aparato de codificación de imágenes de acuerdo con la realización 5.
[FIG. 26] La figura 26 muestra una lista de candidatos de bloque de fusión a modo de ejemplo de acuerdo con la realización 5.
[FIG. 27] La figura 27 es un diagrama de flujo que ilustra un procedimiento para calcular los candidatos de bloque de fusión y el tamaño de una lista de candidatos de bloque de fusión de acuerdo con la realización 5.
[FIG. 28] La figura 28 es un diagrama de flujo que ilustra un procedimiento para actualizar el número total de candidatos utilizables para la fusión de acuerdo con la realización 5.
[FIG. 29] La figura 29 es un diagrama de flujo que ilustra un procedimiento para añadir un nuevo candidato de acuerdo con la realización 5.
[FIG. 30] La figura 30 es un diagrama de bloques que muestra una configuración de un aparato de codificación de imágenes de acuerdo con la realización 6.
[FIG. 31] La figura 31 es un diagrama de flujo que muestra las operaciones de procesamiento del aparato de codificación de imágenes de acuerdo con la realización 6.
[FIG. 32] La figura 32 es un diagrama de bloques que muestra una configuración de un aparato de decodificación de imágenes de acuerdo con la realización 7.
[FIG. 33] La figura 33 es un diagrama de flujo que muestra las operaciones de procesamiento del aparato de decodificación de imágenes de acuerdo con la realización 7.
[FIG. 34] La figura 34 es un diagrama de flujo que ilustra un procedimiento para establecer el tamaño de una lista de candidatos de bloque de fusión de acuerdo con la realización 7.
[FIG. 35] La figura 35 es un diagrama de flujo que ilustra un procedimiento para calcular un candidato de bloque de fusión de acuerdo con la realización 7.
[FIG. 36] La figura 36 muestra la sintaxis para la unión de los índices de candidatos de bloque de fusión a un flujo de bits.
[FIG. 37] La figura 37 muestra una sintaxis a modo de ejemplo en el caso donde el tamaño de una lista de candidatos de bloque de fusión se fije en el valor máximo del número total de candidatos de bloque de fusión. [FIG. 38] La figura 38 es un diagrama de bloques que muestra una configuración de un aparato de decodificación de imágenes de acuerdo con la realización 8.
[FIG. 39] La figura 39 es un diagrama de flujo que muestra las operaciones de procesamiento del aparato de decodificación de imágenes de acuerdo con la realización 8.
[FIG. 40] La figura 40 muestra una configuración general de un sistema de suministro de contenido para implementar unos servicios de distribución de contenido.
[FIG. 41] La figura 41 muestra una configuración general de un sistema de difusión digital.
[FIG. 42] La figura 42 muestra un diagrama de bloques que ilustra un ejemplo de una configuración de un televisor.
[FIG. 43] La figura 43 es un diagrama de bloques que ilustra un ejemplo de una configuración de una unidad de reproducción/grabación de información que lee y escribe información desde y en un medio de grabación que es un disco óptico.
[FIG. 44] La figura 44 muestra un ejemplo de una configuración de un medio de grabación que es un disco óptico.
[FIG. 45A] La figura 45A muestra un ejemplo de un teléfono móvil.
[FIG. 45B] La figura 45B es un diagrama de bloques que muestra un ejemplo de una configuración de un teléfono móvil.
[FIG. 46] La figura 46 ilustra una estructura de datos multiplexados.
[FIG. 47] La figura 47 muestra esquemáticamente cómo se multiplexa cada flujo en datos multiplexados.
[FIG. 48] La figura 48 muestra cómo un flujo de video se almacena en un flujo de paquetes PES con más detalle.
[FIG. 49] La figura 49 muestra una estructura de paquetes TS y paquetes de origen en los datos multiplexados.
[FIG. 50] La figura 50 muestra una estructura de datos de un PMT.
[FIG. 51] La figura 51 muestra una estructura interior de información de datos multiplexados.
[FIG. 52] La figura 52 muestra una estructura interior de información de atributos de flujo.
[FIG. 53] La figura 53 muestra unas etapas para identificar datos de video.
[FIG. 54] La figura 54 es un diagrama de bloques que muestra un ejemplo de una configuración de un circuito integrado para implementar el procedimiento de codificación de imágenes en movimiento y el procedimiento de decodificación de imágenes en movimiento de acuerdo con cada una de las realizaciones.
[FIG. 55] La figura 55 muestra una configuración para cambiar entre las frecuencias de excitación.
[FIG. 56] La figura 56 muestra las etapas para identificar datos de video y para cambiar entre las frecuencias de excitación.
[FIG. 57] La figura 57 muestra un ejemplo de una tabla de consulta en la que los estándares de datos de video están asociados con las frecuencias de excitación.
[FIG. 58A] La figura 58A es un diagrama que muestra un ejemplo de una configuración para compartir un módulo de una unidad de procesamiento de señales.
[FIG. 58B] La figura 58B es un diagrama que muestra otro ejemplo de una configuración para compartir un módulo de la unidad de procesamiento de señales.
Descripción de las realizaciones!
(Conocimiento subyacente que forma la base de la presente invención)
En un esquema de codificación de imágenes en movimiento ya estandarizado, que se conoce como H.264, se usan tres tipos de imágenes imagen I, imagen P, e imagen B para la reducción de la cantidad de información por compresión.
La imagen I no se codifica mediante la codificación de inter predicción. Específicamente, la imagen I se codifica por predicción dentro de la imagen (en lo sucesivo en el presente documento la predicción se denomina como intra predicción). La imagen P se codifica por codificación de inter predicción haciendo referencia a una imagen codificada que precede o que sigue a la imagen actual en el orden de tiempo de visualización. La imagen B se codifica por codificación de inter predicción haciendo referencia a dos imágenes codificadas que preceden y que siguen a la imagen actual en el orden de tiempo de visualización.
En la codificación de inter predicción, se genera una lista de imágenes de referencia para identificar una imagen de referencia. En una lista de imágenes de referencia, los índices de imagen de referencia se asignan a las imágenes de referencia codificadas a las que se hará referencia en la inter predicción. Por ejemplo, dos listas de imágenes de referencia (L0, L1) se generan para una imagen B debido a que puede codificarse haciendo referencia a dos imágenes.
La figura 1A es un diagrama para ilustrar una lista de imágenes de referencia a modo de ejemplo para una imagen B. La figura 1B muestra una lista 0 (L0) de imágenes de referencia a modo de ejemplo para una dirección 0 de predicción en predicción bidireccional. En la lista 0 de imágenes de referencia, el índice 0 de imágenes de referencia que tiene un valor de 0 se asigna a una imagen 0 de referencia con un número 2 de orden de visualización. El índice 0 de imágenes de referencia que tiene un valor de 1 se asigna a una imagen 1 de referencia con un número 1 de orden de visualización. El índice 0 de imagen de referencia que tiene un valor de 2 se asigna a una imagen 2 de referencia con un número 0 de orden de visualización. En otras palabras, cuanto menor sea la distancia temporal de una imagen de referencia de la imagen actual, menor será el índice de imagen de referencia asignado a la imagen de referencia.
Por otro lado, la figura 1C muestra una lista 1 (L1) de imágenes de referencia a modo de ejemplo para una dirección 1 de predicción en la predicción bidireccional. En la lista 1 de imágenes de referencia, el índice 1 de imágenes de referencia que tiene un valor de 0 se asigna a una imagen 1 de referencia con un número 1 de orden de visualización. El índice 1 de imágenes de referencia que tiene un valor de 1 se asigna a una imagen 0 de referencia con un número 2 de orden de visualización. El índice 2 de imagen de referencia que tiene un valor de 2 se asigna a una imagen 2 de referencia con un número 0 de orden de visualización.
De esta manera, es posible asignar los índices de imagen de referencia que tienen valores diferentes entre las direcciones de predicción para una imagen de referencia (las imágenes 0 y 1 de referencia en la figura 1A) o para asignar el índice de imagen de referencia que tiene el mismo valor para ambas direcciones a una imagen de referencia (la imagen 2 de referencia en la figura 1A).
En un procedimiento de codificación de imágenes en movimiento denominado como H.264 (véase NPL 1), está disponible un modo de estimación de vector de movimiento como un modo de codificación para una inter predicción de cada bloque actual en una imagen B. En el modo de estimación de vector de movimiento, se codifica un valor de diferencia entre los datos de imágenes de un bloque actual y los datos de imágenes de predicción y un vector de movimiento usado para generar los datos de imágenes de predicción. Además, en el modo de estimación de vector de movimiento, la predicción bidireccional y la predicción unidireccional pueden realizarse selectivamente. En la predicción bidireccional, se genera una imagen de predicción haciendo referencia a dos imágenes codificadas, una de las cuales precede a la imagen actual a codificar y la otra que sigue a la imagen actual. En la predicción unidireccional, se genera una imagen de predicción haciendo referencia a una imagen codificada que precede o que sigue a una imagen actual a codificar.
Además, en el procedimiento de codificación de imágenes en movimiento denominado como H.264, puede seleccionarse un modo de codificación denominado como un modo de predicción de vector de movimiento temporal para obtener un vector de movimiento en la codificación de una imagen B. El procedimiento de codificación de inter predicción realizado en el modo de predicción de vector de movimiento temporal se describirá a continuación usando la figura 2. La figura 2 es un diagrama para ilustrar los vectores de movimiento para su uso en el modo de predicción de vector de movimiento temporal. Específicamente, la figura 2 muestra un caso donde un bloque a en una imagen B2 se codifica en el modo de predicción de vector de movimiento temporal.
En la codificación, se usa un vector vb de movimiento que se ha usado para codificar un bloque b localizado en la misma posición en una imagen P3, que es una imagen de referencia que sigue a la imagen B2, como la posición del bloque a en la imagen B2 (en el caso, el bloque b se denomina en lo sucesivo en el presente documento como un bloque co-localizado del bloque a). El vector vb de movimiento es un vector de movimiento usado para codificar el bloque b haciendo referencia a la imagen P1.
Se obtienen dos bloques de referencia para el bloque A partir de una imagen de referencia delantera y una imagen de referencia trasera, es decir, una imagen P1 y una imagen P3 usando los vectores de movimiento paralelos al vector vb de movimiento. A continuación, el bloque a se codifica mediante una predicción bidireccional basada en los dos bloques de referencia obtenidos. Específicamente, en la codificación del bloque a, se usa un vector va1 de movimiento para hacer referencia a la imagen P1, y un vector va2 de movimiento se usa para hacer referencia a la imagen P3.
Además, un modo de fusión se trata como un modo de inter predicción para codificar cada bloque actual en una imagen B o una imagen P (véase NPL 2). En el modo de fusión, se codifica un bloque actual usando una dirección de predicción, un vector de movimiento y un índice de imagen de referencia que son duplicaciones de las utilizadas para codificar un bloque vecino del bloque actual. En este momento, las duplicaciones del índice y otras del bloque vecino se adjuntan a un flujo de bits de tal manera que la dirección de movimiento, el vector de movimiento y el índice de imagen de referencia utilizados para la codificación puedan seleccionarse en la decodificación. Un ejemplo concreto para esto se proporciona a continuación haciendo referencia a la figura 3.
La figura 3 muestra un vector de movimiento a modo de ejemplo de un bloque vecino para su uso en el modo de fusión. En la figura 3, un bloque A vecino es un bloque codificado localizado a la izquierda inmediata de un bloque actual. Un bloque B vecino es un bloque codificado localizado inmediatamente por encima del bloque actual. Un bloque C vecino es un bloque codificado localizado inmediatamente a la derecha por encima del bloque actual. Un bloque D vecino es un bloque codificado localizado inmediatamente a la izquierda por debajo del bloque actual.
El bloque A vecino es un bloque codificado mediante predicción unidireccional en la dirección 0 de predicción. El bloque A vecino tiene un vector MvL0_A de movimiento que tiene la dirección 0 de predicción como un vector de movimiento con respecto a una imagen de referencia indicado por un índice RefL0_A de imagen de referencia de la dirección 0 de predicción. En este caso, MvL0 indica un vector de movimiento que hace referencia a una imagen de referencia especificada en una lista 0 (L0) de imágenes de referencia. MvL1 indica un vector de movimiento que hace referencia a una imagen de referencia especificada en una lista 1 (L1) de imágenes de referencia.
El bloque B vecino es un bloque codificado mediante predicción unidireccional en la dirección 1 de predicción. El bloque B vecino tiene un vector MvL1_B de movimiento que tiene la dirección 1 de predicción como un vector de movimiento con respecto a una imagen de referencia indicado por un índice RefL1_B de imagen de referencia de la dirección 1 de predicción.
El bloque C vecino es un bloque codificado mediante intra predicción.
El bloque D vecino es un bloque codificado mediante predicción unidireccional en la dirección 0 de predicción. El bloque D vecino tiene un vector MvL0_D de movimiento que tiene la dirección 0 de predicción como un vector de movimiento con respecto a una imagen de referencia indicado por un índice RefL0_D de imagen de referencia de la dirección 0 de predicción.
En este caso, por ejemplo, una combinación de una dirección de predicción, un vector de movimiento y un índice de imagen de referencia con la que el bloque actual puede codificarse con la más alta eficacia de codificación se selecciona como una dirección de predicción, un vector de movimiento y un índice de imagen de referencia del bloque actual a partir de las direcciones de predicción, los vectores de movimiento y los índices de imagen de referencia de los bloques vecinos A D, y una dirección de predicción, un vector de movimiento y un índice de imagen de referencia que se calculan usando un bloque co-localizado en un modo de predicción de vector de movimiento temporal. A continuación, un índice de candidatos de bloque de fusión que indica el bloque seleccionado que tiene la dirección de predicción, el vector de movimiento y el índice de imagen de referencia se adjunta a un flujo de bits.
Por ejemplo, cuando se selecciona el bloque A vecino, el bloque actual se codifica usando el vector MvL0_A de movimiento que tiene la dirección 0 de predicción y el índice RefL0_A de imagen de referencia. A continuación, solo el índice de candidatos de bloque de fusión que tiene un valor de 0 que indica el uso del bloque A vecino como se muestra en la figura 4 se adjunta a un flujo de bits. De este modo se reduce la cantidad de información en una dirección de predicción, un vector de movimiento y un índice de imagen de referencia.
Además, en el modo de fusión, un candidato que no puede usarse para codificar (en lo sucesivo en el presente documento denominado como un candidato no utilizable para la fusión), y un candidato que tenga una combinación de una dirección de predicción, un vector de movimiento y un índice de imagen de referencia idéntica a una combinación de una dirección de predicción, un vector de movimiento y un índice de imagen de referencia de cualquier otro bloque de fusión (en lo sucesivo en el presente documento denominado como candidato idéntico) se eliminan de los candidatos de bloque de fusión como se muestra en la figura 4.
De esta manera, el número total de candidatos de bloque de fusión se reduce de tal manera que puede reducirse la cantidad de código asignado a los índices de candidatos de bloque de fusión. En este caso, “no utilizable para la fusión” significa (1) que el candidato de bloque de fusión se ha codificado por intra predicción, (2) que el candidato de bloque de fusión está fuera del límite de un segmento que incluye el bloque actual o el límite de una imagen que incluye el bloque actual, o (3) que el candidato de bloque de fusión está aún por codificar.
En el ejemplo mostrado en la figura 4, el bloque C vecino es un bloque codificado por intra predicción. El candidato de bloque de fusión que tiene el índice 3 de candidato de bloque de fusión es, por lo tanto, un candidato no utilizable para la fusión y se elimina de la lista de candidatos de bloque de fusión. El bloque D vecino es idéntico en la dirección de predicción, el vector de movimiento y el índice de imagen de referencia al bloque A vecino. El candidato de bloque de fusión que tiene el índice 4 de candidato de bloque de fusión se elimina de la lista de candidatos de bloque de fusión. Como resultado, el número total de candidatos de bloque de fusión es finalmente tres, y el tamaño de la lista de candidatos de bloque de fusión se establece en tres.
Los índices de candidatos de bloque de fusión están codificados por codificación de longitud variable asignando secuencias de bits de acuerdo con el tamaño de cada lista de candidatos de bloque de fusión como se muestra en la figura 5. Por lo tanto, en el modo de fusión, la cantidad de código se reduce al cambiar las secuencias de bits asignadas a los índices de modo de fusión de acuerdo con el tamaño de cada lista de candidatos de bloque de fusión.
La figura 6 es un diagrama de flujo que muestra un ejemplo de un procedimiento para codificar cuándo se usa el modo de fusión. En la etapa S1001, los vectores de movimiento, los índices de imagen de referencia y las direcciones de predicción de los candidatos de bloque de fusión se obtienen a partir de bloques vecinos y de un bloque co-localizado.
En la etapa S1002, los candidatos idénticos y los candidatos no utilizables para la fusión se eliminan de los candidatos de bloque de fusión. En la etapa S1003, el número total de candidatos de bloque de fusión después de la eliminación se establece como el tamaño de la lista de candidatos de bloque de fusión. En la etapa S1004, se determina el índice de candidatos de bloque de fusión a usar para codificar el bloque actual. En la etapa S1005, el índice de candidatos de bloque de fusión determinado se codifica realizando una codificación de longitud variable en una secuencia de bits de acuerdo con el tamaño de la lista de candidatos de bloque de fusión.
La figura 7 es un diagrama de flujo que muestra un ejemplo de un procedimiento para decodificar usando el modo de fusión. En la etapa S2001, los vectores de movimiento, los índices de imagen de referencia y las direcciones de predicción de los bloques candidatos de fusión se obtienen a partir de bloques vecinos y de un bloque co-localizado. En la etapa S2002, los candidatos idénticos y los candidatos no utilizables para la fusión se eliminan de los candidatos de bloque de fusión. En la etapa S2003, el número total de candidatos de bloque de fusión después de la eliminación se establece como el tamaño de la lista de candidatos de bloque de fusión. En la etapa S2004, el índice de candidatos de bloque de fusión a usar para decodificar un bloque actual se decodifica a partir de un flujo de bits usando el tamaño de la lista de candidatos de bloque de fusión. En la etapa S2005, la decodificación de un bloque actual se realiza generando una imagen de predicción usando el candidato de bloque de fusión indicado por el índice de candidatos de bloque de fusión decodificado.
La figura 8 muestra la sintaxis para la unión de los índices de candidatos de bloque de fusión a un flujo de bits. En la figura 8, merge_idx representa un índice de candidatos de bloque de fusión, y merge_flag representa un indicador de fusión. NumMergeCand representa el tamaño de una lista de candidatos de bloque de fusión. NumMergeCand se establece en el número total de candidatos de bloque de fusión después de que se eliminen los candidatos no utilizables para la fusión y los candidatos idénticos de los candidatos de bloque de fusión.
La codificación o decodificación de una imagen se realiza usando el modo de fusión en la manera descrita anteriormente.
Sin embargo, en el modo de fusión, un vector de movimiento para su uso en la codificación de un bloque actual se calcula a partir de un candidato de bloque de fusión vecino del bloque actual. A continuación, por ejemplo, cuando un bloque actual a codificar es una región estacionaria y su bloque vecino es una región de objetos en movimiento, la eficacia de codificación puede disminuir debido a la falta de aumento en la precisión de la predicción en el modo de fusión debido a que los vectores de movimiento utilizables en el modo de fusión se ven afectados por la región de objetos en movimiento.
Un procedimiento de codificación de imágenes de acuerdo con un aspecto de la presente invención es un procedimiento de codificación de imágenes para codificar una imagen sobre una base de bloque por bloque para generar un flujo de bits, e incluye: obtener, como primer candidato de fusión, un candidato de fusión basado en una dirección de predicción, un vector de movimiento y un índice de imagen de referencia que se han usado para codificar un bloque espacial o temporalmente vecino a un bloque actual a codificar, siendo el candidato de fusión una combinación de una dirección de predicción, un vector de movimiento y un índice de imagen de referencia para su uso en la codificación del bloque actual; obtener, como segundo candidato de fusión, un candidato de fusión que tiene un vector de movimiento que es un vector predeterminado; seleccionar un candidato de fusión a usar para la codificación del bloque actual a partir del primer candidato obtenido y del segundo candidato de fusión obtenido; y unir un índice para identificar el candidato de fusión seleccionado al flujo de bits.
Con este procedimiento, un candidato de fusión que tiene un vector de movimiento, que es un vector predeterminado, puede obtenerse como un segundo candidato de fusión. Por lo tanto, es posible obtener un candidato de fusión que tenga un vector de movimiento y otros para una región estacionaria como, por ejemplo, un segundo candidato de fusión. En otras palabras, un bloque actual que tiene un movimiento predeterminado se codifica de manera eficaz de tal manera que puede aumentarse la eficacia de codificación.
Por ejemplo, en la obtención de un candidato de fusión como un segundo candidato de fusión, puede obtenerse el segundo candidato de fusión para cada imagen de referencia relacionada.
Con esto, un segundo candidato de fusión puede obtenerse para cada imagen de referencia. Por lo tanto, es posible aumentar la variedad de candidatos de fusión de tal manera que la eficacia de codificación pueda aumentarse aún más.
Por ejemplo, el vector predeterminado puede ser un vector cero.
Con esto, un candidato de fusión que tiene un vector de movimiento para una región estacionaria puede obtenerse debido a que el vector predeterminado es un vector cero. Por lo tanto, es posible aumentar aún más la eficacia de codificación cuando un bloque actual a codificar es una región estacionaria.
Por ejemplo, el procedimiento de codificación de imágenes puede incluir además determinar un número máximo de candidatos de fusión; y determinar si el número total del primer candidato de fusión obtenido es o no menor que el número máximo; en el que la obtención de un candidato de fusión como un segundo candidato de fusión se realiza cuando se determina que el número total del primer candidato de fusión es menor que el número máximo.
Con esto, puede obtenerse un segundo candidato de fusión cuando se determina que el número total de los primeros candidatos de fusión es menor que el número máximo. Por consiguiente, el número total de candidatos de fusión puede aumentarse dentro de un intervalo que no exceda el número máximo, de tal manera que puede aumentarse la eficacia de codificación.
Por ejemplo, en la unión, el índice puede codificarse usando el número máximo determinado, y el índice codificado puede unirse al flujo de bits.
Con este procedimiento, puede codificarse un índice para identificar un candidato de fusión usando el número máximo determinado. En otras palabras, un índice puede codificarse independientemente del número total de candidatos de fusión realmente obtenidos. Por lo tanto, incluso cuando se pierde la información necesaria para obtener un candidato de fusión (por ejemplo, la información sobre un bloque co-localizado), aun se puede decodificar un índice y, por lo tanto, se mejora la resistencia al error. Además, un índice puede decodificarse independientemente del número total de candidatos de fusión realmente obtenidos. En otras palabras, puede decodificarse un índice sin esperar a la obtención de candidatos de fusión. En otras palabras, puede generarse un flujo de bits para el que la obtención de candidatos de fusión y la decodificación de índices puede realizarse en paralelo.
Por ejemplo, en la codificación, la información que indica el número máximo determinado puede unirse además al flujo de bits.
Con esto, la información que indica el número máximo determinado puede unirse a un flujo de bits. Por lo tanto, es posible cambiar los números máximos por la unidad apropiada de tal manera que pueda aumentarse la eficacia de codificación.
Por ejemplo, en la obtención de un primer candidato de fusión, un candidato de fusión que es una combinación de una dirección de predicción, un vector de movimiento y un índice de imagen de referencia puede obtenerse como el primer candidato de fusión, siendo la combinación diferente de una combinación de una dirección de predicción, un vector de movimiento y un índice de imagen de referencia de cualquier primer candidato de fusión obtenido anteriormente.
Con esto, un candidato de fusión que es una combinación de una dirección de predicción, un vector de movimiento y un índice de imagen de referencia idéntica a una combinación de una dirección de predicción, un vector de movimiento y un índice de imagen de referencia de cualquier primer candidato de fusión obtenido anteriormente puede eliminarse de los primeros candidatos de fusión. Como resultado, el número total de los segundos candidatos de fusión puede aumentarse de tal manera que pueda aumentarse la variedad de combinaciones de una dirección de predicción, un vector de movimiento y un índice de imagen de referencia para un candidato de fusión seleccionable. Por lo tanto, es posible aumentar aún más la eficacia de codificación.
Por ejemplo, el procedimiento de codificación de imágenes puede incluir además cambiar un procedimiento de codificación entre un primer procedimiento de codificación conforme a un primer estándar y un segundo proceso de codificación conforme a un segundo estándar; y unir, al flujo de bits, la información de identificación que indica el primer estándar o el segundo estándar al que se ajusta el procedimiento de codificación después del cambio, en el que cuando el procedimiento de codificación se cambia al primer procedimiento de codificación, la obtención de un candidato de fusión como primer candidato de fusión, la obtención de un candidato de fusión como segundo candidato de fusión, la selección y la unión se realizan como el primer procedimiento de codificación.
Con esto, es posible realizar de manera cambiable el primer procedimiento de codificación conforme al primer estándar y el segundo procedimiento de codificación conforme al segundo estándar.
Además, un procedimiento de decodificación de imágenes de acuerdo con un aspecto de la presente invención es un procedimiento para decodificar, sobre una base de bloque por bloque, una imagen codificada incluida en un flujo de bits e incluye: obtener, como primer candidato de fusión, un candidato de fusión basado en una dirección de predicción, un vector de movimiento y un índice de imagen de referencia que se han usado para decodificar un bloque espacial o temporalmente vecino a un bloque actual a decodificar, siendo el candidato de fusión una combinación de una dirección de predicción, un vector de movimiento y un índice de imagen de referencia para su uso en la decodificación del bloque actual; obtener, como segundo candidato de fusión, un candidato de fusión que tiene un vector de movimiento que es un vector predeterminado; obtener, a partir del flujo de bits, un índice para identificar un candidato de fusión; y seleccionar, basándose en el índice obtenido, un candidato de fusión a partir del primer candidato de fusión y del segundo candidato de fusión, utilizándose el candidato de fusión para la decodificación de un bloque actual.
Con este procedimiento, un candidato de fusión que tiene un vector de movimiento que es un vector predeterminado puede obtenerse como un segundo candidato de fusión. Por lo tanto, es posible obtener un candidato de fusión que tenga un vector de movimiento y otros para una región estacionaria como, por ejemplo, un segundo candidato de fusión. Esto hace posible decodificar apropiadamente un flujo de bits generado codificando de manera eficaz un bloque que tiene un movimiento predeterminado, de tal manera que un flujo de bits codificado con una mayor eficacia de codificación puede decodificarse apropiadamente.
Por ejemplo, en la obtención de un candidato de fusión como segundo candidato de fusión, puede obtenerse el segundo candidato de fusión para cada imagen de referencia relacionada.
Con esto, puede obtenerse un segundo candidato de fusión para cada imagen de referencia. Por lo tanto, la variedad de candidatos de fusión aumenta, de tal manera que un flujo de bits codificado con una mayor eficacia de codificación puede decodificarse adecuadamente.
Por ejemplo, el vector predeterminado puede ser un vector cero.
Con esto, un candidato de fusión que tiene un vector de movimiento para una región estacionaria puede obtenerse debido a que el vector predeterminado es un vector cero. Por lo tanto, es posible decodificar adecuadamente un flujo de bits codificado con una mayor eficacia de codificación.
Por ejemplo, el procedimiento de decodificación de imágenes puede incluir además: determinar un número máximo de candidatos de fusión; y determinar si el número total del primer candidato de fusión obtenido es o no menor que el número máximo, en el que la obtención de un candidato de fusión como segundo candidato de fusión se realiza cuando se determina que el número total del primer candidato de fusión obtenido es más pequeño que el número máximo.
Con esto, puede obtenerse un segundo candidato de fusión cuando se determina que el número total de los primeros candidatos de fusión es menor que el número máximo. Por consiguiente, el número total de candidatos de fusión puede aumentarse dentro de un intervalo que no exceda el número máximo, de tal manera que un flujo de bits codificado con una mayor eficacia de codificación puede decodificarse adecuadamente.
Por ejemplo, en la obtención, el índice codificado y unido al flujo de bits puede obtenerse decodificando el índice usando el número máximo determinado.
Con esto, un índice para identificar un candidato de fusión puede decodificarse usando un número máximo determinado. En otras palabras, un índice puede decodificarse independientemente del número total de candidatos de fusión realmente obtenidos. Por lo tanto, incluso cuando se pierde la información necesaria para obtener un candidato de fusión (por ejemplo, la información sobre un bloque co-localizado), puede decodificarse un índice y, por lo tanto, se mejora la resistencia al error. Además, un índice puede decodificarse sin esperar a la obtención de los candidatos de fusión, de tal manera que la obtención de los candidatos de fusión y la decodificación de los índices puede realizarse en paralelo.
Por ejemplo, en la determinación de un número máximo de un candidato de fusión, el número máximo puede determinarse basándose en la información unida al flujo de bits e indicando el número máximo.
Con esto, puede determinarse un número máximo basándose en la información unida a un flujo de bits. Por lo tanto, es posible decodificar una imagen codificada usando los números máximos cambiados por la unidad apropiada.
Por ejemplo, en la obtención de un candidato de fusión como un primer candidato de fusión, un candidato de fusión que es una combinación de una dirección de predicción, un vector de movimiento y un índice de imagen de referencia puede obtenerse como el primer candidato de fusión, siendo la combinación diferente de una combinación de una dirección de predicción, un vector de movimiento y un índice de imagen de referencia de cualquier primer candidato de fusión obtenido anteriormente.
Con esto, un candidato de fusión que es una combinación de una dirección de predicción, un vector de movimiento y un índice de imagen de referencia idéntica a una combinación de una dirección de predicción, un vector de movimiento y un índice de imagen de referencia de cualquier primer candidato de fusión obtenido anteriormente puede eliminarse de los primeros candidatos de fusión. Como resultado, puede aumentarse el número total de los segundos candidatos de fusión de tal manera que pueda aumentarse la variedad de combinaciones de una dirección de predicción, un vector de movimiento y un índice de imagen de referencia para un candidato de fusión seleccionable. Por lo tanto, es posible decodificar adecuadamente un flujo de bits codificado con una mayor eficacia de codificación.
Por ejemplo, el procedimiento de decodificación de imágenes puede incluir además: cambiar un procedimiento de decodificación entre un primer procedimiento de decodificación conforme a un primer estándar y un segundo procedimiento de decodificación conforme a un segundo estándar, de acuerdo con la información de identificación que está unida al flujo de bits e indicar o bien el primer estándar o el segundo estándar, en el que cuando el procedimiento de decodificación se cambia al primer procedimiento de decodificación, la obtención de un candidato de fusión como primer candidato de fusión, la obtención de un candidato de fusión como segundo candidato de fusión, la obtención, y la selección se realizan como el primer procedimiento de decodificación.
Con esto, es posible realizar de manera cambiable el primer procedimiento de decodificación conforme al primer estándar y el segundo procedimiento de codificación conforme al segundo estándar.
Debería observarse que estos aspectos generales o específicos pueden implementarse como un sistema, un procedimiento, un circuito integrado, un programa de ordenador, un medio de grabación legible por ordenador tal como un disco compacto de memoria de solo lectura (CD-ROM), o como cualquier combinación de un sistema, un procedimiento, un circuito integrado, un programa de ordenador y un medio de grabación legible por ordenador.
Un aparato de codificación de imágenes y un aparato de decodificación de imágenes de acuerdo con un aspecto de la presente invención se describirá específicamente a continuación haciendo referencia a los dibujos.
Cada una de las realizaciones a modo de ejemplos descritas a continuación muestra un ejemplo específico. Los valores numéricos, las formas, los materiales, los elementos constituyentes, la disposición y la conexión de los elementos constituyentes, las etapas, el orden de procesamiento de las etapas, etc. mostrados en las siguientes realizaciones a modo de ejemplo son meros ejemplos, y por lo tanto no limitan el concepto inventivo en la presente invención. Además, entre los elementos constituyentes en las siguientes realizaciones a modo de ejemplo, los elementos constituyentes no mencionados en ninguna de las reivindicaciones independientes que definen la parte más genérica del concepto inventivo no se requieren necesariamente para superar las desventajas.
[Realización 1]
La figura 9 es un diagrama de bloques que muestra una configuración de un aparato de codificación de imágenes de acuerdo con la realización 1. Un aparato 100 de codificación de imágenes codifica una imagen sobre una base de bloque por bloque para generar un flujo de bits.
Como se muestra en la figura 9, el aparato 100 de codificación de imágenes incluye un restador 101, una unidad 102 de transformación ortogonal, una unidad 103 de cuantificación, una unidad 104 de cuantificación inversa, una unidad 105 de transformación ortogonal inversa, un sumador 106, una memoria 107 de bloque, una memoria 108 de cuadro, una unidad 109 de intra predicción, una unidad 110 de inter predicción, una unidad 111 de control de inter predicción, una unidad 112 de determinación de tipo de imagen, un conmutador 113, una unidad 114 de cálculo de candidato de bloque de fusión, una memoria 115 de colPic y una unidad 116 de codificación de longitud variable.
El restador 101 resta, sobre una base de bloque por bloque, los datos de imágenes de predicción a partir de los datos de imágenes de entrada incluidos en una secuencia de imágenes de entrada para generar datos de error de predicción.
La unidad 102 de transformación ortogonal transforma los datos de error de predicción generados a partir de un dominio de imagen en un dominio de frecuencia.
La unidad 103 de cuantificación cuantifica los datos de error de predicción transformados en un dominio de frecuencia.
La unidad 104 de cuantificación inversa cuantifica de manera inversa los datos de error de predicción cuantificados por la unidad 103 de cuantificación.
La unidad 105 de transformación ortogonal inversa transforma los datos de error de predicción cuantificados inversamente desde un dominio de frecuencia a un dominio de imagen.
El sumador 106 añade, sobre una base de bloque por bloque, los datos de imágenes de predicción y los datos de error de predicción cuantificados inversamente por la unidad 105 de transformación ortogonal inversa para generar los datos de imagen reconstruida.
La memoria 107 de bloque almacena los datos de imagen reconstruida en unidades de un bloque.
La memoria 108 de cuadro almacena los datos de imagen reconstruida en unidades de un cuadro.
La unidad 112 de determinación de tipo de imagen determina en cuál de los tipos de imágenes de entre imagen I, imagen B, e imagen P se codifican los datos de imágenes de entrada. A continuación, la unidad 112 de determinación de tipo de imagen genera información de tipo imagen que indica el tipo de imagen determinado.
La unidad 109 de intra predicción genera los datos de imágenes de intra predicción de un bloque actual realizando intra predicción, que usa datos de imagen reconstruida almacenados en la memoria 107 de bloque en unidades de un bloque.
La unidad 110 de inter predicción genera los datos de imágenes de inter predicción de un bloque actual realizando inter predicción, que usa datos de imagen reconstruida almacenados en la memoria 108 de cuadro en unidades de un cuadro y un vector de movimiento obtenidos por un procedimiento que incluye la estimación de movimiento.
Cuando un bloque actual está codificado por la codificación de intra predicción, el conmutador 113 emite datos de imágenes de intra predicción generados por la unidad 109 de intra predicción como datos de imágenes de predicción del bloque actual al restador 101 y al sumador 106. Por otra parte, cuando un bloque actual está codificado por la codificación de inter predicción, el conmutador 113 emite los datos de imágenes de inter predicción generados por la unidad 110 de inter predicción como datos de imágenes de predicción del bloque actual al restador 101 y al sumador 106.
La unidad 114 de cálculo de candidato de bloque de fusión obtiene los candidatos de bloque de fusión para el modo de fusión usando los vectores de movimiento y otros de los bloques vecinos del bloque actual y un vector de movimiento y otros del bloque co-localizado (información de colPic) almacenados en la memoria 115 de colPic. Además, la unidad 114 de cálculo de candidato de bloque de fusión añade el candidato de bloque de fusión obtenido a una lista de candidatos de bloque de fusión.
Además, la unidad 114 de cálculo de candidato de bloque de fusión obtiene, como un nuevo candidato, un candidato de bloque de fusión que tiene una dirección de predicción, un vector de movimiento y un índice de imagen de referencia para una región estacionaria (en lo sucesivo en el presente documento denominada como un “candidato de bloque de fusión cero”) que usa un procedimiento descrito más adelante. A continuación, la unidad 114 de cálculo de candidato de bloque de fusión añade el candidato de bloque de fusión cero obtenido como un nuevo candidato de bloque de fusión a la lista de candidatos de bloque de fusión. Además, la unidad 114 de cálculo de candidato de bloque de fusión calcula el número total de candidatos de bloque de fusión.
Además, la unidad 114 de cálculo de candidato de bloque de fusión asigna unos índices de candidatos de bloque de fusión teniendo cada uno un valor diferente que los candidatos de bloque de fusión obtenidos. A continuación, la unidad 114 de cálculo de candidato de bloque de fusión transmite los candidatos de bloque de fusión y los índices de candidatos de bloque de fusión a la unidad 111 de control de inter predicción. Además, la unidad 114 de cálculo de candidato de bloque de fusión transmite el número total calculado de candidatos de bloque de fusión a la unidad 116 de codificación de longitud variable.
La unidad 111 de control de inter predicción selecciona un modo de predicción usando qué error de predicción es el más pequeño de un modo de predicción en el que se usa un vector de movimiento obtenido por estimación de movimiento (modo de estimación de movimiento) y un modo de predicción en el que se usa un vector de movimiento obtenido a partir de un candidato de bloque de fusión (modo de fusión). La unidad 111 de control de inter predicción también transmite un indicador de fusión que indica si el modo de predicción seleccionado es o no el modo de fusión a la unidad 116 de codificación de longitud variable. Además, la unidad 111 de control de inter predicción transmite un índice de candidatos de bloque de fusión correspondiente a los candidatos de bloque de fusión determinados a la unidad 116 de codificación de longitud variable cuando el modo de predicción seleccionado es el modo de fusión. Además, la unidad 111 de control de inter predicción transfiere la información de colPic que incluye el vector de movimiento y otros del bloque actual a la memoria 115 de colPic.
La unidad 116 de codificación de longitud variable genera un flujo de bits realizando una codificación de longitud variable sobre los datos de error de predicción cuantificados, el indicador de fusión, y la información de tipo imagen. La unidad 116 de codificación de longitud variable también establece el número total de candidatos de bloque de fusión como el tamaño de la lista de candidatos de bloque de fusión. Además, la unidad 116 de codificación de longitud variable realiza una codificación de longitud variable en un índice de candidatos de bloque de fusión a usar para la codificación, asignando, de acuerdo con el tamaño de la lista de candidatos de bloque de fusión, una secuencia de bits al índice de candidatos de bloque de fusión.
La figura 10 es un diagrama de flujo que muestra las operaciones de procesamiento del aparato 100 de codificación de imágenes de acuerdo con la realización 1.
En la etapa S101, la unidad 114 de cálculo de candidato de bloque de fusión obtiene los candidatos de bloque de fusión a partir de los bloques vecinos y de un bloque co-localizado de un bloque actual. Además, la unidad 114 de cálculo de candidato de bloque de fusión calcula el tamaño de una lista de candidatos de bloque de fusión usando un procedimiento que se describe más adelante.
Por ejemplo, en el caso mostrado en la figura 3, la unidad 114 de cálculo de candidato de bloque de fusión selecciona los bloques A D vecinos como candidatos de bloque de fusión. Además, la unidad 114 de cálculo de candidato de bloque de fusión calcula, como un candidato de bloque de fusión, un bloque de fusión co-localizado que tiene un vector de movimiento, un índice de imagen de referencia y una dirección de predicción que se calculan a partir del vector de movimiento de un bloque co-localizado usando el modo de predicción de tiempo.
La unidad 114 de cálculo de candidato de bloque de fusión asigna los índices de candidatos de bloque de fusión a los candidatos de bloque de fusión respectivos como se muestra en (a) en la figura 11. A continuación, la unidad 114 de cálculo de candidato de bloque de fusión calcula una lista de candidatos de bloque de fusión como se muestra en (b) en la figura 11 y el tamaño de la lista de candidatos de bloque de fusión eliminando los candidatos no utilizables para la fusión y los candidatos idénticos y añadiendo un nuevo candidato de bloque de fusión cero usando un procedimiento que se describe más adelante.
Los códigos más cortos se asignan a los índices de candidatos de bloque de fusión de valores más pequeños. En otras palabras, cuanto menor sea el valor de un índice de candidatos de bloque de fusión, menor será la cantidad de información necesaria para indicar el índice de candidatos de bloque de fusión.
Por otro lado, cuanto mayor sea el valor de un índice de candidatos de bloque de fusión, mayor será la cantidad de información necesaria para el índice de candidatos de bloque de fusión. Por lo tanto, la eficacia de codificación aumentará cuando los índices de candidatos de bloque de fusión de valores más pequeños se asignen a los candidatos de bloque de fusión que tienen más probabilidades de tener vectores de movimiento de mayor precisión e índices de imagen de referencia de mayor precisión.
Por lo tanto, un posible caso es que la unidad 114 de cálculo de candidato de bloque de fusión cuente el número total de veces de seleccionar cada uno de los candidatos de bloque de fusión como un bloque de fusión, y asigne los índices de candidatos de bloque de fusión de valores más pequeños a los bloques con un número total mayor de veces. Específicamente, esto puede lograrse especificando un bloque de fusión seleccionado a partir de bloques vecinos y asignando un índice de candidatos de bloque de fusión de un valor más pequeño al bloque de fusión especificado cuando se codifica un bloque actual.
Cuando un candidato de bloque de fusión no tiene información tal como un vector de movimiento (por ejemplo, cuando el bloque de fusión es un bloque codificado por intra predicción, se localiza fuera de los límites de una imagen o del límite de un segmento, o está aún por codificar), el candidato de bloque de fusión no es utilizable para la codificación.
En la realización 1, un candidato de bloque de fusión no utilizable para la codificación se denomina como un candidato no utilizable para la fusión, y un candidato de bloque de fusión utilizable para la codificación se denomina como un candidato utilizable para la fusión. Además, entre una pluralidad de candidatos de bloque de fusión, un candidato de bloque de fusión idéntico en vector de movimiento, índice de imagen de referencia y dirección de predicción a cualquier otro bloque de fusión se denomina como candidato idéntico.
En el caso mostrado en la figura 3, el bloque C vecino es un candidato no utilizable para la fusión debido a que es un bloque codificado por intra predicción. El bloque D vecino es un candidato idéntico debido a que es idéntico en vector de movimiento, índice de imagen de referencia y dirección de predicción al bloque A vecino.
En la etapa S102, la unidad 111 de control de inter predicción selecciona un modo de predicción basándose en la comparación, usando un procedimiento descrito más adelante, entre el error de predicción de una imagen de predicción generada a partir de un vector de movimiento obtenido por la estimación de movimiento y el error de predicción de una imagen de predicción generada usando un vector de movimiento obtenido a partir de un candidato de bloque de fusión. Cuando el modo de predicción seleccionado es el modo de fusión, la unidad 111 de control de inter predicción establece el indicador de fusión en 1, y cuando no, la unidad 111 de control de inter predicción establece el indicador de fusión en 0.
En la etapa S103, se determina si el indicador de fusión es 1 (es decir, si el modo de predicción seleccionado es o no el modo de fusión).
Cuando el resultado de la determinación en la etapa S103 es verdadero (Sí, S103), la unidad 116 de codificación de longitud variable adjunta el indicador de fusión a un flujo de bits en la etapa S104. Posteriormente, en la etapa S105, la unidad 116 de codificación de longitud variable asigna secuencias de bits de acuerdo con el tamaño de la lista de candidatos de bloque de fusión como se muestra en la figura 5 a los índices de candidato de bloque de fusión de los candidatos de bloque de fusión a usar para la codificación. A continuación, la unidad 116 de codificación de longitud variable realiza una codificación de longitud variable en la secuencia de bits asignada.
Por otra parte, cuando el resultado de la determinación en la etapa S103 es falso (S103, No), la unidad 116 de codificación de longitud variable adjunta la información en un indicador de fusión y un modo de vector de estimación de movimiento para un flujo de bits en la etapa S106.
En la realización 1, un índice de candidatos de bloque de fusión que tiene un valor de “0” se asigna al bloque A vecino como se muestra en (a) en la figura 11. Se asigna un índice de candidatos de bloque de fusión que tiene un valor de “1” al bloque B vecino. Se asigna un índice de candidatos de bloque de fusión que tiene un valor de “2” al bloque de fusión co-localizado. Se asigna un índice de candidatos de bloque de fusión que tiene un valor de “3” al bloque C vecino. Se asigna un índice de candidatos de bloque de fusión que tiene un valor de “4” al bloque D vecino.
Debería observarse que los índices de candidatos de bloque de fusión y que tienen un valor de este tipo pueden asignarse de otro modo. Por ejemplo, cuando se añade un nuevo candidato de bloque de fusión cero usando un procedimiento que se describe más adelante, la unidad 116 de codificación de longitud variable puede asignar valores más pequeños a los candidatos de bloque de fusión preexistentes y un valor mayor al nuevo candidato de bloque de fusión cero. En otras palabras, la unidad 116 de codificación de longitud variable puede asignar un índice de candidatos de bloque de fusión de un valor más pequeño a un candidato de bloque de fusión preexistente en prioridad a un nuevo candidato.
Además, los candidatos de bloque de fusión no se limitan a los bloques en las posiciones de los bloques A, B, C y D vecinos. Por ejemplo, un bloque vecino localizado por encima del bloque D vecino inferior izquierdo puede usarse como un candidato de bloque de fusión. Además, no es necesario usar todos los bloques vecinos como unos candidatos de bloque de fusión. Por ejemplo, también es posible usar solo los bloques A y B vecinos como candidatos de bloque de fusión.
Además, aunque la unidad 116 de codificación de longitud variable se adjunta un índice de candidatos de bloque de fusión a un flujo de bits en la etapa S105 en la figura 10 en la realización 1, no siempre es necesario adjuntar dicho índice de candidatos de bloque de fusión a un flujo de bits. Por ejemplo, la unidad 116 de codificación de longitud variable no necesita adjuntar un índice de candidatos de bloque de fusión a un flujo de bits cuando el tamaño de la lista de candidatos de bloque de fusión es “1”. De este modo, se reduce la cantidad de información en el índice de candidatos de bloque de fusión.
La figura 12 es un diagrama de flujo que muestra los detalles del procedimiento en la etapa S101 en la figura 10. Específicamente, la figura 12 ilustra un procedimiento para calcular los candidatos de bloque de fusión y el tamaño de una lista de candidatos de bloque de fusión. A continuación se describirá la figura 12.
En la etapa S111, la unidad 114 de cálculo de candidato de bloque de fusión determina si un candidato [N] de bloque de fusión es o no candidato utilizable para la fusión que usa un procedimiento descrito más adelante.
En este caso, N indica un valor de índice para identificar cada candidato de bloque de fusión. En la realización 1, N toma valores de 0 a 4. Específicamente, el bloque A vecino en la figura 3 se asigna a un candidato [0] de bloque de fusión. El bloque B vecino en la figura 3 se asigna a un candidato [1] de bloque de fusión. El bloque de fusión co­ localizado se asigna a un candidato [2] de bloque de fusión. El bloque C vecino en la figura 3 se asigna a un candidato [3] de bloque de fusión. El bloque D vecino en la figura 3 se asigna a un candidato [4] de bloque de fusión.
En la etapa S112, la unidad 114 de cálculo de candidato de bloque de fusión obtiene el vector de movimiento, el índice de imagen de referencia, y la dirección de predicción del candidato [N] de bloque de fusión, y los añade a una lista de candidatos de bloque de fusión.
En la etapa S113, la unidad 114 de cálculo de candidato de bloque de fusión busca en la lista de candidatos de bloque de fusión un candidato no utilizable para la fusión y un candidato idéntico, y elimina el candidato no utilizable para la fusión y el candidato idéntico de la lista de candidatos de bloque de fusión como se muestra en la figura 11.
En la etapa S114, la unidad 114 de cálculo de candidato de bloque de fusión añade un nuevo candidato de bloque de fusión cero a la lista de candidatos de bloque de fusión usando un procedimiento descrito más adelante. En este caso, cuando se añade un nuevo candidato de bloque de fusión cero, la unidad 114 de cálculo de candidato de bloque de fusión puede reasignar los índices de candidatos de bloque de fusión de tal manera que los índices de candidatos de bloque de fusión de los valores más pequeños se asignan a los candidatos de bloque de fusión preexistentes en prioridad al nuevo candidato. En otras palabras, la unidad 114 de cálculo de candidato de bloque de fusión puede reasignar los índices de candidatos de bloque de fusión de tal manera que se asigne un índice de candidatos de bloque de fusión de un valor mayor al nuevo candidato de bloque de fusión cero. De este modo se reduce la cantidad de código de los índices de candidatos de bloque de fusión.
En S115, la unidad 114 de cálculo de candidato de bloque de fusión establece el número total de candidatos de bloque de fusión después de la adición del candidato de bloque de fusión cero como el tamaño de la lista de candidatos de bloque de fusión. En el ejemplo mostrado en la figura 11, el número total de candidatos de bloque de fusión calculado usando un procedimiento que se describe más adelante es “5”, y el tamaño de la lista de candidatos de bloque de fusión se establece en “5”.
El nuevo candidato de bloque de fusión cero en la etapa S114, es un candidato recién añadido a los candidatos de bloque de fusión usando un procedimiento descrito más adelante, cuando el número total de candidatos de bloque de fusión es más pequeño que un número máximo de candidatos de bloque de fusión. De esta manera, cuando el número total de candidatos de bloque de fusión es menor que un número máximo de candidatos de bloque de fusión, el aparato 100 de codificación de imágenes añade un nuevo candidato de bloque de fusión cero de tal manera que pueda aumentarse la eficacia de codificación.
La figura 13 es un diagrama de flujo que muestra los detalles del procedimiento en el escalón de la figura 12. Específicamente, la figura 13 ilustra un procedimiento para determinar si un candidato [N] de bloque de fusión es un candidato utilizable para la fusión y actualizar el número total de candidatos utilizables para la fusión. A continuación, se describirá la figura 13.
En la etapa S121, la unidad 114 de cálculo de candidato de bloque de fusión determina si es verdadero o falso que (1) un candidato [N] de bloque de fusión se ha codificado por intra predicción, (2) el candidato [N] de bloque de fusión es un bloque fuera del límite de un segmento que incluye el bloque actual o el límite de una imagen que incluye el bloque actual, o (3) el candidato [N] de bloque de fusión está aún por codificar.
Cuando el resultado de la determinación en la etapa S121 es verdadero (S121, Sí), la unidad 114 de cálculo de candidato de bloque de fusión establece el candidato [N] de bloque de fusión como un candidato no utilizable para la fusión en la etapa S122. Por otro lado, cuando el resultado de la determinación en la etapa S121 es falso (S121, No), la unidad 114 de cálculo de candidato de bloque de fusión establece el candidato [N] de bloque de fusión como un candidato utilizable para la fusión en la etapa S123.
La figura 14 es un diagrama de flujo que muestra los detalles del procedimiento en la etapa S114 en la figura 12. Específicamente, la figura 14 ilustra un procedimiento para añadir un candidato de bloque de fusión cero. A continuación, se describirá la figura 14.
En la etapa S131, la unidad 114 de cálculo de candidato de bloque de fusión determina si el número total de candidatos de bloque de fusión es o no menor que el número total de candidatos utilizables para la fusión. En otras palabras, la unidad 114 de cálculo de candidato de bloque de fusión determina si el número total de candidatos de bloque de fusión está o no todavía por debajo del número máximo de candidatos de bloque de fusión.
En este caso, cuando el resultado de la determinación en la etapa S131 es verdadero (S131, Sí), en la etapa S132, la unidad 114 de cálculo de candidato de bloque de fusión determina si hay o no un nuevo candidato de bloque de fusión cero que pueda añadirse como un candidato de bloque de fusión a la lista de candidatos de bloque de fusión. En este caso, cuando el resultado de la determinación en la etapa S132 es verdadero (S132, Sí), en la etapa S133, la unidad 114 de cálculo de candidato de bloque de fusión asigna un índice de candidatos de bloque de fusión que tiene un valor al nuevo candidato de bloque de fusión cero y añade el nuevo candidato de bloque de fusión cero a la lista de candidatos de bloque de fusión. Además, en la etapa S134, la unidad 114 de cálculo de candidato de bloque de fusión aumenta el número total de candidatos de bloque de fusión en uno.
Por otra parte, cuando el resultado de la determinación en la etapa S131 o en la etapa S132 es falso (S131 o S132, No), finaliza el procedimiento para añadir un candidato de bloque de fusión cero. Específicamente, cuando el número total de candidatos de bloque de fusión ha alcanzado el número máximo de candidatos de bloque de fusión, o cuando no hay un nuevo candidato de bloque de fusión cero, finaliza el procedimiento para añadir un nuevo candidato de bloque de fusión cero.
La figura 15 es un diagrama de flujo que muestra los detalles del procedimiento en la etapa S132 en la figura 14. Específicamente, la figura 15 ilustra un procedimiento para determinar si hay o no un candidato de bloque de fusión cero. A continuación, se describirá la figura 15.
En la etapa S141, la unidad 114 de cálculo de candidato de bloque de fusión actualiza el valor de un índice refIdxL0 de imagen de referencia que tiene la dirección 0 de predicción y el valor de un índice refIdxL1 de imagen de referencia que tiene la dirección 1 de predicción para su uso en la generación de un candidato de bloque de fusión cero. Los índices refIdxL0 y refIdxL1 de imagen de referencia tienen cada uno un valor inicial de “-1”, y aumentan en “+1” cada vez que se realiza el procedimiento en la etapa S141. Específicamente, en primer lugar, la unidad 114 de cálculo de candidato de bloque de fusión añade, como un candidato de bloque de fusión cero para una región estacionaria, un candidato de bloque de fusión cero que tiene un vector de movimiento que es un vector de valor cero (vector cero) y un índice de imagen de referencia que tiene un valor de 0 a una lista de candidatos de bloque de fusión. A continuación, la unidad 114 de cálculo de candidato de bloque de fusión añade, a la lista de candidatos de bloque de fusión, un candidato de bloque de fusión cero que tiene un vector de movimiento que es un vector de valor cero y un índice de imagen de referencia que tiene un valor de 1.
En la etapa S142, la unidad 114 de cálculo de candidato de bloque de fusión determina si es verdadero o falso que el valor actualizado del índice refIdxL0 de imagen de referencia que tiene la dirección 0 de predicción es menor que un número máximo de imágenes de referencia en la lista 0 de imágenes de referencia para la dirección 0 de predicción, y el valor actualizado del índice refIdxL1 de imagen de referencia que tiene la dirección 1 de predicción es menor que un número máximo de imágenes de referencia en la lista 1 de imágenes de referencia para la dirección 1 de predicción.
A continuación, cuando el resultado de la determinación en la etapa S142 es verdadero (S142, Sí), en la etapa S143, la unidad 114 de cálculo de candidato de bloque de fusión asigna un vector de movimiento que es un vector (0, 0) de valor cero y el índice refIdxL0 de imagen de referencia a la dirección 0 de predicción del bloque de fusión cero. Además, en la etapa S144, la unidad 114 de cálculo de candidato de bloque de fusión asigna un vector de movimiento que es un vector (0, 0) de valor cero y el índice refIdxL1 de imagen de referencia a la dirección 1 de predicción del bloque de fusión cero.
La unidad 114 de cálculo de candidato de bloque de fusión calcula de este modo un bloque de fusión cero para la predicción bidireccional mediante los procedimientos en la etapa S143 y la etapa S144. La figura 16 muestra un ejemplo de un bloque de fusión cero calculado.
En la etapa S145, la unidad 114 de cálculo de candidato de bloque de fusión determina si la lista de candidatos de bloque de fusión incluye o no ya un candidato de bloque de fusión idéntico en el vector de movimiento, el índice de imagen de referencia, y la dirección de predicción para el candidato de bloque de fusión cero calculado. En otras palabras, la unidad 114 de cálculo de candidato de bloque de fusión determina si el candidato de bloque de fusión cero calculado es o no un candidato idéntico.
Cuando el resultado de la determinación en S145 es falso (S145, No), en la etapa S146, la unidad 114 de cálculo de candidato de bloque de fusión determina que hay un candidato de bloque de fusión cero.
Por otro lado, cuando el resultado de la determinación en la etapa S142 es falso (S142, No) o el resultado de la determinación en la etapa S145 es verdadero (S145, Sí), en la etapa S147, la unidad 114 de cálculo de candidato de bloque de fusión determina que no hay un candidato de bloque de fusión cero.
De esta manera, la unidad 114 de cálculo de candidato de bloque de fusión calcula un candidato de bloque de fusión cero que tiene un vector de movimiento que es un vector de valor cero para cada imagen de referencia relacionada, y añade el bloque de fusión cero calculado a una lista de candidatos de bloque de fusión. El aparato 100 de codificación de imágenes puede aumentar de este modo la eficacia de codificación en el modo de fusión, especialmente cuando un bloque actual a codificar es una región estacionaria.
La figura 17 es un diagrama de flujo que muestra los detalles del procedimiento en la etapa S102 en la figura 10.
Específicamente, la figura 17 ilustra un procedimiento para seleccionar un candidato de bloque de fusión. A continuación, se describirá la figura 17.
En la etapa S151, la unidad 111 de control de inter predicción establece un índice de candidatos de bloque de fusión a 0, el error de predicción mínimo en el error de predicción (coste) en el modo de estimación de vector de movimiento, y un indicador de fusión en 0. En este caso, el coste se calcula, por ejemplo, usando la siguiente fórmula para un modelo de optimización de R-D.
(Ecuación 1)
Coste = D
En la Ecuación 1, D representa la distorsión de codificación. Por ejemplo, D es la suma de las diferencias absolutas entre los valores de píxeles originales de un bloque actual a codificar y los valores de píxeles obtenidos mediante la codificación y decodificación del bloque actual usando una imagen de predicción generada usando un vector de movimiento. R representa la cantidad de códigos generados. Por ejemplo, R es la cantidad de código necesario para codificar un vector de movimiento usado para la generación de una imagen de predicción. X representa un multiplicador de Lagrange indeterminado.
En la etapa S152, la unidad 111 de control de inter predicción determina si el valor de un índice de candidatos de bloque de fusión es o no menor que el número total de candidatos de bloque de fusión de un bloque actual. En otras palabras, la unidad 111 de control de inter predicción determina si aún hay o no un candidato de bloque de fusión en el que aún no se ha realizado el procedimiento de la etapa S153 a la etapa S155.
Cuando el resultado de la determinación en la etapa S152 es verdadero (S152, Sí), en la etapa S153, la unidad 111 de control de inter predicción calcula el coste para un candidato de bloque de fusión al que se asigna un índice de candidatos de bloque de fusión. A continuación, en la etapa S154, la unidad 111 de control de inter predicción determina si el coste calculado para un candidato de bloque de fusión es o no menor que el error de predicción mínimo.
En este caso, cuando el resultado de la determinación en la etapa S154 es verdadero, (S154, Sí), la unidad 111 de control de inter predicción actualiza el error de predicción mínimo, el índice de candidatos de bloque de fusión, y el valor del indicador de fusión en la etapa S155. Por otro lado, cuando el resultado de la determinación en la etapa S154 es falso (S154, No), la unidad 111 de control de inter predicción no actualiza el error de predicción mínimo, el índice de candidatos de bloque de fusión o el valor del indicador de fusión.
En la etapa S156, la unidad de inter predicción de control 111 aumenta el índice de candidatos de bloque de fusión por uno, y se repite desde la etapa S152 a la etapa S156.
Por otra parte, cuando el resultado de la determinación en la etapa S152 es falso (S152, No), es decir, no hay más candidatos de bloque de fusión sin procesar, la unidad 111 de control de inter predicción fija los valores finales de indicador de fusión y del índice de candidatos de bloque de fusión en la etapa S157.
Por lo tanto, el aparato 100 de codificación de imágenes de acuerdo con la realización 1 añade, a una lista de candidatos de bloque de fusión, un nuevo candidato de bloque de fusión que tiene un vector de movimiento y un índice de imagen de referencia para una región estacionaria de tal manera que puede aumentarse la eficacia de codificación. Más específicamente, el aparato 100 de codificación de imágenes calcula, para cada imagen de referencia relacionada, un candidato de bloque de fusión que tiene un vector de movimiento que es un vector de valor cero, y añade nuevamente el candidato de bloque de fusión calculado a una lista de candidatos de bloque de fusión, de tal manera que puede aumentarse la eficacia de la codificación en el modo de fusión, especialmente cuando un bloque actual es una región estacionaria.
Debería observarse que el ejemplo descrito en la realización 1, en el que un candidato de bloque de fusión que tiene un vector de movimiento que es un vector de valor cero se calcula como un vector de movimiento para una región estacionaria no es limitante. Por ejemplo, teniendo en cuenta las pequeñas sacudidas de la cámara durante la toma de video, la unidad 114 de cálculo de candidato de bloque de fusión calcula un candidato de bloque de fusión que tenga, como un vector de movimiento, un vector predeterminado que tenga un valor ligeramente mayor o menor que un valor de 0 (por ejemplo, un vector (0, 1) de movimiento como un nuevo candidato en lugar de un candidato de bloque de fusión cero. En este caso, la unidad 116 de codificación de longitud variable añade unos parámetros de compensación, por ejemplo, (OffsetX, OffsetY) a un encabezado o a otros de entre una secuencia, una imagen o un segmento. En este caso, la unidad 114 de cálculo de candidato de bloque de fusión calcula un candidato de bloque de fusión que tiene un vector de movimiento (OffsetX, OffsetY) como nuevo candidato.
Debería observarse que el ejemplo descrito en la realización 1 en la que el indicador de fusión siempre está adjuntado a un flujo de bits en el modo de fusión no es limitante. Por ejemplo, el modo de fusión puede seleccionarse a la fuerza en función de la forma de un bloque para su uso en la inter predicción de un bloque actual. En este caso, es posible reducir la cantidad de información al no adjuntar un indicador de fusión a un flujo de bits.
Debería observarse que el ejemplo descrito en la realización 1, donde se usa el modo de fusión en el que se codifica un bloque actual usando una dirección de predicción, un vector de movimiento y un índice de imagen de referencia copiados de un bloque D vecino del bloque actual no es limitante. Por ejemplo, puede usarse un modo de fusión de salto. En el modo de fusión de salto, un bloque actual se codifica de la misma manera que en el modo de fusión, usando una dirección de predicción, un vector de movimiento y un índice de imagen de referencia copiados de un bloque D vecino del bloque actual haciendo referencia a un lista de candidatos de bloque de fusión creada como se muestra en (b) en la figura 11. Cuando todos los errores de predicción resultantes son cero para el bloque actual, un indicador de salto establecido en 1 y el indicador de salto y un índice de candidatos de bloque de fusión se adjuntan a un flujo de bits. Cuando cualquiera de los errores de predicción resultantes no es cero, se establece un indicador de salto en 0 y el indicador de salto, un indicador de fusión, un índice de candidatos de bloque de fusión y los errores de predicción se adjuntan a un flujo de bits.
Debería observarse que el ejemplo descrito en la realización 1, donde se usa el modo de fusión en el que se codifica un bloque actual usando una dirección de predicción, un vector de movimiento y un índice de imagen de referencia copiados de un bloque D vecino del bloque actual no es limitante. Por ejemplo, puede codificarse un vector de movimiento en el modo de estimación de vector de movimiento usando una lista de candidatos de bloque de fusión creada como se muestra en (b) en la figura 11. Específicamente, se calcula una diferencia restando un vector de movimiento de un candidato de bloque de fusión indicado por un índice de candidatos de bloque de fusión de un vector de movimiento en el modo de estimación de vector de movimiento. Además, la diferencia calculada y el índice de candidatos de bloque de fusión pueden adjuntarse a un flujo de bits.
Opcionalmente, puede calcularse una diferencia escalando un vector MV_Merge de movimiento de un candidato de bloque de fusión, usando un índice RefIdx_ME de imagen de referencia en el modo de estimación de movimiento y un índice RefIdx_Merge de imagen de referencia del candidato de bloque de fusión y restando un vector MV_Merge de movimiento escalado del candidato de bloque de fusión después de escalar el vector de movimiento en el modo de estimación de movimiento. A continuación, la diferencia calculada y el índice de candidatos de bloque de fusión pueden adjuntarse a un flujo de bits. La siguiente es una fórmula a modo de ejemplo para el escalado.
(Ecuación 2)
scaledMV_Merge = MV„Mergex (POC (RefIdx_ME) - curPOC) /
(POC (RefIdx_Merge) - curPOC)
En este caso, POC (RefIdx_ME) representa el orden de visualización de una imagen de referencia indicado por un índice RefIdx_ME de imagen de referencia. POC (RefIdx_Merge) representa el orden de visualización de una imagen de referencia indicada por un índice RefIdx_Merge de imagen de referencia. curPOC representa el orden de visualización de una imagen actual a codificar.
Debería observarse que el ejemplo descrito en la realización 1 en el que se genera un candidato de bloque de fusión cero para la predicción bidireccional a partir de un vector de movimiento que es un vector de valor cero, un índice de imagen de referencia que tiene una dirección 0 de predicción, y un índice de imagen de referencia que tiene una dirección 1 de predicción no es limitante. Por ejemplo, la unidad 114 de cálculo de candidato de bloque de fusión puede generar un candidato de bloque de fusión cero que tenga una dirección 0 de predicción usando un vector de movimiento que es un vector de valor cero y un índice de imagen de referencia que tiene una dirección 0 de predicción, y añadir el candidato de bloque de fusión cero a una lista de candidatos de bloque de fusión. Además, de manera similar, la unidad 114 de cálculo de candidato de bloque de fusión puede generar un candidato de bloque de fusión cero que tenga una dirección 1 de predicción usando un vector de movimiento que es un vector de valor cero y un índice de imagen de referencia que tenga una dirección 1 de predicción, y añadir el candidato de bloque de fusión cero a una lista de candidatos de bloque de fusión.
Debería observarse que el ejemplo descrito en la realización 1 en la que los candidatos de bloque de fusión cero se generan usando un índice de imagen de referencia que tiene un valor inicial de 0 y se aumenta en “+1” no es limitante. Por ejemplo, la unidad 114 de cálculo de candidato de bloque de fusión puede generar candidatos de bloque de fusión cero en orden de índices de imagen de referencia asignados a las imágenes de referencia comenzando desde un índice de imagen de referencia asignado a la imagen de referencia más cercana a una imagen actual a un índice de imagen de referencia asignado al más lejano en el orden de visualización.
[Realización 2]
Aunque la unidad 114 de cálculo de candidato de bloque de fusión determina en la etapa S145 en la figura 15 si un candidato de bloque de fusión cero es o no un candidato idéntico en la realización 1, esta determinación no siempre es necesaria. Por ejemplo, la determinación en la etapa S145 puede omitirse. Esto reduce la complejidad de cálculo en la obtención de una lista de candidatos de bloque de fusión para el aparato 100 de codificación de imágenes.
Además, debería observarse que la realización 1 en la que se añaden los candidatos de bloque de fusión cero a una lista de candidatos de bloque de fusión hasta que el número total de candidatos de bloque de fusión alcanza un número máximo de candidatos de bloque de fusión no es limitante. Por ejemplo, la unidad 114 de cálculo de candidato de bloque de fusión puede determinar en S131 en la figura 14 si el número total de candidatos de bloque de fusión ha alcanzado o no un valor de umbral predeterminado que es menor que un número máximo de candidatos de bloque de fusión. Esto reduce la complejidad de cálculo en la obtención de una lista de candidatos de bloque de fusión para el aparato 100 de codificación de imágenes.
Además, debería observarse que la realización 1 en la que añadir un candidato de bloque de fusión cero a una lista de candidatos de bloque de fusión se finaliza cuando el número total de candidatos de bloque de fusión alcanza un número máximo de candidatos de bloque de fusión no es limitante. Por ejemplo, la determinación en la etapa S131 en la figura 14 en cuanto a si el número total de candidatos de bloque de fusión ha alcanzado o no el número máximo de candidatos de bloque de fusión puede omitirse, y la unidad 114 de cálculo de candidato de bloque de fusión puede añadir todos los nuevos candidatos de bloque de fusión cero a la lista de candidatos de bloque de fusión hasta que resulte en que ya no hay ningún nuevo candidato de bloque de fusión cero. Esto amplía el intervalo de candidatos de bloques de fusión opcionales para el aparato 100 de codificación de imágenes, de tal manera que puede aumentarse la eficacia de codificación.
Una modificación de este tipo del aparato de codificación de imágenes de acuerdo con la realización 1 se describirá específicamente a continuación como un aparato de codificación de imágenes de acuerdo con la realización 2.
La figura 18 es un diagrama de bloques que muestra la configuración de un aparato 200 de codificación de imágenes de acuerdo con la realización 2. El aparato 200 de codificación de imágenes codifica una imagen sobre una base de bloque por bloque para generar un flujo de bits. El aparato 200 de codificación de imágenes incluye una unidad 210 de obtención de candidato de fusión, una unidad 220 de control de predicción y una unidad 230 de codificación.
La unidad 210 de obtención de candidato de fusión corresponde a la unidad 114 de cálculo de candidato de bloque de fusión en la realización 1. La unidad 210 de obtención de candidato de fusión obtiene los candidatos de fusión. La unidad 210 de obtención de candidato de fusión genera una lista de candidatos de fusión en la que, por ejemplo, cada uno de los índices que identifica un candidato de fusión obtenido diferente (en lo sucesivo en el presente documento denominados como índices de candidatos de fusión) está asociado con los candidatos de fusión obtenidos respectivos.
Los candidatos de fusión son unos candidatos cada uno de los cuales es una combinación de una dirección de predicción, un vector de movimiento y un índice de imagen de referencia para su uso en la codificación de un bloque actual. Específicamente, cada uno de los candidatos de fusión es una combinación que incluye al menos un conjunto de una dirección de predicción, un vector de movimiento y un índice de imagen de referencia.
Los candidatos de fusión corresponden a los candidatos de bloques fusión en la realización 1. La lista de candidatos de fusión es la misma que la lista de candidatos de bloque de fusión.
Como se muestra en la figura 18, la unidad 210 de obtención de candidato de fusión incluye una primera unidad 211 de obtención y una segunda unidad 212 de obtención.
La primera unidad 211 de obtención obtiene un primer candidato de fusión basándose, por ejemplo, en una dirección de predicción, un vector de movimiento y un índice de imagen de referencia que se han usado para codificar un bloque espacial o temporalmente vecino al bloque actual. A continuación, por ejemplo, la primera unidad 211 de obtención registra los primeros candidatos de fusión obtenidos de esta manera en la lista de candidatos de fusión en asociación con los índices de candidatos de fusión respectivos.
El bloque espacialmente vecino es un bloque que está dentro de una imagen que incluye el bloque actual y los vecinos al bloque actual. Específicamente, los bloques A D vecinos mostrados en la figura 3 son ejemplos del bloque espacialmente vecino.
El bloque temporalmente vecino es un bloque que está dentro de una imagen diferente de una imagen que incluye el bloque actual y corresponde al bloque actual. Específicamente, un bloque co-localizado es un ejemplo del bloque temporalmente vecino.
Debería observarse que el bloque temporalmente vecino no tiene que ser un bloque localizado en la misma posición que el bloque actual (bloque co-localizado). Por ejemplo, el bloque temporalmente vecino puede ser un bloque vecino al bloque co-localizado.
Debería observarse que la primera unidad 211 de obtención puede obtener, como un primer candidato de fusión, una combinación de una dirección de predicción, un vector de movimiento y un índice de imagen de referencia que se han usado para codificar bloques que son espacialmente vecinos del bloque actual, excepto los bloques no utilizables para la fusión. Un bloque no utilizable para la fusión es un bloque codificado por intra predicción, un bloque fuera del límite de un segmento que incluye el bloque actual o el límite de una imagen que incluye el bloque actual, o un bloque aún por codificar. Con esta configuración, la primera unidad 211 de obtención puede obtener los primeros candidatos de fusión a partir de los bloques apropiados para obtener los candidatos de fusión.
La segunda unidad 212 de obtención obtiene, como un segundo candidato de fusión, un candidato de fusión que tiene un vector de movimiento que es un vector predeterminado. Específicamente, por ejemplo, la segunda unidad 212 de obtención obtiene un segundo candidato de fusión para cada imagen de referencia relacionada. De esta manera, el aparato 200 de codificación de imágenes puede aumentar la variedad de candidatos de fusión, y por lo tanto aumentar la eficacia de codificación.
Debería observarse que la segunda unidad 212 de obtención no tiene necesidad de obtener un segundo candidato de fusión para cada imagen de referencia relacionada. Por ejemplo, la segunda unidad 212 de obtención puede obtener los segundos candidatos de fusión para un número predeterminado de imágenes de referencia.
El vector predeterminado puede ser un vector cero como se describe en la realización 1. Con esto, la segunda unidad 212 de obtención puede obtener un candidato de fusión que tiene un vector de movimiento para una región estacionaria. El aparato 200 de codificación de imágenes puede lograr de esta forma una mayor eficacia de codificación cuando un bloque actual a codificar es una región estacionaria. Debería observarse que el vector predeterminado no necesita ser un vector cero.
A continuación, por ejemplo, la segunda unidad 212 de obtención registra unos segundos candidatos de fusión obtenidos de esta manera en la lista de candidatos de fusión estando cada uno en asociación con un índice de candidatos de fusión diferente. En este momento, la segunda unidad 212 de obtención puede registrar los segundos candidatos de fusión en la lista de candidatos de fusión, de tal manera que los índices de candidatos de fusión asignados a los primeros candidatos de fusión sean más pequeños que los índices de candidatos de fusión asignados a los segundos candidatos de fusión como en la realización 1. Con esto, el aparato 200 de codificación de imágenes puede reducir la cantidad de código cuando los primeros candidatos de fusión tienen más probabilidades de seleccionarse como candidatos de fusión a usar para codificar que un segundo candidato de fusión de tal manera que pueda aumentarse la eficacia de codificación.
La unidad 220 de control de predicción selecciona un candidato de fusión a usar para codificar un bloque actual a partir de los primeros candidatos de fusión y de los segundos candidatos de fusión obtenidos. En otras palabras, la unidad 220 de control de predicción selecciona un candidato de fusión a usar para codificar un bloque actual de la lista de candidatos de fusión.
La unidad 230 de codificación adjunta un índice para identificar el candidato de fusión seleccionado (índice de candidato de fusión) a un flujo de bits. Por ejemplo, la unidad 230 de codificación codifica un índice de candidato de fusión usando la suma del número total de los primeros candidatos de fusión obtenidos y del número total de los segundos candidatos de fusión obtenidos (número total de candidatos de fusión), y adjunta el índice de candidato de fusión codificado a un flujo de bits.
A continuación, se describirán las operaciones del aparato 200 de codificación de imágenes en la configuración descrita anteriormente.
La figura 19 es un diagrama de flujo que muestra las operaciones de procesamiento del aparato 200 de codificación de imágenes de acuerdo con la realización 2.
En primer lugar, la primera unidad 211 de obtención obtiene un primer candidato de la fusión (S201). Posteriormente, la segunda unidad 212 de obtención obtiene un segundo candidato de fusión (S202).
A continuación, la unidad 220 de control de predicción selecciona un candidato de fusión que se usa para la codificación de un bloque actual a partir de los primeros candidatos de fusión y de los segundos candidatos de fusión (S203). Por ejemplo, la unidad 220 de control de predicción selecciona un candidato de fusión para el que el coste representado por la Ecuación 1 es un mínimo de la lista de candidatos de fusión como en la realización 1.
Por último, la unidad 230 de codificación adjunta un índice codificado para identificar al candidato de fusión seleccionado a un flujo de bits (S204).
De esta manera, el aparato 200 de codificación de imágenes de acuerdo con la realización 2 puede obtener, como un segundo candidato de fusión, un candidato de fusión que tenga un vector de movimiento que es un vector predeterminado. Por lo tanto, es posible que el aparato 200 de codificación de imágenes obtenga, por ejemplo, un candidato de fusión que tenga un vector de movimiento y otros para una región estacionaria como un segundo candidato de fusión. En otras palabras, es posible que el aparato 200 de codificación de imágenes codifique de manera eficaz un bloque actual que tenga un movimiento predeterminado de tal manera que pueda aumentarse la eficacia de codificación.
[Realización 3]
La figura 20 es un diagrama de bloques que muestra una configuración de un aparato 300 de decodificación de imágenes de acuerdo con la realización 3. El aparato 300 de decodificación de imágenes es un aparato que corresponde al aparato 200 de codificación de imágenes de acuerdo con la realización 1. Específicamente, por ejemplo, el aparato 300 de decodificación de imágenes decodifica, sobre una base de bloque por bloque, las imágenes codificadas incluidas en un flujo de bits generado por el aparato 100 de codificación de imágenes de acuerdo con la realización 1.
Como se muestra en la figura 20, el aparato 300 de decodificación de imágenes incluye una unidad 301 de decodificación de longitud variable, una unidad 302 de cuantificación inversa, una unidad 303 de transformación ortogonal inversa, un sumador 304, una memoria 305 de bloque, una memoria 306 de cuadro, una unidad 307 de intra predicción, una unidad 308 de inter predicción, una unidad 309 de control de inter predicción, un conmutador 310, una unidad 311 de cálculo de candidato de bloque de fusión y una memoria 312 de colPic.
La unidad 301 de decodificación de longitud variable genera la información de tipo imagen, un indicador de fusión, y un coeficiente cuantificado realizando una decodificación de longitud variable en un flujo de bits de entrada. Además, la unidad 301 de decodificación de longitud variable realiza la decodificación de longitud variable en un índice de candidatos de bloque de fusión usando el número total de candidatos de bloque de fusión calculado por la unidad 311 de cálculo de candidato de bloque de fusión.
La unidad 302 de cuantificación inversa cuantifica de manera inversa el coeficiente cuantificado obtenido mediante la decodificación de longitud variable.
La unidad 303 de transformación ortogonal inversa genera los datos de error de predicción transformando un coeficiente de transformación ortogonal obtenido por la cuantificación inversa desde un dominio de frecuencia a un dominio de imagen.
La memoria 305 de bloque almacena, en unidades de un bloque, los datos de imágenes decodificados generados añadiendo los datos de error de predicción y los datos de imágenes de predicción.
La memoria 306 de cuadro almacena los datos de imágenes decodificados en unidades de un cuadro.
La unidad 307 de intra predicción genera los datos de imágenes de predicción de un bloque actual a decodificar, realizando una intra predicción que usa los datos de imágenes decodificados almacenados en la memoria 305 de bloque en unidades de un bloque.
La unidad 308 de inter predicción genera los datos de imágenes de predicción de un bloque actual a decodificar, realizando una inter predicción que usa los datos de imágenes decodificados almacenados en la memoria 306 de cuadro en unidades de un cuadro.
Cuando un bloque actual se decodifica por decodificación de intra predicción, el conmutador 310 envía los datos de imágenes de intra predicción generados por la unidad 307 de intra predicción como datos de imágenes de predicción del bloque actual al sumador 304. Por otra parte, cuando un bloque actual se decodifica por decodificación de inter predicción, el conmutador 310 envía los datos de imágenes de inter predicción generados por la unidad 308 de inter predicción como datos de imágenes de predicción del bloque actual al sumador 304.
La unidad 311 de cálculo de candidato de bloque de fusión obtiene los candidatos de bloque de fusión a partir de los vectores de movimiento y otros de los bloques vecinos del bloque actual y un vector de movimiento y otros de un bloque co-localizado (información de colPic) almacenados en la memoria 312 de colPic. Además, la unidad 311 de cálculo de candidato de bloque de fusión añade el candidato de bloque de fusión obtenido a una lista de candidatos de bloque de fusión.
Además, la unidad 311 de cálculo de candidato de bloque de fusión obtiene, como un candidato de bloque de fusión cero, un candidato de bloque de fusión que tiene una dirección de predicción, un vector de movimiento y un índice de imagen de referencia para una región estacionaria usando un procedimiento descrito más adelante. A continuación, la unidad 311 de cálculo de candidato de bloque de fusión añade el candidato de bloque de fusión cero obtenido como un nuevo candidato de bloque de fusión a la lista de candidatos de bloque de fusión. Además, la unidad 311 de cálculo de candidato de bloque de fusión calcula el número total de candidatos de bloque de fusión.
Además, la unidad 311 de cálculo de candidato de bloque de fusión asigna cada uno de los índices de candidatos de bloque de fusión que tiene un valor diferente a los candidatos de bloque de fusión obtenidos. A continuación, la unidad 311 de cálculo de candidato de bloque de fusión transmite los candidatos de bloque de fusión a los que se han asignado los índices de candidato de bloque de fusión a la unidad 309 de control de inter predicción. Además, la unidad 311 de cálculo de candidato de bloque de fusión transmite el número total calculado de candidatos de bloque de fusión a la unidad 301 de decodificación de longitud variable.
La unidad 309 de control de inter predicción hace que la unidad 308 de inter predicción genere una imagen de inter predicción usando la información sobre el modo de estimación de vector de movimiento cuando el indicador de fusión decodificado es “0”. Por otro lado, cuando el indicador de fusión es “1”, la unidad 309 de control de inter predicción determina, basándose en un índice de candidatos de bloque de fusión decodificados, un vector de movimiento, un índice de imagen de referencia y una dirección de predicción para su uso en la inter predicción de una pluralidad de candidatos de bloque de fusión. A continuación, la unidad 309 de control de inter predicción hace que la unidad 308 de inter predicción genere una imagen de inter predicción usando el vector de movimiento, el índice de imagen de referencia y la dirección de predicción determinados. Además, la unidad 309 de control de inter predicción transfiere información de colPic que incluye el vector de movimiento del bloque actual a la memoria 312 de colPic.
Finalmente, el sumador 304 genera los datos de imágenes decodificados añadiendo los datos de imágenes de predicción y los datos de error de predicción.
La figura 21 es un diagrama de flujo que muestra las operaciones de procesamiento del aparato 300 de decodificación de imágenes de acuerdo con la realización 3.
En la etapa S301, la unidad 301 de decodificación de longitud variable decodifica un indicador de fusión.
En la etapa S702, cuando el indicador de fusión es “1” (S302, Sí), en la etapa S303, la unidad 311 de cálculo de candidato de bloque de fusión genera un candidato de bloque de fusión de la misma manera que en la etapa S101 en la figura 10. Además, la unidad 311 de cálculo de candidato de bloque de fusión calcula el número total de candidatos de bloque de fusión como el tamaño de una lista de candidatos de bloque de fusión.
En la etapa S304, la unidad 301 de decodificación de longitud variable realiza la decodificación de longitud variable en un índice de candidatos de bloque de fusión a partir de un flujo de bits usando el tamaño de la lista de candidatos de bloque de fusión.
En la etapa S305, la unidad 309 de control de inter predicción hace que la unidad 308 de inter predicción genere una imagen de inter predicción usando el vector de movimiento, el índice de imagen de referencia, y la dirección de predicción del candidato de bloque de fusión indicado por el índice de candidatos de bloque de fusión decodificado.
Cuando el indicador de fusión es “0” en la etapa S302 (S302, No), en la etapa S306, la unidad 308 de inter predicción genera una imagen de inter predicción usando la información en el modo de estimación de vector de movimiento decodificado por la unidad 301 de decodificación de longitud variable.
Opcionalmente, cuando el tamaño de una lista de candidatos de bloque de fusión calculado en la etapa S303 es “1”, puede estimarse que un índice de candidatos de bloque de fusión sea “0” sin decodificarse.
De esta manera, el aparato 300 de decodificación de imágenes de acuerdo con la realización 3 añade, a una lista de candidatos de bloque de fusión, un nuevo candidato de bloque de fusión que tiene un vector de movimiento y un índice de imagen de referencia para una región estacionaria. El aparato 300 de decodificación de imágenes, por lo tanto, puede decodificar apropiadamente un flujo de bits codificado con una mayor eficacia de codificación. Más específicamente, un flujo de bits codificado en modo de fusión con mayor eficacia puede decodificarse apropiadamente usando una lista de candidatos de bloque de fusión a la que se añade un nuevo candidato de bloque de fusión que se calcula para cada imagen de referencia relacionada y tiene un vector de movimiento que es un vector de valor cero, especialmente en el caso donde un bloque actual es una región estacionaria.
[Realización 4]
Aunque el aparato de decodificación de imágenes de acuerdo con la realización 3 incluye elementos constituyentes como se muestra en la figura 20, el aparato de decodificación de imágenes no necesita incluir todos esos elementos constituyentes. Una modificación de este tipo del aparato de decodificación de imágenes de acuerdo con la realización 3 se describirá específicamente a continuación como un aparato de decodificación de imágenes de acuerdo con la realización 4.
La figura 22 es un diagrama de bloques que muestra una configuración de un aparato 400 de decodificación de imágenes de acuerdo con la realización 4. El aparato 400 de decodificación de imágenes es un aparato que corresponde al aparato 200 de codificación de imágenes de acuerdo con la realización 2. Por ejemplo, el aparato 400 de decodificación de imágenes decodifica, sobre la base de bloque por bloque, las imágenes codificadas incluidas en un flujo de bits generado por el aparato 200 de codificación de imágenes de acuerdo con la realización 2.
Como se muestra en la figura 22, el aparato 400 de decodificación de imágenes incluye una unidad 410 de obtención de candidatos de fusión, una unidad 420 de decodificación y una unidad 430 de control de predicción.
La unidad 410 de obtención de candidatos de fusión corresponde a la unidad 311 de cálculo de candidato de bloque de fusión en la realización 3. La unidad 410 de obtención de candidatos de fusión obtiene los candidatos de fusión. La unidad 410 de obtención de candidatos de fusión genera una lista de candidatos de fusión en la que, por ejemplo, cada uno de los índices que identifican a un candidato de fusión obtenido diferente (índices de candidatos de fusión) está asociado con los candidatos de fusión obtenidos respectivos.
Como se muestra en la figura 22, la unidad 410 de obtención de candidatos de fusión incluye una primera unidad 411 de obtención y una segunda unidad 412 de obtención.
La primera unidad 411 de obtención obtiene los primeros candidatos de fusión de la misma manera que la primera unidad 211 de obtención en la realización 2. Específicamente, la primera unidad 411 de obtención obtiene los primeros candidatos de fusión basándose, por ejemplo, en una dirección de predicción, un vector de movimiento y un índice de imagen de referencia que se han usado para decodificar un bloque espacial o temporalmente vecino a un bloque actual a decodificar. A continuación, por ejemplo, la primera unidad 411 de obtención registra los primeros candidatos de fusión obtenidos de esta manera en la lista de candidatos de fusión en asociación con los índices de candidatos de fusión respectivos.
La segunda unidad 412 de obtención obtiene, como un segundo candidato de fusión, un candidato de fusión que tiene un vector de movimiento que es un vector predeterminado. Específicamente, la segunda unidad 412 de obtención obtiene un segundo candidato de fusión de la misma manera que la segunda unidad 212 de obtención en la realización 2. A continuación, por ejemplo, la segunda unidad 412 de obtención registra los segundos candidatos de fusión obtenidos de esta manera en la lista de candidatos de fusión cada uno en asociación con un índice de candidatos de fusión diferente.
Más específicamente, por ejemplo, la segunda unidad 412 de obtención obtiene un segundo candidato de fusión para cada imagen de referencia relacionada. Por lo tanto, aumenta la variedad de candidatos de fusión, de tal manera que puede decodificarse adecuadamente un flujo de bits codificado con una mayor eficacia de codificación.
El vector predeterminado puede ser un vector cero como se describe en la realización 1. Por lo tanto, la segunda unidad 214 de obtención puede obtener un candidato de fusión que tenga un vector de movimiento para una región estacionaria. Con esto, el aparato 400 de decodificación de imágenes puede decodificar apropiadamente un flujo de bits codificado con una mayor eficacia de codificación.
La unidad 420 de decodificación obtiene un índice para identificar un candidato de fusión a partir de un flujo de bits. Por ejemplo, la unidad 420 de decodificación obtiene un índice de candidato de fusión decodificando un índice de candidato de fusión codificado adjuntado a un flujo de bits usando la suma del número total de los primeros candidatos de fusión obtenidos y el número total de los segundos candidatos de fusión obtenidos (número total de candidatos de fusión).
La unidad 430 de control de predicción selecciona, basándose en el índice obtenido, un candidato de fusión a usar para decodificar un bloque actual a partir de los primeros candidatos de fusión obtenidos y los segundos candidatos de fusión obtenidos. En otras palabras, la unidad 430 de control de predicción selecciona un candidato de fusión a usar para decodificar un bloque actual de la lista de candidatos de fusión.
A continuación, se explicarán las operaciones del aparato 400 de decodificación de imágenes en la configuración descrita anteriormente.
La figura 23 es un diagrama de flujo que muestra las operaciones de procesamiento del aparato 400 de decodificación de imágenes de acuerdo con la realización 4.
En primer lugar, la primera unidad 411 de obtención obtiene un primer candidato de fusión (S401). Posteriormente, la segunda unidad 412 de obtención obtiene un segundo candidato de fusión (S402). A continuación, la unidad 420 de decodificación obtiene un índice de candidato de fusión a partir de un flujo de bits (S403).
Por último, la unidad 430 de control de predicción selecciona, basándose en el índice obtenido, un candidato de fusión a usar para decodificar un bloque actual a partir de los primeros candidatos de fusión y de los segundos candidatos de fusión (S404).
De esta manera, el aparato 400 de decodificación de imágenes de acuerdo con la realización 4 puede obtener, como un segundo candidato de fusión, un candidato de fusión que tenga un vector de movimiento que es un vector predeterminado. Por lo tanto, es posible que el aparato 400 de decodificación de imágenes obtenga un candidato de fusión que tenga un vector de movimiento y otros para una región estacionaria como, por ejemplo, un segundo candidato de fusión. En otras palabras, es posible que el aparato 400 de decodificación de imágenes decodifique eficazmente un bloque actual que tenga un movimiento predeterminado, y decodifique apropiadamente de este modo un flujo de bits codificado con una mayor eficacia de codificación.
[Realización 5]
Los candidatos de fusión corresponden a los candidatos de bloque de fusión en la realización 1. El procedimiento para obtener el tamaño de una lista de candidatos de bloque de fusión de acuerdo con la realización 5 se describirá a continuación con detalle.
En el modo de fusión de acuerdo con la realización 1, el número total de los candidatos de bloque de fusión se establece como el tamaño de una lista de candidatos de bloque de fusión para su uso en la codificación o decodificación de un índice de candidato de bloque de fusión. El número total de candidatos de bloque de fusión se determina después de que los candidatos no utilizables para la fusión o los candidatos idénticos se eliminen basándose en la información en las imágenes de referencia que incluyen un bloque co-localizado.
Por lo tanto, se provoca una discrepancia en una secuencia de bits asignada a un índice de candidatos de bloque de fusión entre un aparato de codificación de imágenes y un aparato de decodificación de imágenes en el caso donde hay una diferencia en el número total de candidatos de bloque de fusión entre el aparato de codificación y el aparato de decodificación de imágenes. Como resultado, el aparato de decodificación de imágenes no puede decodificar un flujo de bits correctamente.
Por ejemplo, cuando la información en una imagen de referencia a la que se hace referencia como un bloque co­ localizado se pierde debido a la pérdida de paquetes en una ruta de transmisión, se desconoce el vector de movimiento o el índice de imagen de referencia del bloque co-localizado. En consecuencia, se desconoce la información en un candidato de bloque de fusión a generar a partir del bloque co-localizado. En tal caso, ya no es posible eliminar correctamente los candidatos no utilizables para la fusión o los candidatos idénticos de los candidatos de bloque de fusión en la decodificación. Como resultado, el aparato de decodificación de imágenes no puede obtener el tamaño correcto de una lista de candidatos de bloque de fusión y, por lo tanto, es imposible decodificar normalmente un índice de candidatos de bloque de fusión.
Por lo tanto, el aparato de codificación de imágenes de acuerdo con la realización 5 es capaz de calcular el tamaño de una lista de candidatos de bloque de fusión para su uso en la codificación o en la decodificación de un índice de candidatos de bloque de fusión, usando un procedimiento independiente de información en las imágenes de referencia que incluyen un bloque co-localizado. El aparato de codificación de imágenes consigue de este modo una mejor resistencia al error.
La figura 24 es un diagrama de bloques que muestra una configuración de un aparato 500 de codificación de imágenes de acuerdo con la realización 5. Para la figura 24, los elementos constituyentes en común con la figura 9 se indican con los mismos signos de referencia, y se omite la descripción de los mismos.
Como se muestra en la figura 24, el aparato 500 de codificación de imágenes incluye un restador 101, una unidad 102 de transformación ortogonal, una unidad 103 de cuantificación, una unidad 104 de cuantificación inversa, una unidad 105 de transformación ortogonal inversa, un sumador 106, una memoria 107 de bloque, una memoria 108 de cuadro, una unidad 109 de intra predicción, una unidad 110 de inter predicción, una unidad 111 de control de inter predicción, una unidad 112 de determinación de tipo de imagen, un conmutador 113, una unidad 514 de cálculo de candidato de bloque de fusión, una memoria 115 de colPic y una unidad 516 de codificación de longitud variable.
La unidad 514 de cálculo de candidato de bloque de fusión obtiene los candidatos de bloque de fusión para el modo de fusión usando los vectores de movimiento y otros de los bloques vecinos del bloque actual y un vector de movimiento y otros del bloque co-localizado (información de colPic) almacenados en la memoria de colPic 115. A continuación, la unidad 514 de cálculo de candidato de bloque de fusión calcula el número total de candidatos utilizables para la fusión usando un procedimiento que se describe más adelante.
Además, la unidad 514 de cálculo de candidato de bloque de fusión asigna los índices de candidatos de bloque de fusión teniendo cada uno de los mismos un valor diferente que los candidatos de bloque de fusión obtenidos. A continuación, la unidad 514 de cálculo de candidato de bloque de fusión transmite los candidatos de bloque de fusión y los índices de candidatos de bloque de fusión a la unidad 111 de control de inter predicción. Además, la unidad 514 de cálculo de candidato de bloque de fusión transmite el número total calculado de candidatos utilizables para la fusión a la unidad 116 de codificación de longitud variable.
La unidad 516 de codificación de longitud variable genera un flujo de bits realizando la codificación de longitud variable en los datos de error de predicción cuantificados, el indicador de fusión, y la información de tipo imagen. La unidad 516 de codificación de longitud variable también establece el número total de candidatos utilizables para la fusión como el tamaño de la lista de candidatos de bloque de fusión. Además, la unidad 516 de codificación de longitud variable realiza una codificación de longitud variable en un índice de candidatos de bloque de fusión a usar para la codificación, asignando, de acuerdo con el tamaño de la lista de candidatos de bloque de fusión, una secuencia de bits al índice de candidatos de bloque de fusión.
La figura 25 es un diagrama de flujo que muestra las operaciones de procesamiento del aparato 500 de codificación de imágenes de acuerdo con la realización 5. Para la figura 25, las etapas en común con la figura 10 se indican con los mismos signos de referencia, y se omite la descripción de los mismos cuando sea apropiado.
En la etapa S501, la unidad 514 de cálculo de candidato de bloque de fusión obtiene los candidatos de bloque de fusión a partir de los bloques vecinos y de un bloque de co-localización de un bloque actual. Además, la unidad 514 de cálculo de candidato de bloque de fusión calcula el tamaño de una lista de candidatos de bloque de fusión usando un procedimiento que se describe más adelante.
Por ejemplo, en el caso mostrado en la figura 3, la unidad 514 de cálculo de candidato de bloque de fusión selecciona los bloques A D vecinos como candidatos de bloque de fusión. Además, la unidad 514 de cálculo de candidato de bloque de fusión calcula, como un candidato de bloque de fusión, un bloque de fusión co-localizado que tiene un vector de movimiento y otros que se calculan a partir del vector de movimiento de un bloque co-localizado usando el modo de predicción de tiempo.
La unidad 514 de cálculo de candidato de bloque de fusión asigna los índices de candidatos de bloque de fusión a los candidatos de bloque de fusión respectivos como se muestra en (a) en la figura 26. A continuación, la unidad 514 de cálculo de candidato de bloque de fusión calcula una lista de candidatos de bloque de fusión como se muestra en (b) en la figura 26 y el tamaño de la lista de candidatos de bloque de fusión eliminando los candidatos no utilizables para la fusión y los candidatos idénticos y añadiendo nuevos candidatos usando un procedimiento que se describe más adelante.
Los códigos más cortos se asignan a los índices de candidatos de bloque de fusión de los valores más pequeños. En otras palabras, cuanto menor sea el valor de un índice de candidatos de bloque de fusión, menor será la cantidad de información necesaria para indicar el índice de candidatos de bloque de fusión.
Por otra parte, cuanto mayor sea el valor de un índice de candidatos de bloque de fusión, mayor será la cantidad de información necesaria para el índice de candidatos de bloque de fusión. Por lo tanto, la eficacia de codificación aumentará cuando los índices de candidatos de bloque de fusión de valores más pequeños se asignen a los candidatos de bloque de fusión que tienen más probabilidades de tener vectores de movimiento de mayor precisión e índices de imagen de referencia de mayor precisión.
Por lo tanto, un caso posible es que la unidad 514 de cálculo de candidato de bloque de fusión cuente el número total de veces de selección de cada uno de los candidatos de bloque de fusión como un bloque de fusión, y asigne los índices de candidatos de bloque de fusión de valores más pequeños a los bloques con un mayor número total de veces. Específicamente, esto puede lograrse especificando un bloque de fusión seleccionado a partir de los bloques vecinos y asignando un índice de candidatos de bloque de fusión de un valor más pequeño al bloque de fusión especificado cuando se codifica un bloque actual.
Cuando un candidato de bloque de fusión no tiene información tal como un vector de movimiento (por ejemplo, cuando el bloque de fusión es un bloque codificado por intra predicción, se localiza fuera del límite de una imagen o del límite de un segmento, o está aún por codificar), el candidato de bloque de fusión no es utilizable para la codificación.
En la realización 5, un candidato de bloque de fusión no utilizable para la codificación se denomina como un candidato no utilizable para la fusión, y un candidato de bloque de fusión utilizable para la codificación se denomina como un candidato utilizable para la fusión. Además, entre una pluralidad de candidatos de bloque de fusión, un candidato de bloque de fusión idéntico en vector de movimiento, índice de imagen de referencia y dirección de predicción a cualquier otro bloque de fusión se denomina candidato idéntico.
En el caso mostrado en la figura 3, el bloque C vecino es un candidato no utilizable para la fusión debido a que es un bloque codificado por intra predicción. El bloque D vecino es un candidato idéntico debido a que es idéntico en vector de movimiento, índice de imagen de referencia y dirección de predicción al bloque A vecino.
En la etapa S102, la unidad 111 de control de inter predicción selecciona un modo de predicción basándose en la comparación entre el error de predicción de una imagen de predicción generada usando un vector de movimiento obtenido por la estimación de movimiento y el error de predicción de una imagen de predicción generada usando un vector de movimiento obtenido a partir de un candidato de bloque de fusión. Cuando el modo de predicción seleccionado es el modo de fusión, la unidad 111 de control de inter predicción establece el indicador de fusión en 1, y cuando no, la unidad 111 de control de inter predicción establece el indicador de fusión en 0.
En la etapa S103, se determina si el indicador de fusión es o no 1 (es decir, si el modo de predicción seleccionado es o no el modo de fusión).
Cuando el resultado de la determinación en la etapa S103 es verdadero (Sí, S103), la unidad 516 de codificación de longitud variable adjunta el indicador de fusión a un flujo de bits en la etapa S104. Posteriormente, en la etapa S505, la unidad 516 de codificación de longitud variable asigna las secuencias de bits de acuerdo con el tamaño de la lista de candidatos de bloque de fusión como se muestra en la figura 5 a los índices de candidatos de bloque de fusión de los candidatos de bloque de fusión a usar para la codificación. A continuación, la unidad 516 de codificación de longitud variable realiza una codificación de longitud variable en la secuencia de bits asignada.
Por otra parte, cuando el resultado de la determinación en la etapa S103 es falso (S103, No), la unidad 516 de codificación de longitud variable adjunta información sobre un indicador de fusión y un modo de vector de estimación de movimiento a un flujo de bits en la etapa S106.
En la realización 5, un índice de candidatos de bloque de fusión que tiene un valor de “0” se asigna al bloque A vecino como se muestra en (a) en la figura 26. Se asigna un índice de candidatos de bloque de fusión que tiene un valor de “1” al bloque B vecino. Se asigna un índice de candidatos de bloque de fusión que tiene un valor de “2” al bloque de fusión co-localizado. Se asigna un índice de candidatos de bloque de fusión que tiene un valor de “3” al bloque C vecino. Se asigna un índice de candidatos de bloque de fusión que tiene un valor de “4” al bloque D vecino.
Debería observarse que los índices de candidatos de bloque de fusión que tienen un valor de este tipo pueden asignarse de otra manera. Por ejemplo, cuando se añade un nuevo candidato usando el procedimiento descrito en la realización 1 o un procedimiento que se describe más adelante, la unidad 516 de codificación de longitud variable puede asignar valores más pequeños a los candidatos de bloques de fusión preexistentes y un valor más grande al nuevo candidato. En otras palabras, la unidad 516 de codificación de longitud variable puede asignar un índice de candidatos de bloque de fusión de un valor más pequeño a un candidato de bloque de fusión preexistente en prioridad a un nuevo candidato.
Además, los candidatos de bloque de fusión no se limitan a los bloques en las posiciones de los bloques A, B, C y D vecinos. Por ejemplo, un bloque vecino localizado por encima del bloque D vecino inferior izquierdo puede usarse como un candidato de bloque de fusión. Además, no es necesario usar todos los bloques vecinos como candidatos de bloque de fusión. Por ejemplo, también es posible usar solo los bloques A y B vecinos como candidatos de bloque de fusión.
Además, aunque la unidad 516 de codificación de longitud variable adjunta un índice de candidatos de bloque de fusión a un flujo de bits en la etapa S505 en la figura 25 en la realización 5, no siempre es necesario adjuntar dicho índice de candidatos de bloque de fusión a un flujo de bits. Por ejemplo, la unidad 116 de codificación de longitud variable no necesita adjuntar un índice de candidatos de bloque de fusión a un flujo de bits cuando el tamaño de la lista de candidatos de bloque de fusión es “1”. De este modo, se reduce la cantidad de información en el índice de candidatos de bloque de fusión.
La figura 27 es un diagrama de flujo que muestra los detalles del procedimiento en la etapa S501 en la figura 25. Específicamente, la figura 27 ilustra un procedimiento para calcular los candidatos de bloque de fusión y el tamaño de una lista de candidatos de bloque de fusión. A continuación, se describirá la figura 27.
En la etapa S511, la unidad 514 de cálculo de candidato de bloque de fusión determina si un candidato [N] de bloque de fusión es o no un candidato utilizable para la fusión usando un procedimiento descrito más adelante. A continuación, la unidad 514 de cálculo de candidato de bloque de fusión actualiza el número total de candidatos utilizables para la fusión de acuerdo con el resultado de la determinación.
En este caso, N indica un valor de índice para identificar cada candidato de bloque de fusión. En la realización 5, N toma valores de 0 a 4. Específicamente, el bloque A vecino en la figura 3 se asigna a un candidato [0] de bloque de fusión. El bloque B vecino en la figura 3 se asigna a un candidato [1] de bloque de fusión. El bloque de fusión co­ localizado se asigna a un candidato [2] de bloque de fusión. El bloque C vecino en la figura 3 se asigna a un candidato [3] de bloque de fusión. El bloque D vecino en la figura 5 se asigna a un candidato [4] de bloque de fusión.
En la etapa S512, la unidad 514 de cálculo de candidato de bloque de fusión obtiene el vector de movimiento, el índice de imagen de referencia, y la dirección de predicción del candidato [N] de bloque de fusión, y los añade a una lista de candidatos de bloque de fusión.
En la etapa S513, la unidad 514 de cálculo de candidato de bloque de fusión busca en la lista de candidatos de bloque de fusión un candidato no utilizable para la fusión y un candidato idénticos, y elimina el candidato no utilizable para la fusión y el candidato idéntico de la lista de candidatos de bloque de fusión como se muestra en la figura 26.
En la etapa S514, la unidad 514 de cálculo de candidato de bloque de fusión añade un nuevo candidato a la lista de candidatos de bloque de fusión usando un procedimiento descrito en la realización 1 o un procedimiento descrito más adelante. En este caso, cuando se añade un nuevo candidato, la unidad 514 de cálculo de candidato de bloque de fusión puede reasignar los índices de candidatos de bloque de fusión de tal manera que los índices de candidatos de bloque de fusión de valores más pequeños se asignen a los candidatos de bloque de fusión preexistentes en prioridad al nuevo candidato. En otras palabras, la unidad 514 de cálculo de candidato de bloque de fusión puede reasignar los índices de candidatos de bloque de fusión de tal manera que se asigne un índice de candidatos de bloque de fusión de un valor mayor al candidato nuevo. De este modo se reduce la cantidad de código de los índices de candidatos de bloque de fusión.
En la etapa S515, la unidad 514 de cálculo de candidato de bloque de fusión establece el número total de candidatos utilizables para la fusión calculado en la etapa S511 como el tamaño de la lista de candidatos de bloque de fusión. En el ejemplo mostrado en la figura 26, el número calculado de candidatos utilizables para la fusión es “4”, y el tamaño de la lista de candidatos de bloque de fusión se establece en “4”.
El nuevo candidato en la etapa S514 es un candidato recién añadido a los candidatos de bloque de fusión usando el procedimiento descrito en la realización 1 o un procedimiento descrito más adelante, cuando el número total de candidatos de bloque de fusión es menor que el número total de candidatos utilizables para la fusión. El nuevo candidato puede ser un candidato de bloque de fusión que tiene un vector de movimiento que es un vector predeterminado (por ejemplo, un vector cero). Los ejemplos de un nuevo candidato de este tipo incluyen un bloque vecino localizado por encima del bloque D vecino inferior izquierdo en la figura 3, un bloque correspondiente a cualquiera de los bloques A, B, C y D vecinos de un bloque co-localizado. Además, los ejemplos de un nuevo candidato de este tipo incluyen además un bloque que tiene un vector de movimiento, un índice de imagen de referencia, una dirección de predicción y similares que se obtienen estadísticamente para la totalidad o una región determinada de una imagen de referencia. Por lo tanto, cuando el número total de candidatos de bloque de fusión es menor que el número total de candidatos utilizables para la fusión, la unidad 514 de cálculo de candidato de bloque de fusión añade un nuevo candidato que tiene un nuevo vector de movimiento, un nuevo índice de imagen de referencia y una nueva dirección de predicción de tal manera que pueda aumentarse la eficacia de codificación.
La figura 28 es un diagrama de flujo que muestra los detalles del procedimiento en la etapa S511 en la figura 27. Específicamente, la figura 28 ilustra un procedimiento para determinar si un candidato [N] de bloque de fusión es o no un candidato utilizable para la fusión y actualizar el número total de candidatos utilizables para la fusión. A continuación, se describirá la figura 28.
En la etapa S521, la unidad 514 de cálculo de candidato de bloque de fusión determina si es verdadero o falso que (1) un candidato [N] de bloque de fusión se ha codificado por intra predicción, (2) el candidato [N] de bloque de fusión es un bloque fuera del límite de un segmento que incluye el bloque actual o el límite de una imagen que incluye el bloque actual, o (3) el candidato [N] de bloque de fusión está aún por codificar.
Cuando el resultado de la determinación en la etapa 521 es verdadero (S521, Sí), la unidad 514 de cálculo de candidato de bloque de fusión establece el candidato [N] de bloque de fusión como un candidato no utilizable para la fusión en la etapa S522. Por otro lado, cuando el resultado de la determinación en la etapa S521 es falso (S521, No), la unidad 514 de cálculo de candidato de bloque de fusión establece el candidato [N] de bloque de fusión como un candidato utilizable para la fusión en la etapa S523.
En la etapa S524, la unidad 514 de cálculo de candidato de bloque de fusión determina si es verdadero o falso que el candidato [N] de bloque de fusión es o bien un candidato utilizable para la fusión o un candidato de bloque de fusión co-localizado. En este caso, cuando el resultado de la determinación en la etapa S524 es verdadero (S524, Sí), la unidad 514 de cálculo de candidato de bloque de fusión actualiza el número total de candidatos de bloque de fusión aumentándolo en uno en la etapa S525. Por otro lado, cuando el resultado de la determinación en la etapa S524 es falso (S524, No), la unidad 514 de cálculo de candidato de bloque de fusión no actualiza el número total de candidatos utilizables para la fusión.
Por lo tanto, cuando un candidato de bloque de fusión es un bloque de fusión co-localizado, la unidad 514 de cálculo de candidato de bloque de fusión aumenta el número total de candidatos utilizables para la fusión en 1, independientemente de si el bloque co-localizado es un candidato utilizable para la fusión o un candidato no utilizable para la fusión. Esto evita la discrepancia en el número de candidatos utilizables para la fusión entre el aparato de codificación de imágenes y el aparato de decodificación de imágenes, incluso cuando se pierde la información en un bloque de fusión co-localizado debido a un incidente tal como la pérdida de paquetes.
El número total de candidatos utilizables para la fusión se establece como el tamaño de la lista de candidatos de bloque de fusión en la etapa S515 mostrado en la figura 27. Además, el tamaño de la lista de candidatos de bloque de fusión se usa en la codificación de longitud variable de los índices de candidatos de bloque de fusión en la etapa S505 mostrada en la figura 25. Esto hace posible que el aparato 500 de codificación de imágenes genere un flujo de bits que puede decodificarse normalmente de tal manera que pueden obtenerse los índices de candidatos de bloque de fusión incluso cuando se pierde información en la imagen de referencia que incluye un bloque co-localizado.
La figura 29 es un diagrama de flujo que muestra los detalles del procedimiento en la etapa S514 en la figura 27. Específicamente, la figura 29 ilustra un procedimiento para añadir un nuevo candidato. A continuación, se describirá la figura 29.
En la etapa S531, la unidad 514 de cálculo de candidato de bloque de fusión determina si el número total de candidatos de bloque de fusión es o no menor que el número total de candidatos utilizables para la fusión. En otras palabras, la unidad 514 de cálculo de candidato de bloque de fusión determina si el número total de candidatos de bloque de fusión está o no aún por debajo del número total de candidatos utilizables para la fusión.
En este caso, cuando el resultado de la determinación en la etapa S531 es verdadero (S531, Sí), en la etapa S532, la unidad 514 de cálculo de candidato de bloque de fusión determina si hay o no un nuevo candidato que puede añadirse como un candidato de bloque de fusión a la lista de candidatos de bloque de fusión. En este caso, cuando el resultado de la determinación en la etapa S532 es verdadero (S532, Sí), en la etapa S533, la unidad 514 de cálculo de candidato de bloque de fusión asigna un índice de candidatos de bloque de fusión al nuevo candidato y añade el nuevo candidato a la lista de candidatos de bloque de fusión. Además, la unidad 514 de cálculo de candidato de bloque de fusión aumenta el número total de candidatos de bloque de fusión en uno en la etapa S534.
Por otro lado, cuando el resultado de la determinación en la etapa S101 o en la etapa S532 es falso (S531 o S532, No), el procedimiento para añadir un nuevo candidato finaliza. En otras palabras, el procedimiento para añadir un nuevo candidato finaliza cuando el número total de candidatos de bloque de fusión es el número total de candidatos utilizables para la fusión o cuando no hay un nuevo candidato.
Por lo tanto, el aparato 500 de codificación de imágenes de acuerdo con la realización 5 es capaz de calcular el tamaño de una lista de candidatos de bloque de fusión para su uso en la codificación o en la decodificación de un índice de candidatos de bloque de fusión, usando un procedimiento independiente de la información en las imágenes de referencia que incluye un bloque co-localizado. El aparato 500 de codificación de imágenes consigue de este modo una mejor resistencia al error.
Más específicamente, independientemente de si un bloque de fusión co-localizado es o no un candidato utilizable para la fusión, el aparato 500 de codificación de imágenes de acuerdo con la realización 5 aumenta el número total de candidatos utilizables para la fusión en uno cada vez que se determina un candidato de bloque de fusión como un bloque de fusión co-localizado. A continuación, el aparato 500 de codificación de imágenes determina una secuencia de bits a asignar a un índice de candidatos de bloque de fusión, usando el número total de candidatos utilizables para la fusión calculados de esta manera. El aparato 500 de codificación de imágenes es, por lo tanto, capaz de generar un flujo de bits a partir del que el índice de candidatos de bloque de fusión puede decodificarse normalmente incluso cuando se pierde información en las imágenes de referencia que incluyen un bloque co-localizado.
Además, cuando el número total de candidatos de bloque de fusión es menor que el número total de candidatos utilizables para la fusión, el aparato 500 de codificación de imágenes de acuerdo con la realización 5 añade, como candidato de bloque de fusión, un nuevo candidato que tiene un nuevo vector de movimiento, un nuevo índice de imagen de referencia y una nueva dirección de predicción de tal manera aumenta la eficacia de codificación.
Debería observarse que el ejemplo descrito en la realización 5 en el que el indicador de fusión se adjunta siempre a un flujo de bits en el modo de fusión no es limitante. Por ejemplo, el modo de fusión puede seleccionarse a la fuerza en función de la forma del bloque para su uso en la inter predicción de un bloque actual. En este caso, es posible reducir la cantidad de información no adjuntando un indicador de fusión a un flujo de bits.
Debería observarse que el ejemplo descrito en la realización 5, donde se usa el modo de fusión, en el que un bloque actual se codifica usando una dirección de predicción, un vector de movimiento y un índice de imagen de referencia copiados de un bloque D vecino del bloque actual no es limitante Por ejemplo, puede usarse un modo de fusión de salto. En el modo de fusión de salto, se codifica un bloque actual de la misma manera que en el modo de fusión, usando una dirección de predicción, un vector de movimiento y un índice de imagen de referencia copiados de un bloque vecino del bloque actual haciendo referencia a una lista de candidatos de bloque de fusión creada como se muestra en (b) en la figura 26. Cuando todos los errores de predicción resultantes son cero para el bloque actual, se establece un indicador de salto en 1 y el indicador de salto y un índice de candidatos de bloque de fusión se adjuntan a un flujo de bits. Cuando cualquiera de los errores de predicción resultantes no es cero, se establece un indicador de salto en 0 y el indicador de salto, un indicador de fusión, un índice de candidatos de bloque de fusión y los errores de predicción se adjuntan a un flujo de bits.
Debería observarse que el ejemplo descrito en la realización 5, donde se usa el modo de fusión, en el que un bloque actual se codifica usando una dirección de predicción, un vector de movimiento y un índice de imagen de referencia copiados de un bloque vecino del bloque actual no es limitante. Por ejemplo, un vector de movimiento en el modo de estimación de vector de movimiento puede codificarse usando una lista de candidatos de bloque de fusión creada como se muestra en (b) en la figura 26. Específicamente, se calcula una diferencia restando un vector de movimiento de un candidato de bloque de fusión indicado por un índice de candidatos de bloque de fusión de un vector de movimiento en el modo de estimación de vector de movimiento. Además, la diferencia calculada y el índice de candidatos de bloque de fusión pueden adjuntarse a un flujo de bits.
Opcionalmente, puede calcularse una diferencia escalando un vector MV_Merge de movimiento de un candidato de bloque de fusión usando un índice RefIdx_ME de imagen de referencia en el modo de estimación de movimiento y un índice RefIdx_Merge de imagen de referencia del candidato de bloque de fusión como se representa por la Ecuación 2, y restando un vector MV_Merge de movimiento escalado del candidato de bloque de fusión después de escalar el vector de movimiento en el modo de estimación de movimiento. A continuación, la diferencia calculada y el índice de candidatos de bloque de fusión pueden adjuntarse a un flujo de bits.
[Realización 6]
En la realización 5, el aparato de codificación de imágenes determina una secuencia de bits a asignar a un índice de candidatos de bloque de fusión usando el número total de candidatos utilizables para la fusión aumentado en uno cada vez que se determina un candidato de bloque de fusión como un bloque de fusión co-localizado, independientemente de si un bloque de fusión co-localizado es o no un candidato utilizable para la fusión. Opcionalmente, por ejemplo, el aparato de codificación de imágenes puede determinar una secuencia de bits a asignar a un índice de candidatos de bloque de fusión usando el número total de candidatos utilizables para la fusión calculado aumentando en uno para cada candidato de bloque de fusión, independientemente de si el candidato de bloque de fusión es o no un bloque de fusión co-localizado en la etapa S524 en la figura 28. En otras palabras, el aparato de codificación de imágenes puede asignar una secuencia de bits a un índice de candidatos de bloque de fusión usando el tamaño de una lista de candidatos de bloque de fusión fijada en un número N máximo del número total de candidatos de bloque de fusión. En otras palabras, el aparato de codificación de imágenes puede codificar los índices de candidatos de bloque de fusión usando el tamaño de una lista de candidatos de bloque de fusión fijada en un valor N máximo del número total de candidatos de bloque de fusión en el supuesto de que todos los candidatos de bloque de fusión sean candidatos utilizables para la fusión.
Por ejemplo, en el caso mostrado en la realización 5, cuando el valor N máximo del número total de candidatos de bloque de fusión es cinco (el bloque A vecino, el bloque B vecino, el bloque de fusión co-localizado, el bloque C vecino y bloque D vecino), el aparato de codificación de imágenes puede codificar los índices de candidatos de bloque de fusión usando el tamaño de la lista de candidatos de bloque de fusión establecido de manera fija en cinco. Además, por ejemplo, cuando el valor N máximo del número total de candidatos de bloque de fusión es cuatro (el bloque A vecino, el bloque B vecino, el bloque C vecino y el bloque D vecino), el aparato de codificación de imágenes puede codificar los índices de candidatos de bloque de fusión que usan el tamaño de la lista de candidatos de bloque de fusión establecido de manera fija en cuatro.
De esta manera, el aparato de codificación de imágenes puede determinar el tamaño de una lista de candidatos de bloque de fusión basándose en el valor máximo del número total de candidatos de bloque de fusión. Por lo tanto, es posible generar un flujo de bits a partir del que una unidad de decodificación de longitud variable de un aparato de decodificación de imágenes puede decodificar un índice de candidatos de bloque de fusión sin hacer referencia a la información en un bloque vecino o en un bloque co-localizado, de tal manera que puede reducirse la complejidad de cálculo para la unidad de decodificación de longitud variable.
Una modificación de este tipo del aparato de codificación de imágenes de acuerdo con la realización 5 se describirá específicamente a continuación como un aparato de codificación de imágenes de acuerdo con la realización 6.
La figura 30 es un diagrama de bloques que muestra una configuración de un aparato 600 de codificación de imágenes de acuerdo con la realización 6. El aparato 600 de codificación de imágenes codifica una imagen sobre una base de bloque por bloque para generar un flujo de bits. El aparato 600 de codificación de imágenes incluye una unidad 610 de obtención candidatos de fusión, una unidad 620 de control de predicción y una unidad 630 de codificación.
La unidad 610 de obtención candidatos de fusión corresponde a la unidad 514 de cálculo de candidato de bloque de fusión en la realización 5. La unidad 610 de obtención candidatos de fusión obtiene los candidatos de fusión. La unidad 610 de obtención candidatos de fusión genera una lista de candidatos de fusión en la que, por ejemplo, cada uno de los índices que identifican a un candidato de fusión obtenido diferente se asocian con los candidatos de fusión obtenidos respectivos.
Como se muestra en la figura 30, la unidad 610 de obtención candidatos de fusión incluye una primera unidad 611 de determinación, una primera unidad 612 de obtención, una unidad 613 de especificación, una segunda unidad 614 de determinación y una segunda unidad 615 de obtención.
La primera unidad 611 de determinación determina un número máximo de candidatos de fusión. En otras palabras, la primera unidad 611 de determinación determina un valor N máximo del número total de candidatos de bloque de fusión.
Por ejemplo, la primera unidad 611 de determinación determina un número máximo de candidatos de fusión basándose en las características de la secuencia de imágenes de entrada (tal como una secuencia, una imagen, un segmento o un bloque). Opcionalmente, por ejemplo, la primera unidad 611 de determinación puede determinar un número predeterminado como un número máximo de candidatos de fusión.
Más específicamente, la primera unidad 612 de obtención obtiene en primer lugar los candidatos de fusión basándose en, por ejemplo, una dirección de predicción, un vector de movimiento y un índice de imagen de referencia que se han usado para codificar un bloque espacial o temporalmente vecino al bloque actual. Específicamente, la primera unidad 612 de obtención obtiene los primeros candidatos de fusión dentro de un intervalo en el que el número total de los primeros candidatos de fusión no supera el número máximo. A continuación, por ejemplo, la primera unidad 612 de obtención registra los primeros candidatos de fusión obtenidos de esta manera en la lista de candidatos de fusión en asociación con los índices de candidatos de fusión respectivos.
Debería observarse que la primera unidad 612 de obtención puede obtener, como un primer candidato de fusión, una combinación de una dirección de predicción, un vector de movimiento y un índice de imagen de referencia que se han usado para codificar bloques que son espacialmente vecinos del bloque actual, excepto los bloques no utilizables para la fusión. Un bloque no utilizable para la fusión es un bloque codificado por intra predicción, un bloque fuera del límite de un segmento que incluye el bloque actual o el límite de una imagen que incluye el bloque actual, o un bloque está aún por codificar. Con esta configuración, la primera unidad 612 de obtención puede obtener los primeros candidatos de fusión a partir de los bloques apropiados para obtener los candidatos de fusión.
Cuando se ha obtenido una pluralidad de primeros candidatos de fusión, la unidad 613 de especificación especifica un candidato idéntico, es decir, un primer candidato de fusión que es una combinación de una dirección de predicción, un vector de movimiento y un índice de imagen de referencia idéntica a una combinación de una dirección de predicción, un vector de movimiento y un índice de imagen de referencia de cualquier otro de los primeros candidatos de fusión. A continuación, la unidad 613 de especificación elimina el candidato idéntico especificado de la lista de candidatos de fusión.
La segunda unidad 614 de determinación determina si el número total de los primeros candidatos de fusión es menor o no que un número máximo determinado. En este caso, la segunda unidad 614 de determinación determina si el número total de los primeros candidatos de fusión, excepto el primer candidato de fusión idéntico especificado, es o no menor que el número máximo determinado.
Cuando se determina que el número total de los primeros candidatos de fusión es menor que el número máximo determinado, la segunda unidad 615 de obtención obtiene un segundo candidato de fusión que tiene un vector de movimiento que es un vector predeterminado. Específicamente, la segunda unidad 615 de obtención obtiene los segundos candidatos de fusión dentro de un intervalo en el que la suma del número total de primeros candidatos de fusión y el número total de segundos candidatos de fusión no supera el número máximo. En este caso, la segunda unidad 615 de obtención obtiene los segundos candidatos de fusión dentro de un intervalo en el que la suma del número total de primeros candidatos de fusión excepto el candidato idéntico y el número total de los segundos candidatos de fusión no supera el número máximo.
El vector predeterminado puede ser un vector cero tal como se describe en la realización 5. Debería observarse que el vector predeterminado no necesita ser un vector cero.
A continuación, por ejemplo, la segunda unidad 615 de obtención registra los segundos candidatos de fusión obtenidos de esta manera en la lista de candidatos de fusión, cada uno en asociación con un índice de candidato de fusión diferente. En este momento, la segunda unidad 615 de obtención puede registrar los segundos candidatos de fusión en la lista de candidatos de fusión, de tal manera que los índices de candidatos de fusión asignados a los primeros candidatos de fusión sean más pequeños que los índices de candidatos de fusión asignados a los segundos candidatos de fusión. Con esto, el aparato 600 de codificación de imágenes puede reducir la cantidad de código cuando los primeros candidatos de fusión tienen más probabilidades de seleccionarse como candidato de fusión a usar para la codificación que un segundo candidato de fusión de tal manera que pueda aumentarse la eficacia de codificación.
Debería observarse que la segunda unidad 615 de obtención no necesita obtener un segundo candidato de fusión, de tal manera que la suma del número total de los primeros candidatos de fusión y el número total del segundo candidato de fusión sea igual a un número máximo determinado. Cuando la suma del número total de los primeros candidatos de fusión y el número total del segundo candidato de fusión es menor que el número máximo determinado, por ejemplo, puede haber un índice de candidato de fusión con el que no está asociado ningún candidato de fusión.
La unidad 620 de control de predicción selecciona un candidato de fusión a usar para la codificación de un bloque actual a partir de los primeros candidatos de fusión y los segundos candidatos de fusión. En otras palabras, la unidad 620 de control de predicción selecciona un candidato de fusión a usar para codificar un bloque actual a partir de la lista de candidatos de fusión.
La unidad 630 de codificación codifica el índice para identificar el candidato de fusión seleccionado (índice de candidato de fusión) usando el número máximo determinado. Específicamente, la unidad 630 de codificación realiza una codificación de longitud variable en una secuencia de bits asignada al valor de índice del candidato de fusión seleccionado como se muestra en la figura 5. Además, la unidad 630 de codificación adjunta el índice codificado a un flujo de bits.
En este caso, la unidad 630 de codificación puede adjuntar además información que indica el número máximo determinado por la primera unidad 611 de determinación para el flujo de bits. Específicamente, por ejemplo, la unidad 630 de codificación puede escribir la información que indica el número máximo en un encabezado de segmento. Esto hace posible cambiar los números máximos por la unidad apropiada de tal manera que pueda aumentarse la eficacia de codificación.
La unidad 630 de codificación no necesita adjuntar un número máximo a un flujo de bits. Por ejemplo, cuando el número máximo se especifica en un estándar, o cuando el número máximo es el mismo que el valor predeterminado, la unidad 630 de codificación no necesita adjuntar información que indique el número máximo a un flujo de bits.
A continuación, se describirán las operaciones del aparato 600 de codificación de imágenes en la configuración descrita anteriormente.
La figura 31 es un diagrama de flujo que muestra las operaciones de procesamiento del aparato 600 de codificación de imágenes de acuerdo con la realización 6.
En primer lugar, la primera unidad 611 de determinación determina un número máximo de candidatos de fusión (S601). La primera unidad 612 de obtención obtiene un primer candidato de fusión (S602). Cuando se ha obtenido una pluralidad de los primeros candidatos de fusión, la unidad 613 de especificación especifica un primer candidato de fusión que es un candidato idéntico, es decir, una combinación de una dirección de predicción, un vector de movimiento y un índice de imagen de referencia idéntica a una combinación de una dirección de predicción, un vector de movimiento y un índice de imagen de referencia de cualquier otro de los primeros candidatos de fusión (S603).
La segunda unidad 614 de determinación determina si el número total de los primeros candidatos de fusión, excepto el candidato idéntico, es o no menor que el número máximo determinado (S604). En este caso, cuando se determina que el número total de los primeros candidatos de fusión, excepto el candidato idéntico, es menor que el número máximo determinado (S604, Sí), la segunda unidad 615 de obtención obtiene, como segundo candidato de fusión, un candidato de fusión que tiene un vector de movimiento que es un vector predeterminado (S605). Por otro lado, cuando se determina que el número total de los primeros candidatos de fusión, excepto el candidato idéntico, no es menor que el número máximo determinado (S604, No), la segunda unidad de obtención 415 no obtiene un segundo candidato de fusión. Esta etapa S604 y la etapa S605 corresponden a la etapa S514 en la realización 5.
La unidad 620 de control de predicción selecciona un candidato de fusión que se usa para la codificación de un bloque actual a partir de los primeros candidatos de fusión y los segundos candidatos de fusión (S606). Por ejemplo, la unidad 620 de control de predicción selecciona un candidato de fusión para el que el coste representado por la Ecuación 1 es un mínimo de la lista de candidatos de fusión como en la realización 1.
La unidad 630 de codificación codifica un índice para identificar el candidato de fusión seleccionado, usando el número máximo determinado (S607). Además, la unidad 630 de codificación adjunta el índice codificado a un flujo de bits.
De esta manera, el aparato 600 de codificación de imágenes de acuerdo con la realización 6 puede obtener, como segundo candidato de fusión, un candidato de fusión que tenga un vector de movimiento que es un vector predeterminado. Por lo tanto, es posible para el aparato 600 de codificación de imágenes obtener un candidato de fusión que tenga, por ejemplo, un vector de movimiento y otros para una región estacionaria como un segundo candidato de fusión. En otras palabras, es posible para el aparato 600 de codificación de imágenes codificar de manera eficaz un bloque actual que tenga un movimiento predeterminado, de tal manera que pueda aumentarse la eficacia de codificación.
Además, el aparato 600 de codificación de imágenes de acuerdo con la realización 6 puede codificar un índice para identificar un candidato de fusión usando un número máximo determinado. En otras palabras, un índice puede codificarse independientemente del número total de candidatos de fusión realmente obtenidos. Por lo tanto, incluso cuando se pierde la información necesaria para obtener un candidato de fusión (por ejemplo, información en un bloque co-localizado), puede decodificarse un índice y, por lo tanto, mejorarse la resistencia al error. Además, un índice puede decodificarse independientemente del número total de candidatos de fusión realmente obtenidos. En otras palabras, un índice puede decodificarse sin esperar la obtención de los candidatos de fusión. En otras palabras, puede generarse un flujo de bits para el que la obtención de los candidatos de fusión y la decodificación de los índices puede realizarse en paralelo.
Por otra parte, con el aparato 600 de codificación de imágenes de acuerdo con la realización 6, puede obtenerse un segundo candidato de fusión cuando se determina que el número total de los primeros candidatos de fusión es menor que el número máximo. Por consiguiente, el número total de candidatos de fusión puede aumentarse dentro de un intervalo que no supere el número máximo, de tal manera que puede aumentarse la eficacia de codificación.
Por otra parte, con el aparato 600 de codificación de imágenes de acuerdo con la realización 6, pueden obtenerse un segundo candidato de fusión basándose en el número total de primeros candidatos de fusión excepto los primeros candidatos de fusión idénticos. Como resultado, puede aumentarse el número total de los segundos candidatos de fusión de tal manera que puede aumentarse la variedad de combinaciones de una dirección de predicción, un vector de movimiento y un índice de imagen de referencia para un candidato de fusión seleccionable. Por lo tanto, es posible aumentar aún más la eficacia de codificación.
En la realización 6, la unidad 613 de especificación incluida en el aparato 600 de codificación de imágenes no siempre es necesaria para el aparato 600 de codificación de imágenes. En otras palabras, la etapa S603 no siempre es necesaria en el diagrama de flujo mostrado en la figura 31. Incluso en tal caso, el aparato 600 de codificación de imágenes puede codificar un índice para identificar un candidato de fusión usando un número máximo determinado, de tal manera que pueda mejorarse la resistencia al error.
Además, en la realización 6, aunque la unidad 613 de especificación especifica un candidato idéntico después de que la primera unidad 612 de obtención obtenga los primeros candidatos de fusión como se muestra en la figura 31, el procedimiento no necesita realizarse en este orden. Por ejemplo, la primera unidad 612 de obtención puede identificar un candidato idéntico en el procedimiento para obtener los primeros candidatos de fusión, y obtener los primeros candidatos de fusión de tal manera que el candidato idéntico especificado se excluya de los primeros candidatos de fusión. En otras palabras, la primera unidad 612 de obtención puede obtener, como primer candidato de fusión, un candidato de fusión que sea una combinación de una dirección de predicción, un vector de movimiento y un índice de imagen de referencia diferente de una combinación de una dirección de predicción, un vector de movimiento y un índice de imagen de referencia de cualquier primer candidato de fusión obtenido anteriormente. Más específicamente, por ejemplo, en el caso de que un candidato de fusión basado en un bloque vecino izquierdo ya se haya seleccionado como el primer candidato de fusión, la primera unidad 612 de obtención puede obtener un candidato de fusión que se base en un bloque vecino superior como un primer de candidato de fusión cuando el candidato de fusión basado en el bloque vecino superior sea diferente del candidato de fusión que se basa en el bloque vecino izquierdo. De esta manera, la primera unidad 612 de obtención puede eliminar, de los primeros candidatos de fusión, un candidato de fusión que sea una combinación de una dirección de predicción, un vector de movimiento y un índice de imagen de referencia idéntica a una combinación de una dirección de predicción, un vector de movimiento y un índice de imagen de referencia de cualquier primer candidato de fusión obtenido anteriormente. Como resultado, el aparato 600 de codificación de imágenes puede aumentar el número total de los segundos candidatos de fusión, y por lo tanto aumentar la variedad de combinaciones de una dirección de predicción, un vector de movimiento y un índice de imagen de referencia desde las que se selecciona un candidato de fusión. La primera unidad 612 de obtención puede de este modo aumentar aún más la eficacia de codificación.
En la realización 6, aunque la obtención de un primer candidato de fusión está seguida por la determinación de si el número total del primer candidato de fusión es o no menor que un número máximo, y a continuación, de la obtención de un segundo candidato de fusión, el procedimiento no se realiza necesariamente en este orden. Por ejemplo, en primer lugar, el aparato 600 de codificación de imágenes puede obtener un segundo candidato de fusión, y a continuación registrar el segundo candidato de fusión obtenido en una lista de candidatos de fusión. El aparato 600 de codificación de imágenes puede obtener posteriormente un primer candidato de fusión, y sobrescribir el segundo candidato de fusión registrado en la lista de candidatos de fusión con el primer candidato de fusión obtenido.
[Realización 7]
La realización 7 es diferente en el procedimiento de obtener el tamaño de una lista de candidatos de bloque de fusión de la realización 3. El procedimiento de obtener el tamaño de una lista de candidatos de bloque de fusión de acuerdo con la realización 7 se describirá a continuación en detalle.
La figura 32 es un diagrama de bloques que muestra una configuración de un aparato 700 de decodificación de imágenes de acuerdo con la realización 7. Para la figura 32, los elementos constituyentes en común con la figura 20 se indican con los mismos signos de referencia, y se omite la descripción de los mismos.
El aparato 700 de decodificación de imágenes es un aparato que corresponde al aparato 500 de decodificación de imágenes de acuerdo con la realización 5. Específicamente, por ejemplo, el aparato 700 de decodificación de imágenes decodifica, sobre una base de bloque por bloque, imágenes codificadas incluidas en un flujo de bits generado por el aparato 500 de codificación de imágenes de acuerdo con la realización 5.
Como se muestra en la figura 32, el aparato 700 de decodificación de imágenes incluye una unidad 701 de decodificación de longitud variable, una unidad 302 de cuantificación inversa, una unidad 303 de transformación ortogonal inversa, un sumador 304, una memoria 305 de bloque, una memoria 306 de cuadro, una unidad 307 de intra predicción, una unidad 308 de inter predicción, una unidad 309 de control de inter predicción, un conmutador 310, una unidad 711 de cálculo de candidato de bloque de fusión y una memoria 312 de colPic.
La unidad 701 de decodificación de longitud variable genera una información de tipo imagen, un indicador de fusión, y un coeficiente cuantificado realizando la decodificación de longitud variable en un flujo de bits de entrada. Además, la unidad 701 de decodificación de longitud variable obtiene un índice de candidatos de bloque de fusión realizando una decodificación de longitud variable que usa el número total de candidatos utilizables para la fusión descrita a continuación.
La unidad 711 de cálculo de candidato de bloque de fusión obtiene los candidatos de bloque de fusión para el modo de fusión a partir de los vectores de movimiento y otros de bloques vecinos del bloque actual y un vector de movimiento y otros de un bloque co-localizado (información de colPic) almacenados en la memoria 312 de colPic, usando un procedimiento descrito más adelante. Además, la unidad 711 de cálculo de candidato de bloque de fusión asigna los índices de candidatos de bloque de fusión, teniendo cada uno un valor diferente al de los candidatos de bloque de fusión obtenidos. A continuación, la unidad 711 de cálculo de candidato de bloque de fusión transmite los candidatos de bloque de fusión y los índices de candidatos de bloque de fusión a la unidad 309 de control de inter predicción.
La figura 33 es un diagrama de flujo que muestra las operaciones de procesamiento del aparato de decodificación de imágenes de acuerdo con la realización 7.
En la etapa S701, la unidad 701 de decodificación de longitud variable decodifica un indicador de fusión.
En la etapa S702, cuando el indicador de fusión es “1” (S702, Sí), en la etapa S703, la unidad 711 de cálculo de candidato de bloque de fusión calcula el número total de candidatos utilizables para la fusión usando un procedimiento descrito más adelante. A continuación, la unidad 711 de cálculo de candidato de bloque de fusión establece el número calculado de candidatos utilizables para la fusión como el tamaño de una lista de candidatos de bloque de fusión.
A continuación, en la etapa S704, la unidad 701 de decodificación de longitud variable realiza la decodificación de longitud variable en un índice de candidatos de bloque de fusión a partir de un flujo de bits usando el tamaño de la lista de candidatos de bloque de fusión. En la etapa S705, la unidad 711 de cálculo de candidato de bloque de fusión genera los candidatos de bloque de fusión a partir de los bloques vecinos y un bloque co-localizado de un bloque actual a decodificar usando el procedimiento descrito en la realización 1 o en la realización 3 o un procedimiento descrito más adelante.
En la etapa S706, la unidad 309 de control de inter predicción hace que la unidad 308 de inter predicción genere una imagen de inter predicción usando el vector de movimiento, el índice de imagen de referencia, y la dirección de predicción del candidato de bloque de fusión indicado por el índice de candidatos de bloque de fusión decodificado.
Cuando el indicador de fusión es “0” en la etapa S702 (Paso S702, No), en la etapa S707, la unidad 308 de inter predicción genera una imagen de inter predicción usando la información en el modo de estimación de vector de movimiento decodificado por la unidad 701 de decodificación de longitud variable.
Opcionalmente, cuando el tamaño de una lista de candidatos de bloque de fusión calculada en la etapa S703 es “1”, puede estimarse que un índice de candidato de fusión de bloques es “0” sin decodificarse.
La figura 34 es un diagrama de flujo que muestra los detalles del procedimiento en la etapa S703 mostrada en la figura 33. Específicamente, la figura 34 ilustra un procedimiento para determinar si un candidato [N] de bloque de fusión es o no un candidato utilizable para la fusión y para calcular el número total de candidatos utilizables para la fusión. A continuación, se describirá la figura 34.
En la etapa S711, la unidad 711 de cálculo de candidato de bloque de fusión determina si es verdadero o falso que (1) un candidato [N] de bloque de fusión se ha decodificado por intra predicción, (2) el candidato [N] de bloque de fusión es un bloque fuera del límite de un segmento que incluye el bloque actual o el límite de una imagen que incluye el bloque actual, o (3) el candidato [N] de bloque de fusión aún no se ha decodificado.
Cuando el resultado de la determinación en la etapa S711 es verdadero (S711, Sí), la unidad 711 de cálculo de candidato de bloque de fusión establece el candidato [N] de bloque de fusión como un candidato no utilizable para la fusión en la etapa S712. Por otro lado, cuando el resultado de la determinación en la etapa S711 es falso (S711, No), la unidad 711 de cálculo de candidato de bloque de fusión establece el candidato [N] de bloque de fusión como un candidato utilizable para la fusión en la etapa S713.
En la etapa S714, la unidad 711 de cálculo de candidato de bloque de fusión determina si es verdadero o falso que el candidato [N] de bloque de fusión es o bien un candidato utilizable para la fusión o un candidato de bloque de fusión co-localizado. En este caso, cuando el resultado de la determinación en la etapa S714 es verdadero (S714, Sí), la unidad 711 de cálculo de candidato de bloque de fusión actualiza el número total de candidatos de bloque de fusión aumentándolo en uno en la etapa S715. Por otro lado, cuando el resultado de la determinación en la etapa S714 es falso (S714, No), la unidad 711 de cálculo de candidato de bloque de fusión no actualiza el número total de candidatos utilizables para la fusión.
Por lo tanto, cuando un candidato de bloque de fusión es un bloque de fusión co-localizado, la unidad 711 de cálculo de candidato de bloque de fusión aumenta el número total de candidatos utilizables para la fusión en uno, independientemente de si el bloque co-localizado es un candidato utilizable para la fusión o un candidato no utilizable para la fusión. Esto evita la discrepancia en el número de candidatos utilizables para la fusión entre el aparato de codificación de imágenes y el aparato de decodificación de imágenes, incluso cuando se pierde la información en un bloque de fusión co-localizado debido a un incidente tal como la pérdida de paquetes.
El número total de candidatos utilizables para la fusión se establece como el tamaño de una lista de candidatos de bloque de fusión en la etapa S703 mostrada en la figura 33. Además, el tamaño de la lista de candidatos de bloque de fusión se usa en la decodificación de longitud variable de los índices de candidatos de bloques de fusión en la etapa S704 mostrada en la figura 33. Esto hace posible que el aparato 700 de decodificación de imágenes decodifique los índices de candidatos de bloque de fusión normalmente incluso cuando se pierde información en la imagen de referencia que incluye un bloque co-localizado.
La figura 35 es un diagrama de flujo que muestra los detalles del procedimiento en la etapa S705 mostrada en la figura 33. Específicamente, la figura 35 ilustra un procedimiento para calcular un candidato de bloque de fusión. A continuación, se describirá la figura 35.
En la etapa S721, la unidad 711 de cálculo de candidato de bloque de fusión obtiene el vector de movimiento, el índice de imagen de referencia, y la dirección de predicción de un candidato [N] de bloque de fusión, y los añade a una lista de candidatos de bloque de fusión.
En la etapa S722, la unidad 711 de cálculo de candidato de bloque de fusión busca en la lista de candidatos de bloque de fusión un candidato no utilizable para la fusión y un candidato idéntico, y elimina el candidato no utilizable para la fusión y el candidato idéntico de la lista de candidatos de bloque de fusión como se muestra en la figura 26.
En la etapa S723, la unidad 711 de cálculo de candidato de bloque de fusión añade un nuevo candidato a la lista de candidatos de bloque de fusión usando el procedimiento descrito en la realización 1 o en la realización 3 o el procedimiento como se ilustra en la figura 29.
La figura 36 muestra una sintaxis a modo de ejemplo para adjuntar los índices de candidatos de bloque de fusión a un flujo de bits. En la figura 36, merge_idx representa un índice de candidatos de bloque de fusión, y merge_flag representa un indicador de fusión. NumMergeCand representa el tamaño de una lista de candidatos de bloque de fusión. En la realización 7, NumMergeCand se establece en el número total de candidatos utilizables para la fusión calculados en el flujo de procedimiento mostrado en la figura 34.
Por lo tanto, el aparato 700 de decodificación de imágenes de acuerdo con la realización 7 es capaz de calcular el tamaño de una lista de candidatos de bloques de fusión para su uso en la codificación o en la decodificación de un índice de candidatos de bloques de fusión, usando un procedimiento independiente de información en imágenes de referencia que incluye un bloque co-localizado. El aparato 700 de decodificación de imágenes, por lo tanto, puede decodificar apropiadamente un flujo de bits que tiene una mejor resistencia al error.
Más específicamente, independientemente de si un bloque de fusión co-localizado es o no un candidato utilizable para la fusión, el aparato 700 de decodificación de imágenes de acuerdo con la realización 7 aumenta el número total de candidatos utilizables para la fusión en uno cada vez que un candidato de bloque de fusión se determina como un bloque de fusión co-localizado. A continuación, el aparato 700 de decodificación de imágenes determina una secuencia de bits asignada a un índice de candidatos de bloque de fusión usando el número total de candidatos utilizables para la fusión calculados de esta manera. El aparato 700 de decodificación de imágenes puede decodificar de este modo los índices de candidatos de bloque de fusión normalmente incluso cuando se pierde información en la imagen de referencia que incluye un bloque co-localizado.
Además, cuando el número total de candidatos de bloque de fusión es menor que el número total de candidatos utilizables para la fusión, es posible que el aparato 700 de decodificación de imágenes de acuerdo con la realización 7 decodifique adecuadamente un flujo de bits codificado con una mayor eficacia de codificación sumando un nuevo candidato con un nuevo vector de movimiento, un nuevo índice de imagen de referencia y una nueva dirección de predicción.
[Realización 8]
En la realización 7, el aparato de decodificación de imágenes determina una secuencia de bits a asignar a un índice de candidatos de bloque de fusión usando el número total de candidatos utilizables para la fusión aumentada en uno cada vez que se determina un candidato de bloque de fusión como un bloque de fusión co-localizado, independientemente de si un bloque de fusión co-localizado es o no un candidato utilizable para la fusión. Opcionalmente, por ejemplo, el aparato de decodificación de imágenes puede determinar una secuencia de bits a asignar a un índice de candidatos de bloque de fusión usando el número total de candidatos utilizables para la fusión calculado aumentando en uno para cada candidato de bloque de fusión de cada candidato de bloque de fusión independientemente de si el candidato de bloque de fusión es o no un bloque de fusión co-localizado en la etapa S714 en la figura 34. En otras palabras, el aparato de decodificación de imágenes puede asignar una secuencia de bits a un índice de candidatos de bloque de fusión usando el tamaño de una lista de candidatos de bloque de fusión fijada en un número N máximo del número total de candidatos de bloque de fusión. En otras palabras, el aparato de decodificación de imágenes puede decodificar los índices de candidatos de bloque de fusión usando el tamaño de una lista de candidatos de bloque de fusión fijada en un valor N máximo del número total de candidatos de bloque de fusión en el supuesto de que todos los candidatos de bloque de fusión sean candidatos utilizables para la fusión.
Por ejemplo, en el caso mostrado en la realización 7, cuando el valor N máximo del número total de candidatos de bloque de fusión es cinco (el bloque A vecino, el bloque B vecino, el bloque de fusión co-localizado, el bloque C vecino y bloque D vecino), el aparato de decodificación de imágenes puede decodificar los índices de candidatos de bloque de fusión usando el tamaño de la lista de candidatos de bloque de fusión establecida de manera fija en cinco. Por lo tanto, es posible que la unidad de decodificación de longitud variable del aparato de decodificación de imágenes decodifique un índice de candidatos de bloque de fusión a partir de un flujo de bits sin hacer referencia a la información en un bloque vecino o en un bloque co-localizado. Como resultado, por ejemplo, la etapa S714 y la etapa S715 mostradas en la figura 34 pueden saltarse de tal manera que puede reducirse la complejidad de cálculo de la unidad de decodificación de longitud variable.
La figura 37 muestra una sintaxis a modo de ejemplo en el caso donde el tamaño de una lista de candidatos de bloque de fusión se fije en el valor máximo del número total de candidatos de bloque de fusión. Como puede verse en la figura 37, NumMergeCand puede omitirse de la sintaxis cuando el tamaño de una lista de candidatos de bloque de fusión se fija en un valor máximo del número total de candidatos de bloque de fusión.
Una modificación de este tipo del aparato de decodificación de imágenes de acuerdo con la realización 8 se describirá específicamente a continuación como un aparato de decodificación de imágenes de acuerdo con la realización 7.
La figura 38 es un diagrama de bloques que muestra una configuración de un aparato 800 de decodificación de imágenes de acuerdo con la realización 8. El aparato 800 de decodificación de imágenes decodifica una imagen codificada incluida en un flujo de bits sobre una base de bloque por bloque. Específicamente, por ejemplo, el aparato 800 de decodificación de imágenes decodifica, sobre una base de bloque por bloque, imágenes codificadas incluidas en un flujo de bits generado por el aparato 600 de codificación de imágenes de acuerdo con la realización 6. El aparato 800 de decodificación de imágenes incluye una unidad 810 de obtención candidatos de fusión, una unidad 820 de decodificación y una unidad 830 de control de predicción.
La unidad 810 de obtención candidatos de fusión corresponde a la unidad 711 de cálculo de candidato de bloque de fusión en la realización 7. La unidad 810 de obtención candidatos de fusión obtiene los candidatos de fusión. La unidad 810 de obtención candidatos de fusión genera una lista de candidatos de fusión en la que, por ejemplo, los índices que identifican un candidato de fusión obtenido diferente (índices de candidatos de fusión) se asocian con los candidatos de fusión obtenidos respectivos.
Como se muestra en la figura 38, la unidad 810 de obtención candidatos de fusión incluye una primera unidad 811 de determinación, una primera unidad 812 de obtención, una unidad 813 de especificación, una segunda unidad 814 de determinación y una segunda unidad 815 de obtención.
La primera unidad 811 de determinación determina un número máximo de candidatos de fusión. En otras palabras, la primera unidad 811 de determinación determina un valor N máximo del número total de candidatos de bloque de fusión.
Por ejemplo, la primera unidad 811 de determinación puede determinar un número máximo de candidatos de fusión usando el mismo procedimiento usado por la primera unidad 611 de determinación en la realización 6. Opcionalmente, por ejemplo, la primera unidad 811 de determinación puede determinar un número máximo basándose en la información adjunta a un flujo de bits y que indica un número máximo. El aparato 800 de decodificación de imágenes puede decodificar de este modo una imagen codificada usando los números máximos cambiados por la unidad apropiada.
En este caso, aunque la primera unidad 811 de determinación está incluida en la unidad 810 de obtención candidatos de fusión, la primera unidad 811 de determinación puede incluirse en la unidad 820 de decodificación.
La primera unidad 812 de obtención obtiene los primeros candidatos de fusión de la misma manera que la primera unidad 612 de obtención en la realización 6. Específicamente, la primera unidad 812 de obtención obtiene los primeros candidatos de fusión basándose en, por ejemplo, una dirección de predicción, un vector de movimiento y un índice de imagen de referencia que se han usado para decodificar un bloque espacial o temporalmente vecino a un bloque actual a decodificar. A continuación, por ejemplo, la primera unidad 812 de obtención registra los primeros candidatos de fusión obtenidos de esta manera en la lista de candidatos de fusión en asociación con los índices de candidatos de fusión respectivos.
Debería observarse que la primera unidad 812 de obtención puede obtener, como un primer candidato de fusión, una combinación de una dirección de predicción, un vector de movimiento y un índice de imagen de referencia que se ha usado para decodificar bloques que son espacialmente vecinos del bloque actual, excepto los bloques no utilizables para la fusión. Con esta configuración, la primera unidad 812 de obtención puede obtener los primeros candidatos de fusión a partir de los bloques apropiados para obtener los candidatos de fusión.
Cuando se ha obtenido una pluralidad de primeros candidatos de fusión, la unidad 813 de especificación especifica un candidato idéntico, es decir, un primer candidato de fusión que es una combinación de una dirección de predicción, un vector de movimiento y un índice de imagen de referencia idéntica a una combinación de una dirección de predicción, un vector de movimiento y un índice de imagen de referencia de cualquier otro de los primeros candidatos de fusión. A continuación, la unidad 813 de especificación elimina el candidato idéntico especificado de la lista de candidatos de fusión.
La segunda unidad 814 de determinación determina si el número total de los primeros candidatos de fusión es o no menor que un número máximo determinado. En este caso, la segunda unidad 814 de determinación determina si el número total de los primeros candidatos de fusión, excepto el primer candidato idéntico especificado, es o no menor que el número máximo determinado.
Cuando se determina que el número total de los primeros candidatos de fusión es menor que el número máximo determinado, la segunda unidad 815 de obtención obtiene un segundo candidato de fusión que tiene un vector de movimiento que es un vector predeterminado. Específicamente, la segunda unidad 815 de obtención obtiene los segundos candidatos de fusión dentro de un intervalo en el que la suma del número total de primeros candidatos de fusión y el número total de segundos candidatos de fusión no supera el número máximo. En este caso, la segunda unidad 815 de obtención obtiene los segundos candidatos de fusión dentro de un intervalo en el que la suma del número total de los primeros candidatos de fusión excepto el candidato idéntico y el número total de los segundos candidatos de fusión no supera el número máximo.
El vector predeterminado puede ser un vector cero como se ha descrito en la realización 7. De esta manera, la segunda unidad 815 de obtención puede obtener por lo tanto un candidato de fusión que tenga un vector de movimiento para una región estacionaria. El aparato 800 de decodificación de imágenes puede decodificar de este modo apropiadamente un flujo de bits codificado con una mayor eficacia de codificación. Debería observarse que el vector predeterminado no necesita ser un vector cero.
A continuación, por ejemplo, la segunda unidad 815 de obtención registra los segundos candidatos de fusión obtenidos de esta manera en la lista de candidatos de fusión, cada uno en asociación con un índice de candidato de fusión diferente. En este momento, la segunda unidad 815 de obtención puede registrar los segundos candidatos de fusión en la lista de candidatos de fusión, de tal manera que los índices de candidatos de fusión asignados a los primeros candidatos de fusión son más pequeños que los índices de candidatos de fusión asignados a los segundos candidatos de fusión. Con esto, el aparato 800 de decodificación de imágenes puede decodificar adecuadamente un flujo de bits codificado con una mayor eficacia de codificación.
Debería observarse que la segunda unidad 815 de obtención no necesita obtener un segundo candidato de fusión de tal manera que la suma del número total de los primeros candidatos de fusión y el número total de los segundos candidatos de fusión es igual a un número máximo determinado. Cuando la suma del número total de los primeros candidatos de fusión y el número total del segundo candidato de fusión es menor que el número máximo determinado, por ejemplo, puede haber un índice de candidato de fusión con el que no está asociado ningún candidato de fusión.
La unidad 820 de decodificación decodifica un índice codificado y los adjunta a un flujo de bits, que es un índice para identificar un candidato de fusión, usando el número máximo determinado.
La unidad 830 de control de predicción selecciona, basándose en el índice decodificado, un candidato de fusión a usar para decodificar un bloque actual a partir de los primeros candidatos de fusión y de los segundos candidatos de fusión. En otras palabras, la unidad 830 de control de predicción selecciona un candidato de fusión a usar para decodificar un bloque actual a partir de la lista de candidatos de fusión.
A continuación, se explicarán las operaciones del aparato 800 de decodificación de imágenes en la configuración descrita anteriormente.
La figura 39 es un diagrama de flujo que muestra las operaciones de procesamiento del aparato 800 de decodificación de imágenes de acuerdo con la realización 8.
En primer lugar, la primera unidad 811 de determinación determina un número máximo de candidatos de fusión (S801). La primera unidad 812 de obtención obtiene un primer candidato de fusión (S802). Cuando se ha obtenido una pluralidad de los primeros candidatos de fusión, la unidad 813 de especificación especifica un primer candidato de fusión que es un candidato idéntico, es decir, una combinación de una dirección de predicción, un vector de movimiento y un índice de imagen de referencia idéntica a una combinación de una dirección de predicción, un vector de movimiento y un índice de imagen de referencia de cualquier otro de los primeros candidatos de fusión (S803).
La segunda unidad 814 de determinación determina si el número total de los primeros candidatos de fusión, excepto el candidato idéntico, es o no menor que el número máximo determinado (S804). En este caso, cuando se determina que el número total de los primeros candidatos a la fusión, excepto el candidato idéntico, es menor que el número máximo determinado (S804, Sí), la segunda unidad 815 de obtención obtiene los segundos candidatos de fusión (S805). Por otro lado, cuando se determina que el número total de los primeros candidatos de fusión, excepto el candidato idéntico, no es menor que el número máximo determinado (S804, No), la segunda unidad 815 de obtención no obtiene ningún segundo candidato de fusión.
La unidad 820 de decodificación decodifica un índice codificado y adjuntado a un flujo de bits, que es un índice para identificar un candidato de fusión, usando el número máximo determinado (S806).
La unidad 830 de control de predicción selecciona, basándose en el índice decodificado, un candidato de fusión a usar para decodificar un bloque actual a partir de los primeros candidatos de fusión y los segundos candidatos de fusión (S807). Por ejemplo, la unidad 830 de control de predicción selecciona un candidato de fusión para el que el coste representado por la Ecuación 1 es un mínimo de la lista de candidatos de fusión como en la realización 1.
Aunque el procedimiento se realiza de manera tal que la decodificación de un índice (S806) se realiza después de obtener un candidato de fusión, el procedimiento no necesita realizarse en este orden. Por ejemplo, puede obtenerse un candidato de fusión (S802 a S805) después de decodificar un índice (S806). Opcionalmente, la decodificación de un índice (S806) y la obtención de un candidato de fusión (S802 a S805) pueden realizarse en paralelo. Esto aumenta la velocidad de procesamiento de la decodificación.
De esta manera, el aparato 800 de decodificación de imágenes de acuerdo con la realización 8 puede obtener, como un segundo candidato de fusión, un candidato de fusión que tenga un vector de movimiento que es un vector predeterminado. Por lo tanto, es posible que el aparato 800 de decodificación de imágenes obtenga un candidato de fusión que tenga un vector de movimiento y otros para una región estacionaria como, por ejemplo, un segundo candidato de fusión. En otras palabras, es posible para el aparato 800 de decodificación de imágenes decodificar eficazmente un bloque actual que tenga un movimiento predeterminado y, por lo tanto, decodifique apropiadamente un flujo de bits codificado con una mayor eficacia de codificación.
Además, el aparato 800 de decodificación de imágenes de acuerdo con la realización 8 puede decodificar un índice para identificar un candidato de fusión, usando un número máximo determinado. En otras palabras, un índice puede decodificarse independientemente del número total de candidatos de fusión realmente obtenidos. Por lo tanto, incluso cuando se pierde la información necesaria para obtener un candidato de fusión (por ejemplo, la información en un bloque co-localizado), el aparato 800 de decodificación de imágenes aún puede decodificar un índice y, por lo tanto, mejorar la resistencia al error. Además, el aparato 800 de decodificación de imágenes puede decodificar un índice sin esperar la obtención de los candidatos de fusión, de tal manera que la obtención de los candidatos de fusión y la decodificación de los índices pueden realizarse en paralelo.
Además, el aparato 800 de decodificación de imágenes de acuerdo con la realización 8 puede obtener un segundo candidato de fusión cuando se determina que el número total de los primeros candidatos de fusión es menor que un número máximo. Por consiguiente, el aparato 800 de decodificación de imágenes puede aumentar el número total de candidatos de fusión dentro de un intervalo que no supera el número máximo, y decodificar adecuadamente un flujo de bits codificado con una mayor eficacia de codificación.
Además, el aparato 800 de decodificación de imágenes de acuerdo con la realización 8 puede obtener un segundo candidato de fusión basándose en el número total de primeros candidatos de fusión, excepto los primeros candidatos de fusión idénticos. Como resultado, el aparato 800 de decodificación de imágenes puede aumentar el número total de segundos candidatos de fusión y, por lo tanto, aumentar la variedad de combinaciones de una dirección de predicción, un vector de movimiento y un índice de imagen de referencia a partir de los que se selecciona un candidato de fusión. Con esto, el aparato 800 de decodificación de imágenes puede decodificar de este modo apropiadamente un flujo de bits codificado con una mayor eficacia de codificación.
Como en la realización 6, la unidad 813 de especificación incluida en el aparato 800 de decodificación de imágenes no siempre es necesaria para el aparato 800 de decodificación de imágenes en la realización 8. En otras palabras, la etapa S803 en el diagrama de flujo mostrado en la figura 39 no siempre es necesaria. Incluso en tal caso, el aparato 800 de decodificación de imágenes puede decodificar un índice para identificar un candidato de fusión usando un número máximo determinado, de tal manera que pueda mejorarse la resistencia al error.
Además, en la realización 8, aunque la unidad 813 de especificación especifica un candidato idéntico después de que la primera unidad 812 de obtención obtenga los primeros candidatos de fusión como se muestra en la figura 39, el procedimiento no necesita realizarse en este orden. Por ejemplo, la primera unidad 812 de obtención puede obtener, como primer candidato de fusión, un candidato de fusión que es una combinación de una dirección de predicción, un vector de movimiento y un índice de imagen de referencia diferente de una combinación de una dirección de predicción, un vector de movimiento y un índice de imagen de referencia de cualquier primer candidato de fusión obtenido anteriormente. De esta manera, la primera unidad 812 de obtención puede eliminar, de los primeros candidatos de fusión, un candidato de fusión que es una combinación de una dirección de predicción, un vector de movimiento y un índice de imagen de referencia idéntica a una combinación de una dirección de predicción, un vector de movimiento y un índice de imagen de referencia de cualquier primer candidato de fusión obtenido anteriormente. Como resultado, el aparato 800 de decodificación de imágenes puede aumentar el número total de segundos candidatos de fusión y, por lo tanto, aumentar la variedad de combinaciones de una dirección de predicción, un vector de movimiento y un índice de imagen de referencia a partir de las que se selecciona un candidato de fusión. El aparato 800 de decodificación de imágenes puede de este modo decodificar apropiadamente un flujo de bits codificado con una mayor eficacia de codificación.
En la realización 8, aunque la obtención de un primer candidato de fusión está seguida por la determinación de si el número total del primer candidato de fusión es o no menor que un número máximo, y a continuación, por la obtención de un segundo candidato de fusión, el procedimiento no se realiza necesariamente en este orden. Por ejemplo, en primer lugar, el aparato 800 de decodificación de imágenes puede obtener un segundo candidato de fusión, y a continuación registrar el segundo candidato de fusión obtenido en una lista de candidatos de fusión. El aparato 800 de decodificación de imágenes puede obtener posteriormente un primer candidato de fusión, y sobrescribir el segundo candidato de fusión registrado en la lista de candidatos de fusión con el primer candidato de fusión obtenido.
En las realizaciones a modo de ejemplo, cada uno de los elementos constituyentes puede implementarse como una pieza de hardware dedicado o implementarse ejecutando un programa de software apropiado para el elemento constituyente. Los elementos constituyentes pueden implementarse mediante una unidad de ejecución de programas, tal como una CPU o un procesador, que lee y ejecuta un programa de software grabado en un medio de grabación, tal como un disco duro o una memoria de semiconductores. En este caso, los ejemplos del programa de software que implementa el aparato de codificación de imágenes o el aparato de decodificación de imágenes en las realizaciones incluyen un programa como el siguiente.
Específicamente, el programa hace que un ordenador ejecute un procedimiento de codificación de imágenes que es un procedimiento para codificar una imagen sobre una base de bloque por bloque para generar un flujo de bits e incluye: obtener, como primer candidato de fusión, un candidato de fusión que es una combinación de una dirección de predicción, un vector de movimiento y un índice de imagen de referencia para su uso en la codificación del bloque actual; obtener, como segundo candidato de fusión, un candidato de fusión que tiene un vector de movimiento que es un vector predeterminado; seleccionar un candidato de fusión para su uso en la codificación del bloque actual del primer candidato obtenido y el segundo candidato de fusión obtenido; y adjuntar un índice para identificar el candidato de fusión seleccionado al flujo de bits.
Además, el programa hace que un ordenador ejecute un procedimiento de decodificación de imágenes que es un procedimiento para decodificar, sobre una base de bloque por bloque, una imagen codificada incluida en un flujo de bits e incluye: obtener, como primer candidato de fusión, un candidato de fusión que es una combinación de una dirección de predicción, un vector de movimiento y un índice de imagen de referencia para su uso en la decodificación del bloque actual; obtener, como segundo candidato de fusión, un candidato de fusión que tiene un vector de movimiento que es un vector predeterminado; obtener, a partir del flujo de bits, un índice para identificar un candidato de fusión; y seleccionar, basándose en el índice obtenido, un candidato de fusión a partir del primer candidato de fusión y del segundo candidato de fusión, usándose el candidato de fusión para la decodificación de un bloque actual.
[Realización 9]
El procesamiento descrito en cada una de las realizaciones puede implementarse simplemente en un sistema informático independiente, mediante una grabación, en un medio de grabación, un programa para implementar las configuraciones del procedimiento de codificación de imágenes en movimiento (procedimiento de codificación de imágenes) y del procedimiento de decodificación de imágenes en movimiento (procedimiento de decodificación de imágenes) descrito en cada una de las realizaciones. Los medios de grabación pueden ser cualquier medio de grabación siempre que pueda grabarse el programa, tal como un disco magnético, un disco óptico, un disco óptico magnético, una tarjeta de CI y una memoria de semiconductores.
En lo sucesivo en el presente documento, se describirán las aplicaciones para el procedimiento de codificación de imágenes en movimiento (procedimiento de codificación de imágenes) y para el al procedimiento de decodificación de imágenes en movimiento (procedimiento de decodificación de imágenes) descritos en cada una de las realizaciones y sistemas que las usan. El sistema tiene la característica de tener un aparato de codificación y decodificación de imágenes que incluye un aparato de codificación de imágenes que usa el procedimiento de codificación de imágenes y un aparato de decodificación de imágenes que usa el procedimiento de decodificación de imágenes. Otras configuraciones en el sistema pueden cambiarse de acuerdo con como corresponda en función de los casos.
La figura 40 ilustra una configuración general de un sistema ex100 de suministro de contenido para implementar los servicios de distribución de contenido. El área para proporcionar los servicios de comunicación se divide en células del tamaño deseado, y las estaciones ex106, ex107, ex108, ex109 y ex110 base que son estaciones inalámbricas fijas se colocan en cada una de las células.
El sistema ex100 de suministro de contenido está conectado a dispositivos, tales como un ordenador ex111, un asistente ex112 digital personal (PDA), una cámara ex113, un teléfono ex114 móvil y una máquina ex115 de juegos, a través de Internet ex101, un proveedor ex102 de servicios de Internet, una red ex104 telefónica, así como las estaciones ex106 a ex110 base, respectivamente.
Sin embargo, la configuración del sistema ex100 de suministro de contenido no se limita a la configuración mostrada en la figura 40, y una combinación en la que se conectan cualquiera de los elementos es aceptable. Además, cada dispositivo puede conectarse directamente a la red ex104 telefónica, en lugar de a través de las estaciones ex106 a ex110 base, que son las estaciones inalámbricas fijas. Además, los dispositivos pueden estar interconectados entre sí a través de una comunicación inalámbrica de corta distancia y otras.
La cámara ex113, como una cámara de video digital, es capaz de capturar video. Una cámara ex116, tal como una cámara digital, es capaz de capturar tanto imágenes fijas como de video. Además, el teléfono ex114 móvil puede ser el que cumpla con cualquiera de los estándares, tal como el sistema global para comunicaciones móviles (GSM) (marca registrada), el acceso múltiple por división de código (CDMA), acceso múltiple por división de código de banda ancha (W-CDMA), la evolución a largo plazo (LTE) y el acceso a paquetes de alta velocidad (HSPA). Como alternativa, el teléfono ex114 móvil puede ser un sistema de teléfono móvil personal (PHS).
En el sistema ex100 de suministro de contenido, un servidor ex103 de transmisión está conectado a la cámara ex113 y otros a través de la red ex104 telefónica y la estación ex109 base, que permite la distribución de imágenes de un espectáculo en vivo y otros. En una distribución de este tipo, el contenido (por ejemplo, el video de un espectáculo musical en vivo) capturado por el usuario que usa la cámara ex113 se codifica como se ha descrito anteriormente en cada una de las realizaciones (es decir, la cámara funciona como el aparato de codificación de imágenes de acuerdo con un aspecto de la presente invención), y el contenido codificado se transmite al servidor ex103 de transmisión. Por otro lado, el servidor ex103 de transmisión realiza la distribución por secuencias de los datos de contenido transmitidos a los clientes tras sus solicitudes. Los clientes incluyen el ordenador ex111, la PDA ex112, la cámara ex113, el teléfono ex114 móvil y la máquina ex115 de juegos que son capaces de decodificar los datos codificados mencionados anteriormente. Cada uno de los dispositivos que ha recibido los datos distribuidos decodifica y reproduce los datos codificados (es decir, funciona como el aparato de decodificación de imágenes de acuerdo con un aspecto de la presente invención).
Los datos capturados pueden codificarse por la cámara ex113 o el servidor ex103 de transmisión que transmite los datos, o los procedimientos de codificación pueden compartirse entre la cámara ex113 y el servidor ex103 de transmisión. De manera similar, los clientes o el servidor ex103 de transmisión pueden decodificar los datos distribuidos, o los procedimientos de decodificación pueden compartirse entre los clientes y el servidor ex103 de transmisión. Además, los datos de las imágenes fijas y el video capturados no solo por la cámara ex113, sino también por la cámara ex116 pueden transmitirse al servidor ex103 de transmisión a través del ordenador ex111. Los procedimientos de codificación pueden realizarse por la cámara ex116, el ordenador ex111 o el servidor ex103 de transmisión, o pueden compartirse entre los mismos.
Además, los procedimientos de codificación y decodificación pueden realizarse mediante un LSI ex500 en general incluido en cada uno de los ordenadores ex111 y los dispositivos. El LSI ex500 puede configurarse de un solo chip o una pluralidad de chips. El software para codificar y decodificar video puede integrarse en algún tipo de medio de grabación (tal como un CD-ROM, un disco flexible y un disco duro) que sea legible por el ordenador ex111 y otros, y los procedimientos de codificación y decodificación pueden realizarse usando el software. Además, cuando el teléfono ex114 móvil está equipado con una cámara, los datos de video obtenidos por la cámara pueden transmitirse. Los datos de video son datos codificados por el LSI ex500 incluido en el teléfono ex114 móvil.
Además, el servidor ex103 de transmisión puede estar compuesto por servidores y ordenadores, y puede descentralizar datos y procesar los datos descentralizados, registrar o distribuir datos.
Como se ha descrito be anteriormente, los clientes pueden recibir y reproducir los datos codificados en el sistema ex100 de suministro de contenido. En otras palabras, los clientes pueden recibir y decodificar la información transmitida por el usuario y reproducir los datos decodificados en tiempo real en el sistema ex100 de suministro de contenido, de tal manera que el usuario que no tiene ningún derecho específico y el equipo pueden implementar una difusión personal.
Aparte del ejemplo del sistema ex100 de suministro de contenido, al menos uno de entre el aparato de codificación de imágenes en movimiento (aparato de codificación de imágenes) y del aparato de decodificación de imágenes en movimiento (aparato de decodificación de imágenes) descritos en cada una de las realizaciones puede implementarse en un sistema ex200 de difusión digital ilustrado en la figura 41. Más específicamente, una estación ex201 de difusión comunica o transmite, a través de ondas de radio a un satélite ex202 de difusión, datos multiplexados obtenidos multiplexando datos de audio y otros en datos de video. Los datos de video son datos codificados por el procedimiento de codificación de imágenes en movimiento descrito en cada una de las realizaciones (es decir, datos codificados por el aparato de codificación de imágenes de acuerdo con un aspecto de la presente invención). Tras la recepción de los datos multiplexados, el satélite ex202 de difusión transmite ondas de radio para su difusión. A continuación, una antena ex204 de uso doméstico con una función de recepción de difusión por satélite recibe las ondas de radio. Seguidamente, un dispositivo tal como un televisor (receptor) ex300 y un decodificador (STB) ex217 decodifica los datos multiplexados recibidos y reproduce los datos decodificados (es decir, funciona como el aparato de decodificación de imágenes de acuerdo con un aspecto de la presente invención).
Además, un lector/grabador ex218 (i) lee y decodifica los datos multiplexados grabados en un medio ex215 de grabación, como un DVD y un BD, o (i) codifica señales de video en el medio ex215 de grabación, y en algunos casos, escribe datos obtenidos multiplexando una señal de audio en los datos codificados. El lector/grabador ex218 puede incluir el aparato de decodificación de imágenes en movimiento o el aparato de codificación de imágenes en movimiento como se muestra en cada una de las realizaciones. En este caso, las señales de video reproducidas se visualizan en el monitor ex219, y pueden reproducirse por otro dispositivo o sistema usando el medio ex215 de grabación en el que se graban los datos multiplexados. También es posible implementar el aparato de decodificación de imágenes en movimiento en el decodificador ex217 conectado al cable ex203 para un televisor por cable o a la antena ex204 para la difusión por satélite y/o terrestre, con el fin de visualizar las señales de video en el monitor ex219 del televisor ex300. El aparato de decodificación de imágenes en movimiento puede implementarse no en el decodificador sino en el televisor ex300.
La figura 42 ilustra el televisor (receptor) ex300 que usa el procedimiento de codificación de imágenes en movimiento y el procedimiento de decodificación de imágenes en movimiento descritos en cada una de las realizaciones. El televisor ex300 incluye: un sintonizador ex301 que obtiene o proporciona datos multiplexados obtenidos multiplexando datos de audio en datos de video, a través de la antena ex204 o del cable ex203, etc., que recibe una difusión; una unidad ex302 de modulación/demodulación que demodula los datos multiplexados recibidos o modula los datos en datos multiplexados a suministrar al exterior; y una unidad ex303 de multiplexación/demultiplexación que demultiplexa los datos multiplexados modulados en datos de video y en datos de audio, o multiplexa datos de video y datos de audio codificados por una unidad ex306 de procesamiento de señales en datos.
El televisor ex300 incluye además: una unidad ex306 de procesamiento de señales que incluye una unidad ex304 de procesamiento de señales de audio y una unidad ex305 de procesamiento señales de vídeo que decodifican datos de audio y datos de vídeo y codifican datos de audio y datos de vídeo, respectivamente (que funcionan como el aparato de codificación de imágenes y el aparato de decodificación de imágenes de acuerdo con los aspectos de la presente invención); y una unidad ex309 de salida que incluye un altavoz ex307 que proporciona la señal de audio decodificada, y una unidad ex308 de visualización que visualiza la señal de video decodificada, tal como una pantalla. Además, el televisor ex300 incluye una unidad ex317 de interfaz que incluye una unidad ex312 de entrada de operación que recibe una entrada de una operación de usuario. Además, el televisor ex300 incluye una unidad ex310 de control que controla en general cada elemento constitutivo del televisor ex300, y una unidad ex311 de circuito de fuente de alimentación que suministra alimentación a cada uno de los elementos. Aparte de la unidad ex312 de entrada de operación, la unidad ex317 de interfaz puede incluir: un puente ex313 que está conectado a un dispositivo exterior, como el lector/grabador ex218; una unidad ex314 de ranura para permitir la conexión del medio ex216 de grabación, tal como una tarjeta SD; un controlador ex315 para conectarse a un medio de grabación exterior, tal como un disco duro; y un módem ex316 para conectarse a una red telefónica. En este caso, el medio ex216 de grabación puede grabar eléctricamente la información usando un elemento de memoria de semiconductor no volátil/volátil para su almacenamiento. Los elementos constitutivos del televisor ex300 están conectados entre sí a través de un bus síncrono.
En primer lugar, se describirá la configuración en la que el televisor ex300 decodifica los datos multiplexados obtenidos del exterior a través de la antena ex204 y otros y reproduce los datos decodificados. En el televisor ex300, tras una operación de usuario a través de un controlador ex220 remoto y otros, la unidad ex303 de multiplexación/demultiplexación demultiplexa los datos multiplexados demodulados por la unidad ex302 de modulación/demodulación, bajo el control de la unidad ex310 de control, que incluye una CPU. Además, la unidad ex304 de procesamiento de señales de audio decodifica los datos de audio demultiplexados, y la unidad ex305 de procesamiento señales de vídeo decodifica los datos de video demultiplexados, usando el procedimiento de decodificación descrito en cada una de las realizaciones, en el televisor ex300. La unidad ex309 de salida proporciona la señal de video decodificada y la señal de audio al exterior, respectivamente. Cuando la unidad ex309 de salida proporciona la señal de video y la señal de audio, las señales pueden almacenarse temporalmente en las memorias ex318 y ex319 intermedias y otros de tal manera que las señales se reproduzcan en sincronización entre sí. Además, el televisor ex300 puede leer datos multiplexados no a través de una difusión y otras, sino de los medios ex215 y ex216 de grabación, tales como un disco magnético, un disco óptico y una tarjeta SD. A continuación, se describirá una configuración en la que el televisor ex300 codifica una señal de audio y una señal de video, y transmite los datos al exterior o escribe los datos en un medio de grabación. En el televisor ex300, tras una operación de usuario a través del controlador ex220 remoto y otros, la unidad ex304 de procesamiento de señales de audio codifica una señal de audio, y la unidad ex305 de procesamiento señales de vídeo codifica una señal de video, bajo el control de la unidad ex310 de control usando el procedimiento de codificación descrito en cada una de las realizaciones. La unidad ex303 de multiplexación/demultiplexación multiplexa la señal de video y la señal de audio codificadas, y proporciona la señal resultante al exterior. Cuando la unidad ex303 de multiplexación/demultiplexación multiplexa la señal de video y la señal de audio, las señales pueden almacenarse temporalmente en las memorias ex320 y ex321 intermedias, y otras de tal manera que las señales se reproduzcan en sincronización entre sí. En este caso, las memorias ex318, ex319, ex320 y ex321 intermedias pueden ser plurales como se ilustra, o al menos una memoria intermedia puede compartirse en el televisor ex300. Además, los datos pueden almacenarse en una memoria intermedia para evitar el desbordamiento y el subdesbordamiento del sistema entre, por ejemplo, la unidad ex302 de modulación/demodulación y la unidad ex303 de multiplexación/demultiplexación.
Además, el televisor ex300 puede incluir una configuración para recibir una entrada AV desde un micrófono o una cámara distinta de la configuración para obtener datos de audio y de vídeo de una difusión o un medio de grabación, y puede codificar los datos obtenidos. Aunque el televisor ex300 puede codificar, multiplexar y proporcionar datos exteriores en la descripción, puede ser capaz de solo recibir, decodificar y proporcionar datos exteriores, pero no de codificar, multiplexar y proporcionar datos exteriores.
Además, cuando el lector/grabador ex218 lee o escribe datos multiplexados desde o en un medio de grabación, uno de los televisores ex300 y el lector/grabador ex218 puede decodificar o codificar los datos multiplexados, y el televisor ex300 y el lector/grabador ex218 puede compartir la decodificación o codificación.
Como ejemplo, la figura 43 ilustra una configuración de una unidad ex400 de reproducción/grabación de información cuando los datos se leen o escriben desde o en un disco óptico. La unidad ex400 de reproducción/grabación de información incluye los elementos ex401, ex402, ex403, ex404, ex405, ex406 y ex407 constituyentes que se describirán a continuación. El cabezal ex401 óptico irradia un punto láser en una superficie de grabación del medio ex215 de grabación que es un disco óptico para escribir información, y detecta la luz reflejada de la superficie de grabación del medio ex215 de grabación para leer la información. La unidad ex402 de grabación de modulación acciona eléctricamente un láser semiconductor incluido en el cabezal ex401 óptico, y modula la luz láser de acuerdo con los datos grabados. La unidad ex403 de demodulación de reproducción amplifica una señal de reproducción obtenida detectando eléctricamente la luz reflejada de la superficie de grabación usando un detector fotográfico incluido en el cabezal ex401 óptico, y demodula la señal de reproducción separando un componente de señal grabado en el medio ex215 de grabación para reproducir la información necesaria. La memoria ex404 intermedia retiene temporalmente la información a grabar en el medio ex215 de grabación y la información reproducida desde el medio ex215 de grabación. El motor ex405 de disco hace rotar el medio ex215 de grabación. La unidad ex406 de servo control mueve el cabezal ex401 óptico a una pista de información predeterminada mientras controla la unidad de rotación del motor ex405 de disco para seguir el punto del láser. La unidad ex407 de control del sistema controla en general a la unidad ex400 de reproducción/grabación de información. Los procedimientos de lectura y escritura pueden implementarse por la unidad ex407 de control del sistema usando la información diversa almacenada en la memoria ex404 intermedia y generando y añadiendo nueva información como sea necesario, y por la unidad ex402 de grabación de modulación, la unidad ex403 de demodulación de reproducción y la unidad ex406 de servo control que graban y reproducen información a través del cabezal ex401 óptico mientras se operan de manera coordinada. La unidad ex407 de control de sistema incluye, por ejemplo, un microprocesador, y ejecuta el procesamiento al hacer que un ordenador ejecute un programa para leer y escribir.
Aunque el cabezal ex401 óptico irradia un punto de láser en la descripción, puede realizar grabaciones de alta densidad usando luz de campo cercano.
La figura 44 ilustra el medio ex215 de grabación que es el disco óptico. En la superficie de grabación del medio ex215 de grabación, los surcos de guía están formados en espiral, y una pista ex230 de información graba, por adelantado, la información de dirección que indica una posición absoluta en el disco de acuerdo con el cambio en la forma de los surcos de guía. La información de dirección incluye información para determinar las posiciones de los bloques ex231 de grabación que son una unidad para grabar datos. La reproducción de la pista ex230 de información y la lectura de la información de dirección en un aparato que graba y reproduce datos puede llevar a la determinación de las posiciones de los bloques de grabación. Además, el medio ex215 de grabación incluye un área ex233 de grabación de datos, un área ex232 de circunferencia interior y un área ex234 de circunferencia exterior. El área ex233 de grabación de datos es un área que se usa para grabar los datos de usuario. El área ex232 de circunferencia interior y el área ex234 de circunferencia exterior que están dentro y fuera del área ex233 de grabación de datos, respectivamente, son para un uso específico, excepto para grabar los datos de usuario. La unidad 400 de reproducción/grabación de información lee y escribe audio codificado, datos de video codificados o datos multiplexados obtenidos multiplexando los datos codificados de audio y video, desde y en el área ex233 de grabación de datos del medio ex215 de grabación.
Aunque un disco óptico que tiene una capa, tal como un DVD y un BD se describe como un ejemplo en la descripción, el disco óptico no se limita a los mismos, y puede ser un disco óptico que tenga una estructura multicapa y es capaz de grabarse en una parte que no sea la superficie. Además, el disco óptico puede tener una estructura para la grabación/reproducción multidimensional, tal como la grabación de información usando luz de colores con diferentes longitudes de onda en la misma parte del disco óptico y para grabar información que tenga diferentes capas desde diversos ángulos.
Además, un coche ex210 que tiene una antena ex205 puede recibir datos desde el satélite ex202 y otros, y reproducir video en un dispositivo de visualización tal como un sistema ex211 de navegación de coche configurado en el coche ex210, en el sistema ex200 de difusión digital. En este caso, una configuración del sistema ex211 de navegación de coche será una configuración, por ejemplo, que incluirá una unidad de recepción de GPS desde la configuración ilustrada en la figura 42. Lo mismo ocurrirá con la configuración del ordenador ex111, el teléfono ex114 móvil y otros.
La figura 45A ilustra el teléfono ex114 móvil que usa el procedimiento de codificación de imágenes en movimiento y el procedimiento de decodificación de imágenes en movimiento descrito en las realizaciones. El teléfono ex114 móvil incluye: una antena ex350 para transmitir y recibir ondas de radio a través de la estación ex110 base; una unidad ex365 de cámara capaz de capturar imágenes fijas y en movimiento; y una unidad ex358 de visualización tal como una pantalla de cristal líquido para visualizar los datos tales como el video decodificado capturado por la unidad ex365 de cámara o recibido por la antena ex350. El teléfono ex114 móvil incluye además: una unidad del cuerpo principal que incluye una unidad ex366 de tecla de operación; una unidad ex357 de salida de audio, tal como un altavoz para la salida de audio; una unidad ex356 de entrada de audio, tal como un micrófono para la entrada de audio; una unidad ex367 de memoria para almacenar el video o imágenes fijas capturados, audio grabado, datos codificados o decodificados del video recibido, las imágenes fijas, correos electrónicos u otros; y una unidad ex364 de ranura que es una unidad de interfaz para un medio de grabación que almacena datos de la misma manera que la unidad ex367 de memoria.
A continuación, se describirá haciendo referencia a la figura 45B un ejemplo de una configuración del teléfono ex114 móvil. En el teléfono ex114 móvil, una unidad de control ex360 principal diseñada para controlar en conjunto cada unidad del cuerpo principal, incluida la unidad ex358 de visualización, así como la unidad ex366 de tecla de operación, se conecta recíprocamente, a través de un bus ex370 síncrono, a una unidad ex361 de circuito de fuente de alimentación, una unidad ex362 de control de entrada de operación, una unidad ex355 de procesamiento de señal de video, una unidad ex363 de interfaz de cámara, una unidad ex359 de control de pantalla de cristal líquido (LCD), una unidad ex352 de modulación/demodulación, una unidad ex353 de multiplexación/demultiplexación, una unidad ex354 de procesamiento de señal de audio, la unidad ex364 de ranura y la unidad ex367 de memoria.
Cuando una tecla de fin de llamada o una tecla de encendido se activa mediante la operación de un usuario, la unidad ex361 de circuito de fuente de alimentación suministra alimentación a las unidades respectivas desde un paquete de baterías con el fin de activar el teléfono ex114 móvil.
En el teléfono ex114 móvil, la unidad ex354 de procesamiento de señal audio convierte las señales de audio recopiladas por la unidad ex356 de entrada de audio en modo de conversación de voz en señales de audio digitales bajo el control de la unidad ex360 de control principal que incluye una CPU, ROM, y RAM. A continuación, la unidad ex352 de modulación/demodulación realiza el procesamiento de espectro de dispersión en las señales de audio digital, y la unidad ex351 transmisora y receptora realiza la conversión digital a analógica y la conversión de frecuencia en los datos, con el fin de transmitir los datos resultantes a través de la antena ex350. Además, en el teléfono ex114 móvil, la unidad ex351 transmisora y receptora amplifica los datos recibidos por la antena ex350 en el modo de conversación de voz y realiza la conversión de frecuencia y la conversión analógica a digital en los datos. A continuación, la unidad ex352 de modulación/demodulación realiza un procesamiento de espectro de dispersión inverso en los datos, y la unidad ex354 de procesamiento de señal de audio los convierte en señales de audio analógicas, con el fin de emitirlas a través de la unidad ex357 de salida de audio.
Además, cuando se transmite un correo electrónico en el modo de comunicación de datos, los datos de texto del correo electrónico introducido al operar la unidad ex366 de tecla de operación y otros del cuerpo principal se envían a la unidad ex360 de control principal a través de la unidad ex362 de control de entrada de operación. La unidad ex360 de control principal hace que la unidad ex352 de modulación/demodulación realice el procesamiento de espectro de dispersión en los datos de texto, y la unidad ex351 transmisora y receptora realiza la conversión de digital a analógico y la conversión de frecuencia en los datos resultantes para transmitir los datos a la estación ex110 base a través de la antena ex350. Cuando se recibe un correo electrónico, el procesamiento que es aproximadamente inverso al procesamiento para transmitir un correo electrónico se realiza sobre los datos recibidos, y los datos resultantes se proporcionan a la unidad ex358 de visualización.
Cuando se transmite video, imágenes fijas, o video y audio en el modo de comunicación de datos, la unidad ex355 de procesamiento de señales de video comprime y codifica las señales de video suministradas desde la unidad ex365 de cámara usando el procedimiento de codificación de imágenes en movimiento mostrado en cada una de las realizaciones (es decir, funciona como el aparato de codificación de imágenes de acuerdo con el aspecto de la presente invención), y transmite los datos de video codificados a la unidad ex353 de multiplexación/demultiplexación. En contraste, cuando la unidad ex365 de cámara captura video, imágenes fijas y otros, la unidad ex354 de procesamiento de señales de audio codifica las señales de audio recopiladas por la unidad ex356 de entrada de audio, y transmite los datos de audio codificados a la unidad ex353 de multiplexación/demultiplexación.
La unidad ex353 de multiplexación/demultiplexación multiplexa los datos de vídeo codificados suministrados desde la unidad ex355 de procesamiento de señales de vídeo y los datos de audio codificados suministrados desde la unidad ex354 de procesamiento de señales de audio, usando un procedimiento predeterminado. A continuación, la unidad ex352 de modulación/demodulación (unidad de circuito de modulación/demodulación) realiza el procesamiento de espectro de dispersión en los datos multiplexados, y la unidad ex351 transmisora y receptora realiza la conversión digital a analógico y la conversión de frecuencia en los datos con el fin de transmitir los datos resultantes a través de la antena ex350.
Al recibir datos de un archivo de video que está vinculado a una página web y otros en el modo de comunicación de datos o al recibir un correo electrónico con video y/o audio adjunto, con el fin de decodificar los datos multiplexados recibidos a través de la antena ex350, la unidad ex353 de multiplexación/demultiplexación demultiplexa los datos multiplexados en un flujo de bits de datos de video y en un flujo de bits de datos de audio, y suministra a la unidad ex355 de procesamiento de señales de video los datos de video codificados y a la unidad ex354 de procesamiento de señales de audio con los datos de audio codificados a través del bus ex370 síncrono. La unidad ex355 de procesamiento de señales de video decodifica la señal de video usando un procedimiento de decodificación de imágenes en movimiento correspondiente al procedimiento de codificación de imágenes en movimiento mostrado en cada una de las realizaciones (es decir, funciona como el aparato de decodificación de imágenes de acuerdo con el aspecto de la presente invención), y a continuación la unidad ex358 de visualización muestra, por ejemplo, el video y las imágenes fijas incluidas en el archivo de video vinculado a la página web a través de la unidad ex359 de control LCD. Además, la unidad ex354 de procesamiento de señal de audio decodifica la señal de audio, y la unidad ex357 de salida de audio proporciona el audio.
Además, de manera similar al televisor ex300, un terminal tal como el teléfono ex114 móvil probablemente tiene 3 tipos de configuraciones de implementación que incluyen no solamente (i) un terminal de transmisión y recepción que incluye tanto un aparato de codificación como un aparato de decodificación, sino también (ii) un terminal de transmisión que incluye solo un aparato de codificación y (iii) un terminal de recepción que incluye solo un aparato de decodificación. Aunque el sistema ex200 de difusión digital recibe y transmite los datos multiplexados obtenidos multiplexando los datos de audio en datos de video en la descripción, los datos multiplexados pueden ser datos obtenidos multiplexando no datos de audio sino datos de caracteres relacionados con datos de video sobre video, y pueden no ser datos multiplexados sino datos de video en sí.
Como tal, el procedimiento de codificación de imágenes en movimiento y el procedimiento de decodificación de imágenes en movimiento en cada una de las realizaciones pueden usarse en cualquiera de los dispositivos y sistemas descritos. Por lo tanto, pueden obtenerse las ventajas descritas en cada una de las realizaciones.
[Realización 10]
Los datos de video pueden generarse cambiando, como sea necesario, entre (i) el procedimiento de codificación de imágenes en movimiento o el aparato de codificación de imágenes en movimiento mostrado en cada una de las realizaciones y (ii) un procedimiento de codificación de imágenes en movimiento o un aparato de codificación de imágenes en movimiento en conformidad con un estándar diferente, tal como MPEG-2, MPEG-4 AVC y VC-1.
En este caso, cuando se genera una pluralidad de datos de vídeo que se ajusta a los diferentes estándares y a continuación se decodifica, necesitan seleccionarse los procedimientos de decodificación para ajustarse a los diferentes estándares. Sin embargo, ya que no puede detectarse a qué estándar se ajusta la pluralidad de datos de video a decodificar, existe el problema de que no puede seleccionarse un procedimiento de decodificación apropiado.
Con el fin de resolver el problema, los datos multiplexados obtenidos multiplexando los datos de audio y otros en datos de video tienen una estructura que incluye una información de identificación que indica a qué estándar se ajustan los datos de video. En lo sucesivo en el presente documento, se describirá la estructura específica de los datos multiplexados que incluyen los datos de video generados en el procedimiento de codificación de imágenes en movimiento y mediante el aparato de codificación de imágenes en movimiento mostrado en cada una de las realizaciones. Los datos multiplexados son un flujo digital en el formato de flujo de transporte MPEG-2.
La figura 46 ilustra una estructura de los datos multiplexados. Como se ilustra en la figura 46, los datos multiplexados pueden obtenerse multiplexando al menos uno de entre un flujo de video, un flujo de audio, un flujo de gráficos de presentación (PG) y un flujo de gráficos interactivos. El flujo de video representa el video principal y el video secundario de una película, el flujo de audio (IG) representa una parte de audio principal y una parte de audio secundaria que se mezcla con la parte de audio principal, y el flujo de gráficos de presentación representa los subtítulos de la película. En este caso, el video principal es el video normal a visualizar en una pantalla, y el video secundario es el video visualizado en una ventana más pequeña en el video principal. Además, el flujo de gráficos interactivos representa una pantalla interactiva a generar disponiendo los componentes de GUI en una pantalla. El flujo de video se codifica en el procedimiento de codificación de imágenes en movimiento o mediante el aparato de codificación de imágenes en movimiento mostrado en cada una de las realizaciones, o en un procedimiento de codificación de imágenes en movimiento o mediante un aparato de codificación de imágenes en movimiento de conformidad con un estándar convencional, tal como MPEG-2, MPEG-4 AVC, y VC-1. El flujo de audio se codifica de acuerdo con un estándar, tal como Dolby-AC-3, Dolby Digital Plus, MLP, DTS, DTS-HD y PCM lineal.
Cada flujo incluido en los datos multiplexados se identifica mediante un PID. Por ejemplo, 0x1011 se asigna al flujo de video a usar para el video de una película, 0x1100 a 0x111F se asigna a los flujos de audio, 0x1200 a 0x121F se asigna a los flujos de gráficos de presentación, 0x1400 a 0x141F se asigna a los flujos de gráficos interactivos, 0x1B00 a 0x1B1F se asignan a los flujos de video a usar para el video secundario de la película, y 0x1A00 a 0x1A1F se asignan a los flujos de audio a usar para que el audio secundario a mezclar con el audio primario.
La figura 47 ilustra esquemáticamente cómo se multiplexan los datos. En primer lugar, un flujo ex235 de video compuesto de cuadros de video y un flujo ex238 de audio compuesto de cuadros de audio se transforma en un flujo de paquetes ex236 PES y un flujo de paquetes ex239 PES, y además en paquetes ex237 TS y paquetes ex240 TS, respectivamente. De manera similar, los datos de un flujo ex241 de gráficos de presentación y los datos de un flujo ex244 de gráficos interactivos se transforman en un flujo de paquetes ex242 PES y un flujo de paquetes ex245 PES, y además en paquetes ex243 TS y paquetes ex246 TS, respectivamente. Estos paquetes TS se multiplexan en un flujo para obtener datos ex247 multiplexados.
La figura 48 ilustra cómo se almacena un flujo de video en un flujo de paquetes PES con más detalle. La primera barra en la figura 48 muestra un flujo de cuadros de video en un flujo de video. La segunda barra muestra el flujo de paquetes PES. Como se indica por las flechas indicadas como yy1, yy2, yy3, y yy4 en la figura 48, el flujo de video se divide en imágenes tales como imágenes I, imágenes B e imágenes P, cada una de las cuales es una unidad de presentación de video, y las imágenes se almacenan en una carga útil de cada uno de los paquetes PES. Cada uno de los paquetes PES tiene un encabezado PES, y el encabezado PES almacena un sello de tiempo de presentación (PTS) que indica un tiempo de visualización de la imagen, y un sello de tiempo de decodificación (DTS) que indica el tiempo de decodificación de la imagen.
La figura 49 ilustra un formato de paquetes TS que se escribirán finalmente en los datos multiplexados. Cada uno de los paquetes TS es un paquete de longitud fija de 188 bytes que incluye un encabezado TS de 4 bytes que contiene información, tal como un PID para identificar un flujo y una carga útil de 184 bytes para almacenar datos. Los paquetes PES se dividen y almacenan en las cargas útiles TS, respectivamente. Cuando se usa una ROM BD, a cada uno de los paquetes TS se le asigna un TP_Extra_Header de 4 bytes, lo que da como resultado de este modo en unos paquetes de origen de 192 bytes. Los paquetes de origen se escriben en los datos multiplexados. El TP_Extra_Header almacena información como una Arrival_Time_Stamp (ATS). La ATS muestra el tiempo de inicio de transferencia en el que se transferirá cada uno de los paquetes TS a un filtro PID. Los paquetes de origen están dispuestos en los datos multiplexados como se muestra en la parte inferior de la figura 49. Los números que aumentan desde el encabezado de los datos multiplexados se denominan números de paquetes de origen (SPN).
Cada uno de los paquetes TS incluidos en los datos multiplexados incluye no solo flujos de audio, video, subtítulos y otros, sino también una tabla de asociación de programas (PAT), una tabla de mapas de programas (PMT) y una referencia de reloj del programa (PCR). La PAT muestra lo que indica un PID en una PMT usada en los datos multiplexados, y un PID de la propia PAT se registra como cero. La PMT almacena los PID de los flujos de video, audio, subtítulos y otros incluidos en los datos multiplexados, y la información de atributos de los flujos correspondiente a los PID. La p Mt también tiene diversos descriptores relacionados con los datos multiplexados. Los descriptores tienen información tal como información de control de copia que muestra si se permite o no la copia de los datos multiplexados. La PCR almacena la información de tiempo de STC correspondiente a una ATS mostrada cuando el paquete de PCR se transfiere a un decodificador, con el fin de lograr la sincronización entre un reloj de hora de llegada (ATC) que es un eje de tiempo de las ATS y un reloj de tiempo de sistema (STC) que es un eje temporal de los PTS y los d Ts .
La figura 50 ilustra en detalle la estructura de datos de la PMT. Un encabezado de PMT está dispuesto en la parte superior de la PMT. El encabezado de PMT describe la longitud de los datos incluidos en la PMT y otros. Una pluralidad de descriptores relacionados con los datos multiplexados se dispone después del encabezado de PMT. Información tal como la información de control de copia se describe en los descriptores. Después de los descriptores, se dispone una pluralidad de piezas de información de flujo relacionadas con los flujos incluidos en los datos multiplexados. Cada pieza de información de flujo incluye unos descriptores de flujo, cada uno de los cuales describe una información, tal como un tipo de flujo para identificar un códec de compresión de un flujo, un PID de flujo e información de atributos de flujo (como una velocidad de cuadros o una relación de aspecto). Los descriptores de flujo son iguales en número al número de flujos en los datos multiplexados.
Cuando los datos multiplexados se graban en un medio de grabación y en otros, se graban junto con archivos de información de datos multiplexados.
Cada uno de los archivos de información de datos multiplexados es información de gestión de los datos multiplexados como se muestra en la figura 51. Los archivos de información de datos multiplexados están en una correspondencia de uno a uno con los datos multiplexados, y cada uno de los archivos incluye información de datos multiplexados, información de atributos de flujo y un mapa de entrada.
Como se ilustra en la figura 51, la información de datos multiplexados incluye una velocidad del sistema, una hora de inicio de reproducción y una hora de finalización de reproducción. La velocidad de sistema indica la velocidad de transferencia máxima a la que un decodificador de destino del sistema, que se describirá más adelante, transfiere los datos multiplexados a un filtro PID. Los intervalos de las ATS incluidas en los datos multiplexados se establecen en no más altas que una velocidad de sistema. El tiempo de inicio de reproducción indica un PTS en un cuadro de video en la cabecera de los datos multiplexados. Se añade un intervalo de un cuadro a un PTS en un cuadro de video al final de los datos multiplexados, y el PTS se establece en el tiempo de finalización de reproducción.
Como se muestra en la figura 52, se registra una pieza de la información de atributos en la información de atributos de flujo, para cada PID de cada flujo incluido en los datos multiplexados. Cada pieza de la información de atributos tiene información diferente en función de si el flujo correspondiente es un flujo de video, un flujo de audio, un flujo de gráficos de presentación o un flujo de gráficos interactivos. Cada pieza de información de atributo de flujo de video contiene información que incluye qué tipo de códec de compresión se usa para comprimir el flujo de video, y la resolución, la relación de aspecto y la velocidad de las piezas de los datos de imagen que se incluyen en el flujo de video. Cada pieza de información de atributos de flujo de audio contiene información que incluye qué tipo de códec de compresión se usa para comprimir el flujo de audio, cuántos canales se incluyen en el flujo de audio, qué idioma soporta el flujo de audio y cuan alta es la frecuencia de muestreo. La información de atributo de flujo de video y la información de atributo de flujo de audio se usan para la inicialización de un decodificador antes de que el actor reproduzca la información.
En la presente realización, los datos multiplexados a usar son de un tipo de flujo incluido en la PMT. Además, cuando los datos multiplexados se graban en un medio de grabación, se usa la información de atributos de flujo de video incluida en la información de datos multiplexados. Más específicamente, el procedimiento de codificación de imágenes en movimiento o el aparato de codificación de imágenes en movimiento descritos en cada una de las realizaciones incluye un etapa o una unidad para asignar la información única que indica datos de video generados por el procedimiento de codificación de imágenes en movimiento o el aparato de codificación de imágenes en movimiento en cada una de las realizaciones, al tipo de flujo incluido en la PMT o la información de atributo de flujo de video. Con la configuración, los datos de video generados por el procedimiento de codificación de imágenes en movimiento o el aparato de codificación de imágenes en movimiento descritos en cada una de las realizaciones pueden distinguirse de los datos de video que se ajustan a otro estándar.
Además, la figura 53 ilustra las etapas del procedimiento de decodificación de imágenes en movimiento de acuerdo con la presente realización. En la etapa exS100, el tipo de flujo incluido en la PMT o la información de atributo de flujo de video incluida en la información de datos multiplexados se obtiene a partir de los datos multiplexados. A continuación, en la etapa exS101, se determina si el tipo de flujo o la información del atributo de flujo de video indican o no que los datos multiplexados se generan mediante el procedimiento de codificación de imágenes en movimiento o el aparato de codificación de imágenes en movimiento en cada una de las realizaciones. Cuando se determina que el tipo de flujo o la información de atributo de flujo de video indica que los datos multiplexados se generan mediante el procedimiento de codificación de imágenes en movimiento o el aparato de codificación de imágenes en movimiento en cada una de las realizaciones, en la etapa exS102, la decodificación se realiza mediante el procedimiento de decodificación de imágenes en movimiento en cada una de las realizaciones. Además, cuando el tipo de flujo o la información de atributo de flujo de video indican conformidad con los estándares convencionales, tales como MPEG-2, MPEG-4 AVC y VC-1, en la etapa exS103, la decodificación se realiza mediante un procedimiento de decodificación de imágenes en movimiento de conformidad con los estándares convencionales.
Como tal, la asignación de un nuevo valor único para el tipo de flujo o la información de atributos de flujo de vídeo permite determinar o no si el procedimiento de decodificación de imágenes en movimiento o el aparato de decodificación de imágenes en movimiento que se describe en cada una de las realizaciones puede realizar la decodificación. Incluso cuando se introducen los datos multiplexados que se ajustan a un estándar diferente, puede seleccionarse un procedimiento o aparato de decodificación apropiado. Por lo tanto, es posible decodificar la información sin ningún error. Además, el procedimiento o aparato de codificación de imágenes en movimiento, o el procedimiento o aparato de decodificación de imágenes en movimiento en la presente realización puede usarse en los dispositivos y los sistemas descritos anteriormente.
[Realización 11]
Cada uno del procedimiento de codificación de imágenes en movimiento, el aparato de codificación de imágenes en movimiento, el procedimiento de decodificación de imágenes en movimiento y el aparato de decodificación de imágenes en movimiento en cada una de las realizaciones se logran normalmente en la forma de un circuito integrado o de un circuito integrado a gran escala (LSI). Como ejemplo del LSI, la figura 54 ilustra una configuración del LSI ex500 que se fabrica en un chip. El LSI ex500 incluye los elementos ex501, ex502, ex503, ex504, ex505, ex507, ex508 y ex509 que se describen a continuación, y los elementos están conectados entre sí a través de un bus ex510. La unidad ex505 de circuito de fuente de alimentación se activa al suministrar alimentación a cada uno de los elementos cuando se enciende la unidad ex505 de circuito de fuente de alimentación.
Por ejemplo, cuando se realiza la codificación, el LSI ex500 recibe una señal AV desde un micrófono ex117, una cámara ex113 y otros a través de un ES ex509 AV bajo control de una unidad ex501 de control que incluye una CPU ex502, un controlador ex503 de memoria, un controlador ex504 de flujo y una unidad ex512 de control de frecuencia de excitación. La señal AV recibida se almacena temporalmente en una memoria ex511 exterior, como una SDRAM. Bajo el control de la unidad ex501 de control, los datos almacenados se segmentan en partes de datos de acuerdo con la cantidad y la velocidad de procesamiento a transmitir a una unidad ex507 de procesamiento de señales. A continuación, la unidad ex507 de procesamiento de señales codifica una señal de audio y/o una señal de video. En este caso, la codificación de la señal de video es la codificación descrita en cada una de las realizaciones. Además, la unidad ex507 de procesamiento de señales a veces multiplexa los datos de audio codificados y los datos de video codificados, y una ES ex506 de flujo proporciona los datos multiplexados al exterior. Los datos multiplexados proporcionados se transmiten a la estación ex107 base o se escriben en el medio ex215 de grabación. Cuando los conjuntos de datos se multiplexan, los datos deben almacenarse temporalmente en la memoria ex508 intermedia de tal manera que los conjuntos de datos se sincronicen entre sí.
Aunque la memoria ex511 es un elemento externo del LSI ex500, puede incluirse en el LSI ex500. La memoria ex508 intermedia no está limitada a una memoria intermedia, sino que puede estar compuesta de memorias intermedias. Además, el LSI ex500 puede fabricarse en un chip o en una pluralidad de chips.
Además, aunque la unidad ex501 de control incluye la CPU ex502, el controlador ex503 memoria, el controlador ex504 de flujo, la unidad ex512 de control de frecuencia de excitación, la configuración de la unidad ex501 de control no se limita a las mismas. Por ejemplo, la unidad ex507 de procesamiento de señales puede incluir además una CPU. La inclusión de otra CPU en la unidad ex507 de procesamiento de señales puede mejorar la velocidad de procesamiento. Además, como otro ejemplo, la CPU ex502 puede servir o ser parte de la unidad ex507 de procesamiento de señales y, por ejemplo, puede incluir una unidad de procesamiento de señales de audio. En tal caso, la unidad ex501 de control incluye la unidad ex507 de procesamiento de señales o la CPU ex502 que incluye una parte de la unidad ex507 de procesamiento de señales.
El nombre usado en este caso es LSI, pero también puede llamarse CI, sistema LSI, super LSI o ultra LSI en función del grado de integración.
Además, las formas de lograr la integración no se limitan al LSI, y un circuito especial o un procesador de fin general, etc., también puede lograr la integración. La matriz de puertas programables en campo (FPGA) que puede programarse después de la fabricación de LSI o un procesador reconfigurable que permite la reconfiguración de la conexión o la configuración de un LSI pueden usarse para el mismo fin.
En el futuro, con el avance en la tecnología de semiconductores, una nueva rama de la tecnología puede reemplazar al LSI. Los bloques funcionales pueden integrarse usando dicha tecnología. La posibilidad es que la presente invención se aplique a la biotecnología.
[Realización 12]
Cuando los datos de video generados en el procedimiento de codificación de imágenes en movimiento o por el aparato de codificación de imágenes en movimiento descritos en cada una de las realizaciones se decodifican, en comparación con cuando se decodifican los datos de video se ajustan a un estándar convencional, tal como MPEG-2, MPEG-4 AVC y VC-1, la cantidad de procesamiento probablemente aumenta. Por lo tanto, el LSI ex500 debe establecerse a una frecuencia de excitación superior a la de la CPU ex502 a usar cuando se decodifican los datos de video de conformidad con el estándar convencional. Sin embargo, cuando la frecuencia de excitación se establece más alta, existe un problema de que aumenta el consumo de energía.
Con el fin de resolver el problema, el aparato de decodificación de imágenes en movimiento, tal como el televisor ex300 y el LSI ex500 se configuran para determinar a qué estándar de datos de vídeo se ajusta, y cambiar entre las frecuencias de excitación de acuerdo con el estándar determinado. La figura 55 ilustra una configuración ex800 en la presente realización. Una unidad ex803 de conmutación de frecuencia de excitación establece una frecuencia de excitación a una frecuencia de excitación mayor cuando los datos de video se generan mediante el procedimiento de codificación de imágenes en movimiento o el aparato de codificación de imágenes en movimiento descritos en cada una de las realizaciones. A continuación, la unidad ex803 de conmutación de frecuencia de excitación indica a una unidad ex801 de procesamiento de decodificación que ejecute el procedimiento de decodificación de imágenes en movimiento descrito en cada una de las realizaciones para decodificar los datos de video. Cuando los datos de video se ajustan al estándar convencional, la unidad ex803 de conmutación de frecuencia de excitación establece una frecuencia de excitación a una frecuencia de excitación menor que la de los datos de video generados por el procedimiento de codificación de imágenes en movimiento o el aparato de codificación de imágenes en movimiento descritos en cada una de las realizaciones. A continuación, la unidad ex803 de conmutación de frecuencia de excitación indica a la unidad ex802 de procesamiento de decodificación que se ajuste al estándar convencional para decodificar los datos de video.
Más específicamente, la unidad ex803 de conmutación de frecuencia de excitación incluye la CPU ex502 y la unidad ex512 de control de frecuencia de excitación en la figura 54. En este caso, cada una de la unidad ex801 de procesamiento de decodificación que ejecuta el procedimiento de decodificación de imágenes en movimiento descrito en cada una de las realizaciones y la unidad ex802 de procesamiento de decodificación que se ajusta al estándar convencional corresponde a la unidad ex507 de procesamiento de señales en la figura 54. La CPU ex502 determina a qué estándar se ajustan los datos de video. A continuación, la unidad ex512 de control de frecuencia de excitación determina una frecuencia de excitación basándose en una señal procedente de la CPU ex502. Además, la unidad ex507 de procesamiento de señales decodifica los datos de video basándose en la señal procedente de la CPU ex502. Por ejemplo, la información de identificación descrita en la realización 10 se usa probablemente para identificar los datos de video. La información de identificación no se limita a la descrita en la realización 10, sino que puede ser cualquier información siempre que la información indique a qué estándar se ajustan los datos de video. Por ejemplo, cuando puede determinarse qué datos de video se ajustan basándose en una señal exterior para determinar que los datos de video se usan para un televisor o un disco, etc., la determinación puede hacerse basándose en dicha señal exterior. Además, la CPU ex502 selecciona una frecuencia de excitación basándose en, por ejemplo, una tabla de consulta en la que los estándares de los datos de video están asociados con las frecuencias de excitación como se muestra en la figura 57. La frecuencia de excitación puede seleccionarse almacenando la tabla de consulta en la memoria ex508 intermedia y en una memoria interior de un LSI, y haciendo referencia a la tabla de consulta mediante la CPU ex502.
La figura 56 ilustra las etapas para ejecutar un procedimiento en la presente realización. En primer lugar, en la etapa exS200, la unidad ex507 de procesamiento de señales obtiene información de identificación a partir de los datos multiplexados. A continuación, en la etapa exS201, la CPU ex502 determina si los datos de video se generan o no mediante el procedimiento de codificación y el aparato de codificación descritos en cada una de las realizaciones, basándose en la información de identificación. Cuando los datos de video se generan mediante el procedimiento de codificación de imágenes en movimiento y el aparato de codificación de imágenes en movimiento descritos en cada una de las realizaciones, en la etapa exS202, la CPU ex502 transmite una señal para configurar la frecuencia de excitación a una frecuencia de excitación mayor que la de la unidad ex512 de control de frecuencia de excitación. A continuación, la unidad ex512 de control de frecuencia de excitación establece la frecuencia de excitación a la frecuencia de excitación más alta. Por otro lado, cuando la información de identificación indica que los datos de video a ajustan al estándar convencional, tal como MPEG-2, MPEG-4 AVC y VC-1, en la etapa exS203, la CPU ex502 transmite una señal para configurar la frecuencia de excitación a una frecuencia de excitación inferior a la de la unidad ex512 de control de frecuencia de excitación. A continuación, la unidad ex512 de control de frecuencia de excitación establece la frecuencia de excitación a la frecuencia de excitación más baja que en el caso donde los datos de video se generan mediante el procedimiento de codificación de imágenes en movimiento y el aparato de codificación de imágenes en movimiento descritos en cada una de las realizaciones.
Además, junto con la conmutación de las frecuencias de excitación, el efecto de ahorro de energía puede mejorarse cambiando la tensión que se aplicará al LSI ex500 o a un aparato que incluya el LSI ex500. Por ejemplo, cuando la frecuencia de excitación se establece más baja, la tensión a aplicar al LSI ex500 o al aparato que incluye el LSI ex500 probablemente se configure a una tensión inferior a la del caso donde la frecuencia de excitación se establece más alta.
Además, cuando la cantidad de procesamiento para la decodificación es mayor, la frecuencia de excitación puede establecerse más alta, y cuando la cantidad de procesamiento para la decodificación es menor, la frecuencia de excitación puede establecerse más baja como el procedimiento para establecer la frecuencia de excitación. Por lo tanto, el procedimiento de configuración no se limita a los descritos anteriormente. Por ejemplo, cuando la cantidad de procesamiento para decodificar los datos de video de conformidad con MPEG-4 AVC es mayor que la cantidad de procesamiento para decodificar datos de video generados por el procedimiento de codificación de imágenes en movimiento y el aparato de codificación de imágenes en movimiento descrito en cada una de las realizaciones, la frecuencia de excitación se establece probablemente en orden inverso a la configuración descrita anteriormente.
Además, el procedimiento para configurar la frecuencia de excitación no se limita al procedimiento para configurar una frecuencia de excitación más baja. Por ejemplo, cuando la información de identificación indica que los datos de video se generan por el procedimiento de codificación de imágenes en movimiento y el aparato de codificación de imágenes en movimiento descritos en cada una de las realizaciones, la tensión a aplicar al LSI ex500 o al aparato que incluye el LSI ex500 se establezca probablemente más alta. Cuando la información de identificación indica que los datos de video se ajustan al estándar convencional, tal como MPEG-2, MPEG-4 AVC y VC-1, la tensión a aplicar al LSI ex500 o al aparato que incluye el LSI ex500 se establece probablemente más baja. Como otro ejemplo, cuando la información de identificación indica que los datos de video se generan por el procedimiento de codificación de imágenes en movimiento y el aparato de codificación de imágenes en movimiento descritos en cada una de las realizaciones, la excitación de la CPU ex502 probablemente no tenga que suspenderse. Cuando la información de identificación indica que los datos de video se ajustan al estándar convencional, tal como MPEG-2, MPEG-4 AVC y VC-1, la excitación de la CPU ex502 probablemente se suspenda en un momento dado debido a que la CPU ex502 tiene una capacidad de procesamiento extra. Incluso cuando la información de identificación indica que los datos de video se generan por el procedimiento de codificación de imágenes en movimiento y el aparato de codificación de imágenes en movimiento descritos en cada una de las realizaciones, en el caso donde la CPU ex502 tiene una capacidad de procesamiento extra, la excitación de la CPU ex502 se suspende probablemente en un momento dado. En tal caso, el tiempo de suspensión probablemente se establezca más corto que en el caso en que la información de identificación indique que los datos de video se ajustan al estándar convencional, tal como MPEG-2, MPEG-4 AVC y VC-1.
Por consiguiente, el efecto de ahorro de energía puede mejorarse cambiando entre las frecuencias de excitación de acuerdo con el estándar al que se ajustan los datos de video. Además, cuando el LSI ex500 o el aparato que incluye el LSI ex500 se excitan con una batería, la vida de la batería puede extenderse con el efecto de ahorro de energía.
[Realización 13]
Hay casos donde una pluralidad de datos de video que se ajustan a diferentes estándares se proporciona a los dispositivos y sistemas, tales como un televisor y un teléfono móvil. Con el fin de permitir la decodificación de la pluralidad de datos de video que se ajustan a los diferentes estándares, la unidad ex507 de procesamiento de señales del LSI ex500 necesita ajustarse a los diferentes estándares. Sin embargo, los problemas de aumento en la escala del circuito del LSI ex500 y el aumento en el coste surgen con el uso individual de las unidades ex507 de procesamiento de señal que se ajustan a los estándares respectivos.
Con el fin de resolver el problema, lo que se concibe es una configuración en la que la unidad de procesamiento de decodificación que implementa el procedimiento de decodificación de imágenes en movimiento descrito en cada una de las realizaciones y la unidad de procesamiento de decodificación que se ajusta al estándar convencional, tal como MPEG 2, MPEG-4 Av C y VC-1 se comparten parcialmente. El Ex900 en la figura 58A muestra un ejemplo de la configuración. Por ejemplo, el procedimiento de decodificación de imágenes en movimiento descrito en cada una de las realizaciones y el procedimiento de decodificación de imágenes en movimiento que se ajusta a MPEG-4 AVC tienen, en parte en común, los detalles del procesamiento, tal como la codificación de entropía, la cuantificación inversa, el filtrado de desbloqueo y la predicción compensada de movimiento. Los detalles del procesamiento que se compartirá probablemente incluyen el uso de una unidad ex902 de procesamiento de decodificación que se ajusta a AVC MPEG-4. En contraste, una unidad ex901 de procesamiento de decodificación dedicada se usa probablemente para otro procesamiento único de un aspecto de la presente invención. Ya que el aspecto de la presente invención se caracteriza por una cuantificación inversa en particular, por ejemplo, la unidad ex901 de procesamiento de decodificación dedicada se usa para la cuantificación inversa. De lo contrario, la unidad de procesamiento de decodificación se comparte probablemente para uno de entre la decodificación de entropía, el filtrado de desbloqueo y la compensación de movimiento, o todo el procesamiento. La unidad de procesamiento de decodificación para implementar el procedimiento de decodificación de imágenes en movimiento que se describe en cada una de las realizaciones puede compartirse para que se comparta el procesamiento, y puede usarse una unidad de procesamiento de decodificación dedicada para el procesamiento único del MPEG-4 AVC.
Además, el ex1000 en la figura 58B muestra otro ejemplo en el que el procesamiento se comparte parcialmente. Este ejemplo usa una configuración que incluye una unidad ex1001 de procesamiento de decodificación dedicada que soporta el procesamiento único de un aspecto de la presente invención, una unidad ex1002 de procesamiento de decodificación dedicada que soporta el procesamiento único de otro estándar convencional y una unidad ex1003 de procesamiento de decodificación que admite el procesamiento a compartir entre el procedimiento de decodificación de imágenes en movimiento de acuerdo con el aspecto de la presente invención y el procedimiento de decodificación de imágenes en movimiento convencional. En este caso, las unidades ex1001 y ex1002 de procesamiento de decodificación dedicadas no están necesariamente especializadas para el procesamiento de acuerdo con el aspecto de la presente invención y el procesamiento del estándar convencional, respectivamente, y pueden ser las capaces de implementar el procesamiento general. Además, la configuración de la presente realización puede implementarse mediante el LSI ex500.
Como tal, es posible reducir la escala del circuito de un LSI y reducir el coste compartiendo la unidad de procesamiento de decodificación para que el procesamiento a compartir entre el procedimiento de decodificación de imágenes en movimiento de acuerdo con el aspecto de la presente invención y el procedimiento de decodificación de imágenes en movimiento conforme al estándar convencional.
Según el aspecto antes identificado de la presente invención, se proporciona un procedimiento de codificación de imágenes para codificar una imagen basándose en bloque por bloque para generar un flujo de bits. El procedimiento comprende derivar, como un primer candidato de fusión, un candidato de fusión basado en una dirección de predicción, un vector de movimiento y un índice de imagen de referencia que se han usado para codificar un bloque espacial o temporalmente cercano a un bloque actual a codificar, siendo el candidato de fusión una combinación de una dirección de predicción, un vector de movimiento y un índice de imagen de referencia para su uso al codificar el bloque actual derivando, como un segundo candidato de fusión, un candidato de fusión con un vector de movimiento que es un vector predeterminado, seleccionar un candidato de fusión a usar para codificar el bloque actual del primer candidato de fusión derivado y el segundo candidato de fusión derivado y unir un índice para identificar el candidato de fusión seleccionado al flujo de bits.
Preferentemente, al derivar un candidato de fusión como un segundo candidato de fusión, el segundo candidato de fusión se deriva para cada imagen de referencia referible.
Preferentemente, el vector predeterminado es un vector cero.
Preferentemente, el procedimiento comprende además determinar un número máximo de candidatos de fusión y determinar si el número total de los primeros candidatos de fusión derivados es menor o no que el número máximo, en el que la derivación de un candidato de fusión como un segundo candidato de fusión se realiza cuando se determina que el número total del primer candidato de fusión es menor que el número máximo.
Más preferentemente, en la unión, el índice se codifica usando el número máximo determinado, y el índice codificado se une al flujo de bits.
También preferentemente, en la unión, la información que indica el número máximo determinado se une además al flujo de bits.
Preferentemente, al derivar un candidato de fusión como un primer candidato de fusión, un candidato de fusión que es una combinación de una dirección de predicción, un vector de movimiento y un índice de imagen de referencia se deriva como el primer candidato de fusión, siendo la combinación diferente de una combinación de una dirección de predicción, un vector de movimiento y un índice de imagen de referencia de cualquier primer candidato de fusión previamente derivado.
Preferentemente, el procedimiento de codificación de imagen según el aspecto antes identificado comprende además cambiar un procedimiento de codificación entre un primer procedimiento de codificación que se adapta a un primer estándar y un segundo procedimiento de codificación que se adapta a un segundo estándar y unir, al flujo de bits, la información de identificación que indica el primer estándar o el segundo estándar al que se adapta el procedimiento de codificación tras el cambio, en el que cuando el procedimiento de codificación cambia al primer procedimiento de codificación, la derivación de un candidato de fusión como un primer candidato de fusión, la derivación de un candidato de fusión como un segundo candidato de fusión, la selección y la unión se realizan como el primer procedimiento de codificación.
Según un aspecto adicional particular de la presente invención, se proporciona un aparato de codificación de imágenes que codifica una imagen basándose en bloque por bloque para generar un flujo de bits. El aparato comprende una primera unidad de derivación configurada para derivar, como un primer candidato de fusión, un candidato de fusión basado en una dirección de predicción, un vector de movimiento y un índice de imagen de referencia que se han usado para codificar un bloque espacial o temporalmente cercano a un bloque actual a codificar, siendo el candidato de fusión una combinación de una dirección de predicción, un vector de movimiento y un índice de imagen de referencia para uso al codificar el bloque actual, una segunda unidad de derivación configurada para derivar, como un segundo candidato de fusión, un candidato de fusión con un vector de movimiento que es un vector predeterminado, una unidad de control de predicción configurada para seleccionar un candidato de fusión a usar para la codificación del bloque actual desde el primer candidato de fusión derivado y el segundo candidato de fusión derivado, y una unidad de codificación configurada para unir un índice para identificar el candidato de fusión seleccionado al flujo de bits.
Según un aspecto adicional particular de la presente invención, se proporciona un procedimiento de decodificación de imágenes para decodificar, basado en bloque por bloque, una imagen codificada incluida en un flujo de bits. El procedimiento comprende derivar, como un primer candidato de fusión, un candidato de fusión basado en una dirección de predicción, un vector de movimiento y un índice de imagen de referencia que se han usado para decodificar un bloque espacial o temporalmente cercano a un bloque actual a decodificar, siendo el candidato de fusión una combinación de una dirección de predicción, un vector de movimiento y un índice de imagen de referencia para uso al decodificar el bloque actual, derivar, como un segundo candidato de fusión, un candidato de fusión con un vector de movimiento que es un vector predeterminado, obtener, del flujo de bits, un índice para identificar un candidato de fusión y seleccionar, basado en el índice obtenido, un candidato de fusión del primer candidato de fusión y el segundo candidato de fusión, usado el candidato de fusión para decodificar un bloque actual.
Preferentemente, al derivar un candidato de fusión como un segundo candidato de fusión, el segundo candidato de fusión se deriva para cada imagen de referencia referible.
Preferentemente, el vector predeterminado es un vector cero.
Preferentemente, el procedimiento comprende además determinar un número máximo de candidatos de fusión y determinar si el número total de los primeros candidatos de fusión derivados es menor o no que el número máximo, en el que la derivación de un candidato de fusión como un segundo candidato de fusión se realiza cuando se determina que el número total del primer candidato de fusión es menor que el número máximo.
Más preferentemente, en la obtención, el índice codificado y unido al flujo de bits se obtiene al decodificar el índice usando el número máximo determinado.
También preferentemente, al determinar un número máximo de candidatos de fusión, el número máximo se determina en función de información unida al flujo de bits e indicando el número máximo.
Preferentemente, al derivar un candidato de fusión como un primer candidato de fusión, un candidato de fusión que es una combinación de una dirección de predicción, un vector de movimiento y un índice de imagen de referencia se deriva como el primer candidato de fusión, siendo la combinación diferente de una combinación de una dirección de predicción, un vector de movimiento y un índice de imagen de referencia de cualquier primer candidato de fusión previamente derivado.
Preferentemente, el procedimiento de decodificación de imágenes según otro aspecto particular más comprende cambiar un procedimiento de decodificación entre un primer procedimiento de decodificación que se adapta a un primer estándar y un segundo procedimiento de decodificación que se adapta a un segundo estándar, según información de identificación que se une al flujo de bits e indica el primer estándar o el segundo estándar, en el que cuando el procedimiento de decodificación cambia al primer procedimiento de decodificación, la derivación de un candidato de fusión como un primer candidato de fusión, la derivación de un candidato de fusión como un segundo candidato de fusión, la obtención y la selección se realizan como el primer procedimiento de decodificación.
Según un aspecto adicional particular de la presente invención, se proporciona un aparato de decodificación de imágenes que decodifica, basado en bloque por bloque, una imagen codificada incluida en un flujo de bits. El aparato comprende una primera unidad de derivación configurada para derivar, como un primer candidato de fusión, un candidato de fusión basado en una dirección de predicción, un vector de movimiento y un índice de imagen de referencia que se han usado para decodificar un bloque espacial o temporalmente cercano a un bloque actual a decodificar, siendo el candidato de fusión una combinación de una dirección de predicción, un vector de movimiento y un índice de imagen de referencia para uso al decodificar el bloque actual, una segunda unidad de derivación configurada para derivar, como un segundo candidato de fusión, un candidato de fusión con un vector de movimiento que es un vector predeterminado, una unidad de decodificación configurada para obtener, del flujo de bits, un índice para identificar un candidato de fusión y una unidad de control de predicción configurada para seleccionar, basado en el índice obtenido, un candidato de fusión del primer candidato de fusión y el segundo candidato de fusión, usado el candidato de fusión para decodificar un bloque actual.
Según un aspecto adicional de la presente invención, un aparato de codificación y decodificación de imágenes se proporciona. El aparato comprende el aparato de codificación de imágenes según el aspecto particular adicional y el aparato de decodificación de imágenes según el aspecto todavía adicional.
rAplicabilidad industrial!
El procedimiento de codificación de imágenes y el procedimiento de decodificación de imágenes de acuerdo con un aspecto de la presente invención pueden aplicarse ventajosamente a un procedimiento de codificación de imágenes en movimiento y a un procedimiento de decodificación de imágenes en movimiento.
[Lista de signos de referencia!
100, 200, 500, 600 aparato de codificación de imágenes
101 restador
102 unidad de transformación ortogonal
103 unidad de cuantificación
104, 302 unidad de cuantificación inversa
105, 303 unidad de transformación ortogonal inversa
106, 304 sumador
107, 305 memoria de bloque
108, 306 memoria de cuadro
109, 307 unidad de intra predicción
110, 308 unidad de inter predicción
111, 309 unidad de control de inter predicción
112 unidad de determinación de tipo de imagen.
113, 310 conmutador
114, 311, 514, 711 unidad de cálculo de candidato de bloque de fusión
115, 312 memoria de colPic
116, 516 unidad de codificación de longitud variable
210, 410, 610, 810 unidad de obtención de candidato de fusión
211,411, 612, 812 primera unidad de obtención
, 412, 615, 815 segunda unidad de obtención
, 430, 620, 830 unidad de control de predicción
, 630 unidad de codificación
, 400, 700, 800 aparato de decodificación de imágenes , 701 unidad de decodificación de longitud variable , 820 unidad de decodificación
, 811 primera unidad de determinación
, 813 unidad de especificación
, 814 segunda unidad de determinación

Claims (3)

REIVINDICACIONES
1. Un aparato de decodificación de imágenes en movimiento para decodificar un bloque actual incluido en un flujo de bits, comprendiendo el aparato de decodificación de imágenes en movimiento:
un procesador (ex502); y una memoria no transitoria (ex511),
en el que el procesador (ex502) realiza, usando la memoria no transitoria (ex511), procesos que incluyen: derivar un primer candidato en función de un primer vector de movimiento que se ha usado para decodificar un primer bloque, siendo adyacente el primer bloque al bloque actual;
derivar, para cada una de una pluralidad de imágenes de referencia referibles, un segundo candidato que tiene un segundo vector de movimiento predeterminado que incluye un valor no cero, asignado el valor no cero a una imagen de referencia correspondiente, teniendo el segundo vector de movimiento predeterminado un valor de compensación de eje x y un valor de compensación de eje y que se incluyen en un encabezado de imagen; seleccionar un candidato desde una pluralidad de candidatos, en función de un índice recibido del flujo de bits, incluyendo la pluralidad de candidatos el primer candidato y el segundo candidato, y decodificar el bloque actual usando el candidato seleccionado, y
el segundo candidato incluye el valor no cero de la imagen de referencia correspondiente, seleccionada de la pluralidad de imágenes de referencia referibles,
en el que un candidato es una combinación de una dirección de predicción, un vector de movimiento y un índice de imagen de referencia.
2. Un procedimiento de decodificación de imágenes en movimiento para decodificar un bloque actual incluido en un flujo de bits, comprendiendo el procedimiento de decodificación de imágenes en movimiento:
derivar (S401) un primer candidato en función de un primer vector de movimiento que se ha usado para decodificar un primer bloque, siendo adyacente el primer bloque al bloque actual;
derivar (S402), para cada una de la pluralidad de imágenes de referencia referibles, un segundo candidato que tiene un segundo vector de movimiento predeterminado que incluye un valor no cero, asignado el valor no cero a una imagen de referencia correspondiente, teniendo el segundo vector de movimiento predeterminado un valor de compensación de eje x y un valor de compensación de eje y que se incluyen en un encabezado de imagen; seleccionar (S404) un candidato desde una pluralidad de candidatos, en función de un índice recibido del flujo de bits, incluyendo la pluralidad de candidatos el primer candidato y el segundo candidato; y
decodificar (S306), por al menos uno de un procesador (ex502) o un circuito (ex500), el bloque actual usando el candidato seleccionado,
en el que el segundo candidato incluye el valor no cero de la imagen de referencia correspondiente, seleccionada de la pluralidad de imágenes de referencia referibles,
en el que un candidato es una combinación de una dirección de predicción, un vector de movimiento y un índice de imágenes de referencia.
3. Un medio legible por ordenador no transitorio que incluye un programa para decodificar un bloque actual incluido en un flujo de bits, haciendo el programa, al ejecutarse por un procesador (ex502), que el procesador (ex502) realice procesos, comprendiendo los procesos:
derivar (S401) un primer candidato en función de un primer vector de movimiento que se ha usado para decodificar un primer bloque, siendo adyacente el primer bloque al bloque actual;
derivar (S402), para cada una de una pluralidad de imágenes de referencia referibles, un segundo candidato que tiene un segundo vector de movimiento predeterminado que incluye un valor no cero, asignado el valor no cero a una imagen de referencia correspondiente, teniendo el segundo vector de movimiento predeterminado un valor de compensación de eje x y un valor de compensación de eje y que se incluyen en un encabezado de imagen; seleccionar (S404) un candidato desde una pluralidad de candidatos, en función de un índice recibido desde el flujo de bits, incluyendo la pluralidad de candidatos el primer candidato y el segundo candidato; y decodificar (S306) el bloque actual usando el candidato seleccionable,
en el que el segundo candidato incluye el valor no cero de la imagen de referencia correspondiente, seleccionada de la pluralidad de imágenes de referencia referibles,
en el que un candidato es una combinación de una dirección de predicción, un vector de movimiento y un índice de imagen de referencia.
ES19203347T 2011-05-27 2012-05-24 Aparato, procedimiento y programa para decodificar imágenes en movimiento Active ES2911670T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US201161490777P 2011-05-27 2011-05-27

Publications (1)

Publication Number Publication Date
ES2911670T3 true ES2911670T3 (es) 2022-05-20

Family

ID=47258757

Family Applications (4)

Application Number Title Priority Date Filing Date
ES18185426T Active ES2769378T3 (es) 2011-05-27 2012-05-24 Procedimiento de codificación de imágenes y aparato de codificación de imágenes
ES22152651T Active ES2959039T3 (es) 2011-05-27 2012-05-24 Aparato, procedimiento y programa para codificar imágenes en movimiento
ES19203347T Active ES2911670T3 (es) 2011-05-27 2012-05-24 Aparato, procedimiento y programa para decodificar imágenes en movimiento
ES12792164T Active ES2703799T3 (es) 2011-05-27 2012-05-24 Procedimiento de decodificación de imágenes y dispositivo de decodificación de imágenes

Family Applications Before (2)

Application Number Title Priority Date Filing Date
ES18185426T Active ES2769378T3 (es) 2011-05-27 2012-05-24 Procedimiento de codificación de imágenes y aparato de codificación de imágenes
ES22152651T Active ES2959039T3 (es) 2011-05-27 2012-05-24 Aparato, procedimiento y programa para codificar imágenes en movimiento

Family Applications After (1)

Application Number Title Priority Date Filing Date
ES12792164T Active ES2703799T3 (es) 2011-05-27 2012-05-24 Procedimiento de decodificación de imágenes y dispositivo de decodificación de imágenes

Country Status (15)

Country Link
US (9) US9615107B2 (es)
EP (5) EP4213483A1 (es)
JP (2) JP5865366B2 (es)
KR (1) KR101896734B1 (es)
CN (1) CN103518376B (es)
BR (1) BR112013027344B1 (es)
CA (3) CA3062382C (es)
DK (1) DK2717575T3 (es)
ES (4) ES2769378T3 (es)
MX (1) MX2013012132A (es)
MY (1) MY173463A (es)
PL (4) PL4007276T3 (es)
TR (1) TR201819396T4 (es)
TW (1) TW201311008A (es)
WO (1) WO2012164880A1 (es)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9066110B2 (en) 2011-03-08 2015-06-23 Texas Instruments Incorporated Parsing friendly and error resilient merge flag coding in video coding
JP5837575B2 (ja) 2011-04-12 2015-12-24 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America 動画像符号化方法、動画像符号化装置、動画像復号化方法、動画像復号化装置、および動画像符号化復号化装置
ES2769378T3 (es) * 2011-05-27 2020-06-25 Sun Patent Trust Procedimiento de codificación de imágenes y aparato de codificación de imágenes
US9866859B2 (en) * 2011-06-14 2018-01-09 Texas Instruments Incorporated Inter-prediction candidate index coding independent of inter-prediction candidate list construction in video coding
EP2723076A4 (en) 2011-06-14 2015-03-04 Samsung Electronics Co Ltd METHOD AND APPARATUS FOR ENCODING MOVEMENT INFORMATION, AND METHOD AND APPARATUS FOR DECODING THE SAME
MX2013013029A (es) 2011-06-30 2013-12-02 Panasonic Corp Metodo de decodificacion de imagenes, metodo de codificacion de imagenes, dispositivo de decodificacion de imagenes, dispositivo de codificacion de imagenes y dispositivo de codificacion/decodifi cacion de imagenes.
BR112013003521B1 (pt) 2011-07-18 2022-03-03 Sun Patent Trust Método de codificação de imagem, método de decodificação de imagem, aparelho de codificação de imagem, aparelho de decodificação de imagem e aparelho de codificação e decodificação de imagem
CN103718553B (zh) 2011-08-11 2017-03-01 太阳专利托管公司 图像编码方法、图像解码方法、图像编码装置、图像解码装置及图像编码解码装置
EP3923572A1 (en) 2011-10-19 2021-12-15 Sun Patent Trust Image encoding method, image encoding device, image decoding method, and picture decoding device
JP2013118627A (ja) * 2011-10-31 2013-06-13 Jvc Kenwood Corp 動画像復号装置、動画像復号方法、動画像復号プログラム、受信装置、受信方法及び受信プログラム
JP5846133B2 (ja) * 2012-01-18 2016-01-20 株式会社Jvcケンウッド 動画像復号装置、動画像復号方法、及び動画像復号プログラム、並びに、受信装置、受信方法、及び受信プログラム
JP5846132B2 (ja) * 2012-01-18 2016-01-20 株式会社Jvcケンウッド 動画像符号化装置、動画像符号化方法、及び動画像符号化プログラム、並びに、送信装置、送信方法、及び送信プログラム
ES2951398T3 (es) 2012-04-12 2023-10-20 Jvckenwood Corp Construcción de listas de candidatos a fusión
JP5633597B2 (ja) * 2012-04-12 2014-12-03 株式会社Jvcケンウッド 動画像復号装置、動画像復号方法、動画像復号プログラム、受信装置、受信方法及び受信プログラム
JP6020323B2 (ja) * 2012-04-12 2016-11-02 株式会社Jvcケンウッド 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、送信装置、送信方法及び送信プログラム
WO2016031253A1 (ja) * 2014-08-28 2016-03-03 日本電気株式会社 ブロックサイズ決定方法及びプログラム記録媒体
CN107113424B (zh) * 2014-11-18 2019-11-22 联发科技股份有限公司 以帧间预测模式编码的块的视频编码和解码方法
MA41611A (fr) * 2015-02-23 2018-01-02 Omthera Pharmaceuticals Inc Préparations en milli-capsules comprenant des acides gras polyinsaturés libres
AU2018351405B2 (en) * 2017-10-20 2023-06-08 Kt Corporation Video signal processing method and device
CN112166612A (zh) * 2018-05-23 2021-01-01 株式会社Kt 用于处理视频信号的方法和设备
CN112204982A (zh) * 2018-06-29 2021-01-08 株式会社Kt 用于处理视频信号的方法和设备
WO2020186117A1 (en) * 2019-03-12 2020-09-17 Beijing Dajia Internet Information Technology Co., Ltd. Methods and apparatus of video coding for triangle prediction

Family Cites Families (150)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3883701T2 (de) 1987-10-30 1994-02-10 Nippon Telegraph & Telephone Verfahren und Vorrichtung für multiplexierte Vektorquantifizierung.
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
US5995080A (en) 1996-06-21 1999-11-30 Digital Equipment Corporation Method and apparatus for interleaving and de-interleaving YUV pixel data
JP3263807B2 (ja) 1996-09-09 2002-03-11 ソニー株式会社 画像符号化装置および画像符号化方法
US6148026A (en) 1997-01-08 2000-11-14 At&T Corp. Mesh node coding to enable object based functionalities within a motion compensated transform video coder
JPH10224800A (ja) 1997-02-07 1998-08-21 Matsushita Electric Ind Co Ltd 動きベクトル符号化方法および復号化方法
US6043838A (en) * 1997-11-07 2000-03-28 General Instrument Corporation View offset estimation for stereoscopic video coding
JP4004653B2 (ja) 1998-08-03 2007-11-07 カスタム・テクノロジー株式会社 動きベクトル検出方法および装置、記録媒体
US6192148B1 (en) 1998-11-05 2001-02-20 Winbond Electronics Corp. Method for determining to skip macroblocks in encoding video
US6192080B1 (en) 1998-12-04 2001-02-20 Mitsubishi Electric Research Laboratories, Inc. Motion compensated digital video signal processing
US6594313B1 (en) 1998-12-23 2003-07-15 Intel Corporation Increased video playback framerate in low bit-rate video applications
JP4487374B2 (ja) 1999-06-01 2010-06-23 ソニー株式会社 符号化装置及び符号化方法並びに多重化装置及び多重化方法
US6842483B1 (en) 2000-09-11 2005-01-11 The Hong Kong University Of Science And Technology Device, method and digital video encoder for block-matching motion estimation
JP2002152750A (ja) 2000-11-10 2002-05-24 Matsushita Electric Ind Co Ltd 動きベクトル検出方法および装置
EP2271111B1 (en) * 2001-11-06 2016-08-10 Panasonic Intellectual Property Corporation of America Moving picture coding method and moving picture decoding method
CN100515085C (zh) 2001-11-06 2009-07-15 松下电器产业株式会社 运动图像解码方法
JP4015934B2 (ja) 2002-04-18 2007-11-28 株式会社東芝 動画像符号化方法及び装置
JP2004088722A (ja) 2002-03-04 2004-03-18 Matsushita Electric Ind Co Ltd 動画像符号化方法および動画像復号化方法
EP3525466B1 (en) 2002-04-19 2022-02-09 Panasonic Intellectual Property Corporation of America Motion vector determining method and apparatus
EP3525465B1 (en) * 2002-04-19 2021-03-17 Panasonic Intellectual Property Corporation of America Picture decoding method and apparatus
TWI259726B (en) 2002-04-19 2006-08-01 Matsushita Electric Ind Co Ltd Motion vector derivation method
US20040001546A1 (en) 2002-06-03 2004-01-01 Alexandros Tourapis Spatiotemporal prediction for bidirectionally predictive (B) pictures and motion vector prediction for multi-picture reference motion compensation
US20040234143A1 (en) * 2002-07-02 2004-11-25 Makoto Hagai Image encoding method and picture decoding method
US8406301B2 (en) 2002-07-15 2013-03-26 Thomson Licensing Adaptive weighting of reference pictures in video encoding
BRPI0303901B1 (pt) 2002-07-11 2018-03-06 Godo Kaisha Ip Bridge 1 “Método de determinação de poder de filtragem para determinar um poder de filtragem para remover uma distorção de codificação entre blocos que constituem uma imagem, método de decodificação de imagem móvel para decodificar os dados de imagem móvel codificados, aparelho de determinação de poder de filtragem, e aparelho de codificação de imagem móvel”
CN101039427B (zh) 2002-07-15 2010-06-16 株式会社日立制作所 动态图像的解码方法
US7154952B2 (en) 2002-07-19 2006-12-26 Microsoft Corporation Timestamp-independent motion vector prediction for predictive (P) and bidirectionally predictive (B) pictures
US7023921B2 (en) 2002-08-06 2006-04-04 Motorola, Inc. Method and apparatus for determining block match quality
ES2524117T3 (es) * 2002-08-08 2014-12-04 Panasonic Intellectual Property Corporation Of America Procedimiento de codificación y procedimiento de descodificación de imágenes en movimiento
KR100506864B1 (ko) * 2002-10-04 2005-08-05 엘지전자 주식회사 모션벡터 결정방법
EP3145186B1 (en) 2002-11-01 2019-03-27 Godo Kaisha IP Bridge 1 Direct mode motion vector computation avoiding divisions by zero
EP1569460B1 (en) 2002-11-25 2013-05-15 Panasonic Corporation Motion compensation method, image encoding method, and image decoding method
CN1751518B (zh) 2003-02-18 2010-12-01 诺基亚有限公司 图像编码方法
KR100693669B1 (ko) 2003-03-03 2007-03-09 엘지전자 주식회사 피일드 매크로 블록의 레퍼런스 픽쳐 결정 방법
US7266147B2 (en) 2003-03-31 2007-09-04 Sharp Laboratories Of America, Inc. Hypothetical reference decoder
MXPA06000555A (es) 2003-07-15 2006-07-10 Thomson Licensing Calculo de movimiento con coincidencia del bloque de busqueda rapida.
US7426308B2 (en) 2003-07-18 2008-09-16 Microsoft Corporation Intraframe and interframe interlace coding and decoding
KR100579542B1 (ko) 2003-07-29 2006-05-15 삼성전자주식회사 블럭 간의 상관성을 고려한 움직임 추정 장치 및 방법
US7746929B2 (en) 2003-08-05 2010-06-29 Trident Microsystems (Far East) Ltd. Video encoding and decoding methods and corresponding devices
US8064520B2 (en) 2003-09-07 2011-11-22 Microsoft Corporation Advanced bi-directional predictive coding of interlaced video
CN1225127C (zh) 2003-09-12 2005-10-26 中国科学院计算技术研究所 一种用于视频编码的编码端/解码端双向预测方法
FR2860678A1 (fr) 2003-10-01 2005-04-08 Thomson Licensing Sa Procede de codage differentiel
GB2407006A (en) 2003-10-08 2005-04-13 Sony Uk Ltd Communicating streamed payload data and packet based auxiliary data
JP3675464B2 (ja) 2003-10-29 2005-07-27 ソニー株式会社 動画像符号化装置および動画像符号化制御方法
TWI330976B (en) 2003-12-05 2010-09-21 Trident Microsystems Far East Method and apparatus for encoding/decoding dynamic graphic content
US7301482B1 (en) 2003-12-12 2007-11-27 Marvell International Ltd. Circuits, architectures, systems, methods, algorithms and software for conditional modulation coding
JP2005184042A (ja) 2003-12-15 2005-07-07 Sony Corp 画像復号装置及び画像復号方法並びに画像復号プログラム
KR100608050B1 (ko) 2004-01-14 2006-08-02 삼성전자주식회사 사용자의 요구에 의해 활성화되는 인터랙티브 그래픽스트림을 저장한 저장 매체, 재생 장치 및 그 재생 방법
US8190003B2 (en) 2004-01-14 2012-05-29 Samsung Electronics Co., Ltd. Storage medium storing interactive graphics stream activated in response to user's command, and reproducing apparatus for reproducing from the same
EP1583367A1 (en) 2004-03-30 2005-10-05 Matsushita Electric Industrial Co., Ltd. Motion estimation employing line and column vectors
EP1592258B1 (en) 2004-04-30 2011-01-12 Panasonic Corporation Motion estimation employing adaptive spatial update vectors
JP4145275B2 (ja) 2004-07-27 2008-09-03 富士通株式会社 動きベクトル検出・補償装置
TWI250423B (en) 2004-07-30 2006-03-01 Ind Tech Res Inst Method for processing video images
TWI268715B (en) 2004-08-16 2006-12-11 Nippon Telegraph & Telephone Picture encoding method, picture decoding method, picture encoding apparatus, and picture decoding apparatus
EP1638333A1 (en) 2004-09-17 2006-03-22 Mitsubishi Electric Information Technology Centre Europe B.V. Rate adaptive video coding
JP4375305B2 (ja) 2004-10-26 2009-12-02 ソニー株式会社 情報処理装置および情報処理方法、記録媒体、並びに、プログラム
JP4148228B2 (ja) 2005-02-10 2008-09-10 ソニー株式会社 画像記録装置、画像再生制御装置、画像記録再生制御装置、これらの装置の処理方法およびその方法をコンピュータに実行させるプログラム
US7660354B2 (en) 2005-05-11 2010-02-09 Fang Shi Temporal error concealment for bi-directionally predicted frames
US8761258B2 (en) 2005-06-17 2014-06-24 The Hong Kong University Of Science And Technology Enhanced block-based motion estimation algorithms for video compression
US9661376B2 (en) 2005-07-13 2017-05-23 Polycom, Inc. Video error concealment method
EP1753242A2 (en) 2005-07-18 2007-02-14 Matsushita Electric Industrial Co., Ltd. Switchable mode and prediction information coding
US7697783B2 (en) 2005-07-26 2010-04-13 Sony Corporation Coding device, coding method, decoding device, decoding method, and programs of same
JP4401336B2 (ja) 2005-08-31 2010-01-20 三洋電機株式会社 符号化方法
JP2008011455A (ja) 2006-06-30 2008-01-17 Sanyo Electric Co Ltd 符号化方法
US20070025444A1 (en) 2005-07-28 2007-02-01 Shigeyuki Okada Coding Method
JP4570532B2 (ja) 2005-08-02 2010-10-27 パナソニック株式会社 動き検出装置、動き検出方法、集積回路およびプログラム
US20070030894A1 (en) 2005-08-03 2007-02-08 Nokia Corporation Method, device, and module for improved encoding mode control in video encoding
JP2007142637A (ja) 2005-11-16 2007-06-07 Matsushita Electric Ind Co Ltd 画像情報符号化装置
WO2007092215A2 (en) 2006-02-02 2007-08-16 Thomson Licensing Method and apparatus for adaptive weight selection for motion compensated prediction
CN101379835B (zh) 2006-02-02 2011-08-24 汤姆逊许可公司 使用组合参考双向预测进行运动估计的方法和设备
US20070200949A1 (en) 2006-02-21 2007-08-30 Qualcomm Incorporated Rapid tuning in multimedia applications
JP4757080B2 (ja) 2006-04-03 2011-08-24 パナソニック株式会社 動き検出装置、動き検出方法、動き検出集積回路および画像符号化装置
US7672377B2 (en) 2006-04-21 2010-03-02 Dilithium Holdings, Inc. Method and system for video encoding and transcoding
CN101090491B (zh) 2006-06-16 2016-05-18 香港科技大学 用于视频压缩的增强的基于块的运动估计算法
KR20070120416A (ko) 2006-06-19 2007-12-24 엘지전자 주식회사 비디오 신호 디코딩 방법 및 장치, 비디오 신호 인코딩방법 및 장치
WO2007148909A1 (en) 2006-06-19 2007-12-27 Lg Electronics, Inc. Method and apparatus for processing a vedeo signal
US8250618B2 (en) 2006-09-18 2012-08-21 Elemental Technologies, Inc. Real-time network adaptive digital video encoding/decoding
DE102006043707A1 (de) 2006-09-18 2008-03-27 Robert Bosch Gmbh Verfahren zur Datenkompression in einer Videosequenz
US8213509B2 (en) 2006-10-06 2012-07-03 Calos Fund Limited Liability Company Video coding on parallel processing systems
US9319700B2 (en) 2006-10-12 2016-04-19 Qualcomm Incorporated Refinement coefficient coding based on history of corresponding transform coefficient values
US8565314B2 (en) 2006-10-12 2013-10-22 Qualcomm Incorporated Variable length coding table selection based on block type statistics for refinement coefficient coding
US8325819B2 (en) 2006-10-12 2012-12-04 Qualcomm Incorporated Variable length coding table selection based on video block type for refinement coefficient coding
US8599926B2 (en) 2006-10-12 2013-12-03 Qualcomm Incorporated Combined run-length coding of refinement and significant coefficients in scalable video coding enhancement layers
JP4999859B2 (ja) 2006-10-30 2012-08-15 日本電信電話株式会社 予測参照情報生成方法、動画像符号化及び復号方法、それらの装置、及びそれらのプログラム並びにプログラムを記録した記憶媒体
JP2008199587A (ja) 2007-01-18 2008-08-28 Matsushita Electric Ind Co Ltd 画像符号化装置、画像復号化装置および方法
JP5025286B2 (ja) 2007-02-28 2012-09-12 シャープ株式会社 符号化装置及び復号装置
TW200845758A (en) 2007-05-03 2008-11-16 Nat Univ Chung Cheng Fast intra coding algorithms for dynamic definition adjustment
KR101403341B1 (ko) 2007-03-28 2014-06-09 삼성전자주식회사 영상의 부호화, 복호화 방법 및 장치
CN101682769B (zh) 2007-04-12 2016-11-09 汤姆森特许公司 用于视频编码和解码的跳过-直接模式的取决于环境的合并的方法和装置
WO2008136178A1 (ja) 2007-04-26 2008-11-13 Panasonic Corporation 動き検出装置、動き検出方法、及び動き検出プログラム
JP2008283490A (ja) 2007-05-10 2008-11-20 Ntt Docomo Inc 動画像符号化装置、方法及びプログラム、並びに動画像復号化装置、方法及びプログラム
JP5801054B2 (ja) 2007-06-12 2015-10-28 トムソン ライセンシングThomson Licensing スライスデータ用のマルチパスビデオのシンタックス構造をサポートする方法及び装置
KR101495886B1 (ko) * 2007-07-19 2015-02-26 한국전자통신연구원 하향링크 프레임 생성 방법 및 셀 탐색 방법
KR102231772B1 (ko) 2007-10-16 2021-03-23 엘지전자 주식회사 비디오 신호 처리 방법 및 장치
KR101228020B1 (ko) 2007-12-05 2013-01-30 삼성전자주식회사 사이드 매칭을 이용한 영상의 부호화 방법 및 장치, 그복호화 방법 및 장치
CN101198064A (zh) 2007-12-10 2008-06-11 武汉大学 一种分辨率分层技术中的运动矢量预测方法
KR20090095012A (ko) 2008-03-04 2009-09-09 삼성전자주식회사 연속적인 움직임 추정을 이용한 영상 부호화, 복호화 방법및 장치
JP2009218873A (ja) 2008-03-11 2009-09-24 Nec Personal Products Co Ltd デジタル放送受信機、および、プログラム
WO2009115901A2 (en) 2008-03-19 2009-09-24 Nokia Corporation Combined motion vector and reference index prediction for video coding
BRPI0910477A2 (pt) 2008-04-11 2015-09-29 Thomson Licensing método e equipamento para predição de equiparação de gabarito (tmp) na codificação e decodificação de vídeo
PL2288163T3 (pl) 2008-05-07 2015-11-30 Lg Electronics Inc Sposób i urządzenie do dekodowania sygnału wideo
PT104083A (pt) 2008-06-02 2009-12-02 Inst Politecnico De Leiria Método para transcodificar imagens de vídeo h.264/avc em mpeg-2
KR101690291B1 (ko) 2009-02-05 2016-12-27 톰슨 라이센싱 적응형 모드 비디오 인코딩 및 디코딩 방법 및 장치
CN101931803B (zh) 2009-06-26 2013-01-09 华为技术有限公司 视频图像运动信息获取方法、装置及设备、模板构造方法
KR101452859B1 (ko) 2009-08-13 2014-10-23 삼성전자주식회사 움직임 벡터를 부호화 및 복호화하는 방법 및 장치
US9060176B2 (en) 2009-10-01 2015-06-16 Ntt Docomo, Inc. Motion vector prediction in video coding
JPWO2011046008A1 (ja) 2009-10-16 2013-03-04 シャープ株式会社 動画像符号化装置、および、動画像復号装置
TWI566586B (zh) 2009-10-20 2017-01-11 湯姆生特許公司 一序列形象的現時區塊之寫碼方法和重建方法
KR101459714B1 (ko) 2009-10-28 2014-11-13 에스케이텔레콤 주식회사 공간 분할을 이용한 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
KR101441905B1 (ko) 2009-11-18 2014-09-24 에스케이텔레콤 주식회사 후보 예측 움직임 벡터 집합 선택을 이용한 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
JPWO2011061880A1 (ja) 2009-11-19 2013-04-04 三菱電機株式会社 画像符号化装置、画像復号装置、画像符号化方法及び画像復号方法
US9288495B2 (en) 2009-11-24 2016-03-15 Sk Telecom Co., Ltd. Adaptive secondary prediction-based image encoding/decoding method, device and recording medium
WO2011064673A1 (en) 2009-11-30 2011-06-03 France Telecom Method of and apparatus for encoding video frames, method of and apparatus for decoding video frames
CN101860754B (zh) 2009-12-16 2013-11-13 香港应用科技研究院有限公司 运动矢量编码和解码的方法和装置
JP2013514718A (ja) 2009-12-17 2013-04-25 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 映像符号化の方法及び装置
US9036692B2 (en) 2010-01-18 2015-05-19 Mediatek Inc. Motion prediction method
EP2532159A1 (en) 2010-02-05 2012-12-12 Telefonaktiebolaget L M Ericsson (PUBL) Selecting predicted motion vector candidates
US9100649B2 (en) 2010-02-10 2015-08-04 Lg Electronics Inc. Method and apparatus for processing a video signal
US8995527B2 (en) 2010-02-19 2015-03-31 Qualcomm Incorporated Block type signalling in video coding
WO2011110039A1 (en) 2010-03-12 2011-09-15 Mediatek Singapore Pte. Ltd. Motion prediction methods
CN102210910B (zh) 2010-04-02 2013-02-13 重庆融海超声医学工程研究中心有限公司 一种超声换能器
KR101752418B1 (ko) 2010-04-09 2017-06-29 엘지전자 주식회사 비디오 신호 처리 방법 및 장치
KR101988327B1 (ko) * 2010-05-04 2019-06-12 엘지전자 주식회사 비디오 신호의 처리 방법 및 장치
US9124898B2 (en) * 2010-07-12 2015-09-01 Mediatek Inc. Method and apparatus of temporal motion vector prediction
HRP20231669T1 (hr) 2010-09-02 2024-03-15 Lg Electronics, Inc. Inter predikcija
US20120082228A1 (en) 2010-10-01 2012-04-05 Yeping Su Nested entropy encoding
US10104391B2 (en) 2010-10-01 2018-10-16 Dolby International Ab System for nested entropy encoding
JP2012109720A (ja) 2010-11-16 2012-06-07 Panasonic Corp 画像変換装置、画像再生装置及び画像変換方法
US8824558B2 (en) 2010-11-23 2014-09-02 Mediatek Inc. Method and apparatus of spatial motion vector prediction
US8976873B2 (en) 2010-11-24 2015-03-10 Stmicroelectronics S.R.L. Apparatus and method for performing error concealment of inter-coded video frames
US8711940B2 (en) 2010-11-29 2014-04-29 Mediatek Inc. Method and apparatus of motion vector prediction with extended motion vector predictor
EP2656610A4 (en) 2010-12-21 2015-05-20 Intel Corp SYSTEM AND METHOD FOR EXTENDED DMVD PROCESSING
US9049455B2 (en) 2010-12-28 2015-06-02 Panasonic Intellectual Property Corporation Of America Image coding method of coding a current picture with prediction using one or both of a first reference picture list including a first current reference picture for a current block and a second reference picture list including a second current reference picture for the current block
KR101929026B1 (ko) * 2011-01-07 2018-12-13 엘지전자 주식회사 영상 정보 부호화 방법 및 복호화 방법과 이를 이용한 장치
US20130301734A1 (en) * 2011-01-12 2013-11-14 Canon Kabushiki Kaisha Video encoding and decoding with low complexity
US9319716B2 (en) 2011-01-27 2016-04-19 Qualcomm Incorporated Performing motion vector prediction for video coding
US9066110B2 (en) * 2011-03-08 2015-06-23 Texas Instruments Incorporated Parsing friendly and error resilient merge flag coding in video coding
AU2011362447B2 (en) 2011-03-14 2015-09-24 Hfi Innovation Inc. Method and apparatus for deriving temporal motion vector prediction
US9648334B2 (en) 2011-03-21 2017-05-09 Qualcomm Incorporated Bi-predictive merge mode based on uni-predictive neighbors in video coding
US9143795B2 (en) 2011-04-11 2015-09-22 Texas Instruments Incorporated Parallel motion estimation in video coding
JP5837575B2 (ja) 2011-04-12 2015-12-24 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America 動画像符号化方法、動画像符号化装置、動画像復号化方法、動画像復号化装置、および動画像符号化復号化装置
JP5869564B2 (ja) 2011-05-24 2016-02-24 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America 画像符号化方法、画像符号化装置、画像復号方法、画像復号装置、および、画像符号化復号装置
ES2769378T3 (es) * 2011-05-27 2020-06-25 Sun Patent Trust Procedimiento de codificación de imágenes y aparato de codificación de imágenes
EP2723076A4 (en) 2011-06-14 2015-03-04 Samsung Electronics Co Ltd METHOD AND APPARATUS FOR ENCODING MOVEMENT INFORMATION, AND METHOD AND APPARATUS FOR DECODING THE SAME
US9866859B2 (en) 2011-06-14 2018-01-09 Texas Instruments Incorporated Inter-prediction candidate index coding independent of inter-prediction candidate list construction in video coding
US9131239B2 (en) 2011-06-20 2015-09-08 Qualcomm Incorporated Unified merge mode and adaptive motion vector prediction mode candidates selection
CN105430390B (zh) 2011-06-30 2017-04-12 Jvc建伍株式会社 图像解码装置、图像解码方法、接收装置及接收方法
WO2013001803A1 (ja) 2011-06-30 2013-01-03 株式会社Jvcケンウッド 画像符号化装置、画像符号化方法、画像符号化プログラム、画像復号装置、画像復号方法および画像復号プログラム
AU2012323631B2 (en) 2011-10-11 2015-09-17 Mediatek Inc. Method and apparatus of motion and disparity vector derivation for 3D video coding and HEVC
JP5870047B2 (ja) * 2013-01-08 2016-02-24 住友ゴム工業株式会社 空気入りタイヤ

Also Published As

Publication number Publication date
PL3410718T3 (pl) 2020-06-01
US20190124335A1 (en) 2019-04-25
US11570444B2 (en) 2023-01-31
ES2769378T8 (es) 2022-05-19
EP3614665A1 (en) 2020-02-26
TR201819396T4 (tr) 2019-01-21
CN103518376B (zh) 2017-08-22
KR20140026429A (ko) 2014-03-05
EP4007276B1 (en) 2023-07-05
TW201311008A (zh) 2013-03-01
US10721474B2 (en) 2020-07-21
US20190124334A1 (en) 2019-04-25
EP4213483A1 (en) 2023-07-19
CA2834123A1 (en) 2012-12-06
EP3410718B8 (en) 2020-04-01
DK2717575T3 (en) 2019-01-28
US20210360257A1 (en) 2021-11-18
CN103518376A (zh) 2014-01-15
BR112013027344A2 (pt) 2017-01-17
US20180295366A1 (en) 2018-10-11
CA3062382C (en) 2023-07-25
CA3197949A1 (en) 2012-12-06
EP2717575A4 (en) 2014-10-15
US11115664B2 (en) 2021-09-07
US20130010869A1 (en) 2013-01-10
ES2959039T3 (es) 2024-02-19
US20170163987A1 (en) 2017-06-08
TWI562612B (es) 2016-12-11
BR112013027344B1 (pt) 2022-05-10
EP4007276A1 (en) 2022-06-01
PL2717575T3 (pl) 2019-03-29
US9838695B2 (en) 2017-12-05
ES2769378T3 (es) 2020-06-25
EP3614665B1 (en) 2022-03-23
EP2717575B1 (en) 2018-10-10
JP6089312B2 (ja) 2017-03-08
US9615107B2 (en) 2017-04-04
ES2703799T3 (es) 2019-03-12
BR112013027344A8 (pt) 2017-07-11
US10034001B2 (en) 2018-07-24
US20200288142A1 (en) 2020-09-10
US20230128151A1 (en) 2023-04-27
JP5865366B2 (ja) 2016-02-17
CA2834123C (en) 2020-02-11
WO2012164880A1 (ja) 2012-12-06
PL4007276T3 (pl) 2023-12-11
PL3614665T3 (pl) 2022-07-04
JPWO2012164880A1 (ja) 2015-02-23
US10595023B2 (en) 2020-03-17
EP2717575A1 (en) 2014-04-09
MX2013012132A (es) 2013-10-30
US11979582B2 (en) 2024-05-07
US20180063533A1 (en) 2018-03-01
JP2016040966A (ja) 2016-03-24
KR101896734B1 (ko) 2018-09-07
CA3062382A1 (en) 2012-12-06
EP3410718A1 (en) 2018-12-05
US10708598B2 (en) 2020-07-07
EP3410718B1 (en) 2019-11-27
MY173463A (en) 2020-01-26

Similar Documents

Publication Publication Date Title
ES2911670T3 (es) Aparato, procedimiento y programa para decodificar imágenes en movimiento
JP7253709B2 (ja) 動画像復号方法及び動画像符号化方法
ES2959874T3 (es) Procedimiento de codificación de imágenes, aparato de codificación de imágenes, procedimiento de decodificación de imágenes, aparato de decodificación de imágenes
ES2950029T3 (es) Método de codificación de imágenes, dispositivo de codificación de imágenes, método de decodificación de imágenes, dispositivo de decodificación de imágenes y dispositivo de codificación/decodificación de imágenes
ES2781868T3 (es) Procedimiento de decodificación de imágenes, procedimiento de codificación de imágenes, dispositivo de decodificación de imágenes, dispositivo de codificación de imágenes y dispositivo de codificación/decodificación de imágenes
ES2779226T3 (es) Procedimiento de descodificación de vídeo y dispositivo de descodificación de vídeo
ES2780186T3 (es) Procedimiento de codificación de imágenes, procedimiento de decodificación de imágenes, dispositivo de codificación de imágenes, y dispositivo de decodificación de imágenes
ES2780188T3 (es) Método de codificación de imagen, método de decodificación de imagen, aparato de codificación de imagen y aparato de decodificación de imagen
ES2685945T3 (es) Procedimiento de codificación de video de movimiento, y aparato de codificación de video de movimiento
ES2687685T3 (es) Procedimiento de codificación de instantáneas en movimiento, dispositivo de codificación de instantáneas en movimiento, procedimiento de decodificación de instantáneas en movimiento, dispositivo de decodificación de instantáneas en movimiento y dispositivo de codificación-decodificación de instantáneas en movimiento
ES2728146T3 (es) Procedimientos y aparato de codificación y decodificación de vídeo utilizando predicción temporal de vector de movimiento
JP5893570B2 (ja) 画像符号化方法および画像復号化方法
JP6551894B2 (ja) 動画像復号化方法および動画像復号化装置