ES2698560T3 - Método de codificación de vídeo y codificador de vídeo - Google Patents

Método de codificación de vídeo y codificador de vídeo Download PDF

Info

Publication number
ES2698560T3
ES2698560T3 ES16206474T ES16206474T ES2698560T3 ES 2698560 T3 ES2698560 T3 ES 2698560T3 ES 16206474 T ES16206474 T ES 16206474T ES 16206474 T ES16206474 T ES 16206474T ES 2698560 T3 ES2698560 T3 ES 2698560T3
Authority
ES
Spain
Prior art keywords
motion vector
blocks
various
unit
processing
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
ES16206474T
Other languages
English (en)
Inventor
Toshiyasu Sugio
Takahiro Nishi
Youji Shibahara
Kyoko Tanikawa
Hisao Sasai
Toru Matsunobu
Kengo Terada
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.)
Tagivan II LLC
Original Assignee
Tagivan II LLC
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=48191681&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=ES2698560(T3) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Tagivan II LLC filed Critical Tagivan II LLC
Application granted granted Critical
Publication of ES2698560T3 publication Critical patent/ES2698560T3/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/117Filters, e.g. for pre-processing or post-processing
    • 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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • 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
    • 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/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
    • 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

Abstract

Un método de codificación de imágenes en movimiento para codificar un bloque actual para generar un flujo de bits, usando un predictor de vector de movimiento utilizado cuando se codifica un vector de movimiento del bloque actual, comprendiendo el método: (a) obtener (S210) uno o más candidatos a predictor de vector de movimiento que son candidatos para el predictor de vector de movimiento en base a vectores de movimiento de diversos primeros bloques adyacentes al bloque actual en el lado izquierdo y vectores de movimiento de diversos segundos bloques adyacentes al bloque actual en el lado superior; (b) seleccionar (S240) el predictor de vector de movimiento a utilizar para codificar el vector de movimiento del bloque actual de entre el uno o más candidatos a predictor de vector de movimiento; y (c) codificar (S254) un índice para identificar el predictor de vector de movimiento seleccionado, y añadir el índice codificado al flujo de bits; caracterizado porque la etapa (a) incluye: (i) determinar (S620) si los diversos primeros bloques adyacentes incluyen uno o más bloques inter-previstos; (ii) buscar (S530) un vector de movimiento a cambiar de escala mediante un procesamiento de cambio de escala de entre los diversos vectores de movimiento de los diversos segundos bloques adyacentes si se determina en la etapa (i) que los diversos primeros bloques adyacentes no incluyen un bloque inter-previsto; y (iii) generar (S530) un candidato a predictor de vector de movimiento ejecutando el procesamiento de cambio de escala en el vector de movimiento obtenido en la etapa (ii), si se obtiene un vector de movimiento en la etapa (ii).

Description

DESCRIPCIÓN
Método de codificación de vídeo y codificador de vídeo
La presente invención se refiere un método de codificación de imágenes en movimiento y a un aparato de codificación de imágenes en movimiento.
La descripción describe tanto la técnica de codificación de imagen como una técnica de decodificación de imagen correspondiente para proporcionar un mejor entendimiento de la invención. Sin embargo, la invención está restringida a la técnica de codificación de imagen.
En el procesamiento de codificación de imágenes en movimiento, en general, la cantidad de información se reduce utilizando redundancia en la dirección espacial y en la dirección temporal en las que se mueven las imágenes en movimiento. En este punto, en general, se usa la transformación a un dominio de frecuencia como un método que utiliza redundancia en la dirección espacial. Además, el procesamiento de codificación de predicción inter-imagen (en lo sucesivo, denominado como “inter predicción”) se utiliza como método que utiliza redundancia en la dirección temporal. En el procesamiento de codificación de inter predicción, cuando se codifica una imagen, se usa una imagen codificada que aparece antes o después de una imagen actual a codificarse en el orden de tiempo de visualización como una imagen de referencia. Un vector de movimiento se deriva realizando detección de movimiento en la imagen actual con relación a la imagen de referencia. A continuación, se elimina la redundancia en la dirección temporal calculando una diferencia entre datos de imagen de la imagen actual y datos de imagen previstos obtenidos mediante compensación de movimiento basándose en el vector de movimiento derivado.
[Lista de referencias]
[Literatura no de patente]
[NPL 1] ITU-T H.264 “8.4.1 Derivation process for motion vector components and reference indices” marzo de 2010, Expresiones (8-174) y (8-175)
[n Pl 2] JCTVC-F803_d2 “w D4: Working Draft 4 of High-Efficiency Video Coding”, Joint Collaborative Team on Video Coding (JCT-VC) de ITU-T SG16 WP3 e ISO/IEC JTC1/SC29/WG11 6th Meeting, Torino, IT, 14 a 22 de julio de 2011
[Sumario de la invención]
[Problema técnico]
Sin embargo, existe una demanda para que la técnica convencional anterior consiga un aumento en la velocidad de procesamiento al codificar y decodificar una imagen en movimiento usando inter predicción.
En vista de esto, un objetivo de la presente invención es proporcionar un método de codificación de imágenes en movimiento y un método de decodificación de imágenes en movimiento para permitir un aumento en la velocidad de procesamiento de codificación y decodificación de una imagen en movimiento usando inter predicción.
[Solución al problema]
Un método de codificación de imágenes en movimiento según un aspecto de la presente invención es un método de decodificación de imágenes en movimiento para decodificar un bloque actual incluido en un flujo de bits, usando un predictor de vector de movimiento utilizado cuando se decodifica un vector de movimiento del bloque actual, incluyendo el método: (a) obtener uno o más candidatos a predictor de vector de movimiento que son candidatos para el predictor de vector de movimiento; (b) decodificar un índice codificado para identificar uno de entre el uno o más candidatos a predictor de vector de movimiento, añadiéndose el índice codificado al flujo de bits; y (c) seleccionar, en base al índice decodificado, el predictor de vector de movimiento a usar para decodificar el bloque actual de entre el uno o más candidatos a predictor de vector de movimiento, en el que la etapa (a) incluye: (a1) generar un candidato a predictor de vector de movimiento, en base a diversos vectores de movimiento de diversos primeros bloques adyacentes al bloque actual en una primera dirección; y (a2) generar un candidato a predictor de vector de movimiento, en base a diversos vectores de movimiento de diversos segundos bloques adyacentes al bloque actual en una segunda dirección, y la etapa (a2) incluye: (i) determinar si los diversos primeros bloques adyacentes incluyen uno o más bloques inter-previstos; y (ii) buscar un vector de movimiento para hacerlo disponible mediante un procesamiento de cambio de escala de entre los diversos vectores de movimiento de los diversos segundos bloques adyacentes cuando se determina en la etapa (i) que los diversos primeros bloques adyacentes no incluyen un bloque inter-previsto, y generar, cuando se obtiene el vector de movimiento en la búsqueda, uno de entre el uno o más candidatos a predictor de vector de movimiento ejecutando el procesamiento de cambio de escala en el vector de movimiento obtenido en la búsqueda.
[Efectos ventajosos de la invención]
Se proporciona un método de codificación de imágenes en movimiento y un método de decodificación de imágenes en movimiento para permitir un aumento en la velocidad de procesamiento de codificación y decodificación de una imagen en movimiento usando inter predicción.
[Breve descripción de los dibujos]
[FIG. 1]
La Figura 1 es un diagrama conceptual que ilustra una relación entre un vector de movimiento, un predictor de vector de movimiento y una diferencia de vector de movimiento que se usan para generar una imagen prevista.
[Fig. 2]
La Figura 2 es un diagrama de bloques que ilustra un ejemplo de una configuración de un aparato de codificación de imágenes en movimiento.
[Fig. 3]
La Figura 3 es un diagrama de flujo que ilustra un ejemplo de un método de codificación de imágenes en movimiento.
[Fig. 4A]
La Figura 4A ilustra una relación entre unidades de bloque de codificación CU (unidad de codificación) y unidades de bloque de predicción PU (unidad de predicción).
[Fig. 4B]
La Figura 4B ilustra una relación entre un árbol de unidad de codificación y pred_type.
[Fig. 4C]
La Figura 4C ilustra una tabla de interpretación para valores de pred_type.
[Fig. 5]
La Figura 5 ilustra una relación posicional entre un bloque actual a predecirse y bloques adyacentes al bloque actual.
[Fig. 6A]
La Figura 6A ilustra una lista de candidatos mvpListL0 de predictores de vector de movimiento.
[Fig. 6B]
La Figura 6B ilustra una lista de candidatos mvpListL1 de predictores de vector de movimiento.
[Fig. 7]
La Figura 7 es un diagrama conceptual que ilustra una relación entre candidatos de predictor de vector de movimiento incluidos en una lista de candidatos mvpListLX.
[Fig. 8]
La Figura 8 es un diagrama de flujo que ilustra un procedimiento de creación de una lista de candidatos mvpListLX de acuerdo con el ejemplo comparativo.
[Fig. 9A]
La Figura 9A es un diagrama de flujo que ilustra un procedimiento de procesamiento detallado de la etapa S410 en la Figura 8.
[Fig. 9B]
La Figura 9B es un diagrama de flujo que ilustra un procedimiento de procesamiento detallado de la etapa S430 en la Figura 8.
[Fig. 10A]
La Figura 10A es un diagrama de flujo que ilustra un procedimiento detallado de la etapa S510 en la Figura 8.
[Fig. 10B]
La Figura 10B es un diagrama de flujo que ilustra un procedimiento detallado de la etapa S530 en la Figura 8.
[Fig. 11]
La Figura 11 es un diagrama de flujo que ilustra un procedimiento detallado de la etapa S240 en la Figura 3.
[Fig. 12]
La Figura 12 es un diagrama de flujo que ilustra un procedimiento detallado de la etapa S250 en la Figura 3.
[Fig. 13]
La Figura 13 ilustra un problema de procesamiento de generación de mvpListLX.
[Fig. 14]
La Figura 14 ilustra un método para generar mvpListLX usado mediante un aparato de codificación de imágenes en movimiento de acuerdo con la realización 1.
[Fig. 15]
La Figura 15 es un diagrama de bloques que ilustra una configuración de un aparato de decodificación de imágenes en movimiento de acuerdo con la realización 2.
[Fig. 16]
La Figura 16 es un diagrama de flujo que ilustra un método de decodificación de imágenes en movimiento de acuerdo con la realización 2.
[Fig. 17]
La Figura 17 es un diagrama de flujo que ilustra un procedimiento de creación de una lista de candidatos mvpListLX en la realización 2.
[Fig. 18]
La Figura 18 ilustra secuencialmente un procedimiento de creación de la lista de candidatos mvpListLX en la realización 2.
[Fig. 19]
La Figura 19 ilustra un resultado de la determinación obtenido en las etapas S620 y S820 cuando un bloque actual a predecirse es PU0.
[Fig. 20]
La Figura 20 ilustra un resultado de la determinación obtenido en las etapas S620 y S820 cuando un bloque actual a predecirse es PU1.
[Fig. 21]
La Figura 21 es un diagrama de flujo parcial que ilustra un procedimiento de creación de la lista de candidatos mvpListLX en la variación 1.
[Fig. 22]
La Figura 22 es un diagrama de flujo que ilustra un procedimiento de creación de la lista de candidatos mvpListLX en la variación 2.
[Fig. 23]
La Figura 23 ilustra secuencialmente un procedimiento de creación de la lista de candidatos mvpListLX en la variación 2.
[Fig. 24]
La Figura 24 muestra una configuración global de un sistema de suministro de contenido para implementar servicios de distribución de contenido.
[Fig. 25]
La Figura 25 muestra una configuración global de un sistema de difusión digital.
[Fig. 26]
La Figura 26 muestra un diagrama de bloques que ilustra un ejemplo de una configuración de una televisión.
[Fig. 27]
La Figura 27 muestra 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. 28]
La Figura 28 muestra un ejemplo de una configuración de un medio de grabación que es un disco óptico.
[Fig. 29A]
La Figura 29A muestra un ejemplo de un teléfono celular.
[Fig. 29B]
La Figura 29B es un diagrama de bloques que muestra un ejemplo de una configuración de un teléfono celular. [Fig. 30]
La Figura 30 ilustra una estructura de datos multiplexados.
[Fig. 31]
La Figura 31 muestra esquemáticamente cómo cada flujo se multiplexa en datos multiplexados.
[Fig. 32]
La Figura 32 muestra cómo se almacena un flujo de vídeo en el flujo de paquetes de PES en más detalle.
[Fig. 33]
La Figura 33 muestra una estructura de paquetes de TS y paquetes de origen en los datos multiplexados.
[Fig. 34]
La Figura 34 muestra una estructura de datos de una PMT.
[Fig. 35]
La Figura 35 muestra una estructura interna de información de datos multiplexados.
[Fig. 36]
La Figura 36 muestra una estructura interna de información de atributo de flujo.
[Fig. 37]
La Figura 37 muestra etapas para identificar datos de vídeo.
[Fig. 38]
La Figura 38 muestra un ejemplo de una configuración de un circuito integrado para implementar el método de codificación de imágenes en movimiento y el método de decodificación de imágenes en movimiento de acuerdo con cada una de las realizaciones.
[Fig. 39]
La Figura 39 muestra una configuración para conmutar entre frecuencias de accionamiento.
[Fig. 40]
La Figura 40 muestra etapas para identificar datos de vídeo y conmutar entre frecuencias de accionamiento.
[Fig. 41]
La Figura 41 muestra un ejemplo de una tabla de correspondencia en la que las normas de datos de vídeo están asociadas con frecuencias de accionamiento.
[Fig. 42A]
La Figura 42A es un diagrama que muestra un ejemplo de una configuración para compartir un módulo de una unidad de procesamiento de señal.
[Fig. 42B]
La Figura 42B es un diagrama que muestra otro ejemplo de una configuración para compartir un módulo de la unidad de procesamiento de señal.
[Descripción de las realizaciones]
(Bases de formación de conocimiento subyacente de la presente invención)
En H.264, se usan tres tipos de imágenes, en concreto, imagen I, imagen P e imagen B para comprimir la cantidad de información.
Una imagen I no se codifica mediante procesamiento de codificación de inter predicción. Específicamente, una imagen I se codifica mediante procesamiento de codificación de predicción intra-imagen (en lo sucesivo, denominado como intra-predicción). Una imagen P se codifica mediante codificación por inter predicción haciendo referencia una imagen ya codificada que aparece antes o después de una imagen actual a codificarse en el orden de tiempo de visualización. Una imagen B se codifica mediante codificación por inter predicción haciendo referencia a dos imágenes ya codificadas que aparecen antes (por ejemplo, en una dirección de predicción 0) o después (por ejemplo, en una dirección de predicción 1) de la imagen actual en el orden de tiempo de visualización.
Se realizan diversas consideraciones con respecto a un método de derivación de vector de movimiento usado para procesamiento de codificación de inter predicción en una imagen en movimiento. Ejemplos del método de derivación de vector de movimiento incluyen los métodos a continuación.
El primer método de derivación de vector de movimiento es un modo directo de H.264 para derivar directamente un vector de detección de movimiento (vector de movimiento) a partir de datos codificados (decodificados), sin obtener información desde una cadena de código.
El segundo método de derivación de vector de movimiento es un método para derivar un vector de movimiento v (vector de movimiento) a usarse para inter predicción añadiendo una diferencia de vector de movimiento d obtenida desde una cadena de código a un predictor de vector de movimiento p (véanse las expresiones (8-174) y (8-175) en NPL 1, por ejemplo). Debería observarse que la diferencia de vector de movimiento d es un vector de diferencia entre el vector de movimiento v y el predictor de vector de movimiento p.
En este punto, la Figura 1 es un diagrama conceptual que ilustra una relación entre el vector de movimiento v (mvLX), el predictor de vector de movimiento p (mvpLX), y la diferencia de vector de movimiento d (mvdLX) en el segundo método de derivación de vector de movimiento de H.264. Debería observarse que el cálculo se realiza por separado para los primeros componentes (por ejemplo, componentes horizontales) y los segundos componentes (por ejemplo, componentes verticales) en el ejemplo ilustrado en la Figura 1.
En el momento de la decodificación, el vector de movimiento mvLX se reconstruye ejecutando el cálculo de las expresiones 1 y 2 a continuación para respectivos componentes.
Para un primer componente: mvLX [0] = mvpLX [0] mvdLX [0] ... (Expresión 1)
Para un segundo componente: mvLX [1] = mvpLX [1] mvdLX [1] ... (Expresión 2)
En el momento de codificación, en primer lugar, se determina un vector de movimiento mvLX (mvLX [0], mvLX [1]) a través de búsqueda en vista de eficacia de codificación (y también refldxLX para identificar una imagen de referencia). Adicionalmente, se realizan los cálculos representados mediante las expresiones 3 y 4 a continuación para obtener una diferencia de vector de movimiento mvdLX que es información necesaria para reconstruir el vector de detección de movimiento mvLX.
Para un primer componente: mvdLX [0] = mvLX [0] - mvpLX [0] ... (Expresión 3)
Para un segundo componente: mvdLX [1] = mvLX [1] - mvpLX [1] ... (Expresión 4)
En el momento de codificación, se codifica la diferencia de vector de movimiento bidimensional mvdLX (mvdLX [0], mvdLX [1]) obtenida mediante los cálculos anteriores.
Lo siguiente es una descripción de un método de codificación de imágenes en movimiento y un aparato de codificación de imágenes en movimiento de acuerdo con el ejemplo comparativo, basándose en las Figuras 2 a 5.
[EJ1: Configuración del aparato de codificación de imágenes en movimiento de acuerdo con el ejemplo comparativo] La Figura 2 es un diagrama de bloques que ilustra un ejemplo de una configuración del aparato de codificación de imágenes en movimiento de acuerdo con el ejemplo comparativo.
Como se ilustra en la Figura 2, un aparato de codificación de imágenes en movimiento 100 incluye una unidad de diferencia 101, una unidad de transformación 102, una unidad de cuantificación 103, una unidad de codificación por entropía 110, una unidad de cuantificación inversa 104, una unidad de transformación inversa 105, una unidad de adición 106, una memoria 109, una unidad de intra/inter predicción 107 y una unidad de control de codificación 108. La unidad de diferencia 101 genera una señal residual restando una señal de imagen prevista de una señal de imagen de entrada para cada bloque. La unidad de diferencia 101 emite la señal residual a la unidad de transformación 102.
La unidad de transformación 102 transforma la señal residual de un dominio de imagen en un dominio de frecuencia. La unidad de cuantificación 103 realiza procesamiento de cuantificación en la señal residual que se ha transformado en el dominio de la frecuencia. La unidad de cuantificación 103 emite la señal residual cuantificada que es una señal residual en la que se ha realizado procesamiento de cuantificación a la unidad de cuantificación inversa 104 y a la parte de codificación por entropía 110.
La unidad de codificación por entropía 110 realiza procesamiento de codificación por entropía en la señal residual cuantificada, una señal de control de decodificación, y similares, para generar un flujo de bits codificado. Una señal de control de decodificación incluye una bandera de dirección de predicción, información de tipo de imagen, un parámetro de control, tal como una diferencia de vector de movimiento d, por ejemplo.
La unidad de cuantificación inversa 104 realiza procesamiento de cuantificación inversa en la señal residual cuantificada en la que se ha realizado procesamiento de cuantificación mediante la unidad de cuantificación 103. La unidad de transformación inversa 105 transforma la señal residual cuantificada (señal residual) en la que se ha realizado procesamiento de cuantificación inversa desde el dominio de la frecuencia en el dominio de la imagen, y emite una señal residual reconstruida.
La unidad de adición 106 añade una señal residual reconstruida y una señal de imagen prevista para cada bloque a codificarse, generando de esta manera una señal de imagen reconstruida.
Una señal de imagen reconstruida se almacena en una base fotograma a fotograma en la memoria 109.
La unidad de intra/inter predicción 107 almacena una señal de imagen reconstruida en una memoria en unidades predeterminadas, tales como unidades de fotograma y unidades de bloque. Además, la unidad de intra/inter predicción 107 genera una señal de imagen prevista (un valor de píxel derivado basándose en una señal de imagen reconstruida y un vector de movimiento), basándose en una instrucción desde la unidad de control de codificación 108 descrita a continuación. La unidad de intra/inter predicción 107 emite la señal de imagen prevista generada a la unidad de diferencia 101 y a la unidad de adición 106.
La unidad de control de codificación 108 determina qué parámetro de control va a usarse para codificar una imagen (señal de imagen de entrada), después de hacer pruebas. La unidad de control de codificación 108 emite, de entre diversos parámetros de control, un parámetro de control (información de control de codificación) necesario para codificación a la unidad de intra/inter predicción 107. Más específicamente, por ejemplo, como se muestra mediante las líneas discontinúas en la Figura 1, la unidad de control de codificación 108 obtiene un flujo de bits codificado, determina diversos parámetros de control (por ejemplo, para distinguir entre inter predicción e intra predicción, etc.) de modo que se acorta la longitud de bits del flujo de bits codificado obtenido.
Además, la unidad de control de codificación 108 extrae un parámetro de control (información de control de decodificación) necesaria para decodificación a partir de los diversos parámetros de control, y emite el parámetro extraído a la unidad de codificación por entropía 110. Ejemplos de información de control de decodificación incluyen pred_type, mvp_idx_lx, mvdLX y similares. Para cada unidad de bloque de codificación CU, se establece pred_type, y se especifica un modo de predicción (para distinguir entre inter predicción e intra predicción), y la forma particionada de una unidad de bloque de codificación CU (tipo de particionamiento). Los detalles de pred_type se describen a continuación. Un índice de predictor de vector de movimiento para designar un candidato a usarse como un predictor de vector de movimiento de una lista de candidatos se indica mediante mvp_idx_lx. Una diferencia de vector de movimiento se indica mediante mvdLX, como se ha mencionado anteriormente.
[EJ2: Operación de procesamiento del aparato de codificación de imágenes en movimiento de acuerdo con el ejemplo comparativo]
A continuación, se encuentra una descripción del método de codificación de imágenes en movimiento ejecutado mediante el aparato de codificación de imágenes en movimiento 100 anteriormente descrito, basándose en las Figuras 3 y 4A.
La Figura 3 es un diagrama de flujo que muestra un procedimiento de procesamiento de un método para generar una imagen prevista mediante codificación por inter predicción (método de codificación de imágenes en movimiento) ejecutado mediante el aparato de codificación de imágenes 100 en movimiento anteriormente descrito.
Debería observarse que una imagen prevista se genera por unidad de bloque de predicción PU. En este punto, se proporciona una descripción del caso donde el tamaño de una unidad de bloque de predicción PU es menor que una unidad de bloque de codificación CU, como un ejemplo.
La Figura 4A ilustra una relación entre la unidad de bloque de predicción PU y la unidad de bloque de codificación CU. En la Figura 4A, el fotograma de línea continua indica la unidad de bloque de codificación CU, y el fotograma de línea discontinua indica la unidad de bloque de predicción PU. El tipo de pieza (imagen) es B. Una pieza se divide en cuatro bloques que tienen el mismo tamaño en la Figura 4A. Adicionalmente, el bloque superior derecho se divide adicionalmente en cuatro. Estos bloques son unidades de bloque de codificación CU.
Adicionalmente, en la Figura 4A, las unidades de bloque de codificación CU están numeradas en el orden 0, 1, 2 y así sucesivamente para cada nivel de profundidad de un árbol jerárquico denominado “árbol de codificación”. Los números corresponden al orden de procesamiento de codificación. Específicamente, CU0, CU10 a CU13, CU2 y CU3 se proporcionan al bloque superior izquierdo, los bloques superiores derechos, el bloque inferior izquierdo y el bloque inferior derecho, respectivamente.
La Figura 4B ilustra una relación entre pred_type y un árbol de unidad de codificación obtenida a partir de una cadena de código basándose en sintaxis de árbol de codificación, con respecto a las unidades de bloque de codificación CU ilustradas en la Figura 4A. Lo que indica pred_type puede determinarse de acuerdo con la tabla ilustrada en la Figura 4C, por ejemplo.
La Figura 4C es una tabla de interpretación que muestra valores de pred_type. Por ejemplo, si el tipo de corte es P o B, y el valor de pred_type es 2, el modo de predicción de la unidad de bloque de codificación CU es MODO_INTER, y la forma particionada de la unidad de bloque de codificación CU es N x 2N. La unidad de bloque de codificación CU12 en la Figura 4A corresponde a esta unidad, por ejemplo. Además, por ejemplo, si el tipo de corte es P o B, y el valor de pred_type es 8, el modo de predicción de la unidad de bloque de codificación CU es MODO_INTRA, y la forma particionada de la unidad de bloque de codificación CU es 2N x 2N. La unidad de bloque de codificación CU0 en la Figura 4A corresponde a esta unidad, por ejemplo.
Lo siguiente es una descripción del caso donde un bloque actual a codificarse es CU12, como un ejemplo. Como se ha mencionado anteriormente, el modo de predicción del bloque actual CU12 es MODO_INTER, y el bloque actual CU12 incluye dos unidades de bloque de predicción PU, en concreto, PU0 y PU1 (N x 2N). Debería observarse que en la Figura 4B, el área encerrada por la línea discontinua de un punto tiene información que está ya “disponible” en el punto en el tiempo cuando se codifica la unidad de bloque de predicción PU0 del bloque actual CU12. Como se ilustra en la Figura 4B, en el ejemplo comparativo, las unidades de bloque de codificación CU2 y CU3 no están “disponibles” en el punto en el tiempo cuando se codifica el bloque actual CU12.
Ahora haciendo referencia a la Figura 3, en la etapa S200, la unidad de control de codificación 108 deriva un vector de movimiento mvLX de un bloque actual a predecirse mediante detección de movimiento.
En la etapa S210, la unidad de control de codificación 108 genera listas de candidatos de predictor de vector de movimiento (mvpListLX) para cada unidad de bloque de predicción (unidad de PU) incluidas en un bloque actual a codificarse (Curr_Blk) (etapa de generación de mvpListLX). Debería observarse que la lista de candidatos mvpListLX se genera para cada unidad de bloque de predicción PU. Además, se generan dos listas de candidatos, en concreto, una lista de candidatos mvpListL0 que corresponde a la dirección de predicción 0 y una lista de candidatos mvpListL1 que corresponde a la dirección de predicción 1 para cada unidad de bloque de predicción PU.
La Figura 5 ilustra la relación posicional de un bloque actual a predecirse (currentPU, unidad de bloque de predicción actual PU) y bloques adyacentes. En la Figura 5, diversos bloques adyacentes se dividen en dos grupos de bloques A y B (en lo sucesivo, denominados como “grupo A” y “grupo B” por brevedad en los dibujos, según sea apropiado). El grupo de bloques A incluye un bloque adyacente A0 a la izquierda del bloque actual, y un bloque adyacente A1 en la parte inferior izquierda del bloque actual. El grupo de bloques B incluye un bloque adyacente B2 en la parte superior izquierda del bloque actual, un bloque adyacente B1 en el lado superior del bloque actual, y un bloque adyacente B0 en la parte superior derecha del bloque actual.
Debería observarse que en la Figura 4A, cuando la unidad de bloque de predicción PU0 incluida en la unidad de bloque de codificación CU12 es un bloque actual a predecirse, un bloque que corresponde al bloque adyacente A1 es la unidad de bloque de predicción PU3 incluida en la unidad de bloque de codificación CU0, y el bloque que corresponde al bloque adyacente A0 es la unidad de bloque de predicción PU incluida en la unidad de bloque de codificación CU2.
Se proporciona una descripción de listas de candidatos de predictor de vector de movimiento generadas mediante la unidad de control de codificación 108, con referencia a las Figuras 6A y 6B. La Figura 6A ilustra la lista de candidatos mvpListL0 para codificar predictores de vector de movimiento en la dirección de predicción 0. La Figura 6B ilustra la lista de candidatos mvpListL1 para codificar predictores de vector de movimiento en la dirección de predicción 1. N es un índice que indica un grupo de bloques.
Las Figuras 6A y 6B muestran el caso donde el tamaño de las listas de candidatos es 2, y se deriva un candidato a partir de cada uno de los grupos de bloques A y B ilustrados en la Figura 5. Debería observarse que no se pretende que se excluya el caso donde no se derivan candidatos a partir de los grupos de bloques A y B. Se proporcionará a continuación una descripción detallada de un método para derivar las listas de candidatos.
Ahora, haciendo referencia de vuelta a la Figura 3, en la etapa S230, la unidad de control de codificación 108 realiza procesamiento de actualización en mvpListLX (etapa de actualización). La unidad de control de codificación 108 añade una entrada, duplica un candidato incluido en una lista, borra un candidato y similares, como el procesamiento de actualización, por ejemplo. La regla para el procesamiento de actualización se comparte entre el aparato de codificación de imágenes en movimiento 100 y un aparato de decodificación de imágenes en movimiento 300 descritos a continuación.
En la etapa S240, la unidad de control de codificación 108 determina la información de control de codificación que incluye el valor de mvp_idx_lx para cada unidad de bloque de predicción PU (etapa de determinación).
“m vp jd x jx ” es un índice de predictor de vector de movimiento que indica un candidato de predictor de vector de movimiento para codificar un vector de movimiento en la dirección de predicción X. En este punto, la Figura 7 ilustra una relación entre cada candidato en la lista de candidatos de predictor de vector de movimiento mvpListLX, el vector de movimiento mvLX, y la diferencia de vector de movimiento mvdLX. Debería observarse que la Figura 7 muestra mvpListLX [n_mvp_idx] que no se determina para que sea el predictor de vector de movimiento mvpLX, por referencia. El vector de movimiento mvLX es un vector de movimiento derivado a través de detección de movimiento mediante la unidad de control de codificación 108 en la etapa S200. En la presente realización, la unidad de control de codificación 108 determina, como un predictor de vector de movimiento, uno de dos candidatos de predictor de vector de movimiento que tiene la menor diferencia desde el vector de movimiento mvLX. El valor de mvp_idx de mvpListLX [mvp_idx] se determina para que sea un valor de índice mvp_idx_1X.
En la etapa S250, la unidad de intra/inter predicción 107 realiza intra/inter codificación en cada unidad de bloque de predicción PU, basándose en información de control de codificación (etapa de predicción).
[EJ2-1: Método para generar lista de candidatos mvpListLX de acuerdo con el ejemplo comparativo]
A continuación, se encuentra una descripción detallada de un método para generar la lista de candidatos de predictor de vector de movimiento mvpListLX, con referencia a las Figuras 8 a 10B.
La Figura 8 es un diagrama de flujo que muestra un procedimiento de procesamiento detallado de la etapa de generación S210 de mvpListLX. La unidad de control de codificación 108 inicializa las banderas (availableLXA, isScaled, availableLXB, y similares) a 0, antes del procesamiento a continuación.
En primer lugar, la unidad de control de codificación 108 realiza el procesamiento de generación de un primer candidato para mvpListLX (S400). En la etapa S400, la unidad de control de codificación 108 ejecuta el procesamiento para derivar un candidato a partir de los bloques A0 y A1 incluidos en el grupo de bloques A. Debería observarse que puede haber un caso donde un candidato no puede derivarse a partir del grupo de bloques A si se usa intra predicción para ambos de los bloques A0 y A1, por ejemplo.
En la etapa S410, la unidad de control de codificación 108 busca el grupo de bloques A para un bloque que tiene un vector de movimiento que está disponible sin procesamiento de cambio de escala (cambio de escala). Se proporciona a continuación una descripción detallada del mismo. Se realiza búsqueda en el orden A0 y A1. La unidad de control de codificación 108 establece la bandera availableLXA a 1 si la búsqueda tiene éxito. Además, la unidad de control de codificación 108 añade un vector de movimiento del bloque obtenido en la búsqueda a la lista de candidatos mvpListLX.
En la etapa S420, la unidad de control de codificación 108 determina si availableLXA es 0 (si la búsqueda ha fallado).
Si la búsqueda falla (verdadero en S420), la unidad de control de codificación 108 busca el grupo de bloques A (A0, A1) para un bloque que tiene un vector de movimiento disponible. La búsqueda se realiza en el orden A0 y A1. Si la búsqueda tuvo éxito, la unidad de control de codificación 108 ejecuta el procesamiento de cambio de escala en el vector de movimiento del bloque obtenido en la búsqueda, y añade el vector de movimiento en el que se ha realizado el procesamiento de cambio de escala a la lista de candidatos mvpListLx. Adicionalmente, la unidad de control de codificación 108 establece la bandera isScaled a 1. La bandera isScaled es una bandera que indica si se ha realizado el procesamiento de cambio de escala en el grupo de bloques A. El procesamiento de cambio de escala es procesamiento de aumento y reducción de la magnitud de un vector de movimiento. Debería observarse que las expresiones 8-130 a 8-134 (véase la Figura 23(A)) en NPL 2 pueden utilizarse para el procesamiento de cambio de escala.
A continuación, la unidad de control de codificación 108 realiza procesamiento de generación del segundo candidato para mvpListLX (S500). En la etapa S500, la unidad de control de codificación 108 ejecuta el procesamiento para derivar un candidato a partir del grupo de bloques B (B0, B1, B2). Debería observarse que un candidato puede no poder derivarse a partir del grupo de bloques B si se usa intra predicción para todos los bloques B0, B1 y B2, por ejemplo.
Específicamente, en la etapa S510, la unidad de control de codificación 108 busca el grupo de bloques B para un bloque que tiene un vector de movimiento que está disponible sin cambio de escala. La búsqueda se realiza en el orden B0, B1 y B2. La unidad de control de codificación 108 establece la bandera availableFlagLXB a 1 si la búsqueda tiene éxito. La unidad de control de codificación 108 añade el vector de movimiento del bloque obtenido en la búsqueda a la lista de candidatos mvpListLX.
En la etapa S420, la unidad de control de codificación 108 determina si availableLXA == 0, availableLXB == 0 y adicionalmente isScaled = = 0.
Si el resultado de la determinación de la etapa S420 es “verdadero”, la unidad de control de codificación 108 busca el grupo de bloques B (B0, B1, B2) para un bloque que tiene un vector de movimiento disponible. La búsqueda se realiza en el orden B0, B1 y B2. Si la búsqueda tiene éxito, la unidad de control de codificación 108 ejecuta procesamiento de cambio de escala en el vector de movimiento del bloque obtenido en la búsqueda, y añade el vector de movimiento en el que se ha realizado el procesamiento de cambio de escala a la lista de candidatos mvpListLx. Debería observarse que, por ejemplo, las expresiones 8-135 a 8-139 (véase la Figura 23(B)) en NPL 2 pueden utilizarse para el procesamiento de cambio de escala.
Debería observarse que se determina en la etapa S420 si el procesamiento de cambio de escala ya se ha realizado en el grupo de bloques A (isScaled == 0). Esto es para reducir el número de veces que se realiza el procesamiento de cambio de escala. Se prefiere reducir el número de veces que se realiza el procesamiento de cambio de escala puesto que el procesamiento de cambio de escala requiere carga enorme. En este punto, el número de veces que se realiza el procesamiento de cambio de escala se establece a 1. Si el procesamiento de cambio de escala se realiza en el grupo de bloques A, un candidato disponible ya se ha añadido a las listas de candidatos, y por lo tanto el procesamiento de cambio de escala no se realiza en el grupo de bloques B.
<Grupo de bloques A (A0, A1)>
En primer lugar, se encuentra una descripción de la etapa S410 en la Figura 8 (etapa de búsqueda del grupo de bloques A para un bloque que tiene un vector de movimiento que está disponible sin procesamiento de cambio de escala), basándose en la Figura 9A. La Figura 9A es un diagrama de flujo que muestra el procedimiento detallado de la etapa S410 en la Figura 8.
En la Figura 9A, A[k] (k = 0, 1) es un valor que indica un bloque incluido en el grupo de bloques A. Específicamente, A[0] indica el bloque A0, y A[1] indica el bloque A1. En la Figura 9A, el procesamiento de la etapa S412 a la etapa S415 se ejecuta para los bloques A0 y A1 (etapas S411 y S416).
En la etapa S412, la unidad de control de codificación 108 determina si un vector de movimiento en la dirección de predicción 0 de una unidad de bloque de predicción PU que incluye A[k] es un vector de movimiento que está disponible sin procesamiento de cambio de escala.
Específicamente, la unidad de control de codificación 108 determina si una unidad de bloque de predicción PU que incluye A[k] satisface todas las siguientes condiciones:
(i) la unidad de bloque de predicción PU está “disponible”,
(ii) el modo de predicción de la misma no es MODo_INTRA,
(iii) predFlagL0 de la misma es 1, y
(iv) refIdx de la misma es igual a refIdx de PU de un bloque actual.
En este punto, “disponible” en (i) indica que la unidad de bloque de predicción PU que corresponde a A[k] puede utilizarse. Debería observarse que “no disponible” indica que la unidad de bloque de predicción Pu que corresponde a A[k] no puede utilizarse. En este punto, el caso donde se indica “no disponible” es el caso donde la unidad de bloque de predicción PU no tiene información tal como un vector de movimiento, ejemplos de lo cual incluyen el caso donde la unidad de bloque de predicción PU es un bloque localizado, por ejemplo, fuera del límite de una imagen o corte, y el caso donde la unidad de bloque de predicción PU es un bloque que no se ha codificado aún, y similares. “MODOJNTRA” en (ii) indica que se usa intra predicción. En el caso de intra predicción, la unidad de bloque de predicción PU no puede utilizarse como un candidato para un predictor de vector de movimiento. “predFlagL0” en (iii) es una bandera que indica si se ha de usar un predictor de vector de movimiento en la dirección de predicción 0, e indica que se ha de usar un predictor de vector de movimiento en la dirección de predicción 0 en el caso de “1”. La determinación en (iv) es, en otras palabras, una determinación en cuanto a si una imagen de referencia de la unidad de bloque de predicción PU que corresponde a A[k] es la misma que una imagen de referencia de un bloque actual a codificarse (decodificarse). Esto es equivalente a la determinación en cuanto a si el bloque tiene un vector de movimiento que está disponible sin realizar cambio de escala.
Si el resultado de la determinación de la etapa S412 no es verdadero (en el caso de “de otra manera”), se realiza la determinación en la etapa S413.
En la etapa S413, la unidad de control de codificación 108 determina un vector de movimiento en la dirección de predicción 1 de una unidad de bloque de predicción PU que incluye A[k] que es un vector de movimiento que está disponible sin procesamiento de cambio de escala. Esto significa que también se realiza una determinación realizada para datos de movimiento del bloque A[k] en la dirección de predicción 0 (un vector de movimiento y un índice de referencia, que también se aplica a continuación) para los datos de movimiento de A[k] en la dirección de predicción 1.
Si el resultado de la determinación de la etapa S412 o el resultado de la determinación de la etapa S413 es verdadero, o en otras palabras si un vector de movimiento que está disponible sin procesamiento de cambio de escala se obtiene en la búsqueda, la unidad de control de codificación 108 establece availableFlagLXA a 1 en la etapa S414, y en la etapa A307, añade, a la lista de candidatos mvpListLX, el valor de mvLX del bloque A[k] como está sin realizar procesamiento de cambio de escala. Después de eso, el procesamiento de la unidad de control de codificación 108 continúa a la etapa S416.
Si el resultado de la determinación de la etapa S413 no es verdadero (si los resultados de determinación de las etapas S412 y S413 son ambos “de otra manera”) o en otras palabras, si un vector de movimiento que está disponible sin procesamiento de cambio de escala no se obtiene en la búsqueda, el procesamiento de la unidad de control de codificación 108 continúa a la etapa S416.
En la etapa S416, si availableFlagLXA == 1 o k == 1, la unidad de control de codificación 108 finaliza el procesamiento de la etapa S410.
A continuación, se encuentra una descripción de un procedimiento de procesamiento de la etapa S430 (etapa de realización del procesamiento de cambio de escala en un vector de movimiento del grupo de bloques A) en la Figura 8, basándose en la Figura 9B. La Figura 9B es un diagrama de flujo que muestra un procedimiento de procesamiento detallado de la etapa S430 en la Figura 8. En la Figura 9B, el procesamiento de las etapas S432 a S437 se ejecuta en los bloques A0 y A1 (etapas S431 y S438).
En la etapa S432, la unidad de control de codificación 108 determina si un vector de movimiento en la dirección de predicción 0 de la unidad de bloque de predicción PU que incluye A[k] es un vector de movimiento en el que puede realizarse procesamiento de cambio de escala.
Más específicamente, la unidad de control de codificación 108 realiza las determinaciones (i) a (iii) de las determinaciones (i) a (iv) de la etapa S412. Este procesamiento es procesamiento de cambio de escala, y por lo tanto la condición (iv) no es necesaria. Por lo tanto, la unidad de control de codificación 108 determina si la unidad de bloque de predicción PU que incluye A[k] está “disponible” (i), el modo de predicción de la misma no es MODO_INTRA (ii), y prefFlagL0 de la misma es 1 (iii).
Si el resultado de la determinación de la etapa S432 no es verdadero (en el caso de “de otra manera”), se realiza la determinación de la etapa S433.
En la etapa S433, la unidad de control de codificación 108 determina si un vector de movimiento en la dirección de predicción 1 de una unidad de bloque de predicción PU que incluye A[k] es un vector de movimiento en el que puede realizarse procesamiento de cambio de escala. En la etapa S433, la determinación realizada en los datos de movimiento en la etapa S432 se realiza también en los datos de movimiento de A[k] en la dirección de predicción 1. Si el resultado de la determinación de la etapa S432 o el resultado de la determinación de la etapa S433 es verdadero, o en otras palabras, si un vector de movimiento en el que puede realizarse procesamiento de cambio de escala se obtiene en la búsqueda, la unidad de control de codificación 108 obtiene información para derivar una relación de cambio de escala (tal como refIdx y List) (S434). Adicionalmente, la unidad de control de codificación 108 establece mvLXA al valor de un vector de movimiento mvLX de A[k], y establece refIdxLX al índice de la imagen de referencia de A[k].
En la etapa S435, la unidad de control de codificación 108 deriva una relación de cambio de escala, y realiza procesamiento de cambio de escala. En la etapa S436, la unidad de control de codificación 108 establece la bandera isScaled a 1 que indica que se ha realizado el procesamiento de cambio de escala en el procesamiento en el grupo de bloques A. En la etapa S437, la unidad de control de codificación 108 establece availableFlagLXA a 1. Después de eso, el procesamiento de la unidad de control de codificación 108 continúa a la etapa S438.
Por otra parte, si el resultado de la determinación de la etapa S433 no es verdadero (si los resultados de determinación de las etapas S432 y S433 son ambos de otra manera), o en otras palabras, si un vector de movimiento en el que puede realizarse procesamiento de cambio de escala no se obtiene en la búsqueda, el procesamiento de la unidad de control de codificación 108 continúa a la etapa S438.
En la etapa S438, si availableFlagLXA == 1 o k == 1, la unidad de control de codificación 108 finaliza el procesamiento de la etapa S430.
<Grupo de bloques B (B0, B1, B2)>
En primer lugar se encuentra una descripción de la etapa S510 en la Figura 8 (una etapa de búsqueda del grupo de bloques B para un bloque que tiene un vector de movimiento que está disponible sin procesamiento de cambio de escala), basándose en la Figura 10A. La Figura 10A es un diagrama de flujo que muestra un procedimiento detallado de la etapa S510 en la Figura 8.
Debería observarse que el procesamiento mostrado en la Figura 9A y el procesamiento mostrado en la Figura 10A son el mismo excepto el punto en que los bloques a procesarse son diferentes. Los bloques a procesarse son A0 y A1 en la Figura 9A, mientras que los bloques a procesarse son B0, B1 y B2 en la Figura 10A. Las etapas S512 a S515 en la Figura 10A corresponden a las etapas S412 a S415 en la Figura 9A, respectivamente.
A continuación, se encuentra una descripción de un procedimiento de procesamiento de la etapa S530 en la Figura 8 (etapa de realización del procesamiento de cambio de escala en un vector de movimiento del grupo de bloques B), basándose en la Figura 10B. La Figura 10B es un diagrama de flujo que muestra un procedimiento de procesamiento detallado de la etapa S530 en la Figura 8.
Debería observarse que el procesamiento mostrado en la Figura 9B y el procesamiento mostrado en la Figura 10B son el mismo excepto el punto en que los bloques a procesarse son diferentes, y el punto que la bandera isScaled no se graba en la etapa S436. Los bloques a procesarse son A0 y A1 en la Figura 9B, mientras que los bloques a procesarse son B0, B1 y B2 en la Figura 10B. Las etapas S532 a S536 en la Figura 10B corresponden a las etapas S432 a S435 y S437 en la Figura 9B, respectivamente.
[EJ2-2: Determinación de información de control de codificación]
La Figura 11 es un diagrama de flujo que muestra un procedimiento de procesamiento detallado de la etapa S240 en la Figura 3 que es una etapa de determinación de información de control de codificación. En la etapa S240 en la Figura 3, la unidad de control de codificación 108 calcula la eficacia de codificación conseguida usando cada candidato de predictor de vector de movimiento, determina un candidato de predictor de vector de movimiento con el que la eficacia de codificación es alta, como un vector de movimiento a usarse para inter predicción. Por consiguiente, se determinan un valor de mvp_idx_I0 usado para inter predicción y un valor de mvp_idx_I1.
Específicamente, en la etapa S301, la unidad de control de codificación 108 establece mvp_idx_I0 a 0. Adicionalmente, la unidad de control de codificación 108 incrementa mvp_idx_I0 en 1 después de ejecutar las etapas S302 a S308 descritas a continuación. La unidad de control de codificación 108 ejecuta de manera repetida las etapas S302 a S308.
En la etapa S302, la unidad de control de codificación 108 determina si availableFlagL0 [mvp_idx_I0] es 1.
Si availableFlagL0 [mvp_idx_I0] no es 1 en la etapa S302 (falso en S302), el procesamiento de la unidad de control de codificación 108 continúa a la etapa S309.
Si availableFlagL0 [mvp_idx_I0] es 1 en la etapa S302 (verdadero en S302), el procesamiento de la unidad de control de codificación 108 continúa a la etapa s303.
En la etapa S303, la unidad de control de codificación 108 establece mvp_idx_I1 a 0. Adicionalmente, la unidad de control de codificación 108 incrementa mvp_idx_I1 en 1 después de ejecutar las etapas S304 y S305 descritas a continuación. La unidad de control de codificación 108 ejecuta de manera repetida las etapas S304 y S305.
En la etapa S304, la unidad de control de codificación 108 determina si availableFlagL1 [mvp_idx_I1] es 1.
Si availableFlagL1 [mvp_idx_I1] no es 1 en la etapa S304 (falso en S304), el procesamiento de la unidad de control de codificación 108 continúa a la etapa S308.
Si availableFlagL1 [mvp_idx_I1] es 1 en la etapa S304 (verdadero en S304), el procesamiento de la unidad de control de codificación 108 continúa a la etapa s305.
En la etapa S305, la unidad de control de codificación 108 realiza, como una prueba, inter codificación usando un conjunto de candidatos de predictor de vector de movimiento (mvpListL0 [mvp_idx_I0], mvpListL1 [mvp_idx_I1]) indicados mediante un conjunto de índices de predictor de vector de movimiento actuales (mvp_idx_I0, mvp_idx_I1) (en lo sucesivo, denominados como “un conjunto de candidatos de predictor de vector de movimiento actuales”, según sea necesario).
En la etapa S306, la unidad de control de codificación 108 compara la eficacia de codificación conseguida usando un conjunto de candidatos de predictor de vector de movimiento indicados por los valores de un conjunto de índices de predictor de vector de movimiento establecidos temporalmente como mvp_idx_lx (mvpListL0 [mvp_idx_I0], mvpListL1 [mvp_idx_I1]) (en lo sucesivo, denominados como “un conjunto de candidatos de predictor de vector de movimiento establecidos temporalmente”, según sea necesario) con la eficacia de codificación conseguida usando un conjunto de candidatos de predictor de vector de movimiento actuales.
En la etapa S306, si la eficacia de codificación conseguida que usa el conjunto de candidatos de predictor de vector de movimiento establecidos temporalmente es superior a la eficacia de codificación conseguida que usa el conjunto de candidatos de predictor de vector de movimiento actuales (N en S306), el procesamiento de la unidad de control de codificación 108 continúa a la etapa S308.
En la etapa S306, si la eficacia de codificación conseguida que usa el conjunto de candidatos de predictor de vector de movimiento actuales es superior a la eficacia de codificación conseguida que usa el conjunto de candidatos de predictor de vector de movimiento establecidos temporalmente (S en S306), el procesamiento de la unidad de control de codificación 108 continúa a la etapa S307, y la unidad de control de codificación 108 establece el conjunto de índices de predictor de vector de movimiento mvp_idx_I0 (mvp_idx_I1, mvp_idx_I1) a los valores del conjunto actual (mvp_idx_I0, mvp_idx_I1). Debería observarse que si no se establece valor en el conjunto mvp_idx_lx de índices de predictor de vector de movimiento (mvp_idx_I0, mvp_idx_I1), la unidad de control de codificación 108 establece mvp_idx_lx a los valores del conjunto actual (mvp_idx_I0, mvp_idx_I1).
En la etapa S308, la unidad de control de codificación 108 determina si mvpListL1 [mvp_idx_I1] es el último candidato de la lista de candidatos (Figura 11 muestra “¿Procesamiento para mvp_idx_I1 está completado?). Por ejemplo, en el caso de la lista de candidatos mvpListL1 ilustrado en la Figura 6B, el tamaño de la lista de candidatos es 2, y por lo tanto se determina que mvpListL1 [mvp_idx_I1] es el último candidato si mvp_idx_I1 == 1 ( = tamaño de lista de candidatos - 1). Si se determina que mvpListL1 [mvp_idx_I1] no es el último candidato de la lista de candidatos, el procesamiento de la unidad de control de codificación 108 vuelve a la etapa S303, y la unidad de control de codificación 108 incrementa mvp_idx_I1 en 1 (S303).
Si se determina en la etapa S308 que mvpListL1 [mvp_idx_I1] es el último candidato de la lista de candidatos, el procesamiento de la unidad de control de codificación 108 continúa a la etapa S309.
En la etapa S309, la unidad de control de codificación 108 determina si mvpListL0 [mvp_idx_I0] es el último candidato de la lista de candidatos (“¿Procesamiento para mvp_idx_I0 está completado?). Por ejemplo, en el caso de la lista de candidatos mvpListL0 ilustrado en la Figura 6A, el tamaño de la lista de candidatos es 2, y por lo tanto si mvp_idx_I0 == 1 (= tamaño de lista de candidato - 1), la unidad de control de codificación 108 determina que mvpListL0 [mvp_idx_I0] es el último candidato. Si la unidad de control de codificación 108 determina que mvpListL0 [mvp_idxj0] no es el último candidato de la lista de candidatos, el procesamiento de la unidad de control de codificación 108 vuelve a la etapa S301, y la unidad de control de codificación 108 incrementa mvp_idx_I0 en 1 (S301).
En la etapa S309, si la unidad de control de codificación 108 determina que mvpListL0 [mvp_idx_I0] es el último candidato de la lista de candidatos, el procesamiento de la misma continúa a la etapa S310.
En la etapa S310, la unidad de control de codificación 108 determina mvp_idx_lx (mvp_idx_I0, mvp_idx_I1) como un conjunto de índices de predictor de vector de movimiento.
Lo siguiente es una breve descripción del caso de las Figuras 6A y 6B.
La unidad de control de codificación 108 establece mvp_idx_I0 a 0 cuando la etapa S301 se ejecuta en el primer bucle. En la etapa S302, como se ilustra en la Figura 6A, la unidad de control de codificación 108 determina que availableFlagLXA es 1, y el procesamiento de la misma continúa a la etapa S303.
La unidad de control de codificación 108 establece mvp_idx_I1 a 0 cuando la etapa S303 se ejecuta en el primer bucle. En la etapa S304, el procesamiento de la unidad de control de codificación 108 continúa a la etapa S305 puesto que availableFlagLXB es 1 como se ilustra en la Figura 6B.
En la etapa S305, la unidad de control de codificación 108 realiza, como una prueba, inter codificación usando un conjunto actual (mvpListL0 [0], mvpListL0 [0]). En la etapa S306, la unidad de control de codificación 108 no ha ejecutado inter codificación como una prueba antes, y por lo tanto el procesamiento de la misma continúa a la etapa S307, y la unidad de control de codificación 108 establece mvp_idx_lx a (0, 0).
En la etapa S308, el procesamiento de la unidad de control de codificación 108 continúa a la etapa S309 puesto que hay únicamente un mvp_idx_I1 como se ilustra en la Figura 6B, y por lo tanto el procesamiento está completado. En la etapa S309 en el primer bucle, la unidad de control de codificación 108 determina que el procesamiento no está completado puesto que mvp_idx_I0 toma dos valores, en concreto, 0 y 1 como se ilustra en la Figura 6A. El procesamiento de la unidad de control de codificación 108 vuelve a la etapa S301, y la unidad de control de codificación 108 establece mvp_idx_I0 a 1 e inicia el segundo bucle.
Cuando la etapa S301 se ejecuta en el segundo bucle, la unidad de control de codificación 108 establece mvp_idx_I0 a 1. En la etapa S302, como se ilustra en la Figura 6A, la unidad de control de codificación 108 determina que availableFlagLXB es 1, y el procesamiento de la misma continúa a la etapa S303.
Cuando se ejecuta la etapa S303 que es la primera etapa en el segundo bucle, la unidad de control de codificación 108 establece mvp_idx_I1 a 0. En la etapa S304, el procesamiento de la unidad de control de codificación 108 continúa a la etapa S305 puesto que availableFlagLXB es 1 como se ilustra en la Figura 6B.
En la etapa S305, la unidad de control de codificación 108 realiza inter codificación como una prueba, usando un conjunto actual (mvpListL0 [1], mvpListL0 [0]). En la etapa S306, la unidad de control de codificación 108 compara la eficacia de codificación conseguida usando (mvpListL0 [0], mvpListL0 [0]) que se han usado para realizar inter codificación como una prueba antes, con la eficacia de codificación conseguida usando el conjunto actual (mvpListL0 [1], mvpListL0 [0]). En este punto, si la eficacia de codificación conseguida usando (mvpListL0 [0], mvpListL0 [0]) usados antes es superior, el procesamiento de la unidad de control de codificación 108 continúa a la etapa S308.
En la etapa S308, el procesamiento de la unidad de control de codificación 108 continúa a la etapa S309 puesto que hay únicamente un mvp_idx_I1 como se ilustra en la Figura 6B, y por lo tanto el procesamiento está completado. En la etapa S309 en el segundo bucle, mvp_idx_I0 toma dos valores, en concreto, 0 y 1 como se ilustra en la Figura 6A, y el procesamiento se ha ejecutado para cada uno, la unidad de control de codificación 108 determina que el procesamiento está completado, y el procesamiento de la misma continúa a la etapa S310.
En la etapa S310, la unidad de control de codificación 108 determina (0, 0) al cual se establece mvp_idx_lx, como un conjunto de valores de mvp_idx_lx.
[EJ2-3: Intra inter codificación]
La Figura 12 es un diagrama de flujo que ilustra un procedimiento de procesamiento detallado de la etapa S250 en la Figura 3. En la etapa S250 en la Figura 3, se ejecuta intra/inter codificación en una imagen en movimiento indicada por una señal de imagen de entrada, usando información de control de codificación, información de control de decodificación y similares obtenidas mediante la unidad de control de codificación 108.
Específicamente, en la etapa S252, la unidad de intra/inter predicción 107 genera una imagen prevista de un bloque actual a codificarse, basándose en vector de movimiento mvLX, y emite una señal de imagen prevista que indica la imagen prevista generada. La unidad de diferencia 101 resta la señal de imagen prevista de una señal de imagen de entrada para generar una señal residual. La unidad de transformación 102 convierte la señal residual de un dominio de imagen en un dominio de frecuencia, y la unidad de cuantificación 103 cuantifica la señal residual convertida en el dominio de la frecuencia para generar una señal residual cuantificada. La unidad de codificación por entropía 110 codifica la señal residual cuantificada.
En la etapa S254, la unidad de codificación por entropía 110 codifica un conjunto de índices de predictor de vector de movimiento mvp_idx_lx (mvp_idx_I0, mvp_idx_I1). La unidad de codificación por entropía 110 codifica mvp_idx_lx (0, 0) en el caso de las Figuras 6A y 6B descrito en el EJ2-2, por ejemplo.
En la etapa S256, la unidad de codificación por entropía 110 codifica una diferencia de vector de movimiento mvdLX. La unidad de codificación por entropía 110 genera y emite un flujo de bits codificado que incluye la señal residual cuantificada, el conjunto mvp_idx_lx de índices de predictor de vector de movimiento (mvp_idx_I0, mvp_idx_I1), y la diferencia de vector de movimiento mvdLX que se ha codificado.
La Figura 13 ilustra un problema de procesamiento de generación de mvpListLX (véanse las Figuras 8 a 10B, y EJ 2-1) en el ejemplo comparativo.
En la Figura 13, la línea doble horizontal es un símbolo que representa procesamiento paralelo, y el procesamiento entre las líneas dobles horizontales es procesamiento paralelo.
En el ejemplo comparativo anterior, como se ilustra en la Figura 13, es posible acortar un periodo de tiempo de procesamiento realizando procesamiento de obtención de un candidato de predictor de vector de movimiento a partir del grupo de bloques A (etapa S400 en la Figura 8) y procesamiento de obtención de un candidato de predictor de vector de movimiento a partir del grupo de bloques B (etapa S500 en la Figura 8) en paralelo.
En este punto, en el ejemplo comparativo anterior, como se ilustra en la Figura 13, si el procesamiento de cambio de escala se ha ejecutado en el grupo de bloques A en S436 en la etapa S430 es una condición de determinación en la etapa S520.
Esto es para evitar que se ejecute el procesamiento de cambio de escala en el grupo de bloques B si el procesamiento de cambio de escala ya se está ejecutando el grupo de bloques A, para que ese procesamiento de cambio de escala que requiere enorme carga de procesamiento se ejecute una vez, como se ha mencionado anteriormente.
Por consiguiente, en el ejemplo comparativo anterior, la etapa S500 que es el procesamiento en el grupo de bloques B tiene el problema que es necesario esperar para la finalización de la etapa S400 que es el procesamiento en el grupo de bloques A (en particular, S436), para ejecutar el procesamiento de la etapa S520.
En vista de esto, un método de decodificación de imagen de acuerdo con un aspecto de la presente invención es un método de decodificación de imágenes en movimiento para decodificar un bloque actual incluido en un flujo de bits, usando un predictor de vector de movimiento usado cuando se decodifica un vector de movimiento del bloque actual, incluyendo el método: (a) obtener uno o más candidatos de predictor de vector de movimiento que son candidatos para el predictor de vector de movimiento; (b) decodificar un índice codificado para identificar uno del uno o más candidatos de predictor de vector de movimiento, añadiéndose el índice codificado al flujo de bits; y (c) seleccionar, basándose en el índice decodificado, el predictor de vector de movimiento a usarse para decodificar el bloque actual de entre el uno o más candidatos de predictor de vector de movimiento, en el que la etapa (a) incluye: (a1) generar un candidato de predictor de vector de movimiento, basándose en diversos vectores de movimiento de diversos primeros bloques adyacentes adyacentes al bloque actual en una primera dirección; y (a2) generar un candidato de predictor de vector de movimiento, basándose en diversos vectores de movimiento de diversos segundos bloques adyacentes adyacentes al bloque actual en una segunda dirección, y la etapa (a2) incluye: (i) determinar si los diversos primeros bloques adyacentes incluyen uno o más bloques inter-previstos; y (ii) buscar un vector de movimiento para hacerlo disponible mediante el procesamiento de cambio de escala de entre los diversos vectores de movimiento de los diversos segundos bloques adyacentes cuando se determina en la etapa (i) que los diversos primeros bloques adyacentes no incluyen un bloque intra previsto, y generar, cuando se obtiene el vector de movimiento en la búsqueda, uno del uno o más candidatos de predictor de vector de movimiento ejecutando procesamiento de cambio de escala en el vector de movimiento obtenido en la búsqueda.
Además, por ejemplo, en la etapa (a2), cuando se determina en la etapa (i) que los diversos primeros bloques adyacentes incluyen uno o más bloques inter-previstos, puede determinarse si todos del uno o más de los diversos primeros bloques adyacentes determinados para que sean bloques inter-previstos son bloques cada uno localizado en un límite de imagen o un límite de corte, y la etapa (ii) puede ejecutarse cuando todos del uno o más de los diversos primeros bloques adyacentes determinados para que sean bloques inter-previstos son bloques cada uno localizado en el límite de la imagen o el límite del corte.
Además, por ejemplo, la etapa (a2) puede incluir adicionalmente (iii) buscar un vector de movimiento disponible sin procesamiento de cambio de escala de entre los diversos vectores de movimiento de los diversos segundos bloques adyacentes, y determinar, cuando se obtiene un vector de movimiento disponible sin procesamiento de cambio de escala en la búsqueda, el vector de movimiento obtenido en la búsqueda como uno del uno o más candidatos de predictor de vector de movimiento, y la etapa (i) puede ejecutarse cuando no se obtiene un vector de movimiento disponible sin procesamiento de cambio de escala en la búsqueda.
Además, por ejemplo, en la etapa (iii), puede determinarse si una imagen de referencia del bloque actual es la misma que una imagen de referencia de cada uno de los diversos segundos bloques adyacentes, y entre los diversos segundos bloques adyacentes, puede obtenerse un segundo bloque adyacente determinado que tiene la misma imagen de referencia en la búsqueda como un vector de movimiento disponible sin procesamiento de cambio de escala.
Además, por ejemplo, la etapa (a1) puede incluir: (i) buscar un vector de movimiento disponible sin procesamiento de cambio de escala de entre los diversos vectores de movimiento de los diversos primeros bloques adyacentes, y determinar, cuando se obtiene un vector de movimiento disponible sin procesamiento de cambio de escala en la búsqueda, el vector de movimiento obtenido en la búsqueda como uno del uno o más candidatos de predictor de vector de movimiento; (ii) determinar si un vector de movimiento disponible sin procesamiento de cambio de escala se obtiene en la búsqueda a partir de los diversos primeros bloques adyacentes; y (iii) buscar, cuando se determina que no se obtiene un vector de movimiento disponible sin procesamiento de cambio de escala en la búsqueda a partir de los diversos primeros bloques adyacentes, para que un vector de movimiento se haga disponible mediante el procesamiento de cambio de escala de entre los diversos vectores de movimiento de los diversos primeros bloques adyacentes, y generar, cuando se obtiene el vector de movimiento en la búsqueda, uno del uno o más candidatos de predictor de vector de movimiento ejecutando procesamiento de cambio de escala en el vector de movimiento obtenido en la búsqueda.
Además, por ejemplo, la etapa (a1) y la etapa (a2) pueden ejecutarse en paralelo.
Un método de codificación de imagen de acuerdo con un aspecto de la presente invención es un método de codificación de imágenes en movimiento para codificar un bloque actual para generar un flujo de bits, usando un predictor de vector de movimiento usado cuando se codifica un vector de movimiento del bloque actual, incluyendo el método: (a) obtener uno o más candidatos de predictor de vector de movimiento que son candidatos para el predictor de vector de movimiento; (b) seleccionar el predictor de vector de movimiento a usarse para codificar el vector de movimiento del bloque actual de entre el uno o más candidatos de predictor de vector de movimiento; y (c) codificar un índice para identificar el predictor de vector de movimiento seleccionado, y añadir el índice codificado al flujo de bits, en el que la etapa (a) incluye: (a1) generar un candidato de predictor de vector de movimiento, basándose en diversos vectores de movimiento de diversos primeros bloques aydacentes adyacentes al bloque actual en una primera dirección; y (a2) generar un candidato de predictor de vector de movimiento, basándose en diversos vectores de movimiento de diversos segundos bloques adyacentes adyacentes al bloque actual en una segunda dirección, y la etapa (a2) incluye: (i) determinar si los diversos primeros bloques adyacentes incluyen uno o más bloques inter-previstos; y (ii) buscar un vector de movimiento para hacerlo disponible mediante el procesamiento de cambio de escala de entre los diversos vectores de movimiento de los diversos segundos bloques adyacentes cuando se determina en la etapa (i) que los diversos primeros bloques adyacentes no incluyen un bloque intra previsto, y generar, cuando se obtiene el vector de movimiento en la búsqueda, uno del uno o más candidatos de predictor de vector de movimiento ejecutando procesamiento de cambio de escala en el vector de movimiento obtenido en la búsqueda.
Además, por ejemplo, en la etapa (a2), cuando se determina en la etapa (i) que los diversos primeros bloques adyacentes incluyen uno o más bloques inter-previstos, puede determinarse si todos del uno o más de los diversos primeros bloques adyacentes determinados para que sean bloques inter-previstos son bloques cada uno localizado en un límite de imagen o un límite de corte, y la etapa (ii) puede ejecutarse cuando todos del uno o más de los diversos primeros bloques adyacentes determinados para que sean bloques inter-previstos son bloques cada uno localizado en el límite de la imagen o el límite del corte.
Además, por ejemplo, la etapa (a2) puede incluir adicionalmente (iii) buscar un vector de movimiento disponible sin procesamiento de cambio de escala de entre los diversos vectores de movimiento de los diversos segundos bloques adyacentes, y determinar, cuando se obtiene un vector de movimiento disponible sin procesamiento de cambio de escala en la búsqueda, el vector de movimiento obtenido en la búsqueda como uno del uno o más candidatos de predictor de vector de movimiento, y la etapa (i) puede ejecutarse cuando no se obtiene un vector de movimiento disponible sin procesamiento de cambio de escala en la búsqueda.
Además, por ejemplo, en la etapa (iii), puede determinarse si una imagen de referencia del bloque actual es la misma que una imagen de referencia de cada uno de los diversos segundos bloques adyacentes, y entre los diversos segundos bloques adyacentes, puede obtenerse un segundo bloque adyacente determinado que tiene la misma imagen de referencia en la búsqueda como un vector de movimiento disponible sin procesamiento de cambio de escala.
Además, por ejemplo, la etapa (a1) puede incluir: (i) buscar un vector de movimiento disponible sin procesamiento de cambio de escala de entre los diversos vectores de movimiento de los diversos primeros bloques adyacentes, y determinar, cuando se obtiene un vector de movimiento disponible sin procesamiento de cambio de escala en la búsqueda, el vector de movimiento obtenido en la búsqueda como uno del uno o más candidatos de predictor de vector de movimiento; (ii) determinar si un vector de movimiento disponible sin procesamiento de cambio de escala se obtiene en la búsqueda a partir de los diversos primeros bloques adyacentes; y (iii) buscar, cuando se determina que no se obtiene un vector de movimiento disponible sin procesamiento de cambio de escala en la búsqueda a partir de los diversos primeros bloques adyacentes, para que un vector de movimiento se haga disponible mediante el procesamiento de cambio de escala de entre los diversos vectores de movimiento de los diversos primeros bloques adyacentes, y generar, cuando se obtiene el vector de movimiento en la búsqueda, uno del uno o más candidatos de predictor de vector de movimiento ejecutando procesamiento de cambio de escala en el vector de movimiento obtenido en la búsqueda.
Además, por ejemplo, la etapa (a1) y la etapa (a2) pueden ejecutarse en paralelo.
Un aparato de decodificación de imagen de acuerdo con un aspecto de la presente invención es un aparato de decodificación de imágenes en movimiento que decodifica un bloque actual incluido en un flujo de bits, usando un predictor de vector de movimiento usado cuando se decodifica un vector de movimiento del bloque actual, incluyendo el aparato: una unidad de obtención de candidato de predictor de vector de movimiento configurada para obtener uno o más candidatos de predictor de vector de movimiento que son candidatos para el predictor de vector de movimiento; una unidad de decodificación configurada para decodificar un índice codificado para identificar uno del uno o más candidatos de predictor de vector de movimiento, añadiéndose el índice codificado al flujo de bits; y una unidad de selección configurada para seleccionar, basándose en el índice decodificado, el predictor de vector de movimiento a usarse para decodificar el bloque actual de entre el uno o más candidatos de predictor de vector de movimiento, en el que la unidad de obtención de candidato de predictor de vector de movimiento está configurada para ejecutar: primer procesamiento de generación de candidatos de generación de un candidato de predictor de vector de movimiento, basándose en diversos vectores de movimiento de diversos primeros bloques aydacentes adyacentes al bloque actual en una primera dirección; y segundo procesamiento de generación de candidatos de generación de un candidato de predictor de vector de movimiento, basándose en diversos vectores de movimiento de diversos segundos bloques adyacentes adyacentes al bloque actual en una segunda dirección, y en el segundo procesamiento de generación de candidatos, la unidad de obtención de candidato de predictor de vector de movimiento está configurada para: determinar si los diversos primeros bloques adyacentes incluyen uno o más bloques inter-previstos; y buscar un vector de movimiento para hacerlo disponible mediante el procesamiento de cambio de escala de entre los diversos vectores de movimiento de los diversos segundos bloques adyacentes cuando la unidad de obtención de candidato de predictor de vector de movimiento determina que los diversos primeros bloques adyacentes no incluyen un bloque intra previsto, y generar, cuando la unidad de obtención de candidato de predictor de vector de movimiento obtiene el vector de movimiento en la búsqueda, uno del uno o más candidatos de predictor de vector de movimiento ejecutando procesamiento de cambio de escala en el vector de movimiento obtenido en la búsqueda.
Un aparato de codificación de imagen de acuerdo con un aspecto de la presente invención es un aparato de codificación de imágenes en movimiento que codifica un bloque actual para generar un flujo de bits, usando un predictor de vector de movimiento usado cuando se codifica un vector de movimiento del bloque actual, incluyendo el aparato: una unidad de obtención de candidato de predictor de vector de movimiento configurada para obtener uno o más candidatos de predictor de vector de movimiento que son candidatos para el predictor de vector de movimiento; una unidad de selección configurada para seleccionar el predictor de vector de movimiento a usarse para codificar el vector de movimiento del bloque actual de entre el uno o más candidatos de predictor de vector de movimiento; y una unidad de codificación configurada para codificar un índice para identificar el predictor de vector de movimiento seleccionado, y añadir el índice codificado al flujo de bits, en el que la unidad de obtención de candidato de predictor de vector de movimiento está configurada para ejecutar: primer procesamiento de generación de candidatos de generación de un candidato de predictor de vector de movimiento, basándose en diversos vectores de movimiento de diversos primeros bloques adyacentes adyacentes al bloque actual en una primera dirección; y segundo procesamiento de generación de candidatos de generación de un candidato de predictor de vector de movimiento, basándose en diversos vectores de movimiento de diversos segundos bloques adyacentes adyacentes al bloque actual en una segunda dirección, y en el segundo procesamiento de generación de candidatos, la unidad de obtención de candidato de predictor de vector de movimiento está configurada para: determinar si los diversos primeros bloques adyacentes incluyen uno o más bloques inter-previstos; y buscar un vector de movimiento para hacerlo disponible mediante el procesamiento de cambio de escala de entre los diversos vectores de movimiento de los diversos segundos bloques adyacentes cuando la unidad de obtención de candidato de predictor de vector de movimiento determina que los diversos primeros bloques adyacentes no incluyen un bloque intra previsto, y generar, cuando la unidad de obtención de candidato de predictor de vector de movimiento obtiene el vector de movimiento en la búsqueda, uno del uno o más candidatos de predictor de vector de movimiento ejecutando procesamiento de cambio de escala en el vector de movimiento obtenido en la búsqueda.
Un aparato de codificación y decodificación de imagen de acuerdo con un aspecto de la presente invención incluye el anterior aparato de decodificación de imágenes en movimiento y el anterior aparato de codificación de imágenes en movimiento.
Debería observarse que estos aspectos generales y específicos pueden implementarse usando un sistema, un método, un circuito integrado, un programa informático, un medio de grabación legible por ordenador tal como un CD-ROM, o cualquier combinación de sistemas, métodos, circuitos integrados, programas informáticos o medios de grabación.
Lo siguiente es una descripción específica de un aparato de codificación de imágenes en movimiento y un aparato de decodificación de imágenes en movimiento de acuerdo con un aspecto de la presente invención, con referencia a los dibujos.
Cada una de las realizaciones ejemplares descritas a continuación muestra un ejemplo específico de la presente invención. Los valores numéricos, formas, materiales, elementos constituyentes, las posiciones dispuestas y la configuración de conexión de los elementos constituyentes, etapas, el orden de las etapas y así sucesivamente, descritas en las siguientes realizaciones son meros ejemplos, y no se pretenden para limitar la presente invención. Por lo tanto, entre los elementos constituyentes en las siguientes realizaciones ejemplares, los elementos constituyentes no indicados en una cualquiera de las reivindicaciones independientes se describen como elementos constituyentes arbitrarios.
[Realización 1]
Se proporciona una descripción de un aparato de codificación de imágenes en movimiento y un método de codificación de imágenes en movimiento de acuerdo con la presente realización, basándose en la Figura 14.
Debería observarse que la configuración del aparato de codificación de imágenes en movimiento de acuerdo con la presente realización es la misma que la configuración del aparato de codificación de imágenes en movimiento 100 de acuerdo con el ejemplo comparativo ilustrado en la Figura 2.
Además, la presente realización describe el caso usando un ejemplo en el que la relación entre una unidad de bloque de codificación CU y una unidad de bloque de predicción PU es la misma que la relación entre la unidad de bloque de codificación CU y la unidad de bloque de predicción PU en el ejemplo comparativo ilustrado en la Figura 4A, para facilitar la descripción.
[1-1: Método de codificación de imágenes en movimiento de acuerdo con la realización 1]
Se proporciona una descripción de operación de procesamiento (método de codificación de imágenes en movimiento) del aparato de codificación de imágenes en movimiento 100 de acuerdo con la presente realización, basándose en la Figura 14. La Figura 6 ilustra un procedimiento de procesamiento del aparato de codificación de imágenes en movimiento 100 de acuerdo con la presente realización.
Debería observarse que en la Figura 14, el procesamiento de las etapas S410 y S430 en un grupo de bloques A, y las etapas S510 y s 530 en un grupo de bloques B es el mismo que el procesamiento en el ejemplo comparativo anterior (véanse las Figuras 8 a 10B).
Debería observarse que, en la presente realización, una imagen prevista se genera por unidad de bloque de predicción PU, como con el ejemplo comparativo. Además, la presente realización describe el caso como un ejemplo en el que el tamaño de unidad de bloque de predicción PU es menor que el de la unidad de bloque de codificación CU como con el ejemplo comparativo. Además, la relación entre la unidad de bloque de codificación CU y la unidad de bloque de predicción PU en la presente realización es la misma que la relación entre la unidad de bloque de codificación CU y la unidad de bloque de predicción PU en el ejemplo comparativo ilustrado en las Figuras 4A a 4C. En el método de codificación de imágenes en movimiento de acuerdo con la presente realización ilustrado en la Figura 14, se ejecuta el procesamiento de determinación de la etapa S620, en lugar del procesamiento de determinación de la etapa S520, en contraste al ejemplo comparativo ilustrado en la Figura 13.
Específicamente, como se ilustra en la Figura 14, en la etapa S400, una unidad de control de codificación 108 ejecuta el procesamiento de búsqueda del grupo de bloques A para un vector de movimiento que está disponible sin procesamiento de cambio de escala (S410), y ejecuta procesamiento de cambio de escala (S430) en un bloque incluido en el grupo de bloques A si un vector de movimiento que está disponible sin procesamiento de cambio de escala no se obtiene en la búsqueda (verdadero en S420).
Adicionalmente, la unidad de control de codificación 108 ejecuta la etapa S600 en paralelo con la etapa S400 anteriormente descrita, como se ilustra en la Figura 14. En la etapa S600, en primer lugar, la unidad de control de codificación 108 ejecuta el procesamiento de búsqueda del grupo de bloques B para un vector de movimiento que está disponible sin procesamiento de cambio de escala (S510).
En la etapa S620, la unidad de control de codificación 108 determina (1) si availableFlavLXB == 0 (no mostrado en la Figura 14), y (2) si “algún bloque en el grupo de bloques A (A0, A1) es un bloque INTER”. En otras palabras, en la etapa S620, cuando (1) availableFlavLXB == 0, y adicionalmente un bloque cuyo modo de predicción es MODO_INTER está incluido en el grupo de bloques A, el resultado se determina para que sea verdadero.
Si (1) availableFlavLXB == 0, y adicionalmente el modo de predicción de A0 (bloque en la parte inferior izquierda de la Figura 5) o A1 (bloque a la izquierda de la Figura 5) es MODO_INTER como resultado de la determinación (verdadero en S620), la unidad de control de codificación 108 finaliza la etapa S600 sin ejecutar el procesamiento de S530 (procesamiento de cambio de escala en el grupo de bloques B).
Esto es basándose en una suposición de que “si el modo de predicción de cualquier bloque en el grupo de bloques A adyacente a la izquierda de un bloque actual a predecirse es MODO_INTER, una posibilidad de que se use el procesamiento de cambio de escala es alta”, y por lo tanto el procesamiento de cambio de escala no se realiza en el grupo de bloques B si el modo de predicción de cualquier bloque en el grupo de bloques A es MODO_INTER.
De esta manera, el resultado del procesamiento de la etapa S400 no se usa en la etapa S620. En otras palabras, las etapas S400 y S600 no dependen una de la otra. Por consiguiente, el aparato de codificación de imágenes en movimiento 100 puede ejecutar en paralelo la etapa S400 que es el procesamiento en el grupo de bloques A y la etapa S600 que es el procesamiento en el grupo de bloques B, y aumentar la velocidad de procesamiento sin aumentar carga de procesamiento (sin aumentar el número de veces que se realiza el procesamiento de cambio de escala).
[Realización 2]
Se proporciona una descripción de un aparato de decodificación de imágenes en movimiento y un método de decodificación de imágenes en movimiento de acuerdo con la presente realización, basándose en la Figura 15. El aparato de decodificación de imágenes en movimiento de acuerdo con la presente realización acepta un flujo de bits codificado a partir del aparato de codificación de imágenes en movimiento 100 de acuerdo con la realización 1, genera señales de imagen decodificadas decodificando un flujo de bits codificado, y emite las señales en el orden de visualización.
[2-1: Configuración del aparato de decodificación de imágenes en movimiento de acuerdo con la realización 2] Se proporciona una descripción de una configuración de un aparato de decodificación de imágenes en movimiento 300 de acuerdo con la presente realización, basándose en la Figura 15. La Figura 15 es un diagrama de bloques que ilustra la configuración del aparato de decodificación de imágenes en movimiento 300.
Como se ilustra en la Figura 15, el aparato de decodificación de imágenes en movimiento 300 incluye una unidad de decodificación por entropía 301, una unidad de cuantificación inversa 302, una unidad 303 de transformación inversa, una unidad de adición 304, una unidad de intra/inter predicción 305, una unidad de control de decodificación 306 y una memoria 307.
La unidad de decodificación por entropía 301 realiza procesamiento de decodificación de longitud variable en un flujo de bits codificado introducido, y de esta manera genera una señal residual cuantificada (coeficiente de cuantificación), información de tipo de imagen, una bandera de dirección de predicción y una diferencia de vector de movimiento mvdLX. La unidad de decodificación por entropía 301 realiza procesamiento de decodificación de longitud variable en un índice de predictor de vector de movimiento. Adicionalmente, la unidad de decodificación por entropía 301 emite información de control de decodificación a la unidad de control de decodificación 306 descrita a continuación. En este punto, la información de control de decodificación incluye un índice de predictor de vector de movimiento mvp_idx_lx (mvp_idx_I0, mvp_idx_I1) y una diferencia de vector de movimiento mvdLX (mvdL0, mvdL1). La unidad de cuantificación inversa 302 realiza procesamiento de cuantificación inversa en un coeficiente de cuantificación (señal residual cuantificada) obtenido mediante procesamiento de decodificación de longitud variable. La unidad de transformación inversa 303 emite una señal residual reconstruida (datos de error de predicción) convirtiendo un coeficiente de transformación obtenido mediante procesamiento de cuantificación inversa a partir de un dominio de frecuencia en un dominio de imagen.
En la memoria 307, los datos de imagen decodificados indicados mediante las señales de imagen decodificadas emitidas desde la unidad de adición 304 descrita a continuación se almacenan en una base bloque a bloque y una base fotograma a fotograma.
La unidad de intra/inter predicción 305 realiza inter-predicción usando datos de imagen decodificados en una unidad de fotogramas almacenada en la memoria 307 o usando datos de imagen decodificados en una unidad de bloque, generando de esta manera una señal de imagen prevista de un bloque actual a decodificarse.
La unidad de control de decodificación 306 deriva listas de candidatos de predictor de vector de movimiento mvpListL0 y mvpListL1, y selecciona, a partir de las listas de candidatos de predictor de vector de movimiento derivadas, un predictor de vector de movimiento mvLX a usarse para inter predicción, basándose en el índice de predictor de vector de movimiento (mvp_idx_I0, mvp_idx_I1). Adicionalmente, la unidad de control de decodificación 306 calcula el vector de movimiento mvLX de un bloque actual a decodificarse, usando el predictor de vector de movimiento mvpLX y la diferencia de vector de movimiento mvdLX (mvdL0, mvdL1). A continuación, si el modo de predicción de un bloque actual a predecirse es MODO_INTER, la unidad de control de decodificación 306 provoca que la unidad de intra/inter predicción 305 genere una imagen inter-prevista usando el vector de movimiento calculado mvLX.
Finalmente, la unidad de adición 304 genera una señal de imagen decodificada añadiendo una señal residual reconstruida y una señal de imagen prevista.
[2-2: Método de decodificación de imágenes en movimiento de acuerdo con la realización 2]
Se proporciona una descripción de la operación de procesamiento (método de decodificación de imágenes en movimiento) del aparato de decodificación de imágenes en movimiento 300 de acuerdo con la presente realización, basándose en la Figura 16. La Figura 16 es un diagrama de flujo que muestra un procedimiento de procesamiento del método de decodificación de imágenes en movimiento de acuerdo con la presente realización.
Debería observarse que, en la presente realización, una imagen prevista se genera por bloque de predicción PU, como con la realización 1. La presente realización describe el caso como un ejemplo en el que el tamaño de una unidad de bloque de predicción PU es menor que el de una unidad de bloque de codificación CU, como con la realización 1. Además, la relación entre una unidad de bloque de codificación CU y una unidad de bloque de predicción PU en la presente realización es la misma que en el ejemplo comparativo ilustrado en la Figura 4A.
Lo siguiente es una descripción del caso donde un bloque actual a decodificarse es CU12, como un ejemplo. Como se ilustra en las Figuras 4b y 4C, el modo de predicción del bloque actual CU12 es MODO_INTER, y el bloque actual CU12 incluye dos unidades de bloque de predicción PU, en concreto, PU0 y PU1 (N x 2N). Debería observarse que como se describe en ejemplo comparativo, en la Figura 4B, el área encerrada por la línea discontinua de un punto es un área que tiene información que ya está “disponible” en el punto en el tiempo cuando se codifica la unidad de bloque de predicción PU0 del bloque actual CU 12. Como se ilustra en la Figura 4B, en el ejemplo comparativo, las unidades de bloque de codificación CU2 y CU3 no están “disponibles” cuando se codifica el bloque actual CU12.
Haciendo referencia a la Figura 16, en la etapa S1010, la unidad de control de decodificación 306 realiza procesamiento de generación de una lista de candidatos mvpListX de predictores de vector de movimiento. Este procesamiento corresponde al procesamiento de generación mvpListX de la etapa S210 ilustrado en la Figura 3 realizado mediante el aparato de codificación de imágenes en movimiento 100 de acuerdo con la realización 1 (Ejemplo comparativo 1). Más específicamente, la unidad de control de decodificación 306 realiza el mismo procesamiento que el procesamiento ilustrado en la Figura 14 ejecutado mediante el aparato de codificación de imágenes en movimiento 100, que se describirá en detalle a continuación.
En la etapa S1020, la unidad de control de decodificación 306 realiza procesamiento de actualización en mvpListLX (etapa de actualización). Este procesamiento corresponde al procesamiento de actualización de la etapa S230 ilustrado en la Figura 3 realizado mediante el aparato de codificación de imágenes en movimiento 100 de acuerdo con la realización 1 (Ejemplo comparativo 1).
En la etapa S1030, la unidad de decodificación por entropía 301 extrae un índice de predictor de vector de movimiento mvp_idx_lx a partir de un flujo de bits codificado.
En la etapa S1040, la unidad de decodificación por entropía 301 extrae una diferencia de vector de movimiento mvdLX a partir del flujo de bits codificado.
En la etapa S1050, la unidad de control de decodificación 306 reconstruye un vector de movimiento en la dirección de predicción X. Específicamente, la unidad de control de decodificación 306 identifica un predictor de vector de movimiento mvpListX [mvp_idx_lx] a partir de la lista de candidatos mvpListX de predictores de vector de movimiento generados en la etapa S1020, usando el índice de predictor de vector de movimiento mvp_idx_lx extraído mediante la unidad de decodificación por entropía 301. Como se indica mediante la expresión 1, la unidad de control de decodificación 306 añade la diferencia de vector de movimiento mvdLX y el predictor de vector de movimiento mvpListX [mvp_idx_lx], obteniendo de esta manera el vector de movimiento mvLX.
mvLX = mvpListLX [mvp_idx_lx] mvdLX ... (Expresión 1)
En la etapa S1060, el aparato de decodificación de imágenes en movimiento 300 genera una señal de imagen prevista usando el vector de movimiento mvLX reconstruido mediante la unidad de intra/inter predicción 305, y genera una señal de imagen decodificada mediante la unidad de adición 304 añadiendo una señal residual reconstruida y una señal de imagen prevista.
La Figura 17 es un diagrama de flujo que ilustra un procedimiento de procesamiento detallado de la etapa de creación de mvpListLX que es la etapa S1010 en la Figura 16.
En la etapa S400, la unidad de control de decodificación 306 crea una entrada a partir de un grupo de bloques A (A0, A1). Específicamente, en la etapa S401, la unidad de control de decodificación 306 busca el grupo de bloques A (A0, A1) para un vector de movimiento que está disponible sin procesamiento de cambio de escala. Si un vector de movimiento que está disponible sin procesamiento de cambio de escala no se obtiene en la búsqueda (verdadero en S420), la unidad de control de decodificación 306 busca un vector de movimiento disponible, y realiza procesamiento de cambio de escala en el vector de movimiento obtenido en la búsqueda (S430). Debería observarse que el procesamiento de la etapa S400 es el mismo procesamiento que la etapa S400 realizado mediante la unidad de control de codificación 108 del aparato de codificación de imágenes en movimiento 100.
En la etapa S800, la unidad de control de decodificación 306 crea una entrada a partir del grupo de bloques B (B0, B1, B2).
Específicamente, en la etapa S510, la unidad de control de decodificación 306 busca el grupo de bloques B (B0, B1, B2) para un vector de movimiento que está disponible sin procesamiento de cambio de escala. El procesamiento de la etapa S510 es el mismo procesamiento que la etapa S510 realizado mediante la unidad de control de codificación 108 del aparato de codificación de imágenes en movimiento 100.
En la etapa S820, la unidad de control de decodificación 306 determina si availableFlavLXB == 0, y adicionalmente el modo de predicción de cualquier bloque en el grupo de bloques A es MODO_INTER. Más específicamente, si la unidad de control de decodificación 306 ejecuta las etapas S400 y S800 en paralelo (secuencialmente), la unidad de control de decodificación 306 determina en la etapa S510 si availableFlag no está establecida (availableFlagLXB está aún establecida a 0) y adicionalmente si “el modo de predicción de cualquiera de los bloques A0, A1, y así sucesivamente en el grupo de bloques A es MODO_INTER” vuelve a verdadero, que es una condición de determinación usada en lugar de la determinación isScaled.
Si availableFlavLXB == 0, y adicionalmente el modo de predicción de uno cualquiera de los bloques en el grupo de bloques A es MODO_INTER (verdadero en S820), la unidad de control de decodificación 306 finaliza la creación de mvpListLX en la etapa sin realizar procesamiento de cambio de escala.
Si availableFlavLXB == 0, y adicionalmente el modo de predicción de ninguno de los bloques en el grupo de bloques A es MODO_INTER (falso en S820), la unidad de control de decodificación 306 busca un vector de movimiento disponible, y realiza procesamiento de cambio de escala en el vector de movimiento obtenido en la búsqueda (S530). El procesamiento de la etapa S530 es el mismo que el procesamiento de la etapa S530 realizado mediante la unidad de control de codificación 108 del aparato de codificación de imágenes en movimiento 100.
La Figura 18 ilustra secuencialmente la etapa de creación de mvpListLX que es la etapa S1010. Debería observarse que las etapas en la Figura 18 (S410, S420, S430, S510, S820, S530) son las mismas que las etapas en la Figura 17 (S410, S420, S430, S510, S820, S530).
Como es evidente a partir de la Figura 18, en el aparato de decodificación de imágenes en movimiento 300 de acuerdo con la presente realización, lo que se determina en la etapa S820 realizada en el procesamiento en el grupo de bloques B no depende del resultado del procesamiento de la etapa S1010 en el grupo de bloques A. Por lo tanto, es posible ejecutar las siguientes etapas en paralelo:
- S400: generación de una entrada basándose en el grupo de bloques A (A0, A1); y
- S800: generación de una entrada basándose en el grupo de bloques B (A0, A1).
[Ejemplo 1 de determinación (puntos comunes del aparato de codificación de imágenes 100 en movimiento y aparato de decodificación de imágenes en movimiento 300)]
La Figura 19 ilustra los resultados de determinación de la etapa S620 en la Figura 14 y la etapa S820 en la Figura 18 obtenidos cuando un bloque actual a predecirse (un bloque actual a codificarse, un bloque actual a decodificarse) es PU0 (véase la Figura 4A). Como se ha descrito anteriormente, se determina en la etapa S620 en la Figura 14 y la etapa S820 en la Figura 18 si cualquiera de los bloques A0 y A1 en el grupo de bloques A es un bloque INTER. En el caso de la Figura 19, un bloque adyacente A0 no está disponible, y el modo de predicción del mismo no es MODO_INTER. Además, aunque un bloque adyacente A1 está disponible, el modo de predicción del mismo es MODO_INTRA y no MODO_INTER.
Por lo tanto, en la etapa de determinación anterior, el resultado se determina que es falso puesto que el modo de predicción de ambos bloques adyacentes A0 y A0 no es MODO_INTER en el caso de la Figura 19.
[Ejemplo 2 de determinación (puntos comunes del aparato de codificación de imágenes en movimiento 100 y aparato de decodificación de imágenes en movimiento 300)]
La Figura 20 ilustra los resultados de determinación de la etapa S620 en la Figura 14 y la etapa S820 en la Figura 18 obtenidos cuando un bloque actual a predecirse es PU1.
En el caso de la Figura 20, con respecto al bloque adyacente A0, CU3 aún no está disponible. Además, el modo de predicción del bloque adyacente A1 es MODO_INTER.
Por lo tanto, en la etapa de determinación anterior, el resultado se determina para que sea verdadero puesto que el modo de predicción del bloque adyacente A1 es MODO_INTER en el caso de la Figura 20.
(Efectos y otros)
De acuerdo con el método de codificación de imágenes en movimiento y el aparato de codificación de acuerdo con la realización 1 y el método de decodificación de imágenes en movimiento y el aparato de decodificación de imágenes en movimiento de acuerdo con la realización 2, cuando se genera mvpListLX (etapa S620 en la Figura 14, etapa S820 en la Figura 18), la determinación en cuanto a si el cálculo de cambio de escala se ha realizado en el grupo de bloques A puede omitirse en la determinación en cuanto a si el procesamiento de cambio de escala se ha de realizar en el grupo de bloques B. En otras palabras, la unidad de control de codificación 108 y la unidad de control de decodificación 306 pueden determinar si realizar procesamiento de cambio de escala en el grupo de bloques B, sin usar el resultado del procesamiento en el grupo de bloques A.
Además, antes de la creación de la lista de candidatos mvpListLX, si se acaba de realizar una determinación en cuanto a si el grupo de bloques A incluye un bloque INTER, los candidatos de predictor de vector de movimiento pueden calcularse a partir de los grupos de bloques A y B en paralelo (Figuras 14 y 18).
Debería observarse que, aunque se determina en las etapas S620 y S820 si el modo de predicción de uno cualquiera de los bloques A0 y A1 en el grupo de bloques A es MODO_iNt ER, las realizaciones no están limitadas a esto. En las etapas S620 y S820, por ejemplo, puede realizarse una determinación en cuanto a si nada de lo siguiente se satisface: (1) el modo de predicción de un bloque es MODO_INTRA, (2) un bloque está en un corte o límite de imagen, y (3) un bloque es un bloque no procesado (bloque no codificado o bloque no decodificado).
Además, en las realizaciones 1 y 2, aunque las etapas S620 y S820 se ejecutan después de la etapa S510, las realizaciones no están limitadas a esto. Las etapas S620 y S820 pueden ejecutarse, como la etapa S840, antes de ejecutar el procesamiento en paralelo, o específicamente, antes de ejecutar las etapas S410 y S510, como se ilustra en la Figura 21, por ejemplo. Debería observarse que el orden de determinación (orden de una operación Y y una operación O) no está limitado a las realizaciones 1 y 2 anteriores y el orden de la operación lógica de acuerdo con el que el resultado de la determinación es igual está incluido en la presente invención.
Como se ha descrito anteriormente, de acuerdo con el método de codificación de imágenes en movimiento de acuerdo con la realización 1 y el método de decodificación de imágenes en movimiento de acuerdo con la realización 2, en las etapas S620 y S820, el procesamiento en el grupo de bloques B puede ejecutarse sin usar el resultado del procesamiento en el grupo de bloques A, y el procesamiento en el grupo de bloques A y el procesamiento en el grupo de bloques B puede realizarse en paralelo.
[Realización 3]
La Figura 23 es un diagrama de flujo que ilustra otra realización del método de codificación de imágenes en movimiento de acuerdo con la realización 1 y el método de decodificación de imágenes en movimiento de acuerdo con la realización 2.
Aunque en las realizaciones 1 y 2, se determina si el procesamiento de cambio de escala se ha de permitir en el procesamiento en el grupo de bloques B, basándose en el resultado de la determinación en cuanto a si cualquiera de los bloques (A0, A1) en el grupo de bloques A es un bloque INTER, el procesamiento de cambio de escala en el grupo de bloques B se inhibe completamente en la presente realización.
De esta manera, es también posible resolver la dependencia no realizando las etapas S620 S820, y S530.
[Realización 4]
El procesamiento descrito en cada una de las realizaciones puede implementarse de manera sencilla en un sistema informático independiente, grabando, en un medio de grabación, un programa para implementar las configuraciones del método de codificación de imágenes en movimiento (método de codificación de imagen) y el método de decodificación de imágenes en movimiento (método de decodificación de imagen) descritos en cada una de las realizaciones. El medio de grabación puede ser cualquier medio de grabación siempre que el programa pueda grabarse, 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, se describirán las aplicaciones para el método de codificación de imágenes en movimiento (método de codificación de imagen) y el método de decodificación de imágenes en movimiento (método de decodificación de imagen) descritas en cada una de las realizaciones y sistemas que usan los mismos. El sistema tiene una característica de que tiene un aparato de codificación y decodificación de imagen que incluye un aparato de codificación de imagen que usa el método de codificación de imagen y un aparato de decodificación de imagen que usa el método de decodificación de imagen. Otras configuraciones en el sistema pueden cambiarse según sea apropiado dependiendo de los casos.
La Figura 24 ilustra una configuración global de un sistema de suministro de contenido ex100 para implementar servicios de distribución de contenido. El área para proporcionar servicios de comunicación se divide en células de tamaño deseado, y las estaciones ex106, ex107, ex108, ex109 y base ex110 que son estaciones inalámbricas fijas se colocan en cada una de las células.
El sistema de suministro de contenido ex100 está conectado a los dispositivos, tal como un ordenador ex111, un asistente digital personal (PDA) ex112, una cámara ex113, un teléfono celular ex114 y una máquina de juegos ex115, mediante Internet ex101, un proveedor de servicio de Internet ex102, una red de telefonía ex104, así como las estaciones base ex106 a ex110, respectivamente.
Sin embargo, la configuración del sistema de suministro de contenido ex100 no está limitada a la configuración mostrada en la Figura 24, y una combinación en la que cualquiera de los elementos esté conectado es aceptable. Además, cada dispositivo puede estar directamente conectado a la red de telefonía ex104, en lugar de mediante las estaciones base ex106 a ex110 que son las estaciones inalámbricas fijas. Adicionalmente, los dispositivos pueden interconectarse entre sí mediante una comunicación inalámbrica de corta distancia y otras.
La cámara ex113, tal como una cámara de vídeo digital, puede capturar vídeo. Una cámara ex116, tal como una cámara digital, puede capturar tanto imágenes fijas como de vídeo. Adicionalmente, el teléfono celular ex114 puede ser uno de los que cumple cualquiera de las normas tales como el Sistema Global para Comunicación Móvil (GSM) (marca comercial registrada), Acceso Múltiple por División de Código (CDMA), Acceso Múltiple por División de Código de Banda Ancha (W-CDMA), Evolución a Largo Plazo (LTE), y Acceso de Paquetes de Alta Velocidad (HSPA). Como alternativa, el teléfono celular ex114 puede ser un Sistema de Teléfono Portátil Personal (PHS).
En el sistema de suministro de contenido ex100, un servidor de flujo continuo ex103 está conectado a la cámara ex113 y a otros mediante la red de telefonía ex104 y la estación base ex109, que posibilita la distribución de imágenes de un espectáculo en directo y otros. En una distribución de este tipo, un contenido (por ejemplo, vídeo de un espectáculo en directo de música) 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 imagen de acuerdo con un aspecto de la presente invención), y el contenido codificado se transmite al servidor de flujo continuo ex103. Por otra parte, el servidor de flujo continuo ex103 lleva a cabo distribución de flujo de los datos de contenido transmitidos a los clientes tras sus solicitudes. Los clientes incluyen el ordenador ex111, el PDA ex112, la cámara ex113, el teléfono celular ex114 y la máquina de juegos ex115 que pueden decodificar los datos codificados anteriormente mencionados. Cada uno de los dispositivos que han recibido los datos distribuidos decodifican y reproducen los datos codificados (es decir, funcionan como el aparato de decodificación de imagen de acuerdo con un aspecto de la presente invención).
Los datos capturados pueden codificarse mediante la cámara ex113 o el servidor de flujo continuo ex103 que transmite los datos, o los procesos de codificación pueden compartirse entre la cámara ex113 y el servidor de flujo continuo ex103. De manera similar, los datos distribuidos pueden decodificarse por los clientes o el servidor de flujo continuo ex103, o los procesos de decodificación pueden compartirse entre los clientes y el servidor de flujo continuo ex103. Adicionalmente, los datos de las imágenes fijas y el vídeo capturado mediante no únicamente la cámara ex113 sino también la cámara ex116 pueden transmitirse al servidor de flujo continuo ex103 a través del ordenador ex111. Los procesos de codificación pueden realizarse mediante la cámara ex116, el ordenador ex111 o el servidor de flujo continuo ex103, o compartirse entre ellos.
Adicionalmente, los procesos de codificación y decodificación pueden realizarse mediante un LSI ex500 incluido en general en cada uno del ordenador ex111 y los dispositivos. El LSI ex500 puede estar configurado de un único chip o una pluralidad de chips. El software para codificar y decodificar vídeo puede estar integrado en algún tipo de un medio de grabación (tal como un CD-ROM, un disco flexible y un disco duro) que es legible mediante el ordenador ex111 y otros, y los procesos de codificación y decodificación pueden realizarse usando el software. Adicionalmente, cuando el teléfono celular ex114 está equipado con una cámara, los datos de vídeo obtenidos mediante la cámara pueden transmitirse. Los datos de vídeo son datos codificados mediante el LSI ex500 incluido en el teléfono celular ex114.
Adicionalmente, el servidor de flujo continuo ex103 puede estar compuesto de servidores y ordenadores, y puede descentralizar datos y procesar los datos descentralizados, registrar o distribuir datos.
Como se ha descrito anteriormente, los clientes pueden recibir y reproducir los datos codificados en el sistema de suministro de contenido ex100. En otras palabras, los clientes pueden recibir y decodificar información transmitida mediante el usuario, y reproducir los datos decodificados en tiempo real en el sistema de suministro de contenido ex100, de modo que el usuario que no tiene ningún derecho particular ni equipo puede implementar difusión personal.
Aparte del ejemplo del sistema de suministro de contenido ex100, al menos uno del aparato de codificación de imágenes en movimiento (aparato de codificación de imagen) y el aparato de decodificación de imágenes en movimiento (aparato de decodificación de imagen) descritos en cada una de las realizaciones pueden implementarse en un sistema de difusión digital ex200 ilustrado en la Figura 25. Más específicamente, una estación de difusión ex201comunica o transmite, mediante ondas de radio a un satélite de difusión ex202, datos multiplexados obtenidos multiplexando datos de audio y otros en datos de vídeo. Los datos de vídeo son datos codificados mediante el método de codificación de imágenes en movimiento descrito en cada una de las realizaciones (es decir, datos codificados mediante el aparato de codificación de imagen de acuerdo con un aspecto de la presente invención). Tras la recepción de los datos multiplexados, el satélite de difusión ex202 transmite ondas de radio para difusión. A continuación, una antena de uso doméstico ex204 con una función de recepción de difusión de satélite recibe las ondas de radio. A continuación, un dispositivo tal como una televisión (receptor) ex300 y un decodificador de salón (STB) ex217 decodifica los datos multiplexados recibidos, y reproduce los datos decodificados (es decir, funciona como el aparato de decodificación de imagen de acuerdo con un aspecto de la presente invención).
Adicionalmente, un lector/grabador ex218 (i) lee y decodifica los datos multiplexados grabados en un medio de grabación ex215, tal como un DVD y un BD, o (i) codifica señales de vídeo en el medio de grabación ex215, 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 vídeo reproducidas se visualizan en el monitor ex219, y pueden reproducirse mediante otro dispositivo o sistema usando el medio de grabación ex215 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 de salón ex217 conectado al cable ex203 para una televisión de cable o a la antena ex204 para difusión de satélite y/o terrestre, para visualizar las señales de vídeo en el monitor ex219 de la televisión ex300. El aparato de decodificación de imágenes en movimiento puede no implementarse en el decodificador de salón sino en la televisión ex300.
La Figura 26 ilustra la televisión (receptor) ex300 que usa el método de codificación de imágenes en movimiento y el método de decodificación de imágenes en movimiento descritos en cada una de las realizaciones. La televisión ex300 incluye: un sintonizador ex301 que obtiene o proporciona datos multiplexados obtenidos multiplexando datos de audio en datos de vídeo, a través de la antena ex204 o el cable ex203, etc., que recibe una difusión; una unidad de modulación/demodulación ex302 que demodula los datos multiplexados recibidos o modula datos en datos multiplexados a suministrarse al exterior; y una unidad de multiplexación/demultiplexación ex303 que demultiplexa los datos multiplexados modulados en datos de vídeo y datos de audio, o multiplexa datos de vídeo y datos de audio codificados mediante una unidad de procesamiento de señal en datos ex306.
La televisión ex300 incluye adicionalmente: una unidad de procesamiento de señal ex306 que incluye una unidad de procesamiento de señal de audio ex304 y una unidad de procesamiento de señal de vídeo ex305 que decodifica datos de audio y datos de vídeo y codifica datos de audio y datos de vídeo, respectivamente (que funciona como el aparato de codificación de imagen y el aparato de decodificación de imagen de acuerdo con los aspectos de la presente invención); y una unidad de salida ex309 que incluye un altavoz ex307 que proporciona la señal de audio decodificada, y una unidad de visualización ex308 que visualiza la señal de vídeo decodificada, tal como una pantalla. Adicionalmente, la televisión ex300 incluye una unidad de interfaz ex317 que incluye una unidad de entrada de operación ex312 que recibe una entrada de una operación de usuario. Adicionalmente, la televisión ex300 incluye una unidad de control ex310 que controla en general cada elemento constituyente de la televisión ex300, y una unidad de circuito de fuente de alimentación ex311 que suministra potencia a cada uno de los elementos. Distinta de la unidad de entrada de operación ex312, la unidad de interfaz ex317 puede incluir: un puente ex313 que está conectado a un dispositivo externo, tal como el lector/grabador ex218; una unidad de ranura ex314 para posibilitar la conexión del medio de grabación ex216, tal como una tarjeta de SD; un controlador ex315 que se conecta a un medio de grabación externo, tal como un disco duro; y un módem ex316 que se conecta a una red de telefonía. En este punto, el medio de grabación ex216 puede grabar eléctricamente información usando un elemento de memoria de semiconductores no volátil/volátil para almacenamiento. Los elementos constituyentes de la televisión 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 la televisión ex300 decodifica los datos multiplexados obtenidos a partir del exterior a través de la antena ex204 y otros y reproduce los datos decodificados. En la televisión ex300, tras una operación de usuario a través de un controlador ex220 remoto y otros, la unidad de multiplexación/demultiplexación ex303 demultiplexa los datos multiplexados demodulados mediante la unidad ex302 de modulación/demodulación, bajo control de la unidad de control ex310 que incluye una CPU. Adicionalmente, la unidad ex304 de procesamiento de señal de audio decodifica los datos de audio demultiplexados, y la unidad ex305 de procesamiento de señal de vídeo decodifica los datos de vídeo demultiplexados, usando el método de decodificación descrito en cada una de las realizaciones, en la televisión ex300. La unidad ex309 de salida proporciona la señal de vídeo y la señal de audio decodificadas al exterior, respectivamente. Cuando la unidad ex309 de salida proporciona la señal de vídeo y la señal de audio, las señales pueden almacenarse temporalmente en las memorias intermedias ex318 y ex319, y otras de modo que las señales se reproducen en sincronización entre sí. Adicionalmente, la televisión ex300 puede leer datos multiplexados no a través de una difusión y otros sino a partir de los medios de grabación ex215 y ex216, tal como un disco magnético, un disco óptico y una tarjeta SD. A continuación, se describirá una configuración en la que la televisión ex300 codifica una señal de audio y una señal de vídeo, y transmite los datos al exterior o escribe los datos en un medio de grabación. En la televisión ex300, tras la operación de usuario a través del controlador remoto ex220 y otros, la unidad ex304 de procesamiento de señal de audio codifica una señal de audio, y la unidad de procesamiento de señal de vídeo ex305 codifica una señal de vídeo, bajo el control de la unidad de control ex310 usando el método de codificación descrito en cada una de las realizaciones. La unidad de multiplexación/demultiplexación ex303 multiplexa la señal de vídeo y la señal de audio codificadas, y proporciona la señal resultante al exterior. Cuando la unidad de multiplexación/demultiplexación ex303 multiplexa la señal de vídeo y la señal de audio, las señales pueden almacenarse temporalmente en las memorias intermedias ex320 y ex321, y otras de modo que las señales se reproducen en sincronización entre sí. En este punto, las memorias intermedias ex318, ex319, ex320, y ex321 pueden ser varias como se ilustra, o al menos una memoria intermedia puede compartirse en la televisión ex300. Adicionalmente, los datos pueden almacenarse en una memoria intermedia que puede evitarse el desbordamiento y la infrautilización del sistema entre la unidad de modulación/demodulación ex302 y la unidad de multiplexación/demultiplexación ex303, por ejemplo.
Adicionalmente, la televisión ex300 puede incluir una configuración para recibir una entrada de AV desde un micrófono o una cámara distinta de la configuración para obtener datos de audio y vídeo desde una difusión o un medio de grabación, y puede codificar los datos obtenidos. Aunque la televisión ex300 puede codificar, multiplexar y proporcionar datos al exterior en la descripción, puede ser capaz únicamente de recibir, decodificar y proporcionar datos al exterior pero no codificar, multiplexar y proporcionar datos al exterior.
Adicionalmente, cuando el lector/grabador ex218 lee o escribe datos multiplexados desde o en un medio de grabación, uno de la televisión ex300 y el lector/grabador ex218 pueden decodificar o codificar los datos multiplexados, y la televisión ex300 y el lector/grabador ex218 pueden compartir la decodificación o codificación.
Como un ejemplo, la Figura 27 ilustra una configuración de una unidad ex400 de reproducción/grabación de información cuando se leen o escriben datos 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 van a describir en lo sucesivo. El cabezal óptico ex401 irradia un punto láser en una superficie de grabación del medio de grabación ex215 que es un disco óptico para escribir información, y detecta luz reflejada a partir de la superficie de grabación del medio de grabación ex215 para leer la información. La unidad de grabación de modulación ex402 acciona eléctricamente un láser semiconductor incluido en el cabezal óptico ex401, y modula la luz del láser de acuerdo con datos grabados. La unidad de demodulación de reproducción ex403 amplifica una señal de reproducción obtenida detectando eléctricamente la luz reflejada a partir de la superficie de grabación usando un foto detector incluido en el cabezal óptico ex401, y demodula la señal de reproducción separando un componente de señal grabado en el medio de grabación ex215 para reproducir la información necesaria. La memoria intermedia ex404 mantiene temporalmente la información a grabarse en el medio de grabación ex215 y la información reproducida desde el medio de grabación ex215. El motor de disco ex405 gira el medio de grabación ex215. La unidad de servo control ex406 mueve el cabezal óptico ex401 a una pista de información predeterminada mientras controla el mecanismo de rotación del motor de disco ex405 para seguir el punto láser. La unidad de control de sistema ex407 controla en general la unidad de reproducción/grabación de información ex400. Los procesos de lectura y escritura pueden implementarse mediante la unidad de control de sistema ex407 usando diversa información almacenada en la memoria intermedia ex404 y generando y añadiendo nueva información según sea necesario, y mediante la unidad de grabación de modulación ex402, la unidad de demodulación de reproducción ex403, y la unidad de servo control ex406 que graban y reproducen información a través del cabezal óptico ex401 mientras se operan de una manera coordinada. La unidad de control de sistema ex407 incluye, por ejemplo, un microprocesador, y ejecuta el procesamiento provocando que un ordenador ejecute un programa para lectura y escritura.
Aunque el cabezal óptico ex401 irradia un punto láser en la descripción, puede realizar grabación de alta densidad usando luz de campo cercano.
La Figura 28 ilustra el medio de grabación ex215 que es el disco óptico. En la superficie de grabación del medio de grabación ex215, están formadas hendiduras de guía, y una pista de información ex230 graba, con antelación, información de dirección que indica una posición absoluta en el disco de acuerdo con el cambio en una forma de las hendiduras de guía. La información de dirección incluye información para determinar posiciones de bloques ex231 de grabación que son una unidad para grabar datos. Reproduciendo la pista de información ex230 y leyendo la información de dirección en un aparato que registra y reproduce datos puede conducir a la determinación de las posiciones de los bloques de grabación. Adicionalmente, el medio de grabación ex215 incluye un área ex233 de grabación de datos, un área de circunferencia interna ex232, y un área de circunferencia externa ex234. El área de grabación de datos ex233 es un área para uso al grabar los datos de usuario. El área de circunferencia interna ex232 y el área de circunferencia externa ex234 que están dentro y fuera del área de grabación de datos ex233, respectivamente, son para uso específico excepto para grabación de los datos de usuario. La unidad 400 de reproducción/grabación de información lee y escribe audio codificado, datos de vídeo codificados o datos multiplexados obtenidos multiplexando los datos de audio y de vídeo codificados, desde y en el área de grabación de datos ex233 del medio de grabación ex215.
Aunque se describe un disco óptico que tiene una capa, tal como un DVD y un BD como un ejemplo en la descripción, el disco óptico no está limitado a estos, y puede ser un disco óptico que tiene una estructura multicapa y que puede grabarse en una parte distinta de la superficie. Adicionalmente, el disco óptico puede tener una estructura para grabación/reproducción multidimensional, tal como 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 tiene diferentes capas desde diferentes ángulos.
Adicionalmente, un coche ex210 que tiene una antena ex205 puede recibir datos desde el satélite ex202 y otros, y reproducir vídeo en un dispositivo de visualización tal como un sistema ex211 de navegación de coche establecido en el coche ex210, en el sistema de difusión digital ex200. En este punto, una configuración del sistema de navegación del coche ex211 será una configuración, por ejemplo, que incluye una unidad de recepción de GPS de la configuración ilustrada en la Figura 26. Lo mismo se cumplirá para la configuración del ordenador ex111, el teléfono celular ex114 y otros.
La Figura 29A ilustra el teléfono celular ex114 que usa el método de codificación de imágenes en movimiento y el método de decodificación de imágenes en movimiento descritos en las realizaciones. El teléfono celular ex114 incluye: una antena ex350 para transmitir y recibir ondas de radio a través de la estación base ex110; una unidad de cámara ex365 que puede capturar imágenes en movimiento y fijas; y una unidad de visualización ex358 tal como una pantalla de cristal líquido para visualizar los datos tales como vídeo decodificado capturado mediante la unidad de cámara ex365 o recibido mediante la antena ex350. El teléfono celular ex114 incluye adicionalmente: una unidad de cuerpo principal que incluye una unidad de tecla de operación ex366; una unidad de salida de audio ex357 tal como un altavoz para salida de audio; una unidad de entrada de audio ex356 tal como un micrófono para entrada de audio; una unidad de memoria ex367 para almacenar vídeo o imágenes fijas capturadas, audio grabado, datos codificados o decodificados del vídeo 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 de memoria ex367.
A continuación, se describirá un ejemplo de una configuración del teléfono celular ex114 con referencia a la Figura 29B. En el teléfono celular ex114, una unidad de control principal ex360 diseñada para control general de cada unidad del cuerpo principal que incluye la unidad de visualización ex358 así como la unidad ex366 de tecla de operación que están conectadas mutuamente, mediante un bus síncrono ex370, a una unidad ex361 de circuito de fuente de alimentación, una unidad de control de entrada de operación ex362, una unidad ex355 de procesamiento de señal de vídeo, una unidad de interfaz de cámara ex363, una unidad de control de pantalla de cristal líquido (LCD) ex359, una unidad de modulación/demodulación ex352, una unidad de multiplexación/demultiplexación ex353, una unidad de procesamiento de señal de audio ex354, la unidad de ranura ex364 y la unidad de memoria ex367.
Cuando una tecla de fin de llamada o una tecla de alimentación se ENCIENDE por una operación del usuario, la unidad ex361 de circuito de fuente de alimentación suministra a las respectivas unidades con potencia desde un paquete de baterías para activar el teléfono celular ex114.
En el teléfono celular ex114, la unidad de procesamiento de señal de audio ex354 convierte las señales de audio recopiladas mediante 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 de control principal ex360 que incluye una CPU, ROM y RAM. A continuación, la unidad de modulación/demodulación ex352 realiza el procesamiento de espectro ensanchado en las señales de audio digitales, y la unidad de transmisión y recepción ex351 realiza conversión de digital a analógico y conversión de frecuencia en los datos, para transmitir los datos resultantes mediante la antena ex350. También, en el teléfono celular ex114, la unidad de transmisión y recepción ex351 amplifica los datos recibidos mediante la antena ex350 en modo de conversación de voz y realiza conversión de frecuencia y la conversión de analógico a digital en los datos. A continuación, la unidad de modulación/demodulación ex352 realiza el procesamiento de espectro ensanchado inverso en los datos, y la unidad de procesamiento de señal de audio ex354 los convierte en señales de audio analógicas, para emitirlas mediante la unidad de salida de audio ex357.
Adicionalmente, cuando se transmite un correo electrónico en modo de comunicación de datos, los datos de texto del correo electrónico introducido operando la unidad ex366 de tecla de operación y otros del cuerpo principal se envían a la unidad de control principal ex360 mediante la unidad ex362 de control de entrada de operación. La unidad de control principal ex360 provoca que la unidad de modulación/demodulación ex352 realice el procesamiento de espectro ensanchado en los datos de texto, y la unidad de transmisión y recepción ex351 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 base ex110 mediante 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 en los datos recibidos, y los datos resultantes se proporcionan a la unidad de visualización ex358.
Cuando el vídeo, imágenes fijas o el vídeo y audio en modo de comunicación de datos se ha o han de transmitir, la unidad ex355 de procesamiento de señal de vídeo comprime y codifica señales de vídeo suministradas desde la unidad de cámara ex365 usando el método 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 imagen de acuerdo con el aspecto de la presente invención), y transmite los datos de vídeo codificados a la unidad ex353 de multiplexación/demultiplexación. En contraste, cuando la unidad de cámara ex365 captura vídeo, imágenes fijas y otros, la unidad de procesamiento de señal de audio ex354codifica señales de audio recopiladas mediante 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 de multiplexación/demultiplexación ex353 multiplexa los datos de vídeo codificados suministrados desde la unidad de procesamiento de señal de vídeo ex355 y los datos de audio codificados suministrados desde la unidad ex354 de procesamiento de señal de audio, usando un método predeterminado. A continuación, la unidad de modulación/demodulación (unidad de circuito de modulación/demodulación) ex352 realiza el procesamiento de espectro ensanchado en los datos multiplexados, y la unidad de transmisión y recepción ex351 realiza conversión de digital a analógico y conversión de frecuencia en los datos para transmitir los datos resultantes mediante la antena ex350.
Cuando se reciben datos de un fichero de vídeo que está vinculado a una página web y otros en modo de comunicación de datos o cuando se recibe un correo electrónico con vídeo y/o audio adjunto, para decodificar los datos multiplexados recibidos mediante la antena ex350, la unidad de multiplexación/demultiplexación ex353 demultiplexa los datos multiplexados en un flujo de bits de datos de vídeo y un flujo de bits de datos de audio, y suministra la unidad ex355 de procesamiento de señal de vídeo con los datos de vídeo codificados y la unidad de procesamiento de señal de audio ex354con los datos de audio codificados, a través del bus síncrono ex370. La unidad ex355 de procesamiento de señal de vídeo decodifica la señal de vídeo usando un método de decodificación de imágenes en movimiento que corresponde al método 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 imagen de acuerdo con el aspecto de la presente invención), y a continuación la unidad de visualización ex358 visualiza, por ejemplo, el vídeo y las imágenes fijas incluidas en el fichero de vídeo vinculado a la página web mediante la unidad ex359 de control de LCD. Adicionalmente, la unidad de procesamiento de señal de audio ex354decodifica la señal de audio, y la unidad de salida de audio ex357 proporciona el audio.
Adicionalmente, de manera similar a la televisión ex300, un terminal tal como el teléfono celular ex114 probablemente tenga 3 tipos de configuraciones de implementación que incluyen no únicamente (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 únicamente un aparato de codificación y (iii) un terminal de recepción que incluye únicamente un aparato de decodificación. Aunque el sistema de difusión digital ex200 recibe y transmite los datos multiplexados obtenidos multiplexando datos de audio en datos de vídeo en la descripción, los datos multiplexados pueden ser datos obtenidos multiplexando no solo datos de audio sino datos de carácter relacionados con vídeo en datos de vídeo, y pueden no ser solo datos multiplexados sino los mismos datos de vídeo.
Como tal, el método de codificación de imágenes en movimiento y el método 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.
Adicionalmente, la presente invención no está limitada a las realizaciones anteriores, y son posibles diversas modificaciones y revisiones sin alejarse del alcance de la presente invención.
[Realización 5]
Los datos de vídeo pueden generarse mediante conmutación, según sea necesario, entre (i) el método de codificación de imágenes en movimiento o el aparato de codificación de imágenes en movimiento mostrados en cada una de las realizaciones y (ii) un método de codificación de imágenes en movimiento o un aparato de codificación de imágenes en movimiento de conformidad con una norma diferente, tal como MPEG-2, MPEG-4 AVC y VC-1.
En este punto, cuando se genera una pluralidad de datos de vídeo que se ajustan a las diferentes normas y a continuación se decodifican, necesitan seleccionarse los métodos de decodificación para adaptarse a las diferentes normas. Sin embargo, puesto que no puede detectarse a qué norma se adapta cada uno de la pluralidad de los datos de vídeo a decodificarse, existe un problema que no puede seleccionarse un método de decodificación apropiado.
Para resolver el problema, los datos multiplexados obtenidos multiplexando datos de audio y otros en datos de vídeo tienen una estructura que incluye información de identificación que indica a qué norma se adaptan los datos de vídeo. Se describirá en lo sucesivo la estructura específica de los datos multiplexados que incluyen los datos de vídeo generados en el método de codificación de imágenes en movimiento y mediante el aparato de codificación de imágenes en movimiento mostrados en cada una de las realizaciones. Los datos multiplexados son un flujo digital en el formado de Flujo de Transporte de MPEG-2.
La Figura 30 ilustra una estructura de los datos multiplexados. Como se ilustra en la Figura 30, los datos multiplexados pueden obtenerse multiplexando al menos uno de un flujo de vídeo, un flujo de audio, un flujo de gráficos de presentación (PG) y un flujo de gráficos interactivo. El flujo de vídeo representa vídeo primario y vídeo secundario de una película, el flujo de audio (IG) representa una parte de audio primario y una parte de audio secundario a mezclarse con la parte de audio principal, y el flujo de gráficos de presentación representa subtítulos de la película. En este punto, el vídeo primario es vídeo normal a visualizarse en una pantalla, y el vídeo secundario es vídeo a visualizarse en una ventana más pequeña en el vídeo primario. Adicionalmente, el flujo de gráficos interactivo representa una pantalla interactiva a generarse disponiendo los componentes de GUI en una pantalla. El flujo de vídeo se codifica en el método de codificación de imágenes en movimiento o mediante el aparato de codificación de imágenes en movimiento mostrados en cada una de las realizaciones, o en un método de codificación de imágenes en movimiento o mediante un aparato de codificación de imágenes en movimiento de conformidad con una norma convencional, tal como MPEG-2, MPEG-4 AVC y VC-1. El flujo de audio se codifica de acuerdo con una norma, 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 el PID. Por ejemplo, 0x1011 se asigna al flujo de vídeo a usarse para vídeo de una película, 0x1100 a 0x111F se asignan a los flujos de audio, 0x1200 a 0x121F se asignan a los flujos de gráficos de presentación, 0x1400 a 0x141F se asignan al flujo de gráficos interactivos, 0x1B00 a 0x1B1F se asignan a los flujos de vídeo a usarse para vídeo secundario de la película, y 0x1A00 a 0x1A1F se asignan a los flujos de audio a usarse para el audio secundario a mezclarse con el audio principal.
La Figura 31 ilustra esquemáticamente cómo se multiplexan los datos. En primer lugar, un flujo ex235 de vídeo compuesto de fotogramas de vídeo y un flujo ex238 de audio compuesto de tramas de audio se transforman en un flujo ex236 de paquetes de PES y un flujo ex239 de paquetes de PES, y adicionalmente en paquetes ex237 de TS y paquetes ex240 de 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 interactivo se transforman en un flujo ex242 de paquetes de PES y un flujo ex245 de paquetes de PES, y adicionalmente en paquetes ex243 de TS y paquetes ex246 de TS, respectivamente. Estos paquetes de TS se multiplexan en un flujo para obtener datos multiplexados ex247.
La Figura 32 ilustra cómo se almacena un flujo de vídeo en el flujo de paquetes de PES en más detalle. La primera barra en la Figura 32 muestra un fotograma de flujo de vídeo en un flujo de vídeo. La segunda barra muestra el flujo de paquetes de PES. Como se indica mediante las flechas indicadas como yy1, yy2, yy3 e yy4 en la Figura 32, el flujo de vídeo se divide en imágenes como imágenes I, imágenes B e imágenes P cada una de las cuales es una unidad de presentación de vídeo, y las imágenes se almacenan en una carga útil de cada uno de los paquetes de PES. Cada uno de los paquetes de PES tiene un encabezamiento de PES, y el encabezamiento de PES almacena una Indicación de Tiempo de Presentación (PTS) que indica un tiempo de visualización de la imagen, y una Indicación de Tiempo de Decodificación (DTS) que indica un tiempo de decodificación de la imagen.
La Figura 33 ilustra un formato de paquetes de TS para escribirse finalmente en los datos multiplexados. Cada uno de los paquetes de TS es un paquete de longitud fija de 188 bytes que incluye un encabezamiento de TS de 4 bytes que tiene información, tal como un PID para identificar un flujo y una carga útil de TS de 184 bytes para almacenar datos. Los paquetes de PES se dividen y almacenan en las cargas útiles de TS, respectivamente. Cuando se usa un BD ROM, cada uno de los paquetes de TS se le proporciona un Encabezamiento TP_Extra de 4 bytes, dando como resultado por lo tanto en paquetes de origen de 192 bytes. Los paquetes de origen se escriben en los datos multiplexados. El Encabezamiento TP_Extra almacena información tal como una Indicación de Tiempo de Llegada (Arrival_Time_Stamp) (ATS). La ATS muestra un tiempo de inicio de transferencia en el que se ha de transferir cada uno de los paquetes de TS a un filtro de PID. Los paquetes de origen están dispuestos en los datos multiplexados como se muestra en la parte inferior de la Figura 33. Los números que se incrementan desde la cabecera de los datos multiplexados se denominan números de paquete de origen (SPN).
Cada uno de los paquetes de TS incluidos en los datos multiplexados incluyen no únicamente flujos de audio, vídeo, subtítulos y otros, sino también una Tabla de Asociación de Programa (PAT), una Tabla de Mapa de Programa (PMT), y una Referencia de Reloj de Programa (PCR). La PAT muestra qué indica un PID en una PMT usada en los datos multiplexados, y un PID de la misma PAT se registra como cero. La PMT almacena los PID de los flujos de vídeo, audio, subtítulos y otros incluidos en los datos multiplexados, e información de atributo de los flujos que corresponde a los PID. La PMT 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 está permitido o no el copiado de los datos multiplexados. La PCR almacena información de tiempo de STC que corresponde a una ATS que muestra cuándo se transfiere el PCR a un decodificador, para conseguir sincronización entre un Reloj de Tiempo de Llegada (ATC) que es un eje de tiempo de las ATS, y un Reloj de Tiempo de Sistema (STC) que es un eje de tiempo de las PTS y DTS.
La Figura 34 ilustra la estructura de datos de la PMT en detalle. Un encabezamiento de PMT está dispuesto en la parte superior de la PMT. El encabezamiento de PMT describe la longitud de datos incluidos en la PMT y otros. Está dispuesta una pluralidad de descriptores relacionados con los datos multiplexados después del encabezamiento de PMT. La información tal como la información de control de copia se describe en los descriptores. Después de los descriptores, está dispuesta una pluralidad de piezas de la información de flujo relacionadas con los flujos incluidos en los datos multiplexados. Cada pieza de la información de flujo incluye descriptores de flujo describiendo cada uno 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 atributo de flujo (tal como una velocidad de fotograma 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 otros, se graban junto con ficheros de información de datos multiplexados.
Cada uno de los ficheros de información de datos multiplexados es información de gestión de los datos multiplexados como se muestra en la Figura 35. Los ficheros de información de datos multiplexados están en una correspondencia uno a uno con los datos multiplexados, y cada uno de los ficheros incluye información de datos multiplexados, información de atributo de flujo y un mapa de entrada.
Como se ilustra en la Figura 35, la información de datos multiplexados incluye una velocidad de sistema, un tiempo de inicio de reproducción y un tiempo de fin de reproducción. La velocidad de sistema indica la velocidad de transferencia máxima a la que un decodificador objetivo de sistema, que se va a describir más adelante, transfiere los datos multiplexados a un filtro de PID. Los intervalos de las ATS incluidos en los datos multiplexados se establecen no tan elevados como una velocidad del sistema. El tiempo de inicio de reproducción indica una PTS en un fotograma de vídeo en la cabecera de los datos multiplexados. Un intervalo de un fotograma se añade a una PTS en un fotograma de vídeo al final de los datos multiplexados, y la PTS se establece al tiempo de fin de reproducción.
Como se muestra en la Figura 36, una pieza de información de atributo se registra en la información de atributo de flujo, para cada PID de cada flujo incluido en los datos multiplexados. Cada pieza de información de atributo tiene información diferente dependiendo de si el flujo correspondiente es un flujo de vídeo, un flujo de audio, un flujo de gráficos de presentación o un flujo de gráficos interactivo. Cada pieza de información de atributo de flujo de vídeo lleva información que incluye qué tipo de códec de compresión se usa para comprimir el flujo de vídeo, y la resolución, relación de aspecto y velocidad de fotograma de las piezas de imágenes que están incluidas en el flujo de vídeo. Cada pieza de información de atributo de flujo de audio lleva información que incluye qué tipo de códec de compresión se usa para comprimir el flujo de audio, cuántos canales están incluidos en el flujo de audio, qué idioma soporta el flujo de audio, y cómo de alta es la frecuencia de muestreo. La información de atributo de flujo de vídeo y la información de atributo de flujo de audio se usan para inicialización de un decodificador antes de que el reproductor reproduzca la información.
En la presente realización, los datos multiplexados a usarse son de un tipo de flujo incluido en la PMT. Adicionalmente, cuando los datos multiplexados se graban en un medio de grabación, se usa la información de atributo de flujo de vídeo incluida en la información de datos multiplexados. Más específicamente, el método 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 una etapa o una unidad para asignar información única que indica datos de vídeo generados mediante el método 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 vídeo. Con la configuración, los datos de vídeo generados mediante el método 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 datos de vídeo que se ajustan a otra norma.
Adicionalmente, la Figura 37 ilustra etapas del método 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 vídeo 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 de atributo de flujo de vídeo indica o no que los datos multiplexados se generan mediante el método 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 vídeo indica que los datos multiplexados se generan mediante el método 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 método de decodificación de imágenes en movimiento en cada una de las realizaciones. Adicionalmente, cuando el tipo de flujo o la información de atributo de flujo de vídeo indican conformidad a las normas convencionales, tal como MPEG-2, MPEG-4 AVC y VC-1, en la etapa exS103, la decodificación se realiza mediante un método de decodificación de imágenes en movimiento de conformidad con las normas convencionales.
Como tal, asignando un nuevo valor único al tipo de flujo o a la información de atributo de flujo de vídeo posibilita la determinación de si el método de decodificación de imágenes en movimiento o el aparato de decodificación de imágenes en movimiento que se describen en cada una de las realizaciones pueden realizar o no decodificación. Incluso cuando se introducen los datos multiplexados que se ajustan a una norma diferente, puede seleccionarse un método o aparato de decodificación apropiado. Por lo tanto, se hace posible decodificar información sin ningún error. Adicionalmente, el método o aparato de codificación de imágenes en movimiento, o el método o aparato de decodificación de imágenes en movimiento en la presente realización pueden usarse en los dispositivos y sistemas anteriormente descritos.
[Realización 6]
Cada uno del método de codificación de imágenes en movimiento, el aparato de codificación de imágenes en movimiento, el método 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 consigue típicamente en forma de un circuito integrado o un circuito Integrado a Gran Escala (LSI). Como un ejemplo del LSI, la Figura 38 ilustra una configuración del LSI ex500 que está fabricado en un chip. El LSI ex500 incluye los elementos ex501, ex502, ex503, ex504, ex505, ex506, ex507, ex508 y ex509 que se van a describir a continuación, y los elementos están conectados entre sí a través de un bus ex510. La unidad de circuito de fuente de alimentación ex505 se activa suministrando a cada uno de los elementos con potencia cuando se conecta la unidad ex505 de circuito de fuente de alimentación.
Por ejemplo, cuando se realiza codificación, el LSI ex500 recibe una señal de AV desde un micrófono ex117, una cámara ex113 y otros a través de un ES ex509 de AV bajo el control de una unidad de control ex501 que incluye una CPU ex502, un controlador de memoria ex503, un controlador de flujo ex504 y una unidad de control de frecuencia de accionamiento ex512. La señal de AV recibida se almacena temporalmente en una memoria ex511 externa, tal como una SDRAM. Bajo el control de la unidad de control ex501, los datos almacenados se segmentan en porciones de datos de acuerdo con la cantidad de procesamiento y velocidad a transmitirse a una unidad de procesamiento de señal ex507. A continuación, la unidad de procesamiento de señal ex507 codifica una señal de audio y/o una señal de vídeo. En este punto, la codificación de la señal de vídeo es la codificación descrita en cada una de las realizaciones. Adicionalmente, la unidad de procesamiento de señal ex507 en ocasiones multiplexa los datos de audio codificados y los datos de vídeo 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 de grabación ex215. Cuando los conjuntos de datos se multiplexan, los datos deberían almacenarse temporalmente en la memoria intermedia ex508 de modo que los conjuntos de datos se sincronicen entre sí.
Aunque la memoria ex511 es un elemento fuera del LSI ex500, puede incluirse en el LSI ex500. La memoria intermedia ex508 no está limitada a una memoria intermedia, sino que puede estar compuesta de memorias intermedias. Adicionalmente, el LSI ex500 puede fabricarse en un chip o una pluralidad de chips.
Adicionalmente, aunque la unidad de control ex501 incluye la CPU ex502, el controlador de memoria ex503, el controlador de flujo ex504, la unidad de control de frecuencia de accionamiento ex512, la configuración de la unidad de control ex501 no está limitada a esto. Por ejemplo, la unidad de procesamiento de señal ex507 puede incluir adicionalmente una CPU. La inclusión de otra c Pu en la unidad de procesamiento de señal ex507 puede mejorar la velocidad de procesamiento. Adicionalmente, como otro ejemplo, la CPU ex502 puede servir como, o ser una parte de la unidad de procesamiento de señal ex507, y, por ejemplo, puede incluir una unidad de procesamiento de señal de audio. En un caso de este tipo, la unidad de control ex501 incluye la unidad de procesamiento de señal ex507 o la CPU ex502 que incluye una parte de la unidad de procesamiento de señal ex507.
El nombre usado en este punto es LSI, pero puede llamarse también CI, sistema LSI, súper LSI o ultra LSI dependiendo del grado de integración.
Además, las maneras para conseguir integración no están limitadas al LSI, y un circuito especial o un procesador de fin general y así sucesivamente, pueden conseguir también la integración. Pueden usarse también campos de matrices de puertas programables (FPGA) que pueden programarse después de la fabricación de LSI o un procesador reconfigurable que permite la reconfiguración de la conexión o configuración de un LSI para el mismo fin. En el futuro, con el avance en la tecnología de semiconductores, una tecnología nueva puede sustituir a LSI. Los bloques funcionales pueden integrarse usando una tecnología de este tipo. La posibilidad es que la presente invención se aplique a biotecnología.
[Realización 7]
Cuando se decodifican los datos de vídeo generados en el método de codificación de imágenes en movimiento o mediante el aparato de codificación de imágenes en movimiento descritos en cada una de las realizaciones, en comparación con cuando se decodifica los datos de vídeo que se ajustan a una norma convencional, tal como MPEG-2, MPEG-4 AVC y VC-1, la cantidad de procesamiento probablemente aumenta. Por lo tanto, el LSI ex500 necesita establecerse a una frecuencia de accionamiento superior a la de la CPU ex502 para usarse cuando se decodifican datos de vídeo de conformidad con la norma convencional. Sin embargo, cuando la frecuencia de accionamiento se establece más alta, existe un problema de que el consumo de potencia aumenta.
Para resolver el problema, el aparato de decodificación de imágenes en movimiento, tal como la televisión ex300 y el LSI ex500 están configurados para determinar a qué normas se ajustan los datos de vídeo, y conmutar entre las frecuencias de accionamiento de acuerdo con la norma determinada. La Figura 39 ilustra una configuración ex800 en la presente realización. Una unidad de conmutación de frecuencia de accionamiento ex803 establece una frecuencia de accionamiento a una frecuencia de accionamiento superior cuando se generan datos de vídeo mediante el método 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 de conmutación de frecuencia de accionamiento ex803 ordena a una unidad de procesamiento de decodificación ex801que ejecuta el método de decodificación de imágenes en movimiento descrito en cada una de las realizaciones que decodifique los datos de vídeo. Cuando los datos de vídeo se ajustan a la norma convencional, la unidad de conmutación de frecuencia de accionamiento ex803 establece una frecuencia de accionamiento a una frecuencia de accionamiento inferior que la de los datos de vídeo generados mediante el método 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 de conmutación de frecuencia de accionamiento ex803 ordena a la unidad de procesamiento de decodificación ex802 que se ajusta a la norma convencional que decodifique los datos de vídeo.
Más específicamente, la unidad de conmutación de frecuencia de accionamiento ex803 incluye la CPU ex502 y la unidad de control de frecuencia de accionamiento ex512 en la Figura 38. En este punto, cada una de la unidad de procesamiento de decodificación ex801que ejecuta el método de decodificación de imágenes en movimiento descrito en cada una de las realizaciones y la unidad de procesamiento de decodificación ex802 que se ajusta a la norma convencional corresponde a la unidad de procesamiento de señal ex507 en la Figura 38. La c Pu ex502 determina a qué norma se ajustan los datos de vídeo. A continuación, la unidad de control de frecuencia de accionamiento ex512 determina una frecuencia de accionamiento basándose en una señal desde la CPU ex502. Adicionalmente, la unidad de procesamiento de señal ex507 decodifica los datos de vídeo basándose en la señal desde la CPU ex502. Por ejemplo, la información de identificación descrita en la realización 5 probablemente se usa para identificar los datos de vídeo. La información de identificación no está limitada a la descrita en la realización 5 sino que puede ser cualquier información siempre que la información indique a qué norma se ajustan los datos de vídeo. Por ejemplo, qué norma se ajusta a datos de vídeo puede determinarse basándose en una señal externa para determinar que los datos de vídeo se usan para una televisión o un disco, etc., la determinación puede realizarse basándose en una señal externa de este tipo. Adicionalmente, la CPU ex502 selecciona una frecuencia de accionamiento basándose en, por ejemplo, una tabla de correspondencia en la que las normas de los datos de vídeo están asociadas con las frecuencias de accionamiento como se muestra en la Figura 127. La frecuencia de accionamiento puede seleccionarse almacenando la tabla de correspondencia en la memoria intermedia ex508 y en una memoria interna de un LSI, y con referencia a la tabla de correspondencia mediante la CPU ex502.
La Figura 40 ilustra etapas para ejecutar un método en la presente realización. En primer lugar, en la etapa exS200, la unidad de procesamiento de señal ex507 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 vídeo se generan o no mediante el método 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 vídeo se generan mediante el método 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 ajustar la frecuencia de accionamiento a una frecuencia de accionamiento superior a la unidad de control de frecuencia de accionamiento ex512. A continuación, la unidad de control de frecuencia de accionamiento ex512 establece la frecuencia de accionamiento a la frecuencia de accionamiento superior. Por otra parte, cuando la información de identificación indica que los datos de vídeo se ajustan a la norma convencional, tal como MPEG-2, MPEG-4 AVC y VC-1, en la etapa exS203, la CPU ex502 transmite una señal para ajustar la frecuencia de accionamiento a una frecuencia de accionamiento inferior a la unidad de control de frecuencia de accionamiento ex512. A continuación, la unidad de control de frecuencia de accionamiento ex512 establece la frecuencia de accionamiento a la frecuencia de accionamiento inferior que la de en el caso donde los datos de vídeo se generan mediante el método 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.
Adicionalmente, junto con la conmutación de las frecuencias de accionamiento, el efecto de conservación de potencia puede mejorarse cambiando la tensión a aplicarse al LSI ex500 o a un aparato que incluye el LSI ex500. Por ejemplo, cuando la frecuencia de accionamiento se establece más baja, la tensión a aplicarse al LSI ex500 o que incluye el aparato del LSI ex500 probablemente se establece a una tensión inferior que la de en el caso donde la frecuencia de accionamiento se establece más alta.
Adicionalmente, cuando la cantidad de procesamiento para decodificar es mayor, la frecuencia de accionamiento puede establecerse más alta, y cuando la cantidad de procesamiento para decodificar es menor, la frecuencia de accionamiento puede establecerse menor que el método para ajustar la frecuencia de accionamiento. Por lo tanto, el método de ajuste no está limitado a los anteriormente descritos. Por ejemplo, cuando la cantidad de procesamiento para decodificar datos de vídeo de conformidad con MPEG-4 AVC es mayor que la cantidad de procesamiento para decodificar datos de vídeo generados mediante el método 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 frecuencia de accionamiento se establece probablemente en orden inverso al ajuste anteriormente descrito.
Adicionalmente, el método para ajustar la frecuencia de accionamiento no está limitado al método para ajustar la frecuencia de accionamiento más baja. Por ejemplo, cuando la información de identificación indica que los datos de vídeo se generan mediante el método 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 aplicarse al LSI ex500 o que incluye el aparato del LSI ex500 probablemente se establece más alta. Cuando la información de identificación indica que los datos de vídeo se ajustan a la norma convencional, tal como MPEG-2, MPEG-4 AVC y VC-1, la tensión a aplicarse al LSI ex500 o que incluye el aparato del LSI ex500 probablemente se establece más baja. Como otro ejemplo, cuando la información de identificación indica que los datos de vídeo se generan mediante el método 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, el accionamiento de la CPU ex502 probablemente no tiene que suspenderse. Cuando la información de identificación indica que los datos de vídeo se ajustan a la norma convencional, tal como MPEG-2, MPEG-4 AVC y VC-1, el accionamiento de la CPU ex502 probablemente se suspende a un tiempo dado puesto que la CPU ex502 tiene capacidad de procesamiento adicional. Incluso cuando la información de identificación indica que los datos de vídeo se generan mediante el método 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 capacidad de procesamiento adicional, el accionamiento de la CPU ex502 probablemente se suspende a un tiempo dado. En un caso de este tipo, el tiempo de suspensión se establece probablemente más corto que en el caso donde cuando la información de identificación indica que los datos de vídeo se ajustan a la norma convencional, tal como MPEG-2, MPEG-4 AVC y VC-1.
Por consiguiente, el efecto de conservación de potencia puede mejorarse conmutando las frecuencias de accionamiento de acuerdo con la norma a la que se adaptan los datos de vídeo. Adicionalmente, cuando el LSI ex500 o que incluye el aparato del LSI ex500 se acciona usando una batería, la duración de la batería puede extenderse con el efecto de conservación de potencia.
[Realización 8]
Hay casos donde una pluralidad de datos de vídeo que se ajustan a diferentes normas, se proporciona a los dispositivos y sistemas, tal como una televisión y un teléfono celular. Para posibilitar la decodificación de la pluralidad de datos de vídeo que se ajustan a las diferentes normas, la unidad de procesamiento de señal ex507 del LSI ex500 necesita adaptarse a las diferentes normas. Sin embargo, surgen problemas del aumento en la escala del circuito del LSI ex500 y el aumento en el coste con el uso individual de las unidades de procesamiento de señal ex507 que se adaptan a las respectivas normas.
Para resolver el problema, lo que se concibe es una configuración en la que la unidad de procesamiento de decodificación para implementar el método 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 a la norma convencional, tal como MPEG-2, MPEG-4 AVC y VC-1 están parcialmente compartidas. Ex900 en la Figura 42A muestra un ejemplo de la configuración. Por ejemplo, el método de decodificación de imágenes en movimiento descrito en cada una de las realizaciones y el método de decodificación de imágenes en movimiento que se ajustan a MPEG-4 AVC tienen, parcialmente en común, los detalles del procesamiento, tal como codificación por entropía, cuantificación inversa, filtración de desbloqueo y predicción de movimiento compensado. Los detalles del procesamiento a compartirse probablemente incluyen el uso de una unidad ex902 de procesamiento de decodificación que se ajusta a MPEG-4 AVC. En contraste, probablemente se usa una unidad ex901 de procesamiento de decodificación especializada para otro procesamiento único para un aspecto de la presente invención. La unidad de procesamiento de decodificación para implementar el método de decodificación de imágenes en movimiento descrito en cada una de las realizaciones puede compartirse para el procesamiento a compartirse, y una unidad de procesamiento de decodificación especializada puede usarse para procesamiento único para el de MPEG-4 AVC.
Adicionalmente, ex1000 en la Figura 42B 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 especializada que soporta el procesamiento único para un aspecto de la presente invención, una unidad ex1002 de procesamiento de decodificación especializada que soporta el procesamiento único para otra norma convencional, y una unidad ex1003 de procesamiento de decodificación que soporta que se comparta el procesamiento entre el método de decodificación de imágenes en movimiento de acuerdo con el aspecto de la presente invención y el método de decodificación de imágenes en movimiento convencional. En este punto, las unidades ex1001 y ex1002 de procesamiento de decodificación especializadas no están necesariamente especializadas para el procesamiento de acuerdo con el aspecto de la presente invención y el procesamiento de la norma convencional, respectivamente, y puede ser el que puede implementar el procesamiento general. Adicionalmente, la configuración de la presente realización puede implementarse mediante el LSI ex500.
Como tal, reducir la escala del circuito de un LSI y reducir el coste es posible compartiendo la unidad de procesamiento de decodificación para el procesamiento a compartirse entre el método de decodificación de imágenes en movimiento de acuerdo con el aspecto de la presente invención y el método de decodificación de imágenes en movimiento de conformidad con la norma convencional.
De acuerdo con un aspecto particular adicional, se proporciona un método de decodificación de imágenes en movimiento para decodificar un bloque actual incluido en un flujo de bits, usando un predictor de vector de movimiento utilizado cuando se decodifica un vector de movimiento del bloque actual. El método comprende (a) obtener uno o más candidatos a predictor de vector de movimiento que son candidatos para el predictor de vector de movimiento; (b) decodificar un índice codificado para identificar uno de entre el uno o más candidatos a predictor de vector de movimiento, añadiéndose el índice codificado al flujo de bits; y (c) seleccionar, en base al índice decodificado, el predictor de vector de movimiento a utilizar para decodificar el bloque actual de entre el uno o más candidatos a predictor de vector de movimiento. La etapa (a) incluye (a1) generar un candidato a predictor de vector de movimiento, en base a diversos vectores de movimiento de diversos primeros bloques adyacentes al bloque actual en una primera dirección; y (a2) generar un candidato a predictor de vector de movimiento, en base a diversos vectores de movimiento de diversos segundos bloques adyacentes al bloque actual en una segunda dirección. La etapa (a2) incluye (i) determinar si los diversos primeros bloques adyacentes incluyen uno o más bloques inter­ previstos; y (ii) buscar un vector de movimiento para hacerlo disponible mediante el procesamiento de cambio de escala entre los diversos vectores de movimiento de los diversos segundos bloques adyacentes cuando se determina en la etapa (i) que los diversos primeros bloques adyacentes no incluyen un bloque inter-previsto, y generar, cuando se obtiene el vector de movimiento en la búsqueda, uno de entre el uno o más candidatos a predictor de vector de movimiento ejecutando el procesamiento de cambio de escala en el vector de movimiento obtenido en la búsqueda.
Preferiblemente, en la etapa (a2), cuando se determina en la etapa (i) que los diversos primeros bloques adyacentes incluyen uno o más bloques inter-previstos, se determina si todos los uno o más de los diversos primeros bloques adyacentes determinados como bloques inter-previstos son bloques ubicados cada uno de ellos en un límite de imagen o un límite de corte. Además, la etapa (ii) se ejecuta cuando todos los uno o más de los diversos primeros bloques adyacentes determinados como bloques inter-previstos son bloques ubicados cada uno de ellos en el límite de imagen o el límite de corte. Preferiblemente, la etapa (a2) incluye además (iii) buscar un vector de movimiento disponible sin procesamiento de cambio de escala entre los diversos vectores de movimiento de los diversos segundos bloques adyacentes, y determinar, cuando se obtiene en la búsqueda un vector de movimiento disponible sin procesamiento de cambio de escala, el vector de movimiento obtenido en la búsqueda como uno de entre el uno o más candidatos a predictor de vector de movimiento, en el que la etapa (i) se ejecuta cuando no se obtiene en la búsqueda un vector de movimiento disponible sin procesamiento de cambio de escala.
Preferiblemente, en la etapa (iii), se determina si una imagen de referencia del bloque actual es la misma que una imagen de referencia de cada uno de los diversos segundos bloques adyacentes, y de entre los diversos segundos bloques adyacentes, se obtiene en la búsqueda un segundo bloque adyacente determinado que tiene la misma imagen de referencia como un vector de movimiento disponible sin procesamiento de cambio de escala.
Preferiblemente, la etapa (a1) incluye (i) buscar un vector de movimiento disponible sin procesamiento de cambio de escala entre los diversos vectores de movimiento de los diversos primeros bloques adyacentes, y determinar, cuando se obtiene en la búsqueda un vector de movimiento disponible sin procesamiento de cambio de escala, el vector de movimiento obtenido en la búsqueda como uno de entre el uno o más candidatos a predictor de vector de movimiento; (ii) determinar si se obtiene en la búsqueda un vector de movimiento disponible sin procesamiento de cambio de escala a partir de los diversos primeros bloques adyacentes; y (iii) buscar, cuando se determina que no se obtiene en la búsqueda un vector de movimiento disponible sin procesamiento de cambio de escala a partir de los diversos primeros bloques adyacentes, un vector de movimiento para hacerlo disponible mediante el procesamiento de cambio de escala de entre los diversos vectores de movimiento de los diversos primeros bloques adyacentes, y generar, cuando se obtiene el vector de movimiento en la búsqueda, uno de entre el uno o más candidatos a predictor de vector de movimiento ejecutando el procesamiento de cambio de escala en el vector de movimiento obtenido en la búsqueda.
Preferiblemente, la etapa (a1) y la etapa (a2) se ejecutan en paralelo.
De acuerdo con un aspecto particular adicional, se proporciona un método de codificación de imágenes en movimiento para codificar un bloque actual para generar un flujo de bits, usando un predictor de vector de movimiento utilizado cuando se codifica un vector de movimiento del bloque actual. El método de codificación de imágenes en movimiento comprende (a) obtener uno o más candidatos a predictor de vector de movimiento que son candidatos para el predictor de vector de movimiento; (b) seleccionar el predictor de vector de movimiento a utilizar para codificar el vector de movimiento del bloque actual de entre el uno o más candidatos a predictor de vector de movimiento; y (c) codificar un índice para identificar el predictor de vector de movimiento seleccionado, y añadir el índice codificado al flujo de bits. En este punto, la etapa (a) incluye (a1) generar un candidato a predictor de vector de movimiento, en base a diversos vectores de movimiento de diversos primeros bloques adyacentes al bloque actual en una primera dirección; y (a2) generar un candidato a predictor de vector de movimiento, en base a diversos vectores de movimiento de diversos segundos bloques adyacentes al bloque actual en una segunda dirección. Además, la etapa (a2) incluye (i) determinar si los diversos primeros bloques adyacentes incluyen uno o más bloques inter-previstos; y (ii) buscar un vector de movimiento para hacerlo disponible mediante el procesamiento de cambio de escala de entre los diversos vectores de movimiento de los diversos segundos bloques adyacentes cuando se determina en la etapa (i) que los diversos primeros bloques adyacentes no incluyen un bloque inter­ previsto, y generar, cuando se obtiene el vector de movimiento en la búsqueda, uno de entre el uno o más candidatos a predictor de vector de movimiento ejecutando el procesamiento de cambio de escala en el vector de movimiento obtenido en la búsqueda.
Preferiblemente, en la etapa (a2), cuando se determina en la etapa (i) que los diversos primeros bloques adyacentes incluyen uno o más bloques inter-previstos, se determina si todos los uno o más de los diversos primeros bloques adyacentes determinados como bloques inter-previstos son bloques ubicados cada uno de ellos en un límite de imagen o un límite de corte, y la etapa (ii) se ejecuta cuando todos los uno o más de los diversos primeros bloques adyacentes determinados como bloques inter-previstos son bloques ubicados cada uno de ellos en el límite de imagen o el límite de corte.
Preferiblemente, la etapa (a2) incluye además (iii) buscar un vector de movimiento disponible sin procesamiento de cambio de escala de entre los diversos vectores de movimiento de los diversos segundos bloques adyacentes, y determinar, cuando se obtiene en la búsqueda un vector de movimiento disponible sin procesamiento de cambio de escala, el vector de movimiento obtenido en la búsqueda como uno de entre el uno o más candidatos a predictor de vector de movimiento, y la etapa (i) se ejecuta cuando no se obtiene en la búsqueda un vector de movimiento disponible sin procesamiento de cambio de escala.
Preferiblemente, en la etapa (iii), se determina si una imagen de referencia del bloque actual es la misma que una imagen de referencia de cada uno de los diversos segundos bloques adyacentes, y de entre los diversos segundos bloques adyacentes, se obtiene en la búsqueda un segundo bloque adyacente determinado que tiene la misma imagen de referencia como un vector de movimiento disponible sin procesamiento de cambio de escala.
Preferiblemente, la etapa (a1) incluye (i) buscar un vector de movimiento disponible sin procesamiento de cambio de escala de entre los diversos vectores de movimiento de los diversos primeros bloques adyacentes, y determinar, cuando se obtiene en la búsqueda un vector de movimiento disponible sin procesamiento de cambio de escala, el vector de movimiento obtenido en la búsqueda como uno de entre el uno o más candidatos a predictor de vector de movimiento; (ii) determinar si se obtiene en la búsqueda un vector de movimiento disponible sin procesamiento de cambio de escala a partir de los diversos primeros bloques adyacentes; y (iii) buscar, cuando se determina que no se obtiene en la búsqueda un vector de movimiento disponible sin procesamiento de cambio de escala a partir de los diversos primeros bloques adyacentes, un vector de movimiento para hacerlo disponible mediante el procesamiento de cambio de escala de entre los diversos vectores de movimiento de los diversos primeros bloques adyacentes, y generar, cuando se obtiene el vector de movimiento en la búsqueda, uno de entre el uno o más candidatos a predictor de vector de movimiento ejecutando el procesamiento de cambio de escala en el vector de movimiento obtenido en la búsqueda.
Preferiblemente, la etapa (a1) y la etapa (a2) se ejecutan en paralelo.
De acuerdo con un aspecto particular adicional, se proporciona un aparato de decodificación de imágenes en movimiento que decodifica un bloque actual incluido en un flujo de bits, usando un predictor de vector de movimiento utilizado cuando se decodifica un vector de movimiento del bloque actual. El aparato de decodificación de imágenes en movimiento comprende una unidad de obtención de candidato a predictor de vector de movimiento configurada para obtener uno o más candidatos a predictor de vector de movimiento que son candidatos para el predictor de vector de movimiento; una unidad de decodificación configurada para decodificar un índice codificado para identificar uno de entre el uno o más candidatos a predictor de vector de movimiento, añadiéndose el índice codificado al flujo de bits; y una unidad de selección configurada para seleccionar, en base al índice decodificado, el predictor de vector de movimiento a utilizar para decodificar el bloque actual de entre el uno o más candidatos a predictor de vector de movimiento. La unidad de obtención de candidato a predictor de vector de movimiento está configurada para ejecutar un primer procesamiento de generación de candidato para generar un candidato a predictor de vector de movimiento, en base a diversos vectores de movimiento de diversos primeros bloques adyacentes al bloque actual en una primera dirección; y un segundo procesamiento de generación de candidato para generar un candidato a predictor de vector de movimiento, en base a diversos vectores de movimiento de diversos segundos bloques adyacentes al bloque actual en una segunda dirección. En el segundo procesamiento de generación de candidato, la unidad de obtención de candidato a predictor de vector de movimiento está configurada para determinar si los diversos primeros bloques adyacentes incluyen uno o más bloques inter-previstos; y buscar un vector de movimiento para hacerlo disponible mediante un procesamiento de cambio de escala de entre los diversos vectores de movimiento de los diversos segundos bloques adyacentes cuando la unidad de obtención de candidato a predictor de vector de movimiento determina que los diversos primeros bloques adyacentes no incluyen un bloque inter-previsto, y generar, cuando la unidad de obtención de candidato a predictor de vector de movimiento obtiene el vector de movimiento en la búsqueda, uno de entre el uno o más candidatos a predictor de vector de movimiento ejecutando el procesamiento de cambio de escala en el vector de movimiento obtenido en la búsqueda.
De acuerdo con un aspecto adicional, se proporciona un aparato de codificación de imágenes en movimiento que codifica un bloque actual para generar un flujo de bits, usando un predictor de vector de movimiento utilizado cuando se codifica un vector de movimiento del bloque actual. El aparato de codificación de imágenes en movimiento comprende una unidad de obtención de candidato a predictor de vector de movimiento configurada para obtener uno o más candidatos a predictor de vector de movimiento que son candidatos para el predictor de vector de movimiento; una unidad de selección configurada para seleccionar el predictor de vector de movimiento a utilizar para codificar el vector de movimiento del bloque actual de entre el uno o más candidatos a predictor de vector de movimiento; y una unidad de codificación configurada para codificar un índice para identificar el predictor de vector de movimiento seleccionado, y añadir el índice codificado al flujo de bits. La unidad de obtención de candidato a predictor de vector de movimiento está configurada para ejecutar un primer procesamiento de generación de candidato para generar un candidato a predictor de vector de movimiento, en base a diversos vectores de movimiento de diversos primeros bloques adyacentes al bloque actual en una primera dirección; y un segundo procesamiento de generación de candidato para generar un candidato a predictor de vector de movimiento, en base a diversos vectores de movimiento de diversos segundos bloques adyacentes al bloque actual en una segunda dirección. En el segundo procesamiento de generación de candidato, la unidad de obtención de candidato a predictor de vector de movimiento está configurada para determinar si los diversos primeros bloques adyacentes incluyen uno o más bloques inter-previstos; y buscar un vector de movimiento para hacerlo disponible mediante un procesamiento de cambio de escala de entre los diversos vectores de movimiento de los diversos segundos bloques adyacentes cuando la unidad de obtención de candidato a predictor de vector de movimiento determina que los diversos primeros bloques adyacentes no incluyen un bloque inter-previsto, y generar, cuando la unidad de obtención de candidato a predictor de vector de movimiento obtiene el vector de movimiento en la búsqueda, uno de entre el uno o más candidatos a predictor de vector de movimiento ejecutando el procesamiento de cambio de escala en el vector de movimiento obtenido en la búsqueda.
De acuerdo con un aspecto particular adicional, se proporciona un aparato de codificación y decodificación de imágenes en movimiento que comprende un aparato de decodificación de imágenes en movimiento y un aparato de codificación de imágenes en movimiento.
[Aplicabilidad industrial]
El método de codificación de imágenes en movimiento y el método de decodificación de imágenes en movimiento de acuerdo con la presente invención son aplicables a cualquier dato multimedia y pueden aumentar la velocidad de procesamiento de codificación y decodificación de imágenes en movimiento sin aumentar la carga de procesamiento. El método de codificación de imágenes en movimiento y el método de decodificación de imágenes en movimiento de acuerdo con la presente invención son útiles como un método de codificación de imágenes en movimiento y un método de decodificación de imágenes en movimiento en el almacenamiento, transmisión, comunicación y similares usando teléfonos móviles, dispositivos de DVD, ordenadores personales y similares, por ejemplo.
[Lista de signos de referencia]
100 aparato de codificación de imágenes en movimiento
101 unidad de diferencia
102 unidad de transformación
103 unidad de cuantificación
104 unidad de cuantificación inversa
105 unidad de transformación inversa
106 unidad de adición
107 unidad de intra/inter predicción
108 unidad de control de codificación
109 memoria
110 unidad de codificación por entropía
300 aparato de decodificación de imágenes en movimiento
301 unidad de decodificación por entropía
302 unidad de cuantificación inversa
303 unidad de transformación inversa
304 unidad de adición
305 unidad de intra/inter predicción
306 unidad de control de decodificación
307 memoria

Claims (7)

REIVINDICACIONES
1. Un método de codificación de imágenes en movimiento para codificar un bloque actual para generar un flujo de bits, usando un predictor de vector de movimiento utilizado cuando se codifica un vector de movimiento del bloque actual, comprendiendo el método:
(a) obtener (S210) uno o más candidatos a predictor de vector de movimiento que son candidatos para el predictor de vector de movimiento en base a vectores de movimiento de diversos primeros bloques adyacentes al bloque actual en el lado izquierdo y vectores de movimiento de diversos segundos bloques adyacentes al bloque actual en el lado superior;
(b) seleccionar (S240) el predictor de vector de movimiento a utilizar para codificar el vector de movimiento del bloque actual de entre el uno o más candidatos a predictor de vector de movimiento; y
(c) codificar (S254) un índice para identificar el predictor de vector de movimiento seleccionado, y añadir el índice codificado al flujo de bits;
caracterizado porque
la etapa (a) incluye:
(i) determinar (S620) si los diversos primeros bloques adyacentes incluyen uno o más bloques inter-previstos;
(ii) buscar (S530) un vector de movimiento a cambiar de escala mediante un procesamiento de cambio de escala de entre los diversos vectores de movimiento de los diversos segundos bloques adyacentes si se determina en la etapa (i) que los diversos primeros bloques adyacentes no incluyen un bloque inter-previsto; y
(iii) generar (S530) un candidato a predictor de vector de movimiento ejecutando el procesamiento de cambio de escala en el vector de movimiento obtenido en la etapa (ii), si se obtiene un vector de movimiento en la etapa (ii).
2. El método de codificación de imágenes en movimiento según la reivindicación 1, en el que en la etapa (a), cuando se determina en la etapa (i) que los diversos primeros bloques adyacentes incluyen uno o más bloques interprevistos,
se determina si todos los uno o más de los diversos primeros bloques adyacentes determinados como bloques inter­ previstos son bloques ubicados cada uno de ellos en un límite de imagen o un límite de corte, y
la etapa (ii) se ejecuta cuando todos los uno o más de los diversos primeros bloques adyacentes determinados como bloques inter-previstos son bloques ubicados cada uno de ellos en el límite de imagen o el límite de corte.
3. El método de codificación de imágenes en movimiento de acuerdo con la reivindicación 1 o la reivindicación 2, en el que la etapa (a) incluye además
(iv) buscar (S510) un vector de movimiento disponible sin procesamiento de cambio de escala de entre los diversos vectores de movimiento de los diversos segundos bloques adyacentes, y determinar, cuando se obtiene en la búsqueda un vector de movimiento disponible sin procesamiento de cambio de escala, el vector de movimiento obtenido en la búsqueda como uno de entre el uno o más candidatos a predictor de vector de movimiento; y la etapa (i) se ejecuta cuando no se obtiene en la etapa (iv) un vector de movimiento disponible sin procesamiento de cambio de escala.
4. El método de codificación de imágenes en movimiento según la reivindicación 3,
en el que en la etapa (iv), se determina si una imagen de referencia del bloque actual es la misma que una imagen de referencia de cada uno de los diversos segundos bloques adyacentes, y de entre los diversos segundos bloques adyacentes, se obtiene en la búsqueda un segundo bloque adyacente determinado que tiene la misma imagen de referencia como un vector de movimiento disponible sin procesamiento de cambio de escala.
5. El método de codificación de imágenes en movimiento según una cualquiera de las reivindicaciones 1 a 4, en el que la etapa (a) incluye además:
(v) buscar (S410) un vector de movimiento disponible sin procesamiento de cambio de escala de entre los diversos vectores de movimiento de los diversos primeros bloques adyacentes, y determinar, cuando se obtiene en la búsqueda un vector de movimiento disponible sin procesamiento de cambio de escala, el vector de movimiento obtenido en la búsqueda como uno de entre el uno o más candidatos a predictor de vector de movimiento;
(vi) determinar (S420) si se obtiene en la búsqueda un vector de movimiento disponible sin procesamiento de cambio de escala a partir de los diversos primeros bloques adyacentes; y
(vii) buscar (S430), si se determina que no se obtiene en la etapa (vi) un vector de movimiento disponible sin procesamiento de cambio de escala a partir de los diversos primeros bloques adyacentes, un vector de movimiento a cambiar de escala mediante un procesamiento de cambio de escala de entre los diversos vectores de movimiento de los diversos primeros bloques adyacentes; y
(viii) generar (S430) un candidato a predictor de vector de movimiento ejecutando el procesamiento de cambio de escala en el vector de movimiento obtenido en la etapa (vii), si se obtiene un vector de movimiento en la etapa (vii).
6. El método de codificación de imágenes en movimiento según una cualquiera de las reivindicaciones 1 a 5, en el que las etapas (i) a (iii) y las etapas (v) a (viii) se ejecutan en paralelo.
7. Un aparato de codificación de imágenes en movimiento que está configurado para codificar un bloque actual para generar un flujo de bits, usando un predictor de vector de movimiento utilizado cuando se codifica un vector de movimiento del bloque actual, comprendiendo el aparato:
una unidad de obtención de candidato a predictor de vector de movimiento (108) configurada para obtener uno o más candidatos a predictor de vector de movimiento que son candidatos para el predictor de vector de movimiento en base a vectores de movimiento de diversos primeros bloques adyacentes al bloque actual en el lado izquierdo y vectores de movimiento de diversos segundos bloques adyacentes al bloque actual en el lado superior;
una unidad de selección (108) configurada para seleccionar el predictor de vector de movimiento a utilizar para codificar el vector de movimiento del bloque actual de entre el uno o más candidatos a predictor de vector de movimiento; y
una unidad de codificación (110) configurada para codificar un índice para identificar el predictor de vector de movimiento seleccionado, y añadir el índice codificado al flujo de bits;
caracterizado porque
la unidad de obtención de candidato a predictor de vector de movimiento (108) está configurada para:
(i) determinar si los diversos primeros bloques adyacentes incluyen uno o más bloques inter-previstos;
(ii) buscar un vector de movimiento a cambiar de escala mediante un procesamiento de cambio de escala de entre los diversos vectores de movimiento de los diversos segundos bloques adyacentes si la unidad de obtención de candidato a predictor de vector de movimiento (108) determina que los diversos primeros bloques adyacentes no incluyen un bloque inter-previsto; y
(iii) generar un candidato a predictor de vector de movimiento ejecutando el procesamiento de cambio de escala en el vector de movimiento obtenido en la etapa (ii), si se obtiene un vector de movimiento en la etapa (ii).
ES16206474T 2011-11-02 2012-11-01 Método de codificación de vídeo y codificador de vídeo Active ES2698560T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US201161554598P 2011-11-02 2011-11-02

Publications (1)

Publication Number Publication Date
ES2698560T3 true ES2698560T3 (es) 2019-02-05

Family

ID=48191681

Family Applications (4)

Application Number Title Priority Date Filing Date
ES12845656.3T Active ES2641952T3 (es) 2011-11-02 2012-11-01 Método de decodificación de vídeo y decodificador de vídeo
ES16206470T Active ES2698559T3 (es) 2011-11-02 2012-11-01 Códec de vídeo
ES16206474T Active ES2698560T3 (es) 2011-11-02 2012-11-01 Método de codificación de vídeo y codificador de vídeo
ES18186410T Active ES2965240T3 (es) 2011-11-02 2012-11-01 Método de codificación de vídeo y codificador de vídeo

Family Applications Before (2)

Application Number Title Priority Date Filing Date
ES12845656.3T Active ES2641952T3 (es) 2011-11-02 2012-11-01 Método de decodificación de vídeo y decodificador de vídeo
ES16206470T Active ES2698559T3 (es) 2011-11-02 2012-11-01 Códec de vídeo

Family Applications After (1)

Application Number Title Priority Date Filing Date
ES18186410T Active ES2965240T3 (es) 2011-11-02 2012-11-01 Método de codificación de vídeo y codificador de vídeo

Country Status (15)

Country Link
US (9) US8942288B2 (es)
EP (5) EP2775717B1 (es)
JP (6) JPWO2013065308A1 (es)
KR (5) KR102257961B1 (es)
CN (4) CN107071462B (es)
BR (5) BR112013018949B8 (es)
CA (5) CA3148063C (es)
ES (4) ES2641952T3 (es)
HU (3) HUE040062T2 (es)
LT (4) LT3174298T (es)
MX (1) MX2013008533A (es)
MY (1) MY165702A (es)
PL (5) PL3416387T3 (es)
TW (1) TWI559734B (es)
WO (1) WO2013065308A1 (es)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2756419C (en) * 2009-03-23 2016-05-17 Ntt Docomo, Inc. Image predictive encoding device, image predictive encoding method, image predictive encoding program, image predictive decoding device, image predictive decoding method, and image predictive decoding program
BR112013018949B8 (pt) 2011-11-02 2022-10-11 Panasonic Corp Método e aparelho de codificação para codificar uma imagem em um fluxo de bits
US9392268B2 (en) * 2012-09-28 2016-07-12 Qualcomm Incorporated Using base layer motion information
JP5983430B2 (ja) * 2013-01-25 2016-08-31 富士通株式会社 動画像符号化装置、動画像符号化方法及び動画像復号装置ならびに動画像復号方法
US10904551B2 (en) * 2013-04-05 2021-01-26 Texas Instruments Incorporated Video coding using intra block copy
US20150271514A1 (en) * 2014-03-18 2015-09-24 Panasonic Intellectual Property Management Co., Ltd. Prediction image generation method, image coding method, image decoding method, and prediction image generation apparatus
JP6986721B2 (ja) 2014-03-18 2021-12-22 パナソニックIpマネジメント株式会社 復号装置及び符号化装置
JP6345805B2 (ja) * 2014-05-06 2018-06-20 寰發股▲ふん▼有限公司HFI Innovation Inc. Intraブロックコピーモード符号化のブロックベクトル予測の方法
TWI565302B (zh) * 2014-10-01 2017-01-01 財團法人工業技術研究院 解碼器、編碼器、解碼方法、編碼方法與編解碼系統
JP6918661B2 (ja) * 2017-09-22 2021-08-11 キヤノン株式会社 符号化装置、符号化方法及びプログラム
CN116886902A (zh) * 2017-09-26 2023-10-13 松下电器(美国)知识产权公司 解码装置、编码装置、解码方法和编码方法
JPWO2019082318A1 (ja) * 2017-10-25 2020-11-19 株式会社ソシオネクスト 動画像処理装置、動画像処理システム、及び動画像処理方法
CN112055205B (zh) * 2017-12-12 2021-08-03 华为技术有限公司 视频数据的帧间预测方法和装置、视频编解码器、存储介质
WO2019135270A1 (ja) * 2018-01-04 2019-07-11 株式会社ソシオネクスト 動画像解析装置、動画像解析システム、動画像解析方法、及びプログラム
KR102516233B1 (ko) * 2018-04-02 2023-03-30 엘지전자 주식회사 움직임 벡터에 기반한 영상 코딩 방법 및 그 장치
KR20230109772A (ko) * 2018-04-24 2023-07-20 엘지전자 주식회사 비디오 코딩 시스템에서 인터 예측 방법 및 장치
US10701384B2 (en) 2018-08-01 2020-06-30 Tencent America LLC Method and apparatus for improvement on decoder side motion derivation and refinement
CN112565753B (zh) * 2020-12-06 2022-08-16 浙江大华技术股份有限公司 运动矢量差的确定方法和装置、存储介质及电子装置

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3681341A (en) 1970-12-23 1972-08-01 Hoffmann La Roche Process for preparing 1-lower alkyl-1,4-benzodiazepin-2-ones
JPS5531150A (en) 1978-08-28 1980-03-05 Natl Res Inst For Metals Manufacture of molybdenum-coated material having corrosion resistance at high temperature
US6438254B1 (en) * 1999-03-17 2002-08-20 Matsushita Electric Industrial Co., Ltd. Motion vector detection method, motion vector detection apparatus, and data storage media
US20020057739A1 (en) * 2000-10-19 2002-05-16 Takumi Hasebe Method and apparatus for encoding video
CN101431681B (zh) * 2002-03-04 2011-03-30 松下电器产业株式会社 图像解码方法及图像解码装置
EP3324624B1 (en) * 2002-04-19 2019-06-12 Panasonic Intellectual Property Corporation of America Motion vector calculating method
KR100931750B1 (ko) * 2002-04-19 2009-12-14 파나소닉 주식회사 움직임 벡터 계산방법
US8064520B2 (en) 2003-09-07 2011-11-22 Microsoft Corporation Advanced bi-directional predictive coding of interlaced video
JP4166781B2 (ja) * 2005-12-09 2008-10-15 松下電器産業株式会社 動きベクトル検出装置および動きベクトル検出方法
TWI314820B (en) * 2006-05-26 2009-09-11 Ind Tech Res Inst Pattern-search based method for context-adaptive variable length coding/decoding
CN100576919C (zh) * 2006-08-08 2009-12-30 佳能株式会社 运动矢量检测设备及运动矢量检测方法
AU2007202789B9 (en) * 2007-06-15 2011-08-18 Canon Kabushiki Kaisha High-fidelity motion summarisation method
WO2010131903A2 (en) * 2009-05-12 2010-11-18 Lg Electronics Inc. Method and apparatus for processing a video signal
KR101742992B1 (ko) * 2009-05-12 2017-06-02 엘지전자 주식회사 비디오 신호 처리 방법 및 장치
JP2009290889A (ja) * 2009-08-07 2009-12-10 Ntt Docomo Inc 動画像符号化装置、動画像復号化装置、動画像符号化方法、動画像復号化方法、動画像符号化プログラム及び動画像復号化プログラム
US8462848B2 (en) * 2009-12-17 2013-06-11 Broadcom Corporation Method and system for intra-mode selection without using reconstructed data
US9420308B2 (en) 2009-12-18 2016-08-16 Vixs Systems, Inc. Scaled motion search section with parallel processing and method for use therewith
US20110242427A1 (en) * 2010-04-01 2011-10-06 Timothy Ramsdale Method and System for Providing 1080P Video With 32-Bit Mobile DDR Memory
US9300970B2 (en) * 2010-07-09 2016-03-29 Samsung Electronics Co., Ltd. Methods and apparatuses for encoding and decoding motion vector
US8711940B2 (en) * 2010-11-29 2014-04-29 Mediatek Inc. Method and apparatus of motion vector prediction with extended motion vector predictor
KR101820997B1 (ko) * 2011-01-12 2018-01-22 선 페이턴트 트러스트 동화상 부호화 방법 및 동화상 복호화 방법
BR112013018949B8 (pt) 2011-11-02 2022-10-11 Panasonic Corp Método e aparelho de codificação para codificar uma imagem em um fluxo de bits

Also Published As

Publication number Publication date
CN107071463B (zh) 2019-11-19
US20140079130A1 (en) 2014-03-20
KR20140092756A (ko) 2014-07-24
CN107071467A (zh) 2017-08-18
US8942288B2 (en) 2015-01-27
EP2775717A4 (en) 2015-04-29
JP6346346B2 (ja) 2018-06-20
CA2825761A1 (en) 2013-05-10
JP5405690B2 (ja) 2014-02-05
PL3413567T3 (pl) 2024-03-11
MY165702A (en) 2018-04-20
CA3148063C (en) 2023-08-29
LT3174298T (lt) 2018-11-12
HUE064456T2 (hu) 2024-03-28
LT3174299T (lt) 2018-11-12
PL3174299T3 (pl) 2019-07-31
CN107071463A (zh) 2017-08-18
KR102148904B1 (ko) 2020-08-28
EP2775717B1 (en) 2017-07-26
WO2013065308A1 (ja) 2013-05-10
ES2698559T3 (es) 2019-02-05
ES2641952T3 (es) 2017-11-14
KR20210062737A (ko) 2021-05-31
EP3174298B1 (en) 2018-09-12
EP2775717A1 (en) 2014-09-10
CN103339941B (zh) 2016-10-19
US10499080B2 (en) 2019-12-03
EP3416387B1 (en) 2023-10-18
EP3416387A1 (en) 2018-12-19
EP3174298A1 (en) 2017-05-31
TW201332369A (zh) 2013-08-01
US20210218988A1 (en) 2021-07-15
US9066109B2 (en) 2015-06-23
US10798411B2 (en) 2020-10-06
CA3056874A1 (en) 2013-05-10
US10291933B2 (en) 2019-05-14
US20200068219A1 (en) 2020-02-27
JP6158649B2 (ja) 2017-07-05
BR122020014528B1 (pt) 2022-09-13
PL2775717T3 (pl) 2017-12-29
EP3174299A1 (en) 2017-05-31
CA3148063A1 (en) 2013-05-10
CN107071467B (zh) 2020-03-27
JPWO2013065308A1 (ja) 2015-04-02
BR122020014548B1 (pt) 2022-09-13
CA3148065A1 (en) 2013-05-10
LT3416387T (lt) 2024-01-10
EP3413567A1 (en) 2018-12-12
CA2825761C (en) 2020-01-14
EP3413567B1 (en) 2023-10-11
BR112013018949B1 (pt) 2022-09-13
KR102049308B1 (ko) 2020-01-08
US10992953B2 (en) 2021-04-27
BR122020014537B1 (pt) 2022-09-13
BR112013018949A2 (es) 2017-09-12
LT3413567T (lt) 2024-01-10
KR102478864B1 (ko) 2022-12-19
BR112013018949B8 (pt) 2022-10-11
JP2017184276A (ja) 2017-10-05
KR20220025247A (ko) 2022-03-03
JP2014017854A (ja) 2014-01-30
US11570469B2 (en) 2023-01-31
US20190230378A1 (en) 2019-07-25
CA3148065C (en) 2023-08-29
CN107071462A (zh) 2017-08-18
US20200404322A1 (en) 2020-12-24
PL3416387T3 (pl) 2024-03-11
US20130156106A1 (en) 2013-06-20
ES2965240T3 (es) 2024-04-11
PL3174298T3 (pl) 2019-02-28
TWI559734B (zh) 2016-11-21
CA3056869A1 (en) 2013-05-10
BR122020014549B1 (pt) 2022-09-13
JP2014003709A (ja) 2014-01-09
KR20190133279A (ko) 2019-12-02
US20230133884A1 (en) 2023-05-04
KR20200103121A (ko) 2020-09-01
US11812055B2 (en) 2023-11-07
MX2013008533A (es) 2013-08-12
EP3174299B1 (en) 2018-09-12
US10063879B2 (en) 2018-08-28
JP2014003708A (ja) 2014-01-09
JP2014003707A (ja) 2014-01-09
CA3056869C (en) 2022-05-17
CA3056874C (en) 2022-05-17
US20140079131A1 (en) 2014-03-20
CN107071462B (zh) 2019-11-19
KR102365524B1 (ko) 2022-02-23
HUE040062T2 (hu) 2019-02-28
CN103339941A (zh) 2013-10-02
US20180332302A1 (en) 2018-11-15
JP5521101B2 (ja) 2014-06-11
JP5531150B2 (ja) 2014-06-25
KR102257961B1 (ko) 2021-05-28
HUE040069T2 (hu) 2019-02-28

Similar Documents

Publication Publication Date Title
JP7228851B2 (ja) 動画像復号化方法
ES2698560T3 (es) Método de codificación de vídeo y codificador de vídeo
KR101900986B1 (ko) 화상 복호 방법, 화상 부호화 방법, 화상 복호 장치, 화상 부호화 장치, 및, 화상 부호화 복호 장치
JP5869564B2 (ja) 画像符号化方法、画像符号化装置、画像復号方法、画像復号装置、および、画像符号化復号装置
JP2021180499A (ja) 動画像復号方法及び動画像符号化方法
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
JP2017011740A (ja) 復号方法および復号装置
KR20140082969A (ko) 화상 부호화 방법, 화상 부호화 장치, 화상 복호 방법, 및, 화상 복호 장치
JP2013240048A (ja) 動画像符号化方法、動画像復号化方法、動画像符号化装置および動画像復号化装置