MX2009000832A - Metodo y aparato de codificacion y decodificacion de imagenes. - Google Patents
Metodo y aparato de codificacion y decodificacion de imagenes.Info
- Publication number
- MX2009000832A MX2009000832A MX2009000832A MX2009000832A MX2009000832A MX 2009000832 A MX2009000832 A MX 2009000832A MX 2009000832 A MX2009000832 A MX 2009000832A MX 2009000832 A MX2009000832 A MX 2009000832A MX 2009000832 A MX2009000832 A MX 2009000832A
- Authority
- MX
- Mexico
- Prior art keywords
- prediction
- signal
- block
- order
- pixel
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 90
- 230000000694 effects Effects 0.000 claims description 12
- 238000000926 separation method Methods 0.000 claims description 5
- 230000009466 transformation Effects 0.000 description 93
- 238000013139 quantization Methods 0.000 description 90
- 238000010586 diagram Methods 0.000 description 72
- 230000002457 bidirectional effect Effects 0.000 description 56
- 238000013213 extrapolation Methods 0.000 description 52
- 230000008569 process Effects 0.000 description 32
- 230000008859 change Effects 0.000 description 19
- 230000002441 reversible effect Effects 0.000 description 17
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 10
- 230000001131 transforming effect Effects 0.000 description 6
- 239000000470 constituent Substances 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 238000004148 unit process Methods 0.000 description 4
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001105 regulatory effect Effects 0.000 description 2
- 206010007134 Candida infections Diseases 0.000 description 1
- 208000007027 Oral Candidiasis Diseases 0.000 description 1
- 241000287411 Turdidae Species 0.000 description 1
- 201000003984 candidiasis Diseases 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Un aparato de codificación de imágenes que comprende una primera parte de selección que selecciona, de entre una pluralidad de órdenes de predicción predeterminados, se ha dividido un orden de predicción para una pluralidad de sub-bloques obtenidos dividiendo cada uno de los bloques de píxeles en el cual se ha dividido el marco de una señal de imágenes de entrada; una segunda parte de selección que selecciona el numero de modos de predicción, que se usan para la predicción de una primera señal de predicción, de entre una pluralidad de modos de predicción una pluralidad de modos de predicción que especifican métodos para referirse a los píxeles codificados cuando de refieren a los píxeles codificados para generar la primera señal de predicción de cada sub-bloque; una tercera parte de selección que selecciona el número seleccionando de modos de predicción, que se usan para la predicción de la primera señal de predicción, de entre la pluralidad de modos de predicción; una parte de generación que usa el número seleccionado de modos de predicción seleccionados para generar la primera señal de predicción en el orden de predicción seleccionado de manera que genera una segunda señal de predicción que corresponde a un bloque de píxeles; y una parte de codificación que codifica una señal residual prevista que representa la diferencia entre la seña de imágenes del bloque de píxeles y la segunda señal de predicción de manera que genera datos codificados basado en la codificación de predicción.
Description
MÉTODO Y APARATO DE CODIFICACIÓN Y DECODIFICACION DE IMÁGENES
CAMPO TÉCNICO La presente invención se refiere a un método y aparato para codificar y decodificar una imagen en movimiento o estática.
TÉCNICA ANTECEDENTE En los últimos años, un método de codificación de imágenes de la eficiencia de codificación de la cual se mejora considerablemente se recomienda como ITU-T Rec.H.264 y ISO/IEC 14496-10 (para denominarse como H.264 de aquí en adelante) en cooperación con ITU-T e ISO/IEC. En un esquema de codificación tal como ISO/IEC MPEG-1, 2 y 4, ITU-T H. 261, y H.263, la predicción intra-marco en una región de frecuencia (coeficiente DCT) después de que se lleva a cabo la transformación ortogonal para reducir una cantidad de código de un coeficiente de transformación. En contrate con esto, la predicción direccional (véase Greg Conklin, "New Intra Prediction Modes", ITU-T Q.6/SG16 BCEG, VCEG-N54 , sept. 2001) se emplea para llevar a cabo la eficiencia de predicción superior a la de la predicción intra-marco en ISO/IEC MPEG-1, 2 y 4. En un alto perfil de H.264, los esquemas de predicción intra-marco de los tres tipos se regulan a una
señal de luminancia, uno de ellos puede seleccionarse en un macrobloque (bloque de 16 x 16 pixeles) . Los esquemas de predicción intra-marco de los tres tipos se llaman predicción de 4 x 4 pixeles, predicción de 8 x 8 pixeles, y predicción de 16 x 16 pixeles, respectivamente. En la predicción de 16 x 16 pixeles, se regulan cuatro modos de predicción llamados predicción vertical, predicción horizontal, predicción de DC y predicción plana. En los cuatro modos de predicción, de una señal de decodificación local obtenida antes, se aplica un filtro de desbloqueo, un valor de pixeles de un macrobloque alrededor de un macrobloque que será codificado se usa como un valor de pixel de referencia para llevar a cabo la predicción. En la predicción de 4 x 4 pixeles, un macrobloque se divide en bloques de 4 x 4 pixeles (sub-bloques) , cualquiera de los nueve modos de predicción se seleccionan para cada uno de los bloques de pixeles de 4 x . De los nueve modos de predicción, ocho modos excepto por el de la predicción de DC (modo 2) que lleva a cago la predicción por un valor de pixeles promedio de pixeles de referencia disponibles tienen direcciones de predicción dispuestos en intervalos de 22.5°, respectivamente. La extrapolación se lleva a cabo en una dirección de predicción usando el pixel de referencia para generar una señal de predicción.
En la predicción de 8 x 8 pixeles, un macrobloque se divide en cuatro bloques de 8 x 8 pixeles (sub-bloques) , y cualquiera de los nueve modos de predicción se selecciona para cada uno de los bloques de 8 x 8. El modo de predicción se diseña en el mismo marco como el de la predicción de 4 x 4 pixeles. Se agrega un proceso para llevar a cabo el filtrado de tres llaves a los pixeles de referencia codificados y los pixeles de referencia de planeación que serán usados en la predicción para promediar la distorsión de codificación. En Kenneth K. C. Lee y otros "Spatial Domain Contribution to a High Compression efficiency System" IWAIT2006, Jun. 2006, se describe un método que selecciona dos modos de predicción de nueve candidatos de modo de predicción y calcula promedios para las señales de predicción generadas de acuerdo con dos modos de predicción seleccionados en unidades de pixeles para generar una señal de predicción. De acuerdo con este método, la alta eficiencia de predicción se lleva a cabo aún para una textura compleja que no se supone en la predicción normal de 4 x 4 pixeles o la predicción normal de 8 x 8 pixeles. De acuerdo con Kenneth K. C. Lee y otros, "Spatial Domain Contribution to a High Compression Efficiency System" I AIT 2006, Jun. 2006, un orden de predicción de sub-bloques (bloques de 4 x 4 pixeles o bloques de 8 x 8 pixeles) en un macrobloque se fija uniformemente. Por ejemplo, en la
predicción de bloques de 4 x 4 pixeles, se consideran los bloques de 8 x 8 pixeles obtenido cada uno dividiendo el macrobloque por cuatro, y la predicción de extrapolación se lleva a cabo secuencialmente a los bloques de 4 x 4 pixeles obtenido cada uno dividiendo los bloques de 8 x 8 pixeles. Los proceso sen unidades de bloques de 8 x 8 pixeles se repiten cuatro veces para completar la codificación predictiva de dieciséis bloques de 4 x 4 pixeles. Por otro lado, en la predicción de bloques de 8 x 8 pixeles, la predicción de extrapolación se lleva a cabo secuencialmente a los bloques de 8 x 8 pixeles obtenidos dividiendo el macrobloque por cuatro.
DESCRIPCIÓN DE LA INVENCIÓN Dado que la predicción de intra-marco de H. 264, se basa en la predicción de extrapolación, únicamente se puede hacer referencia a los pixeles izquierdos y superiores con respecto a un sub-bloque en un macrobloque. Por lo tanto, cuando la correlación entre la luminancia de los pixeles del sub-bloque y la luminancia de los pixeles izquierdo y superior es baja, se incrementa un error residual de predicción y disminuye consecuentemente la eficiencia de codificación . En Kenneth K. C. Lee y otros "Spatial Domain Contribution to a High Compression Efficiency System" IWAIT
2006, jun. 2006, dos modos de predicción siempre se usan. Más específicamente, aunque un resultado suficiente puede obtenerse usando un solo modo de predicción, la predicción se lleva a cabo usando los dos modos de predicción. Por esta razón, el sistema tiene un lugar para mejorar la eficiencia de codificación. Es un objetivo de la presente invención proveer un método y aparato para codificación de imágenes teniendo alta eficiencia de codificación y decodificación. De acuerdo con un aspecto de la presente invención, se provee un aparato de codificación de imágenes comprendiendo; : un primer selector que seleccionan un orden de predicción una pluralidad de sub-bloques obtenidos dividiendo además una pluralidad de bloques de pixeles obtenido dividiendo un marco de una señal de imágenes de entrada de una pluralidad de órdenes de predicción predeterminada; un segundo selector que se selecciona, de una pluralidad de modos de predicción o que regulan una manera de referirse a un píxel codificado cuando una primera señal de predicción de cada sub-bloque se genera para el píxel codificado, el número de modos de predicción usados en la predicción de la primera señal de predicción; un tercer selector que selecciona los modos de predicción del número de modos de predicción seleccionados de la pluralidad de modos de predicción para usarse en la predicción de la primera
señal de predicción; un generado que genera la primera señal de predicción en el orden de predicción seleccionado usando el número de modos de predicción seleccionados para generar una segunda señal de predicción que corresponde al bloque de pixeles, y un codificador que codifica una señal de error residual de predicción expresando una diferencia entre una señal de imágenes del bloque de pixeles y la segunda señal de predicción para generar datos codificados obtenidos por la codificación predictiva. De acuerdo con otro aspecto de la presente invención, se provee un aparato de decodificación de imágenes que comprende: un primer selector que selecciona un orden de predicción de una pluralidad de sub-bloques obtenidos dividiendo el bloque de pixeles de una pluralidad de órdenes de predicción predeterminados; un segundo selector que selecciona, de una pluralidad de modos de predicción que regulan una manera de referirse a un pixel codificado cuando una primera señal de predicción de cada sub-bloque se genera para un pixel decodificado, un número de modos de predicción usados en la predicción de la primera señal de predicción; un tercer selector que selecciona modos de predicción del numero de modos de predicción seleccionados de la pluralidad de modos de predicción para usarse en la predicción de la primera señal de predicción; un generador que genera la primera señal de predicción en el orden de predicción
seleccionado usando el número de modos de predicción seleccionados para generar una segunda señal de predicción que corresponde al bloque de pixeles, y un generador que genera una señal de imagen decodificada usando la segunda señale de predicción. De acuerdo con aún otro aspecto de la presente invención, se provee un medio de almacenamiento que puede leerse en la computadora en el cual se almacena un programa que ocasiona que una computadora lleve a cabo por lo menos uno de los proceso de codificación de imágenes y el proceso de de codificación de imágenes.
BREVE DESCRIPCIÓN DE LOS DIBUJOS La Fig. 1 es un diagrama de bloques que muestra un aparato de codificación de imágenes de acuerdo con una modalidad. La Fig. 2A es un diagrama que muestra un bloque de blanco de codificación y un bloque codificado en un marco blanco de codificación. La Fig. 2B es un diagrama que muestra un tamaño de bloques de un macrobloque. La Fig. 3A es un diagrama que muestra un bloque de 8 x 8 pixeles. La Fig. 3B es un diagrama que muestra un bloque de 4 x 4 pixeles.
La Fig. 3C es un diagrama que muestra bloques de pixeles de 8 x 8/4 x 4. La Fig. 4 es un diagrama de bloques que muestra detalles de un predictor en la Fig. 1. La Fig. 5 es un diagrama de bloques que muestra detalles de un generador de señales de predicción en la Fig. 1. La Fig. 6A es un diagrama que muestra bloques de 8 x 8 pixeles e índices de bloques. La Fig. 6B es un diagrama que muestra un orden de predicción por predicción secuencial a los bloques en la Fig. 6A. La Fig. 6C es un diagrama que muestra un cambio de un orden de predicción por predicción de extrapolación/interpolación a los bloques en la Fig. 6A. La Fig. 6D es un diagrama que muestra un cambio de otro orden de predicción a los bloques en la Fig. 6A. La Fig. 7A es un diagrama que muestra bloques de 4 x 4 pixeles e índices de bloques. La Fig. 7B es un diagrama que muestra un orden de predicción por predicción secuencial a lo bloques en la Fig. 7A. La Fig. 7B es un diagrama que muestra un orden de predicción por predicción secuencial a los bloques en la Fig.
La Fig. 7C es un diagrama que muestra un cambio de un orden de predicción por predicción de extrapolación/interpolación a los bloques en la Fig. 7A. La Fig. 7D es un diagrama que muestra un cambio de otro orden de predicción a los bloques en la Fig. 7A. La Fig. 8 es un diagrama para explicar una tabla de orden de predicción en un intercambio de orden de predicción. La Fig. 9A es un diagrama que muestra un modo de predicción de la predicción de bloques de matriz regular en un predictor unidireccional. La Fig. 9B es un diagrama que muestra una relación entre un pixel de predicción y un pixel de referencia en predicción de 4 x 4 pixeles. La Fig. 9C es un diagrama para explicar un método de generación de señal de predicción en el modo 0. La Fig. 9D es un diagrama para explicar un método de generación de señal de predicción en el modo 4. La Fig. 10 es un diagrama que muestra nombres de modos de predicción de índices de modo en un predictor unidireccional . La Fig. 11 es un diagrama que muestra nombres de modos de predicción de índices de modo en un predictor bidireccional .
La Fig. 12A es un diagrama conceptual de la predicción vertical/horizontal (modo 01) en una predicción de 4 x 4 pixeles. La Fig. 12B es un diagrama conceptual de una predicción vertical/diagonal-descendente-derecha (modo 04) en la predicción de 4 x 4 pixeles. La Fig. 13A es un diagrama para explicar una predicción de bloques de extrapolación/interpolación a los bloques de pixeles de 8 x 8. La Fig. 13B es un diagrama para explicar la predicción de bloques de extrapolación/interpolación a bloques de 4 x 4 pixeles. La Fig. 14A es un diagrama que muestra una relación de posición entre un pixel de referencia y un pixel de predicción en predicción de bloques de extrapolación. La Fig. 14B es un diagrama que muestra una relación entre un bloque de interpolación (1) y un pixel de referencia en predicción de 4 x 4 pixeles. La Fig. 14C es un diagrama que muestra una relación entre un bloque de interpolación 82) y un pixel de referencia en la predicción de 4 x 4 pixeles. La Fig. 14D es un diagrama que muestra una relación entre un bloque de interpolación (3) y un pixel de referencia en la predicción de 4 x 4 pixeles.
La Fig. 15A es un diagrama para explicar un método de generación de señales de predicción obtenido cuando se selecciona la predicción vertical (modo 0) en la predicción de bloques de extrapolación. La Fig. 15B es un diagrama para explicar un método de generación de señal de predicción obtenido cuando la predicción diagonal-descendente-derecha (modo 4) se selecciona en la predicción de bloques de extrapolación. La Fig. 16 es un diagrama que muestra un modo de predicción de la predicción de bloques de interpolación en un predictor unidireccional. La Fig. 17 es un diagrama que muestra un modo de predicción de la predicción unidireccional llevada a cabo en la predicción de bloques de interpolación en el predictor unidireccional . La Fig. 18A es un diagrama que muestra un modo de predicción que se puede seleccionar a un bloque de interpolación (1) en el predictor unidireccional. La Fig. 18B es un diagrama que muestra un modo de predicción que puede seleccionarse a un bloque de interpolación (2) en el predictor unidireccional. La Fig. 18C es un diagrama que muestra un modo de predicción que puede seleccionarse a un bloque de interpolación (3) en el predictor unidireccional.
La Fig. 18D es un diagrama que muestra modos de predicción que pueden seleccionarse a un bloque de interpolación (3) en el predictor unidireccional. La Fig. 18D es un diagrama que muestra los modos de predicción que pueden seleccionarse a un bloque de interpolación (4) en el predictor unidireccional. La Fig. 19A es un diagrama para explicar un método de generación de señal de predicción para el bloque de interpolación (1) en la predicción vertical inversa (modo
9) . La Fig. 19B es un diagrama para explicar el método de generación de señal de predicción para el bloque de interpolación (2) en la predicción vertical inversa (modo 9) . La Fig. 20A es un diagrama para explicar un método de generación de señal de predicción para el bloque de interpolación (1) en la predicción horizontal inversa (modo
10) . La Fig. 20B es un diagrama para explicar un método de generación de señal de predicción para el bloque de interpolación (2) en la predicción horizontal inversa (modo 10) . La Fig. 21A es un diagrama para explicar un método de generación de señal de predicción para el bloque de interpolación (1) en la predicción izquierda diagonal (modo
La Fig. 21B es un diagrama para explicar un método de generación de señal de predicción para el bloque de interpolación (1) en predicción izquierda diagonal (modo 12) . La Fig. 21C es un diagrama para explicar un método de generación de señal de predicción para el . bloque de interpolación (2) en la predicción izquierda diagonal (modo 12) . La Fig. 22 es un diagrama que muestra nombres de modos de predicción e índices de modo en la predicción del bloque de interpolación en un predictor bidireccional . La Fig. 23 es una gráfica de flujo que muestra un procedimiento de procesamiento de codificación de imágenes de acuerdo con una modalidad. La Fig. 24 es una gráfica de flujo que muestra una parte del procedimiento de proceso en la Fig. 23. La Fig. 25 es un diagrama que muestra un ejemplo de una estructura de sintaxis usada en un codificador de imágenes . La Fig. 26 es un diagrama que muestra un ejemplo de una estructura de datos de una sintaxis de la capa de macrobloques . La Fig. 27 es un diagrama que muestra un ejemplo de una estructura de datos de la sintaxis de predicción de macrobloques .
La Fig. 28 es un diagrama para explicar una ecuación para transformar un modo de predicción en un índice de codificación. La Fig. 29 es un diagrama para explicar una tabla para transformar un modo de predicción en un índice de codificación. La Fig. 30 es un diagrama que muestra nombres de modos de predicción que se pueden usar para los bloques de interpolación (1), (2), y (3) y el bloque de extrapolación (4) e índices de modos. La Fig. 31 es un diagrama que muestra otro ejemplo de la estructura de datos de la sintaxis de predicción de macrobloques . La Fig. 32 es un diagrama que muestra un método para derivar un modo de predicción. La Fig. 33 es un diagrama que muestra posiciones de bloques en donde un modo de predicción es el que se denomina como predicción. La Fig. 34 es un diagrama que muestra otro ejemplo de la estructura de datos de una sintaxis de predicción de macrobloques . La Fig. 35 es un diagrama que muestra un ejemplo de una estructura de datos de una sintaxis de grupos de parámetros de secuencias.
La Fig. 36 es un diagrama que muestra un ejemplo de una estructura de datos de una sintaxis de grupos de parámetros de imágenes. La Fig. 37 es un diagrama que muestra un ejemplo de una estructura de datos de una sintaxis de encabezado de diapositivas . La Fig. 38 es un diagrama que muestra un ejemplo de la estructura de datos de la sintaxis de capas de macrobloques . La Fig. 39 es un diagrama que muestra aún otro ejemplo de la sintaxis de predicción de macrobloques. La Fig. 40 es un diagrama de bloques que muestra un aparato de decodificación de imágenes de acuerdo con una modalidad. La Fig. 41 es un diagrama de bloques que muestra detalles del generador de señal de predicción en la Fig. 40. La Fig. 42 es un diagrama para explicar una ecuación para transformar inversamente un Indice decodificado en un modo de predicción. La Fig. 43 es un diagrama para explicar una tabla para transformar inversamente un índice decodificado en un modo de predicción. La Fig. 44A es un diagrama para explicar posiciones de bloques en donde un modo de predicción se denomina como predicción del bloque de interpolación (1) .
La Fig. 44B es un diagrama para explicar posiciones de bloques en donde un modo de predicción se ha denominado como predicción del bloque de interpolación (2) . La Fig. 44C es un diagrama para explicar posiciones de bloque en donde el modo de predicción se denomina como predicción del bloque de interpolación (3) La Fig. 44D es un diagrama para explicar posiciones de bloques en donde un modo de predicción se denomina como predicción del bloque de interpolación (4) .
MEJOR MODO PARA LLEVAR A CABO LA INVENCIÓN Una modalidad de la presente invención será descrita más adelante con referencia a los dibujos.
APARATO DE CODIFICACION DE IMAGENES Como se muestra en la Fig. 1, en un aparato de codificación de imágenes a una modalidad de la invención, una señal de imágenes de entrada 120 de una imagen en movimiento o una imagen estática se introduce a un codificador de imágenes 100. El codificador de imágenes 100 tiene un divisor de marco 101, un predictor 102, un selector de modo 103, una unidad de cuantificación inversa/transformación ortogonal inversa 105, un adicionador 106, una memoria de imagen de referencia 107, y un codificador de entropía 108.
Un controlador de codificación 110 da información de control de codificación 140 al codificador de imagen 100 para controlar una totalidad de un proceso de codificación del codificador de imágenes 100 y recibe apropiadamente la información de retroalimentación 150 del codificador de imágenes 100. La información de control de codificación 140 incluye información de índice de modo de predicción (descrito después), información de intercambio de tamaño de bloques, información de intercambio de orden de predicción, información de intercambio de número de modo de predicción, información de parámetro de cuantificación y similares. La información de parámetro de cuantificación incluye una anchura de cuantificación (tamaño de etapas de cuantificación) , una matriz de cuantificación, y similares. La información de retroalimentación 150 incluye información de cantidad de bits de codificación generada en el codificador de imágenes 100 requeridos para determinar los parámetros de cuantificación. El en el codificador de imágenes 100, la señal de imagen de entrada 120 se introduce en el divisor de marco 101. En el divisor de marco 101, un marco blanco de codificación de la señal de imagen de entrada 120 se divide en una pluralidad de bloques de pixeles para generar una señal de imagen de bloques 121. Por ejemplo, enmarco blanco de codificación en la Fig. 2A se divide en una pluralidad de
bloques teniendo cada uno un tamaño de bloque de 16 x 16 pixeles como se muestra en la Fig. 2B. el bloque mostrado en la Fig. 2B se llama un macrobloque y es una unidad de procesamiento básica para codificación. Más específicamente, la codificación se lleva a cabo en la unidad de un macrobloque . La señal de imágenes de bloque 121 que sale del divisor de marcos 101 se somete a predicción itera-marco por el predictor 102 primero. La predicción intra-marco es un esquema que lleva a cabo la predicción cerrada en enmarco como se ha mostrado. El predictor 102 usa un pixel codificado como un pixel de referencia para predecir un bloque de blanco de codificación, generando así una señal de predicción 122 en la unidad de un macrobloque. En el predictor 102, una pluralidad de modos de predicción ara predicción intra-marco se preparan, y la predicción se lleva a cabo de acuerdo con todos los modos seleccionables . El predictor 102 puede tener un modo de predicción que lleva a cabo la intra . -predicción de h. 264, es decir, predicción de 8 x 8 pixeles en la Fig. 3A, predicción de 4 x 4 pixeles en la Fig. 3B, o predicción de 8 x 8 /4 x 4 pixeles en la Fig. 3C (predicción de 8 x 8 pixeles y predicción de 4 x 4 pixeles se mezclaron entre ellos en un macrobloque). En la intra-predicción de H. 264, la siguiente predicción no se puede llevar a cabo sin formar una imagen
decodificada local en el macrobloque. En este caso, la transformación/cuantificación ortogonal y cuantificación inversa/transformación ortogonal inversa puede llevarse a cabo en el predictor 102. En la predicción de 8 x 8 pixeles y predicción de 4 x 4 pixeles, cada macrobloque se divide en sub-bloques constituidos por bloques de 8 x 8 pixeles y bloques de 4 x 4 pixeles. En este caso, el modo de predicción regula uniforma de referirse a pixeles codificados usados en las señales de predicción de los sub-bloques son generados. La forma (incluyendo un tamaño) del sub-bloque no se limita a una forma especifica. Por ejemplo, se pueden usar las formas de 16 x 8 pixeles, 8 x 16 pixeles, 8 x 4 pixeles, y 4 x 8 pixeles. Por lo tanto, la predicción de 8 x 4 pixeles y predicción de 2 x 2 pixeles pueden llevarse a cabo por el mismo marco como se describió antes. Cuando se reduce un tamaño de bloques del sub-bloque, es decir, cuando se incrementa el número de macro bloques divididos, se incrementa una cantidad de código usado cuando se codifica el incremento de intercambio de tamaño de bloques (descrito después) . Sin embargo, dado que se puede llevar a cabo la predicción intra-marco que tiene eficiencia de predicción superior, se reduce un error residual. Por lo tanto, en consideración de un balance de la cantidad de bits de
codificación para información de coeficiente de transformación (descrita después) y una señal de decodificación local, se puede seleccionar un tamaño de bloques. El mismo proceso como se describió antes, puede llevarse a cabo a una región de pixeles que tiene una forma arbitraria generada por un método de división de regiones. En el predictor 102, una señal de error residual de predicción 123 se genera sustrayendo la señal de predicción 122 de la señal de predicción 122 y la señal de imágenes de bloques 121. La señal de error residual de predicción 123 se introduce a la unidad de transformación/cuantificación ortogonal 104 y el selector de modo 103. En la unidad de transformación/cuantificación ortogonal 104, se lleva a cabo la transformación ortogonal para la señal de error residual de predicción 123, y el coeficiente de transformación obtenida en la transformación ortogonal se cuantifica para generar la información de coeficiente de transformación de cuantificación 127. Con respecto a la forma de un bloque de transformación/cuantificación que es una unidad de procesamiento en la unidad de transformación/santificación ortogonal 104, se pueden seleccionar las formas de 8 x 8 pixeles, 4 x 4 pixeles, 16 x 8 pixeles, 8 x 16 pixeles, 8 4 pixeles, y 4 x 8 pixeles. Alternativamente, se dan diferentes formas a los bloques de transformación/cuantificación en un
macrobloque. Por ejemplo, se pueden mezclar bloques de 8 x 8 pixeles y bloques de 4 x 4 pixeles en un macrobloque como se muestra en la Fig. 3C. En el selector de modos 103, sobre la base de información de modo de predicción 124 (de aquí en adelante información de Indice de modo de predicción, información de intercambio de tamaño de bloques, información de intercambio del orden de predicción, e información de intercambio de número de modo de predicción se llama genéricamente información de modo de predicción) tal como información de índice de modo de predicción, información de intercambio de tamaño de bloques, información de intercambio de orden de predicción e información relacionada con intercambio de número de modo de predicción relacionada con un modo de predicción para ser introducida a través de la señal de error residual de predicción 123 y el predictor 102, se calcula un costo de codificación. Sobre esta base, se selecciona un modo de predicción óptima. Más específicamente, cuando la información del modo de predicción 124 se representa por OH, y una suma de valores absolutos de señales de error residual de predicción se representa por SAD, el selector de modo 103 selecciona un modo de predicción que da el valor mínimo de un costo de codificación K calculado por la siguiente ecuación como un modo óptimo.
Ecuación 1 K = SAD + ? x OH (1) en donde ? denota una constante que se determina sobre la base de un valor de un parámetro de cuantificación . Como otro ejemplo de un cálculo de costos en el selector de modos 103, se puede usar solo la información del modo de predicción OH o únicamente el asuma de valores absolutos SAD de las señales de error residual de predicción. Se puede usar un valor obtenido ro transformación de Hadamard o aproximación de información del modo de predicción o la señal de error residual de predicción. Una función de costos se puede formar usando una anchura de cuantificación y un parámetro de cuantificación. Como aún otro ejemplo del cálculo de costo, se prepara un codificador virtual y una cantidad de código obtenido codificando actualmente la señal de error residual de predicción 123 generada en cada modo de predicción y un error cuadrado entre una señal de imagen decodificada 130 obtenido por los datos de decodificación locales y se puede usar una señal de imágenes de bloques 121. En este caso, un modo de predicción que da el valor mínimo de un costo de codificación J calculado por la siguiente ecuación se seleccionó como un modo óptimo:
Ecuación 2 J = D + ? x R (2) en donde D denota una distorsión de codificación que expresa el error cuadrado entre la señal de imagen de bloques 121 y la señal de imágenes decodificadas 130. Por otro lado, R denota una cantidad de código estimado por codificación virtual. Cuando se usa el costo de codificación J en la Ecuación (2), la codificación virtual y recodificación local (cuantificación inversa y transformación ortogonal inversa) son necesarios en cada modo de predicción. Por esta razón, se incrementa una cantidad de proceso o una escala de circuitos. Sin embargo, dado que el costo J refleja una cantidad precisa de código y distorsión de codificación precisa, se puede seleccionar un modo de predicción más óptimo. Como resultado, se puede obtener la eficiencia de codificación superior. En la Ecuación (2), la distorsión de codificación D y la cantidad de bits de codificación R se usan en el cálculo del costo de codificación J. sin embargo, el costo de codificación J puede calcularse usando cualquiera de D y R. Una función de costos puede llevarse a cabo usando un valor obtenido por aproximación de D y R. Del selector de modos 103, salen la información de modo de predicción óptimo 125 que expresa un modo de predicción seleccionado y una señal de predicción 126 que
corresponde al modo de predicción seleccionado. La información del modo de predicción óptima 125 se introduce a la unidad de transformación/cuantificación ortogonal 104 junto con la señal de error residual de predicción 123 del predictor 102. La unidad de transformación/cuantificación ortogonal 104 lleva a cabo la transformación ortogonal, por ejemplo, transformación de coseno discreta (DCT) a la señal de error residual de predicción 123 cuya referencia a la información del modo de predicción óptima 125. Como la transformación ortogonal, se puede usar la transformación de ondulación pequeña, análisis de componentes independientes o similares. En la unidad de transformación/cuantificación ortogonal 104, un coeficiente de transformación se cuantifica para generar la información de coeficiente de transformación de cuantificación 127. En este caso, un parámetro de cuantificación tal como una anchura de cuantificación requerida por la cuantificación en la unidad de transformación/cuantificación ortogonal 104 se designa por la información del parámetro de cuantificación incluido en la información de control de codificación 140 del controlador de codificación 110. La información del coeficiente de transformación de cuantificación 127 se introduce al codificador de entropía 108 junto con la información relacionada con la predicción tal como la información del índice del modo de predicción
141, la información de intercambio del tamaño de bloques 142, la información de intercambio del número de modo de predicción 144, y un parámetro de cuantificación que se incluyen en la información de control de codificación 140. El codificador de entropía 108 lleva a cabo la codificación de entropía tal como codificación Huffman, codificación Golomb, o codificación aritmética a la información de coeficiente de transformación de cuantificación 127 y la información relacionada con la predicción para generar datos codificados 146. Los datos codificados 146 se multiplexan por un multiplexor 111 y se transmiten a través de una solución reguladora de salida 112 como una corriente de bits de codificación 147. La información de coeficiente de transformación de cuantificación 127 también se introduce a la unidad de cuantificación inversa/transformación ortogonal inversa 105. La unidad de cuantificación inversa/transformación ortogonal inversa 105 cuantifica inversamente la información de coeficiente de transformación de cuantificación 127 de acuerdo con la información del parámetro de cuantificación del controlador de codificación 110 y lleva a cabo la transformación ortogonal inversa tal como la transformación de coseno discreta inversa (IDCT) a un coeficiente de transformación obtenido por la cuantificación inversa, generando así una señal de error residual de predicción 128
equivalente a la señal de error residual de predicción 123 sale del predictor 102. La señal de error residual de predicción 128 generada por la unidad de cuantificación inversa/transformación ortogonal inversa 105 se agrega a la señal de predicción 126 del selector de modos 103 en el adicionador 106 para generar una señal de decodificación local 129. La señal de decodificación local 129 se acumula en la memoria de imágenes de referencia 130. La señal de decodificación local acumulada en la memoria de imagen de referencia 107 se lee como la señal de imagen de referencia 130 y se refiere a cuando la señal de error residual de predicción 123 se genera por el predictor 102. Un ciclo de codificación (en la Fig. 1, el predictor 102 ? unidad de transformación/cuantificación ortogonal 104 ? unidad de cuantificación inversa/transformación ortogonal inversa 105 ? memoria de imagen de referencia 130 ? predictor 102) se crea cuando se termina el proceso a todos los modos de predicción seleccionables en un bloque de blanco de codificación. Cuando el proceso del ciclo de codificación se termina a cierto bloque de blanco de codificación, la señal de imagen de bloques 121 del siguiente bloque blanco de codificación se introduce al predictor 101 para llevar a cabo la codificación .
El controlador de codificación 110 lleva a cabo el control de toda la codificación tal como el control de régimen por el control de retroalimentación de una cantidad de bits de codificación generados o el control de parámetro de cuantificación, control de modo de codificación y control del predictor. El aparato de codificación de imagen en la Fig. 1 se realiza por el hardware tal como un microcircuito de LSI o se realiza por la ejecución de un programa de codificación de imágenes en una computadora.
Unidad de Predicción 102 El predictor 102 será descrito más adelante usando la Fig. 4. El predictor 102 tiene un generador de señal de predicción 113 que genera una señal de predicción y además tiene un selector de modo interno 114, una unidad de transformación/cuantificación ortogonal interna 115, una unidad de cuantificación inversa/transformación ortogonal inversa interna 116, y una memoria de imagen de referencia interna 118 para llevar a cabo la predicción en unidades de una pluralidad de bloques de pixeles pequeños (llamados sub-bloques) obtenidos dividiendo además un macrobloque. Cuando la señal de imágenes de bloque 121 se introduce al predictor 102, la señal de predicción 122 obtenida por predicción unidireccional (descrita más adelante) o predicción bidireccional (descrita más adelante)
se genera por el generador de señal de predicción 113. En este caso, la información del modo de predicción que incluye la información del índice del modo de predicción 141, la información de intercambio del tamaño de bloques 142, la información de intercambio del orden de predicción 143, y la información de intercambio del número de modo de predicción 144 se transmite del controlador de codificación 110 al generador de señal de predicción 113. El controlador de codificación 110 transmite una pluralidad de modos de predicción a la señal de generador de predicción 113 para causar que el generador de señal de predicción 113 lleve a cabo la predicción en la pluralidad de modos de predicción. El generador de señal de predicción 113 generada, además de la señal de predicción 122 obtenida por los modos de predicción respectivos, información del modo de predicción 161 que corresponden a la señal de predicción 122. Un substractor 119 sustrae la señal de predicción 114 de la señal de imágenes de bloques 121 para generar la señal de error residual de predicción 123. El selector de modo interno 114 selecciona un modo de predicción sobre la base de la información del modo de predicción 161 (incluyendo la información del índice de modo de predicción 141, la información de intercambio de tamaño de bloques 142, la información de intercambio del orden de predicción 143, y la información de intercambio del número del modo de predicción
144) transmitida a través del generador de señal de predicción 113 y la señal de error residual de predicción 123 para dar la información del modo de predicción 124 representando el modo de predicción seleccionado. La señal de error residual de predicción 123 y la información del modo de predicción 124 que sale del selector de modo interno 114 se introducen a la unidad de transformación/cuantificación ortogonal interna 115. En la unidad de transformación/cuantificación ortogonal interna 115, la transformación ortogonal, por ejemplo, se lleva a cabo DCT para la señal de error residual de predicción 123 con referencia a la información del modo de predicción 124. Como la transformación ortogonal, la transformación de ondulación corta, se puede usar el análisis de componentes independientes o similares. En la unidad de transformación/cuantificación ortogonal interna 115, se cuantifica un coeficiente de transformación por la transformación ortogonal para generar la información de coeficiente de transformación de cuantificación 163. En este caso, un parámetro de cuantificación tal como una anchura de cuantificación requerida para cuantificación en la unidad de transformación/cuantificación ortogonal interna 115 se designa por la información de parámetro de cuantificación incluida en la información de control de codificación 140 del controlador de codificación 110.
La información de coeficiente de transformación de cuantificación 163 se introduce a la unidad de cuantificación inversa/transformación ortogonal inversa interna 116. La unidad de cuantificación inversa/transformación ortogonal inversa interna 116 cuantifica inversamente la información de coeficiente de transformación de cuantificación 163 de acuerdo con la información de parámetro de cuantificación del controlador de codificación 110 y lleva a cabo la transformación ortogonal inversa tal como IDCT a un coeficiente de transformación obtenido por la cuantificación inversa, generando asi una señal de error residual de predicción 164 equivalente a la señal de error residual de predicción 123. La señal de error residual de predicción 164 generado por la unidad de cuantificación inversa/transformación ortogonal inversa interna 116 se agrega a una señal de predicción 162 del selector de modo interno 114 en un adicionador 117 para generar una señal decodificación interna 165. La señal de decodificación interna 165 se acumula en la memoria de imagen de referencia interna 118. Una señal de decodificación local acumulada en la memoria de imagen de referencia interna 118 se lee como una señal de imagen de referencia interna 166 y denominada como cuando una señal de error residual de predicción se genera
por el generador de señal de predicción 113. Al completar la predicción en todos los sub-bloques en el predictor 102, la señal de predicción 122, la señal de error residual de predicción 123, y la información de modo de predicción 124 que corresponde al macrobloque sale del exterior del predictor 102.
UNIDAD DE GENERACIÓN DE SEÑAL DE PREDICCIÓN 113 El generador de señal de predicción 113 será describo más adelante con referencia a la Fig. 5. La Fig. 5 muestra únicamente una parte relacionada con la generación de la señal de predicción 122 en el generador de señal de predicción 113. En la Fig. 5, un intercambiador de orden de predicción 170 intercambia las órdenes de predicción de sub-bloques en el macrobloque sobre la base de la información de intercambio de orden de predicción 143 con respecto a la señal de imágenes de bloques 121. Más específicamente, el intercambiador de orden de predicción 170 selecciona un orden de predicción a una pluralidad de sub-bloques obtenidos dividiendo un bloque de pixeles (macrobloque) de una pluralidad de órdenes de predicción predeterminadas. Las señales de imágenes de bloques los órdenes de predicción de las cuales se intercambia por el intercambiador de orden de predicción 170 se introducen a un predictor unidireccional 171 y un predictor bidireccional 172.
El predictor unidireccional 171 y el predictor bidireccional 172 predice un macrobloque con referencia a los pixeles codificados de acuerdo con el orden de predicción intercambiado y seleccionados por el intercambio de orden de predicción 170 y los modos de predicción seleccionados respectivamente para generar una señal de predicción que corresponde al macrobloque. Más específicamente, el predictor unidireccional
171 selecciona un modo de predicción de la pluralidad de modos de predicción preparadas sobre la base de la información del índice del modo de predicción 141. El predictor unidireccional 171 genera señales de predicción con referencia a la señal de imagen de referencia interna 166 de acuerdo con el modo de predicción seleccionado como se describió antes y la información de intercambio de tamaño de bloques 142. El predictor bidireccional 172 selecciona dos clases de modos de predicción de la pluralidad de modos de predicción preparadas sobre la base de la información del índice de modo de predicción 141. El predictor bidireccional
172 genera señales de predicción con referencia a la señal de imagen de referencia interna 166 de acuerdo con las dos clases de modos de predicción seleccionados como se describió antes y la información de intercambio de tamaño de bloques 142. Las señales de predicción salen del predictor unidireccional 171 y el predictor bidireccional 172 se
introducen a un intercambio de número de modo de predicción 173. El intercambio de número de modo de predicción 173 se controla de acuerdo con la información de intercambio de número de modo de predicción 144 para seleccionar cualquiera de la señal de predicción generada por el predictor unidireccional 171 y la señal de predicción generada por el predictor bidireccional 172, dando asi una señal de predicción seleccionada 122. En otras palabras, el intercambio de número de modo de predicción 173 selecciona el número de modos de predicción útiles de una pluraldiad de modos de predicción predeterminados. Una operación del intercambio de orden de predicción 170 será descrito con referencia a las Figs. 6A a 6D, Figs. 7A a 7D, y Fig. 8. La Fig. 6A muestra un índice :blk que sirve como una referencia de sub-bloques (bloques de 8 x 8 pixeles) en un macrobloque en la predicción de 8 x 8 pixeles. Similrmete, la Fig. 7A muestra un índice :blk de sub-bloques (bloques de 4 x 4 pixeles) en un macrobloque en predicción de 4 x 4 pixeles. En la Fig. 6A, los bloques de 8 x 8 pixeles se obtiene dividiendo un macrobloque por cuatro se colocan en el orden de manera se lleva a cabo la predicción de bloques de trama y procesos de codificación. En la Fig. 7A, en consideración de los bloques de 8 x 8 pixeles obtenidos dividiendo el macrobloque por cuatro, y los bloques
de 4 x 4 pixeles obtenidos dividiendo el bloque de 8 x 8 pixeles por cuatro se colocan en el orden de manera que se lleva a cabo predicción de bloques de trama y un proceso de codificación . El intercambio de orden de predicción 170 se controla por la información de intercambio del orden de predicción 143. El intercambio de orden de predicción 170 transforma un índice :blk que sirve como una referencia que depende de un valor de una marca de _block_order_flag (descrito después) que representa la información de intercambio de orden de predicción 143 para intercambiar un orden de predicción de sub-bloques. A un orden :idx de los sub-bloques, un índice rorder (expresando un orden de predicción) de los sub-bloques en la codificación actual se da por la siguiente ecuación:
Ecuación 3 Orden = blkConv [block_order_flag] [idx] (3) La Fig. 8 muestra un ejemplo de una tabla de transformación concreta de blkConv[][]. Cuando la marca :block_order_flag es 0 (FALSE), un índice rorder de un sub-bloque en la predicción actual de codificación es un índice _idx por sí mismo de un sub-bloque que será codificado, y la predicción de bloques y un orden de predicción no cambian
(dicha predicción llevada a cabo por el orden de predicción se llama predicción de bloques de trama de aquí en adelante) . Las Figs. 6B y 7B muestra órdenes de predicción obtenidos por la predicción de bloques de trama a las Figs. 6A y 7A. Más específicamente, en la Fig. 6B, el orden de predicción se ajusta como un orden (0 ? 1 ? 2 ? 3) dependiendo el índice :idx. Similarmente, como en la Fig. 7B, el orden de predicción se ajusta como un orden (0 ? 1 ? 2 ... -> 14 ? 15) dependiendo del índice :ids. Por otro lado, cuando la marca : block_order_flag es
1 (TRAE) , un índice _order de sub-bloques se predice primero extrapolando y los tres bloques restantes se predicen por extrapolación interpolación. La predicción llevada a cabo por el orden de predicción será llamado de aquí en adelante predicción de extrapolación/interpolación. Las Figs. 6C y 7C muestran cambios en el orden de predicción obtenido por la predicción de extrapolación/interpolación correspondiendo a las Figs. 6A y 7A, respectivamente. En la Fig. 6C, un sub-bloque de índice = 3 se predice primero por la extrapolación, los sub-bloques de idx = 1 e idx = 2 se predicen y finalmente un sub-bloque de idx = 0 localizado en una posición diagonal de la posición de un sub-bloque de idx = 3 se predice por extrapolación. En la Fig. 7C, los órdenes de predicción se ajustan a cuatro sub-
bloques de 4 x 4 pixeles obtenidos dividiendo el bloque de 8 x 8 pixeles por cuatro como en la Fig. 6C. Como aún otro ejemplo, los órdenes de predicción de los sub-bloques pueden establecerse arbitrariamente como se muestra en las Figs. 6D y 7D dependiendo de las propiedades tales como una correlación entre pixeles en un macrobloque. Como se describió antes, los sub-bloques de los órdenes de predicción de los cuales se intercambian por el intercambio de orden de predicción 170 se introducen al predictor unidireccional 171 o el predictor bidireccional 172 para generar las señales de predicción que corresponden a los sub-bloques. El intercambio de número del modo de predicción 173 da una señal de predicción obtenida por el predictor 171 cuando la información de intercambio del número de modo de predicción 144 representa el número del modo de predicción "1" y da una señal de predicción obtenida por el predictor del número de modo "2". Una señal de predicción que sale del intercambio del número de modo de predicción 173 se extrajo como una salida 122 del generador de señal de predicción 113. Los procesos del predictor unidireccional 171 y el predictor bidireccional 172 que corresponde a los órdenes de predicción establecidos por la marca :block_order_flag será descrita más adelante. Como se describió antes, el predictor unidireccional 171 y el predictor bidireccional 172 predice los sub-bloques que serán codificados usando pixeles
decodificados mantenidos en la memoria de imagen de referencia interna 118 mostrada en la Fig. 4 como la señal de imagen de referencia interna 166.
PROCESO DE UNIDAD DE PREDICCIÓN UNIDIRECCIONAL 171
EN PREDICCIÓN DE BLOQUES DE TRAMA Como modos de predicción de predicción de bloques de trama en el predictor unidireccional 171, por ejemplo, nueve modos, es decir, del modo 0 al modo 8 están presentes. Como se muestra en la Fig. 9A, los ocho modos excepto por el modo 2 (modos 0, 1, y 3 a 8) tienen direcciones de predicción (direcciones en las cuales se hace referencia a los pixeles codificados) que se cambian en intervalos de 22.5° en un espacio de imágenes formados por el codificador de imágenes 100 y se llaman modos de predicción de dirección. El modo 2 es un modo de predicción de DC en el predictor unidireccional 171. La Fig. 10 muestra nombres de modos de predicción: modos 0 a 8 de predicción de bloques de trama en el predictor unidireccional 171. Los índices que expresan los modos 0 a 8 se dan a los nombres, respectivamente. La Fig. 9B muestra una relación entre los pixeles de predicción y los pixeles de referencia en la predicción de 4 x 4 pixeles. En la Fig. 9B, los pixeles A a son pixeles de referencia, y los pixeles a a p son pixeles de predicción.
Un método de predicción concreto será descrito más adelante usando las Figs. 9A, 9B, 9C, y 9D. En el predictor unidireccional 171, cuando se selecciona la predicción de DC en el modo 2, los valores del los pixeles de predicción a a p se calculan por la siguiente ecuación para generar señales de predicción.
Ecuación 4 A~p = ave (A, B, C, D, I, J, K, L) (4) En esta ecuación, ave ( · ) denota un promedio (llamado valor de pixeles promedio) de valores de pixeles (valores de luminancia) de los pixeles de referencia parentéticos . Cuando no se pueden usar algunos de los pixeles de referencia parentéticos, un valor de pixeles promedio de pixeles de referencia únicamente utilizables se calcula para generar las señales de predicción. Cuando un pixel de referencia utilizable no está del todo presente, en el generador de señales de predicción 113, un valor (128 en el caso de 8 bits) que es un valor de luminancia máximo medio de las señales de predicción se establece como una señal de predicción . Cuando se selecciona un modo excepto por el modo 2, el predictor unidireccional 171 utiliza un método de predicción que copia pixeles de referencia a los pixeles de
predicción a las direcciones de predicción mostradas en Fig. 9A. Más específicamente, un método de generación señal de predicción usado cuando se selecciona el modo (predicción vertical) se da por las siguientes ecuaciones.
Ecuación 5 a, e, i, m = A b, f, j, n = B c, g, k, o = C d, h, 1, p = D (5) Este modo 0 puede seleccionarse únicamente cuando se. pueden usar los pixeles de referencia de A a D. En el modo 0, como se muestra en la Figura 9C, los pixeles de referencia A a D se copian directamente a los pixeles de predicción dispuestos en una dirección vertical para generar señales de predicción. Por otro lado, un método de generación de señal de predicción usados cuando se selecciona el modo 4 (predicción de diagonal-descendente-derecha) se da por las siguientes ecuaciones :
[Ecuación 6] d = (B + (C « 1) + D + 2) » 2 c, h = (A + (B « 1) + C + 2) » b, g, 1 = (M + (A « 1) + B + 2)
a, f, k, p = (I + (M « 1) + A + 2) » 2 e, j, o = (J + (I + 1) + M + 2) » 2 i, n = (K + (J « 1) + I + 2) » 2 m = (L + (K « 1) + J + 2) » 2 (6) El modo 4 puede usarse únicamente cuando los pixeles de referencia A a D y de I a M. en el modo 4, uno mostrado en la Fig. 9D, los valores generados ro un filtro de 3 llaves se copian en una dirección inferior derecha a 45° para generar señales de predicción. Con respecta a un modo de predicción excepto por los modos 0, 2, y 4, se utiliza el mismo bastidor. Más específicamente, una señal de predicción se genera por un método para copiar pixeles de referencia que pueden usarse en una dirección de predicción a los pixeles de predicción dispuestos en la dirección de predicción.
PROCESO DE UNIDAD DE PREDICCIÓN BIDIRECCIONAL 172 EN PREDICCIÓN DE BLOQUES DE TRAMA En la predicción unidireccional, se genera una predicción de señal generado con la suposición de que una imagen en el bloque solo tiene una dirección espacial. Cuando la imagen en el bloque tiene dos o más direcciones espaciales, no puede satisfacerse la suposición. Por esta razón, el número de señales de error residual de predicción tiende a incrementarse solo cuando se usa la predicción
unidireccional. Por lo tanto, cuando la imagen tiene dos o más direcciones espaciales, dos clases de modos de los nueve modos de predicción (incluyendo también la predicción de DC) en el predictor unidireccional 171 simultáneamente se utilizan en el predictor bidireccional 172 para llevar a cabo la predicción en consideración de una pluralidad de direcciones espaciales, suprimiendo asi el incremento del número de señales de error residual de predicción. La Fig. 11 muestra índices de modos que corresponden a nombres de modos de predicción en el predictor bidireccional 172. En la Fig. 11, está presente un modo de predicción que usa dos modos. Por ejemplo, el nombre y el índice de modos de un modo de predicción que utiliza predicción vertical (modo 0) y la predicción horizontal (modo 1) se describió como "predicción vertical/horizontal" y "modo 01", respectivamente. Por ejemplo, el nombre y el índice de modo de un modo de predicción que usa la predicción vertical (modo 0) y la predicción de DC (modo 2) se describen como "vertical/predicción de DC" y "modo 02", respectivamente. Como un ejemplo, un método de generación de señal de predicción llevado a cabo por la predicción vertical/horizontal usando la predicción vertical (modo 0) y la predicción horizontal (modo 1) será descrito más adelante. La Fig. 12A muestra el concepto de la predicción vertical/horizontal (modo 01) en la predicción de 4 x 4
pixeles. Una relación entre los pixeles de predicción y los pixeles de referencia en la predicción de 4 x 4 pixeles es igual que en la Fig. 9B. Por ejemplo, en el pixel de predicción a, un valor de pixel promedio del pixel A denominado como la predicción vertical y el pixel I denominado como la predicción horizontal se establece como una señal de predicción. En el pixel de predicción b, un valor de pixel promedio del pixel de referencia B en la predicción vertical y el pixel de referencia I en la predicción diagonal-descendente-derecha se establece como una señal de predicción. Con respecto a los otros pixeles de predicción, las señales de predicción se generan por el mismo método como se describió antes. Más específicamente, un pixel de predicción se calcula usando la siguiente ecuación en la predicción vertical/horizontal (modo 01) .
Ecuación 7 X (01, n) = (X(0,n) + X(l,n) + 1) » 1 (7) En esta ecuación, el símbolo de referencia n denota un índice que corresponde a los pixeles de predicción a a p mostrados en la Fig. 9B, y X (0, n) y X (1, n) denotan las señales de predicción generadas por la predicción vertical y la predicción horizontal que son predicciones unidireccionales. Dado que los métodos de generación concretos de la señales de
predicción X (O, n) y X (1, n) es el mismo que el expresado por la Ecuación (5) y la Ecuación (6), se omitirá una descripción del mismo. Un pixel de predicción se calcula usando la siguiente ecuación en la predicción vertical/DC (modo 02).
Ecuación 8 X (02, n) = (X(0, n) + X (2, n) + 1) » 1 (8) Un pixel de predicción se calcula usando la siguiente ecuación en predicción vertical/diagonal_descendente_derecha (modo 04) .
Ecuación 9 X (04, n) = (X(0,n) + X(4,n) + 1) » 1 (9) La Fig. 12B muestra el concepto de un método de predicción en el modo 04. En la predicción de extrapolación en una pluralidad de direcciones excepto por la predicción en el modo 01 o 02, los pixeles de predicción pueden calcularse similarmente . La predicción de extrapolación en la pluralidad de direcciones pueden expresarse por la siguiente ecuación general:
Ecuación 10 X (UV,n) = (X(U,n) + X(V,n) + 1) » 1 (10)
En esta ecuación, X(U,n) y X(V,n) son un modo "U" y un modo "V" en la predicción unidireccional, y X(UV,n) es una señal de predicción de un modo "UV" en la predicción de extrapolación de una pluralidad de direcciones. En esta forma, los pixeles de predicción se calculan por las predicciones unidireccionales de arbitrariedad dos tipos en unidades de pixeles. Un valor obtenido mediante el promedio de estos pixeles de predicción se establece como una señal de predicción. Por esta razón, la predicción puede llevarse a cabo a una alta precisión cuando está presente una. pluralidad de direcciones espaciales en un bloque, y se puede mejorar la codificación de eficiencia.
PREDICCIÓN DE BLOQUES DE EXTRAPOLACIÓN/INTERPOLACIÓN En la predicción de bloques de extrapolación/interpolación como se describió en la Fig. 6B, un orden de sub-bloques en un macrobloque cambia de un orden en la predicción de bloques de trama a una predicción de acuerdo con la Ecuación (3) . Por ejemplo, cuando se lleva a cabo la predicción a un bloque de 8 x 8 pixeles, como se muestra en la Fig. 13A, se predice un bloque de esquina externo como un bloque (para ser denominado como un bloque de extrapolación de aquí en adelante) que puede predecirse extrapolando por adelantado y los otros tres bloques se
predicen como bloques (bloques de interpolación de aqui en adelante) que pueden predecirse por interpolación. Más específicamente, se predice un bloque de extrapolación (4), y se predicen luego los bloques de interpolación (1), (2), y (3) . Cuando se predicen los bloques de 4 x 4 pixeles, se establece un orden de predicción de manera que la predicción de un bloque de extrapolación y la predicción de bloques de interpolación se lleva a cabo para cada uno de los bloques de x pixeles en las unidades de bloques de 8 x 8 pixeles. En el proceso de predicción, al completar la predicción en unidades de bloques de 8 x 8 pixeles, la predicción se lleva a cabo en los siguientes bloques de 8 x8 pixeles. De esta forma, la predicción en unidades de bloques de 8 x 8 pixeles se repite un total de cuatro veces.
PREDICCIÓN DE BLOQUE DE EXTRAPOLACIÓN Cuando se predice un bloque de extrapolación, es grande una distancia entre un píxel de referencia y un píxel de predicción. Por esta razón, un rango de los pixeles de referencia como se muestran en la Fig. 14A. En la Fig. 14A, los pixeles a a X y Z son pixeles de referencia, y los pixeles de a a p son pixeles de predicción. Aunque el rango de los pixeles de referencia se vuelve amplio, un método para generar una señal de predicción copiando los pixeles de referencia dependiendo de los ángulos de predicción se lleva
a cabo de la misma manera que en la predicción de bloques de trama . Más específicamente, cuando la predicción de DC en el modo 2 se selecciona en un bloque de extrapolación, se calculan los pixeles de predicción de a a p por la siguiente ecuación :
Ecuación 11 a~p = ave (E, F, F, H, U, V, W, X) (11)
En esta ecuación, ave ( · ) denota un valor de pixeles promedio de los pixeles de referencia parentéticos . Cuando no se pueden usar algunos de los pixeles de referencia parentéticos, se calcula un valor de pixeles promedio únicamente de pixeles de referencia útiles para generar las señales de predicción. Cuando un píxel de referencia utilizable no está del tordo presente, en el generador de señal de predicción 113, un valor (128 en el caso de 8 bits) que es la mitad de un valor de luminancia máximo de las señales de predicción se establece como una señal de predicción. Cuando se selecciona un modo excepto por el modo 2, el predictor unidireccional 171 utiliza un método de predicción que copia pixeles de referencia a los pixeles de predicción para la predicción de direcciones mostradas en la Fig. 9A. Más específicamente, se selecciona una señal de
predicción que genera el método usado cuando el modo 0 (predicción vertical) se da por las siguientes ecuaciones:
Ecuación 12 a, e , i , m = E b, f, j, n = F c, g, k, o = G d, h, 1, p = H (12) Este modo 0 puede seleccionarse únicamente cuando se pueden usar pixeles de referencia E a H. En el modo 0, como se muestra en la Fig. 15A, los pixeles de referencia E a H se copian directamente a los pixeles de predicción dispuestos en una dirección vertical para generar señales de predicción. Un método de generación de señal de predicción usadas cuando se selecciona el modo 4 (predicción diagonal-descendente-derecha) en un bloque de extrapolación, se da por las siguientes ecuaciones:
Ecuación 13 d = (B + (C « 1) + D + 2) » 2 c, h = (A + (B « 1) + C + 2) » 2 b, g, 1 = (Z + (A « 1) + B + 2) » 2 a, f, k, p = (Q + (Z « 1) + A + 2) » 2 e, j, o = (R + (Q + 1) + Z + 2) » 2
i, n = (S + (R « 1) + Q + 2) » 2 m = (T + (S « 1) + R + 2) » 2 Este modo 4 puede seleccionarse únicamente cuando se usan los pixeles de referencia A a D, Q a T, y Z. En el modo 4, como se muestra en la Fig. 15B, los valores generados por infiltro de 3 llaves se forman pixeles de predicción alineados en una dirección inferior-derecha a 45° para generar señales de predicción. Con respecto a los modos de predicción excepto por los modos 0, 2, y 4, se usa una estructura que casi es igual a la descrita antes. Más específicamente, un método para copiar un píxel de referencia que se puede usar enana dirección de predicción o un valor interpolado generado del píxel de referencia a pixeles de predicción dispuestos en la dirección de predicción se usa para generar una señal de predicción.
PREDICCIÓN DE BLOQUES DE INTERPOLACIÓN En las Figs. 13A y 13B, cuando se predice un bloque de interpolación (2), se termina la predicción del bloque de extrapolación (4). Por esta razón, se puede llevar a cabo la predicción que se refiere a pixeles de un bloque de extrapolación (4) . Cuando un será previsto un bloque de interpolación (3) , se puede llevar a cabo la predicción que se refiere no únicamente a los pixeles del bloque de
extrapolación (4) sino también a los pixeles del bloque de interpolación (2) . Cuando será previsto un bloque de extrapolación (1), se puede llevar a cabo la predicción que se refiere no solo a los pixeles del bloque de extrapolación (4) y el bloque de interpolación (2) sino también a los pixeles del bloque de interpolación (3) . Las Figs. 14B, 14C, y 14D, muestran relaciones entre los bloques de interpolación 81), (2), y (3) y los pixeles de referencia en la predicción de 4 x 4 pixeles. Los pixeles RA a RI son pixeles de referencia recién agregados a la Fig. 14A, y los pixeles de a a p son pixeles de predicción .
PROCESO DE UNIDAD DE PREDICCIÓN UNIDIRECCIONAL 171 EN LA PREDICCIÓN DE BLOQUES DE INTERPOLACIÓN El predictor unidireccional 171 tiene un total de 17 modos de predicción direccional en un bloque de extrapolación con respecto a la predicción de bloques de interpolación y predicción de extrapolación inversa que se refiere a pixeles de referencia en un macrobloque codificado como se muestra en la Fig. 16. Los 17 modos excepto por el modo 2 tienen las direcciones de predicción cambiadas a intervalos de 22.5°. La Fig. 17 muestra nombres de modos de predicción 00 a 16 de predicción unidireccional llevada a cabo en la
predicción de bloques de interpolación en el predictor unidireccional 171. Los índices de modo 00 a 16 que expresa modos 0 a 16, se agregan a los nombres, respectivamente. En la Fig. 17, a un modo de predicción de predicción de bloques de extrapolación (predicción de bloques de trama de predicción) mostrada en la Fig. 10, se agregó un modo de predicción inverso. Más específicamente, los modos de predicción vertical, predicción horizontal, predicción de DC, predicción de diagonal-descendente-izquierda, predicción diagonal-descendente-derecha, predicción vertical-derecha, predicción horizontal-inferior, predicción vertical-izquierda y predicción horizontal-superior son comunes en las Figs. 10 a 17. En la Fig. 17, además de los modos mostrados en la Fig. 10, se agregan la predicción vertical inversa (modo 9), predicción horizontal inversa (modo 10) , predicción diagonal-superior-derecha (modo 11), predicción diagonal-superior-izquierda (modo 12) , predicción inversa-vertical-izquierda (modo 13), predicción inversa-horizontal-superior (modo 14), predicción inversa-vertical-derecha (modo 15) , y predicción inversa-horizontal-descendente (modo 16) . Se determina si un modo de predicción puede seleccionarse dependiendo de una relación posicional de un Blume de interpolación y pixeles de referencia y la presencia/ausencia de pixeles de referencia. Por ejemplo, en
el bloque de interpolación (1), los pixeles de referencia se disponen en todas la direcciones, es decir, izquierda, derecha, superior e inferior. Por esta razón, como se muestra en la Fig. 18A, se pueden seleccionar todos los modos de 0 a 16. En el bloque de interpolación (2), dado que ningún pixel de referencia se dispone en la derecha, no se pueden seleccionar el modo 10, modo 14, y modo 16 como se muestra en la Fig. 18B. En el bloque de interpolación (3), dado que ningún pixel de referencia se dispone en el lado inferior, no se pude seleccionar el modo 9, modo 13 y modo 15 como se muestra en la Fig. 18C. Un método de generación de señal de predicción del predictor unidireccional 171 en la predicción del bloque de interpolación será descrito más adelante. En el predictor unidireccional 171, cuando se selecciona la predicción de DC en el modo 2, se calcula que un valor de pixel promedio de los pixeles de referencia superior, inferior, izquierdo y derecho más cercanos genera una señal de predicción. Más específicamente, con respecto al bloque de interpolación (1), las señales de predicción se calculan de acuerdo con la siguiente ecuación:
Ecuación 14 a~p = ave (A, B, C, D, RA, RB, RC, RD, Q, R, S, T, RE, RF, RG, RH) (14)
Con respecto al bloque de interpolación (2) , una señal de predicción se calcula de acuerdo con la siguiente ecuación:
Ecuación 15 a~p = ave (Q, R, S, T, E, F, G, H RA, RB, RC, RD) (15) Con respecto al bloque de interpolación (3), se calcula una señal de predicción de acuerdo con la siguiente ecuación: Ecuación 16 a~p = ave (A, B, C, D, U, V, W, X, RE, RF, RG, RH) (16) En las Ecuaciones (14), (15), y (16), ave ( · ) denota un valor de pixeles promedio de los pixeles de referencia parentéticos . Cuando no se pueden usar algunos de los pixeles de referencia parentéticos, un valor de pixel promedio únicamente de los pixeles de referencia utilizables se calcula que genera señales de predicción. Cuando se selecciona un modo diferente al modo 2, el predictor unidireccional 171 utiliza un método de predicción que copia pixeles de referencia a los pixeles de predicción a las direcciones de predicción mostrados en la Fig. 16. Descripción de cálculo de pixeles de predicción en
el modo 0 al modo 8 será omitido debido a que la predicción se lleva a cabo en los mismos ángulos de predicción que aquellos en el bloque de extrapolación. Con respecto a los modos 9 a 16, los bloques codificados dispuestos en un macrobloque se denominan como un orden de pixeles o un orden de predicción del segundo bloque extrapolado codificado (4) . Más específicamente, cuando se selecciona el modo 9 (predicción inversa-vertical) , se genera una señal de predicción de un pixel de referencia más cercano en el lado inferior. Con respecto al bloque de interpolación (1) y el bloque de interpolación (2), las señales de predicción se calculan de acuerdo con las siguientes ecuaciones : Ecuación 17 Ecuación 5 a, e, i, m = RA b, f, j, n = RB c, g, k, o = RC d, h, 1, p = RD (17) Las Figs. 19A y 19B muestran método para generar señales de predicción al bloque de interpolación (1) y el bloque de interpolación (2) en el modo 9. Los pixeles de referencia RA a RD se copian directamente a los pixeles de predicción dispuestos en una dirección vertical para generar una señal de predicción. Con respecto al bloque de
interpolación (3) , el modo 9 no puede usarse debido a que un píxel de referencia no está presente en el lado inferior. Cuando se selecciona el modo 10 (predicción inversa-horizontal) , se genera una señal de predicción de un píxel de referencia más cercano en el lado derecho. Con respecto al bloque de interpolación (1) y el bloque de interpolación (3) , se calculan las señales de predicción de acuerdo con las siguientes ecuaciones:
Ecuación 18 a, e, i, m = RE b, f, j, n = RF c, g, k, o = RG d, h, 1, p = RH (18) Las Figs. 20A y 20B muestran métodos para generar señales de predicción al bloque de interpolación (1) y el bloque de interpolación (3) en el modo 10. Los pixeles de referencia RE a RH se copian directamente a los pixeles de predicción dispuestos en una dirección horizontal para generar una señal de predicción. Con respecto al bloque de interpolación (2), el modo 10 no puede usarse debido a que un píxel de referencia no está presente en el lado derecho. Además, cuando se selecciona el modo 12 (predicción diagonal-superior-izquierda) una señal de predicción se
calcula al bloque de interpolación (1) de acuerdo con las siguientes ecuaciones:
Ecuación 19 d = (RE + (RF « 1) + RG + 2) » 2 c, h = (RF + (RG « 1) + RH + 2) » 2 b, g, 1 = (RG + (RH « 1) + RI + 2) » 2 a, f, k, p = (RH + (RI « 1) + RD + 2) » 2 e, j, o = (RI + (RD « 1) + RC + 2) » 2 i, n = (RD + (RC « 1) + RB + 2) » 2 m = (RC + (RB « 1) + RA + 2) » 2 (19) Con respecto al bloque de interpolación (2) , se calcula una señal de predicción de acuerdo con la siguiente ecuación: Ecuación 20 d, c, h, b, g, 1, a, f, k, p = RD e, j, O = (RC + RD « 1) + RD + 2) » 2 i, n = (RB + (RC « 1) + RD + 2) » 2 m = (RA + (RB « 1) + RC + 2 » 2 (20) Con respecto al bloque de interpolación (3), se calcula una señal de predicción de acuerdo con la siguiente ecuación: Ecuación 21 d = (RE + (RF « 1) + RG + 2) » 2 c, h = (RF + (RG « 1) + RH + 2) » 2
b, g, 1 = (RG + (RH « 1) + RH + 2) » 2 a, f, k, p, e, j, o, m = RH (21) Las Figuras 21A, 21B y 21C muestran métodos de generación de señales de predicción al bloque de interpolación (1), el bloque de interpolación (2), y el bloque de interpolación (3), respectivamente en el modo 12. Un valor generado por un filtro de 3 llaves se copia en untado superior-izquierdo a 45° para generar una señal de predicción . Con respecto a los modos de predicción (modos 12 a 16) excepto por los modos 2, 9, y 11, a las direcciones de predicción mostradas en las Figs. 18A, 18B, 18C y 18D, se utiliza un método de predicción que copia la señal de predicción interpolada de un pixel más cercano al que se puede hacer referencia. Cuando ningún pixel de referencia se dispone en la dirección de predicción, el valor del pixel de referencia más cercano puede copiarse pare generar un pixel de referencia. Alternativamente, los pixeles de referencia virtuales pueden generarse de la interpolación de una pluralidad de pixeles de referencia y los pixeles de referencia virtual pueden usarse en la predicción.
PROCESO DE UNIDAD DE PREDICCIÓN BIDIRECCIONAL 172 EN LA PREDICCIÓN DE BLOQUES DE INTERPOLACIÓN El predictor bidireccional 172 utiliza simultáneamente dos modos de los modos de predicción 17 (también incluyendo predicción de DC) de la predicción de bloques de interpolación llevada a cabo por el predictor unidireccional 171 en la predicción de bloques de interpolación para llevar a cabo la predicción que contiene una pluraldiad de direcciones. Un método de generación de señales de predicción concreto es el mismo que el dado por la Ecuación (10) . Más específicamente, un valor obtenido por promedio, en la unidad de pixeles, las señales de predicción obtenidas en los dos modos seleccionados (modos "U" y "V" en la Ecuación (10)) se usa como una señal de predicción de los pixeles de predicción. La Fig. 22 muestra un índice de modo que corresponde a un nombre de un modo de predicción llevado a cabo en la predicción de bloques de predicción en el predictor bidireccional 172. En la Fig. 22, hay un modo de predicción usando dos modos. Por ejemplo, un nombre y un índice de modo de un modo de predicción cuando la predicción vertical (modo 0) y la predicción horizontal inversa (modo 10) se expresan como "predicción vertical/horizontal inversa" y "modo 0010", respectivamente. Cuando un número de cada modo de predicción es una sola cifra, 0 se agrega a la cabeza del
número para expresar el número como un número de dos cifras. El modo 0 y el modo 00 tienen el mismo significado. De esta forma, en la predicción bidireccional de un bloque de interpolación, no solo la predicción de interpolación sencilla en la cual las direcciones del modo de predicción son opuestas entre ellas, sino que también se puede llevar a cabo la predicción de interpolación que confronta un ligero cambio en la dirección del bloque o complejidad de la dirección. Por lo tanto, las señales residuales de predicción pueden reducirse ventajosamente.
Procedimiento de Codificación de Imagen Un procedimiento del codificador de imagen 100 se describirá más adelante con referencia a la Fig. 23. Cuando se introduce una señal de imagen de entrada 120 de un marco al codificador de imagen 100 (paso S101), un marco que será codificado de la señal de imagen de entrada 120 se divide en una pluralidad de bloques de pixeles (macrobloques ) por el divisor de marco 101 para generar la señal de imágenes de bloques 121. La codificación de la señal de imágenes de bloques 121 se inicia (paso S102) . La señal de imágenes de bloques 121 se introduce al predictor 102. En el predictor 102, se determina sobre la base de la información de intercambio de orden de predicción 143 si se cambia una orden de predicción de sub-bloques (paso S103) .
Cuando el orden de predicción no cambia (NO en el paso S103) , el block_order-flag es FALSE y el cambio de orden de predicción 170 selecciona la "predicción de bloques de trama" que predice y codifica sub-bloques de acuerdo con un orden expresado por la Ecuación 83) . En la predicción de bloques de trama, se determina por la información de intercambio del número de modos de predicción 144 si se lleva a cabo una predicción unidireccional opera los sub-bloques (paso S104). En este caso, cuando se lleva a cabo la predicción unidireccional (SI en el paso S104), el predictor unidireccional 171 lleva a cabo la predicción (paso S106) . Cuando no se lleva a cabo la predicción unidireccional (NO en el paso S104), el predictor bidireccional 172 lleva a cabo la predicción (paso S107) . Por otro lado, cuando el orden de predicción cambia
(Si en el paso S103) , block_order_flag es TRUE, y el cambio de orden de predicción 170 selecciona "predicción de bloque de extrapolación/interpolación" que predice y codifica sub-bloques de acuerdo con el orden expresado por la Ecuación (3). En la predicción del bloque de extrapolación/interpolación, se determina por la información de intercambio del número de modo de predicción 144 si la predicción bidireccional se lleva acabo en los sub-bloques (paso S105) . En este caso, cuando se lleva a cabo la
predicción unidireccional (SI en el paso S105) , el predictor unidireccional 171 lleva a cabo la predicción (paso S108) . Cuando no se lleva a cabo la predicción unidireccional (NO en el paso S105) , el predictor bidireccional 172 lleva a cabo la predicción (paso S109) . Al terminar la predicción en el paso S106, S107, S108, o S109, un costo total (1), (2), (3), o (4) en un macrobloque se calcula de la Ecuación 83) y la Ecuación (4) (paso Slll, S112, S113, o S114) . Los costos totales calculados en los pasos Slll, S112, S113, y S114, se comparan entre ellos para determinar un método de predicción (paso
5115) . Usando el método de predicción determinado como se describió antes, la unidad de transformación/cuantificación ortogonal 104 y el codificador de entropía 108 lleva a cabo la codificación para dar los datos codificados 146 (paso
5116) . En este tiempo, la cuantificación inversa y la transformación ortogonal inversa se llevan a cabo para la cuantificación de información del coeficiente de transformación 127 por la unidad de cuantificación inversa/transformación ortogonal inversa 105 para generar la señal de error residual de predicción decodificada 128. La señal de error residual de predicción decodificada 128 y la señal de predicción 126 introducido del selector de modo 103 se agregan unos con otro por el adicionador 106 para generar
la señal de decodificación local 129. La señal de decodificación local 129 se acumula en la memora de imágenes de regencia 107. Se determina si la codificación predictiva de un marco de la señal de imagen de entrada 120 finaliza (paso S117) . Cuando la codificación predictiva finaliza (SI en el paso S117), la señal de imagen de entrada 120 del siguiente marco se introduce para llevara cabo de nuevo la codificación predictiva. Por otro lado, la codificación predictiva de un marco no finaliza (NO en el paso S117), la operación regresa al paso S102 para llevar a cabo la codificación predictiva a la señal de imagen de bloques 121 del siguiente macrobloque. Un procedimiento de los proceso de predicción en los pasos S104 y S105 en la Fig. 23 serán descritos más adelante con referencia a la Fig. 24. Cuando la señal de imágenes de bloques 121 se introduce al predictor 102, un sub-bloque expresado por blk = 0 se establece en el generador de señal de predicción 113 (paso S201) . Además, un modo de predicción y un costo de codificación en el selector del modo 103 y el selector de modo interno 114 se inician (paso S202) . Por ejemplo, el modo de predicción : index se ajusta a 0, y un costo de codificación minimo :min_cost se ajusta para ser infinito. El generador de la señal de predicción 113 genera la señal de predicción 122 por un modo que puede
seleccionarse al sub-bloque expresado por blk = 0 (paso S203) . Una diferencia entre la señal de imagen de bloques 121 y la señal de predicción 122 se calcula que genera la señal de error residual de predicción 123, y un costo de codificación se calcula de acuerdo con la Ecuación (1) o la Ecuación 82) (paso S204). El selector de modo 103 determina si el costo de codificación calculado es menor que el costo de codificación mínimo :min:cost (paso S205) . Cuando el costo de codificación es menor que el costo de codificación mínimo (SI en el paso S205), el costo de codificación mínimo se actualiza con el costo de codificación calculado, y la información del modo de predicción obtenido en este tiempo se mantiene como un índice de best_mode que representa la información de modo de predicción óptimo (paso S206) . Cuando el costo calculado es mayor al costo de codificación mínimo :min:cost (NO en el paso S205) , se incrementa el índice del modo : índex, y se determina si el índice incrementado es mayor al último número (MAX) del modo (paso S207) . Cuando el índice es mayor a MAS (SI en el paso S207), la información del modo de predicción óptima 125 y la señal de error residual de predicción 126 se dan del selector de modo 103 a la unidad de transíormación/cuantificación ortogonal 104 para llevar a cabo la transformación y cuantificación ortogonal. La información de coeficiente de
transformación de cuantificación 127 obtenida por la unidad de transíormación/cuantificación ortogonal 104 se codifica por entropía por el codificador de energía 108 junto con la información del índice del modo de predicción 141 (paso S208) . Por otro lado, cuando el índice es menor a MAS (NO en el paso S207), la operación regresa la paso S203 para generar la señal de predicción 122 de un modo de predicción indicado por el siguiente índice. Cuando se lleva a cabo la codificación en best_mode, la información de coeficiente de transformación de cuantificación 163 obtenida por la unidad de transíormación/cuantificación ortogonal interna 115 se da a la unidad de cuantificación inversa/transformación ortogonal inversa interna 116 para llevar a cabo la cuantificación inversa y transformación inversa. La señal de error residual de predicción decodificada 164 generada por la unidad de cuantificación inversa/transformación ortogonal inversa interna 116 se agrega a la señal de predicción 162 de la entrada de best_mode del selector de modo interno 114 por el adicionador interno 117. La señal de decodificación interna 165 generada por el adicionador interno 117 se almacena en la memoria de imagen de referencia interna 118 (paso S208) . El número de codificación de bloques :blk se incrementa, se determina si el valor de blk incrementado es más grande que un número total de pequeños bloques: BLK_MAX
(16 en predicción de 4 x 4 pixeles, y 4 en predicción de 8 x 8 pixeles) en un macrobloque (paso S209) . Cuando el valor de blk incrementado es mayor a BLKJAX (SI en el paso S209) , termina el proceso de predicción en el macrobloque. Por otro lado, usando blk incrementado es menor que BLK_MAX (NO en el paso S209) , la operación regresa al paso S202 para lleva a cabo un proceso de predicción de un bloque pequeño indicado por el siguiente blk. Como se describió antes, de acuerdo con la modalidad, el intercambio de órdenes de predicción e intercambio de predicción unidireccional y predicción bidireccional (intercambio de números de modo de predicción) se llevan a cabo adaptablemente dependiendo de las propiedades (dirección, complejidad y textura) de cada región de una imagen. Por lo tanto, se mejora la eficiencia de predicción, y consecuentemente se mejora la eficiencia de codificación. En el aparato de codificación de imagen de acuerdo con una modalidad de la presente invención, pueden estar disponibles varias modificaciones. (a) En la modalidad, se describe la predicción de intra-marco relacionado con la predicción de 4 x 4 pixeles. Sin embargo, también se puede llevar a cabo la misma predicción intra-marco en predicción de 8 x 8 pixeles o
predicción de 16 x 16 pixeles o para una señal de diferencia de color. (b) El número de modos de predicción puede reducirse para suprimir un costo de operación aritmético. Los intervalos de las direcciones de predicción no se limitan a 22.5°, y el intervalo angular puede hacerse menor o puede ser más grande. (c) en la modalidad, los modos de predicción excepto por el modo 2 de la predicción interna-marco usa una predicción direccional. Sin embargo, no solo la predicción direccional, sino también la predicción de interpolación tal como predicción plana, la interpolación bi-linear, interpolación de convolución cúbica, o cerca de la interpolación cercana puede establecerse como un modo de predicción . (d) En la modalidad, un valor de pixel promedio en dos modos preparado para un modo de predicción bidireccional seleccionado de una pluralidad de modos de predicción se establece como un valor de predicción. En lugar de calcular el valor de pixeles promedio, un valor de predicción puede calcularse por un promedio de peso usando un factor de sopeso tal como 1:3 o 1:4. En este caso, se puede crear una tabla con los factores de peso de los modos de predicción. Alternativamente, un pixel de predicción puede calcularse usando un filtro de valor máximo, un filtro de
valor mínimo, infiltro medio, y una tabla de peso habiendo descrito en la presente los factores de peso dependiendo de un ángulo de predicción direccional o el número de modos de predicción usados. Se pueden seleccionar tres o más modos de predicción de la pluralidad de modos de predicción para generar un valor de predicción. Con respecto al número de modos seleccionados de la pluralidad de modos de predicción y la tabla de peso, se pueden tener una pluralidad de candidatos en unidades de secuencias, imágenes, diapositivas, macrobloques o pixeles e intercambiarse en estas unidades. (d) En la modalidad, se intercambia si los órdenes de predicción de sub-bloques cambian en unidades de macrobloques de 16 x 16 pixeles, 64 x 64 pixeles, o 64 x 32 pixeles o marcos. (e) la modalidad describe un caso en el cual los sub-bloques en un macrobloque se predicen secuencialmente de un bloque izquierdo superior a un bloque derecho inferior. Sine embargo, el orden de predicción no se elimina a este orden. Por ejemplo, la predicción puede llevarse a cabo secuencialmente de un bloque derecho inferior a un bloque izquierdo superior o puede llevarse a cabo espiralmente del centro del marco. La predicción puede llevarse a cabo secuencialmente del bloque derecho superior al bloque izquierdo inferior o llevarse a cabo secuencialmente de una parte periférica del marco a la parte central.
(f) En la modalidad, solo se describe una predicción intra-marco como un modo de predicción. Sin embargo, se puede usar la predicción del inter-marco que lleva a cabo la predicción usando la correlaciona entre marcos. Cuando por lo menos se selecciona un modo de predicción de una pluralidad de candidatos del modo de predicción, se puede seleccionar cualquiera de un modo de predicción por predicción intra-marco y un modo de predicción por la predicción inter-marco, o se pueden seleccionar ambos modos de predicción. Cuando el modo de predicción por la predicción intra-marco y el modo de predicción por la predicción inter-marco, se lleva a cabo la predicción tridimensional que usa una correlación espacial y una correlación Tempoal entre los pixeles de referencia y los pixeles de predicción. (g) La predicción intra-marco utilizada en la modalidad se puede llevar a cabo en una diapositiva de codificación inter-marco. En este caso, el intercambio entre la predicción intra-marco y la predicción inter-marco no necesita llevarse a cabo en unidades de macrobloques . El intercambio puede llevar a cabo en unidades de bloques de 8 x 8 pixeles o bloques de 8 x 4 pixeles. Se pude llevar a cabo el mismo proceso a una región de pixeles que tienen una forma arbitraria y generado por un método de división de regiones.
(h) en la modalidad, se intercambia por un costo de codificación calculado de las Ecuaciones (1) y (2) si os órdenes de predicción cambian y si se lleva a cabo la predicción unidireccional o predicción bidireccional . Como el costo de codificación, no solo el costo de codificación calculado por las Ecuaciones (1) y (2) pero también la información de actividad tal como una varianza, una desviación normal, se puede usar una distribución de frecuencia, o un coeficiente de correlación calculado por un bloque blanco o un bloque adyacente. Sobre la base de la información de actividad, se puede llevar a cabo el intercambio de cambios en el orden de predicción o intercambio entre la predicción unidireccional y la predicción bidireccional. Por ejemplo, un coeficiente de correlación entre un píxel de referencia izquierdo y un pixel de referencia superior se calcula para los píxeles predeterminados. Cuando el coeficiente de correlación es mayor que, por ejemplo, cierto valor de umbral, se determina que la correlación entre el pixel de predicción y los pixeles de referencia izquierdo y superior es alto no cambia el orden de predicción. Por ejemplo, se calcula una varianza en un bloque blanco. Cuando la varianza es mayor que, por ejemplo, cierto valor de umbral, se determina que una textura en un bloque es compleja, y se lleva a cabo la predicción bidireccional. Por
otro lado, cuando la varianza es menor que, por ejemplo, el valor de umbral, se determina que la textura en el bloque es monótona, y se lleva a cabo la predicción unidireccional. (j) En la unidad de transíormación/cuantificación ortogonal 104 y la unidad de cuantificación inversa/transformación ortogonal inversa 105 mostrada en la Fig. 3, no necesita llevarse a cabo un proceso para todas las señales de error residual de predicción. Por ejemplo, algunas señales de error residual de predicción pueden codificarse por el codificador de entropía 108. Alternativamente, se pueden omitir los procesos de cuantificación y cuantificación inversa, y se pueden omitir los procesos de transfomación ortogonal y transformación ortogonal inversa.
PRIMER EJEMPLO DE ESTRUCTURA DE SINTAXIS Una descripción de una estructura de sintaxis usada en el codificador de imágenes 100 será descrita más adelante con referencia a la Fig. 25. Una sintaxis se constituye por tres partes, es decir, una sintaxis de alto nivel 201, una sintaxis de nivel de diapositiva 204, y una sintaxis de nivel de macrobloques 207. En la sintaxis de alto nivel 201, se llena la información de sintaxis de una capa superior que es superior a una diapositiva. En la sintaxis de nivel de diapositiva 204, la información necesaria se escribe claramente en
unidades de diapositivas. En la sintaxis a nivel de macrobloques 207, se escribe claramente un valor de cambio de un parámetro de cuantificación, información de modo y similares requerido para cada macrobloque. Las tres partes se constituyen finamente por una pluralidad de sintaxis. Más específicamente, la sintaxis de alto nivel 201 incluye sintaxis de unible de secuencia y un nivel de imágenes, es decir, una sintaxis de conjunto de parámetros de secuencia 202 y una sintaxis de conjunto de parámetro de imágenes 203. La sintaxis de nivel de diapositivas 204 incluye un asintáis de encabezado de diapositivas 205 y una sintaxis de datos de diapositivas 206. La sintaxis de nivel de macrobloques 207 incluye una sintaxis de capas de macrobloques 208 y una sintaxis de predicción de macrobloques 209. En la modalidad, la información de sintaxis especialmente requerida se constituye por la sintaxis de la capa de macrobloques 208 y la sintaxis de predicción de macrobloques 209. La sintaxis de la capa de macrobloques 208 y la sintaxis de predicción de macrobloques 209 será descrita más adelante en detalle con referencia a las Figs. 26 y 27. Una marca de block_order_flag indicada en la sintaxis de capa de macrobloque en la Fig. 26 denota así el intercambio de los órdenes de predicción se llevan a cabo por un macrobloque. Más específicamente, FALSE de la maraca:
:block_order_flag denota que in intercambio de los órdenes de predicción no se llevan a cabo por el macrobloque, mientras que TRUE denota que el intercambio de los órdenes de predicción se lleva a cabo por el macrobloque. En la sintaxis de predicción de macrobloques en la
Fig. 27, la información del modo de predicción de cada sub-bloque (bloques de 4 x 4 pixeles o bloques de 8 x 8 pixeles) en un macrobloque se describe claramente. Con respecto a la predicción unidireccional, la información del modo de predicción que indica un modo usado en una pluralidad de modos de predicción se expresan por intra4x4 (8x8)_pred_mode_10_org o intra4x4 (8x8 ) _pred_mode_ll_org . Con respecto a la predicción bidireccional, la información del modo de predicción incluye dos sintaxis. En este caso, un modo de predicción que tiene un índice de modo más pequeño (lista 0) cuando los modos de predicción de dos tipos se seleccionan de la pluralidad de modos de predicción se expresan por intra4x4 (8x8 ) _pred_mode_10_org, y un modo de predicción que tiene un índice de modo más grande (lista 1) se expresa por intra4x4 (8x8)_pred_mode_ll_org. El modo de predicción que tiene el índice de modo más grande (lista 0) pude expresarse por intra4x4 ( 8x8 ) _pred_mode_10_org, y el modo de predicción que tiene el índice de modo más pequeño (lista 1) puede expresarse por intra4x4 (8x8)_pred_mode_ll_org.
Una configuración de una sintaxis de predicción de macrobloques obtenida cuando se selecciona una predicción de 4 pixeles se describirá más adelante con referencia a la Fig. 27. En la Fig. 27, blkCon [block_order_flag] [ luma4x4BlkIdx] tiene una tabla de transformación que lleva a cabo la transformación de un orden de predicción como se muestra en la Fig. 8 y da un índice de un bloque que será codificado. En la Fig. 27, intra4x4_prd_mode_10 [block_order_flag] [order] son datos de un índice obtenido por transformación de intra4x4_pred_mode_10_org [block_order_flag] [order] de acuerdo con modeConv [block_order_flag] [intra4x4_pred_mode_ll_org] . Los datos intra4x4_pred_mode_ll se codifican cuando intra4x4_bi_pred_flag es TRUE. Los detalles de la sintaxis será descrita más adelante . La transformación se lleva a cabo para luma4x4Blk de acuerdo con una tabla mostrada en blkConv [block_order_flag] [luma4x4BlkIdx] cada block_order_flag para calcular un índice de bloque : order que indica un sub-bloque que será codificado (Fig. 8) . Cuando se describan los bloques de 4 x 4 pixeles indicados por un índice : order, como se muestra en la Fig.
28, intra4x4_pred_mode_10 : org [block_order_flag] [order] se transforma en intra4x4_pred_mode_10 [order] . Este es un proceso que se leva a cabo debido a que los modos de predicción útiles cambian dependiendo de block_order_flag y las posiciones de los bloques de 4 x 4 pixeles en el macrobloque. Más específicamente, como se muestra en la Fig.
29, cuando block_order_flag es 0 (FALSE), intra4x4_pred_mode_10_org se asigna directamente a intra4x4_pred_mode_10_org se asigna directamente a intra4x4_pred_mode : 10. En este tiempo, intra4x4_pred_mode_10 son datos que representan un modo de predicción especifico usado en la predicción de los bloques de 4 x 4 pixeles en los modos de predicción de nueve tipos de la predicción unidireccional . Por otro lado, cuando block_order_flag es 1 (TRUE: predicción de bloques de extrapolación/interpolación) , las tablas se intercambiad dependiendo de las posiciones de los bloques de 4 4 pixeles en un macrobloque que será codificado. La Fig. 30 muestra modos de predicción que pueden usarse correspondiendo a los sub-bloques (bloques de interpolación (1), (2), y (3), y bloque de extrapolación (4)) mostrado en la Fig. 13B y nombres de los modos de predicción cuando se puede hacer referencia a los macrobloques izquierdo,' superior, derecho-superior, e izquierdo-superior adyacente al macrobloque que será codificado.
Como es evidente de la Fig. 30, el bloque de interpolación (1) puede usar todos los modos 17, y los bloques de interpolación (2) y (3) no pueden usar algunos de los modos. Por esta razón, como se muestra en la Fig. 28, intra4x4_pred_mode_10_org [bloqck_order_flag] [order] se transforma en intra34x4_pred_mode_10 por el modo Conv[] [] para remover un modo de predicción no utilizable por adelantado, de la manera que se mejora la eficiencia de codificación por entropía (descrito después) . Como un ejemplo de transformación concreto, cuando un modo de predicción del bloque de interpolación (2) es el modo 15 (predicción derecha vertical inversa), "13" se asigna a intra4x4_pred_mode_10. Cuando un modo de predicci'ón del bloque de interpolación 83) es el modo 14 (predicción superior horizontal inversa) , "12" se asigna a intra4x4_pred_mode_10. Cuando se va a codificar intra4x4_pred_mode_10, dado que los números de estados de modos útiles cambian dependiendo de block; order; flag y posiciones de bloques, la codificación por entropía (codificación Huffman, codificación Golomb, o codificación aritmética) se lleva a cabo dependiendo de posiciones de los bloques de 4 x 4 pixeles que serán codificados. El número de estados que pueden tomarse por símbolos concretos se muestra en la Fig. 30. Lo anterior es la descripción de la sintaxis relacionada con la codificación de intra4x4_pred_mode_10_org.
Cuando intra4x4_bi_pred_flag es TRUE, se codifica además intra4x4_pred_mode_ll_org. Con respecto a la codificación de intra4x4_pred_mode_ll_org, se lleva a cabo un proceso que casi es igual que en el caso de intra4x4_pred_mode_10_org. Primero, intra4x4_pred_mode_ll_org se transforma en intra4x4_pred_mode_ll de acuerdo con el modo Conv[] [] para codificar por entropía intra4x4_pred_mode_ll por un código de longitud variable dependiendo de bock_order_flag y orden. Dado que intra4x4_pred_mode_ll e intra4x4_pred_mode_10 no puede tener el mismo modo de predicción, el número obtenido substrayendo 1 del número de estados de intra4x4_pred_mode_10 es el número de estado de símbolos que pueden tomarse por intra4x4_pred_mode_ll . Sobre la base del número de estados, se lleva a cabo codificación por entropía. Como otro ejemplo, intra4x4 ( 8x8 ) _pred_mode_10_org e intra4x4 ( 8x8 ) _pred_mode_ll_og puede codificarse por entropía sin transformarse usando el modo Conv[][], Lo anterior son detalles de la sintaxis. En este caso, block_order_flag e intra_4x4_bi_pred_flag pueden codificarse, multiplexarse en corrientes de codificación y luego transmitirse. Por otro lado, sin llevar a cabo la multiplexión y transmisión, se . puede expresar la información de block_order_flag e intra4x4_bi_pred_flag por la información de actividad
calculada de los bloques codificados y pixeles. En este caso, también sobre el lado de decodificación, usando la misma lógica que en el lado de codificación, como la información de block_order_flag e intra4x4_bi_pred_flag, se muestra la misma información que la del lado de codificación. En la predicción de 8 x 8 pixeles, como se muestra en la Fig. 27, se usa la misma sintaxis que en la predicción de 4 x 4 pixeles. Por esta razón, se omitirá la descripción de la predicción de 8 x 8 pixeles. Como otro ejemplo, intra4x4_pred_mode_10_org puede codificarse usando una correlación con intra4x4_pred_mode_10_org en un bloque adyacente. Una configuración de sintaxis concreta se muestra en la Fig. 31. La configuración de la sintaxis de predicción de macrobloques mostrada en la Fig. 27 se reemplaza con la configuración mostrada en la Fig. 31. En la Fig. 31, prev_intra4x4_pred_mode_10_flag [block_order_flag] [order] es una marca que representa si un modo de predicción ref_pred_mode_org de la lista 0 calculada de un bloque de referencia (descrito más adelante) es igual a un modo de predicción intra4x4_pred_mode_10_org [block_order_flag] [order] de la lista 0 del bloque. La Fig. 32 muestra un método para derivar pref_intra4x4_pred_mode_10_flag [block_order_flag] [order] . En este caso, ref_blkA_mode : 10 en la Fig. 32 denota un modo de
predicción de la lista O de un bloque codificado más cercano blkA localizado en la izquierda del bloque blkA, y ref_blkB_mode_10 denota un modo de predicción de la lista 0 de un bloque codificado más cercano localizado en el lado superior del bloque blkB. Las posiciones de ref_blkA_mode_10 y ref_blkB_mode_10 cambian dependiendo de block_order_flag . Más específicamente, las posiciones se muestran en las Figs. 33, 44A, 44B, 44C, y 44D. Cuando block_order_flag es FALSE, blkA y blkB son bloques codificados izquierdo y superior adyacentes al bloque (Fig. 33) . Por otro lado, cuando la marca es TRUE, los bloques blkA y blkB son bloques codificados izquierdo y superior más cerca del bloque blkA y blkB (Figs. 44A, 44B, 44C y 44D) . Cuando prev_intra4x4_pred_mode_10_flag [block_order_flag] [Order] es TRUE, la información de intra4x4_pred_mode_10_org puede expresarse por 1 bit usando una correlación a un bloque adyacente. Por esta razón, se mejora la eficiencia de codificación . Por otro lado, cuando prev_intra4x4_pred_mode :_10_flag [block_order_flag] [order] es FALSE, como un modo de predicción de la lista 0 excepto por prev_intra4x4_pred_mode_10_flag [block_order_flag] [order], se muestra rem_intra4x4_pred_mode_10 [block_order_flag [] order] . Estos son datos que expresan un modo de predicción específico
de los modos de predicción excepto ref_pred_mode_org de rem_intra4x4_pred_mode_10_[block_order_flag] [order] . Los datos son codificados por entropía sobre la base del número de estados excepto ref_pred_mode_org de los símbolos que pueden tomarse en un modo de predicción de la lista 0. En la predicción de 8 x 8 pixeles, como se muestra en la Fig. 31, se lleva a cabo la misma sintaxis que en la predicción de 4 x 4 pixeles. Por esta razón, se omitirá una descripción de la predicción de 8 x 8 pixeles. La estructura de sintaxis como se describió antes se dispone para mejorar la eficiencia de codificación aún en la codificación de un modo de predicción.
SEGUNDO EJEMPLO DE ESTRUCTURA DE SINTAXIS La Fig. 34 muestra otro ejemplo de la estructura de sintaxis usada en el codificador de imágenes 100. La información de sintaxis necesaria es la sintaxis de la capa de macrobloques 208 en la Fig. 25. En este caso, una configuración de una sintaxis de capa de macrobloques mostrada en la Fig. 26 se reemplaza con una configuración mostrada en la Fig. 34. Las sintaxis serán descritas más adelante . Block_order_flag que se muestra en una sintaxis de capa de macrobloques en la Fig. 34 es una marca que representa si se lleva a cabo el intercambio de órdenes de
predicción por el macrobloque . Cuando block_order_flag es TRUE, los órdenes de predicción se intercambian para llevar a cabo la predicción de bloques de extrapolación/interpolación. Por otro lado, cuando block_order_flag es FALSe, se lleva a cabo la predicción de bloques sinintecambiar los órdenes de predicción. Un método concreto para describir un orden de predicción cuando block_order_flag es TRUE se muestra en block:order: inrmb.mode. Block_order_in_mb_mode muestra un orden de predicción de la siguiente manera. Cuando el modo de predicción es el modo 0, se da un orden de la predicción de bloques de extrapolación/interpolación descrita en la primera modalidad. Cuando el modo de predicción es el modo 1, una combinación de órdenes de predicción se conviertan a un índice, y un orden de predicción se expresa por información de índice. Cuando un orden de predicción será determinado para cuatro bloques, una de 23 combinaciones de órdenes de predicción excepto la predicción de bloques de trama de 24 combinaciones (4P4) se determina para cada macrobloque por una permutación. Más específicamente, block_order_idx en la Fig. 34 da el índice de combinación de bloques. Cuando el modo de predicción es el modo 2, un número de orden se muestra directamente en cada bloque. Con respecto a bloques de 4 x 4 pixeles, los números de orden se muestran en 16 block_order_4x [BLK] . Con respecto
a bloques de 8 x 8 pixeles, los números de orden se muestran en 4 block_order8x8 [BLK] . La estructura de sintaxis anterior puede tener las siguiente modificaciones. (a) Cuando block_order_in_mb_mode es 1, solo se puede mostrar un bloque que se codifica primero. (b) Dado que el número de índices de un orden de predicción es enorme en la predicción de 4 x 4 pixeles, el orden de predicción de 4 x 4 pixeles mostrado sen unidades de bloques de 8 x 8 pixeles puede repetirse cuatro veces para reducir la información de los índices. (c) Cuando block_order_in_mb_mode es 2, block_order4x [BLK] puede mostrarse por una tabla externa, o una diferencia entre block_order4x [BLK] y un block_order4x4 [ ] puede expresarse por una longitud de código variable . (d) Dado que el último block_order4x4 [15] es un orden de predicción restante, block_order4x4 [ 15] no necesita mostrarse. El mismo se aplica a los bloques de 8 x 8 pixeles. En la predicción de 4 x 4 pixeles, se puede repetir un orden de predicción de los bloques de 4 x 4 pixeles mostrados en unidades de bloques de 8 x 8 pixeles cuatro veces para reducir la información de block_order4x4. (e) Valores de información tal como block order in mb mode, block order idx, block order4x4, y
block_order8x8 puede ajustarse adaptablemente en unidades de secuencias, imágenes, diapositiva so macrobloques .
TERCER EJEMPLO DE ESTRUCTURA DE SINTAXIS Las Figs. 35, 36, 37, 38 y 39 muestran aún otro ejemplo de la estructura de sintaxis usada en el codificador de imágenes 100. La información de sintaxis requerida en este ejemplo incluye una sintaxis de conjuntos de parámetros de secuencia 702, una sintaxis de conjuntos de parámetros de imágenes 703, una sintaxis de encabezado de diapositivas 705, y una sintaxis de capas de macrobloques 708 en la Fig. 25. Las sintaxis mostradas en las Figs. 35, 36, 37, 38 y 39 se agregan a la estructura de sintaxis del primer ejemplo. La sintaxis será descrita más adelante. Block_order_in_seq_flag mostrado en la sintaxis de conjuntos de parámetros de secuencia en la Fig. 35 es una marca que representa si es posible el intercambio de órdenes de predicción en una secuencia. Cuando block_order_in_seq_flag es TRUE, los órdenes de predicción pueden intercambiarse en la secuencia. Por otro lado, cuando block_order_in_seq_flag es FALSE, los órdenes de predicción no pueden intercambiarse en la secuencia. Block_order_in_optic_flag mostrado en la sintaxis de conjuntos de parámetros de imágenes en la Fig. 36 es una marca que representa si el intercambio de los órdenes de
predicción son posibles en la imagen. Cuando block_order_in_pic_flag es TRUE, los órdenes de predicción pueden intercambiarse en la imagen. Por otro lado, cuando block_order_in_pix_flag es FALSE, los órdenes de predicción no pueden intercambiarse en la imagen. Clock_order_in_slice_flag mostrados en la sintaxis de encabezado de diapositivas en la Fig. 37 es una marca que representa si puede ser posible el intercambio de los órdenes de predicción en la diapositiva. Cuando clock_order_in_slice_flag es TRUe, los órdenes de predicción pueden intercambiarse en la diapositiva. Por otro lado, cuando block_order_in_slice_flag es FALSE, los órdenes de predicción no pueden intercambiarse en la diapositiva. Block_order_flag mostrados en la sintaxis de la capa de macrobloques en la Fig. 38 es una marca que representa si el intercambio de los órdenes de predicción se llevan a cabo en el macrobloque. Cuando block_order_flag es TRUE, los órdenes de predicción se intercambian para llevar a cabo la predicción de bloques de extrapolación/interpolación. Por otro lado, cuando blockrorder: flag es FALSE, los órdenes de predicción no se intercambian para llevar a cabo la predicción de bloques de trama de predicción. Block_order_flag es efectivo cuando block_order_in_slice_flag es TRUE y se pueden usar solo cuando el tipo de predicción del macrobloque es la predicción de intra-marco.
Intra_bi_pred_in_seq_flag mostrado en la sintaxis de conjuntos de parámetros de secuencia en la Fig. 35 es una marca que representa si se puede llevar a cabo la predicción bidireccional en la secuencia. Cuando intra_bi_pred_in_seq_flag es TRUE, se puede llevar a cabo la predicción bidireccional en la secuencia. Por otro lado, cuando intra_bi_pred_in_seq_flag es FALSE, no se puede llevar a cabo la predicción bidireccional en la secuencia. Intra_bi_pred_in_pic_flag mostrado en la sintaxis de conjuntos de parámetros de imágenes en la Fig. 36 es una marca que representa si se puede llevar a cabo la predicción bidireccional en la imagen. Caund itera_bi_pred_in_pic_flag es TRUE, la predicción bidireccional se puede llevar a cabo en la imagen. Por otro lado, cuando intra_bi_pred_in_pic_flag es FALSe, no se puede llevar a cabo la predicción bidireccional en la imagen. Intra_bi_pred_in_slice_flag mostrado en la sintaxis del encabezado de diapositivas en la Fig. 37 es una marca que muestra si se puede llevar a cabo la predicción bidireccional en la diapositiva. Caudno intra_bi_pred_in_slice_flag es TRUE, se puede llevar a cabo la predicción bidireccional en la diapositiva. Por otro lado, cuando intra_bi_pred_in_slice_flag es FALSE, no se puede llevar a cabo la predicción bidireccional en la diapositiva.
Intra_bi_pred_in_mb_flag mostrado en la sintaxis de capa de macrobloques en la Fig. 38 es una marca que representa si se puede llevar a cabo la predicción bidireccional en el macrobloque. Cuando intra_bi_pred_in_mb_flag es TRUE, se puede llevar a cabo la predicción bidireccional en el macrobloque. Por otro lado, cuando intra_bi_pred_in_mb_flag es FALSE, no se puede llevar a cabo la predicción bidireccional en el macrobloque. Intra4x4_bi_pred_flag mostrado en la sintaxis de predicción de macrobloques en la Fig. 39 es una marca que representa si se lleva a cabo la predicción bidireccional en el bloque de predicción. Cuando intra4x4_bi_pred_flag es TRUE, la predicción bidireccional se lleva a cabo en el bloque de predicción. Por otro lado, cuando intra4x4_bi_pred_flag es FALSE, la predicción bidireccional no se lleva a cabo en el macrobloque. Intra4x4_bi_pred_flag es efectivo únicamente cuando intra_bi_prd_in_mb_flag es TRUE y puede usarse solo cuando un tipo de predicción del macrobloque es la predicción del intra-marco. Un valor inicial de la sintaxis se ajusta como FALSE.
APARATO DE DECODIFICACIÓN DE IMAGEN A un aparato de decodificación de imagen de acuerdo con una modalidad de la presente invención mostrada en la Fig. 40, una corriente de bits de codificación 320
transmitidos de un aparato de codificación de imágenes (no mostrados) (por ejemplo, el aparato de codificación de imágenes en la Fig. 1) y se envía a través de un sistema de transmisión o se introduce un sistema de almacenamiento. La corriente de bits de codificación 320 se almacena temporalmente en una memoria de entrada 901, separado por un multiplexor inverso 302 en unidades de marcos sobre la base de unas sintaxis, y luego reintroduce a un decodificador 304. El decodificador 304 tiene un decodificador de entropía 305, una unidad de cuantificación inversa/transformación ortogonal inversa 306, un adicionador 307, una memoria de imagen de referencia 308, y un generador de señal de predicción 309. En el codificador 304, la corriente de bits de codificación separad por el multiplexor inverso 302 se introduce a un decodificador de entropía 303. En el decodificador de entropía 303, de acuerdo con la estructura de sintaxis mostrada en la Fig. 25, las series de codificación son decodificadas por entropía a una sintaxis de alto nivel, una sintaxis de nivel de diapositivas y una sintaxis de nivel de macro-bloques de la corriente de bits de codificación, respectivamente. De esta forma, del decodificador de entropía 303, además de la información de coeficiente de transformación de cuantificación 321 y la información del parámetro de cuantificación, se da la información (la información del
índice de modo de predicción, la información de intercambio de tamaño de bloque, la información de intercambio de orden de predicción y la información de intercambio de número de modo de predicción generalmente se llama de aquí en adelante información de modo de predicción) tal como la información del índice de modo de predicción 331, información de intercambio de tamaño de bloques 332, información de intercambio de orden de predicción 333 e información de intercambio de orden de número de modo de predicción 3334 que se refiere a los modos de predicción. La información del coeficiente de transformación de cuantificación 321 es la información obtenida por la transformación ortogonal y cuantificación de una señal de error residual de predicción. La información de parámetro de cuantificación incluye información tal como una anchura de cuantificación (tamaño de paso de cuantificación) y matriz de cuantificación . La información del coeficiente de transformación de cuantificación 321 se cuantifica inversamente por la unidad de cuantificación inversa/transformación ortogonal inversa 306 de acuerdo con un parámetro de cuantificación decodificado y además se sometió a la transformación ortogonal inversa tal como IDCT. En este caso, se describió la transformación ortogonal inversa. Sin embargo, cuando la transformación de ondulaciones o similares se lleva a cabo en el lado de codificación, la unidad de cuantificación
inversa/transformación ortogonal inversa 306 puede llevarse a cabo correspondiendo a la cuantificación inversa/transformación de ondulación inversa o similares. Una señal de error residual de predicción 322 se da de la unidad de cuantificación inversa/transformación ortogonal inversa 306 y se introduce al adicionador 307. En el adicionador 307, una señal de predicción 323 que se da del generador de señal de predicción 309 y la señal de error residual de predicción 322 se agregan entre ellos para generar una señal de imagen decodificada 324. La señal de imagen decodificada 324 e introduce a la memoria de imagen de referencia 308, dada una memoria de salida 311, y dada la memoria de salida 311 a un tiempo de manejo por un controlador de decodificación 310. Por otro lado, la información del índice del modo de predicción 331, la información de intercambio de tamaño de bloque 332, la información de intercambio de orden de predicción 333, y la información de intercambio de número de modo de predicción 334 decodificada por el decodificador de entropía 305 se introduce al generador de señal de predicción 309. Al generador de señal de predicción 309, además se introduce una señal de imagen de referencia 325 a partir de la memoria de imágenes de referencia. El generador de señal de predicción 309 genera la señal de predicción 323 con referencia a la señal de imágenes de referencia 325 sobre la
base de la información del índice del modo de predicción 331, la información de intercambio de tamaño de bloques 332, la información de intercambio de orden de predicción 333, y la información de intercambio de número de modo de predicción 334. El controlador de decodificación 310 lleva a cabo el control de todo el proceso de decodificación del decodificador 304, ro ejemplo, el control de una memoria introducida 301 y la memoria de salida 311, el control de un tiempo de decodificación, y similares.
UNIDAD DE GENERACIÓN DE SEÑAL DE PREDICCIÓN 309 El generador de señal de predicción 309 será descrito más adelante con referencia a la Fig. 41. El generador de señal de predicción 309 mostrado en la Fig. 41 es básicamente el mismo que el generador de señal de predicción 113 en el aparato de codificación de imagen descrito antes. En la Fig. 41, un intercambiador de orden de predicción 370 intercambia los órdenes de predicción de sub-bloques en un macrobloque a la señal de imágenes de referencia 325 de la memoria de imágenes de referencia 308 sobre la base de la información de intercambio de orden de predicción 333. La señal de imágenes del orden de predicción del cual se intercambia por el intercambio de orden de predicción 370 se introduce a un predictor unidireccional 371 y un predictor bidireccional 372.
El predictor unidireccional 371 selecciona un modo de predicción de una pluralidad de modos de predicción preparados sobre la base de la información del índice del modo de predicción 331 y genera una señal de predicción con referencia a la señal de imágenes de referencia 325 de acuerdo con el modo de predicción seleccionado y la información de intercambio de tamaño de bloque 332. El predictor bidireccional 372 selecciona dos modos de predicción de la pluralidad de modos de predicción preparados sobre la base de la información del índice del modo de predicción 331 y genera una señal de predicción con referencia a la señal de imagen de referencia 325 de acuerdo con los modos de predicción seleccionados y la información de intercambio de tamaño de bloques 332. Las señales de predicción salen del predictor unidireccional 371 y el predictor bidireccional 372 se introduce a un intercambio de número de modo de predicción 373. En este caso, los modos de predicción regulan una forma de referirse a pixeles decodificados cundo se genera una señal de predicción de un sub-bloque. El intercambiador del número de modo de predicción 373 se controla de acuerdo con la información de intercambio del número de modo de predicción 334 para seleccionar cualquier señal de predicción generada por el predictor unidireccional 371 y la señal de predicción generada por el
predictor bidireccional 372 para dar la señal de predicción seleccionada 323. El intercambiador de orden de predicción 370 se controla por la información de intercambio de orden de predicción 333 e intercambia los órdenes de predicción de sub-bloques transformando el índice _blk que sirve como una referencia por un valor de : block: order_flag (descrito después) expresando la información de intercambio de orden de predicción 333. A un orden :idx de sub-bloques, un índice :order (que expresa un orden de predicción) de un sub-bloque en codificación real se expresa en la Ecuación 83) . Una tabla de transformación para transformar blockConv [ ] [ ] es como se muestra en la Fig. 8. Cuando uanmarca : block_order_flag es 0 (FALSE) , un índice :order de un sub-bloque en codificación predictiva real es un índice :idx por sí mismo de un sub-bloque que será codificado, y la predicción de un bloque y un orden de predicción no cambian (tal predicción por el orden de predicción se llama predicción secuencial de aquí en adelante) . Las Figs. 6B y 7B muestran órdenes de predicción contenidos por predicciones secuenciales a las Figs. 6A y 7A, respectivamente . Por otro lado, cuando la marca :block_order_flag es 1 (TRUE) , un índice :order de un sub-bloque en codificación predictiva real muestra un orden de predicción en el cual el
bloque diagonal de cuatro sub-bloques se predice primero por la extrapolación y los tres bloques restantes se predice por predicción de extrapolación o interpolación. La predicción llevada a cabo en el orden de predicción se llama de aquí en adelante predicción por extrapolación/interpolación. Las Figs. 6C y 7C muestran cambios en el orden de predicción por predicciones de extrapolación/interpolación a las Figs. 6A y 7A, respectivamente. Como se describió antes, los sub-bloques de los órdenes de predicción de los cuales se intercambian por el intercambiador de orden de predicción 370 se introducen al predictor unidireccional 371 o el predictor bidireccional 372 para generar señales de predicción que corresponden a sub-bloques. El intercambiador del numero de modo de predicción 373 da una señal de predicción obtenida por el predictor unidireccional 371 cuando la información de intercambio del número de modo de predicción 334 indica un número de modo de predicción "1", y da una señal de predicción obtenida por el predictor bidireccional 372 cuando la información de intercambio de número de modo de predicción 334 indica un número de modo de predicción "2". La señal de predicción que se da del intercambio de número de modo de predicción 373 se extrae como una salida 323 del generador de señal de predicción 309.
El intercambio de número de modo de predicción 373 se controla de acuerdo con la información de intercambio de enumero de modo de predicción 334 dada en unidades de bloques de predicción (bloques de 4 x 4 pixeles o bloques de 8 x 8 pixeles) para dar la señal de predicción 323. Más específicamente, en el caso de predicción de 4 x 4 pixeles, intra4x4_bi_pred_flag se describe en unidades de bloques de 4 x 4 pixeles. Más específicamente, el intercambiador de número de modo de predicción 373 selecciona la señal de predicción obtenida por el predictor unidireccional 371 cuando una marca: : intra4x4_bi_pred_flag que sirve como una información de intercambio de número de modo de predicción 334 es FALSE, y selecciona la señal de predicción obtenida por el predictor bidireccional 372 cuando intra_4x4_bi_pred_flag es TRUE. Dado que los procesos concretos del predictor unidireccional 371 y el predictor bidireccional 372 son iguales que aquellos en el predictor unidireccional 171 y el predictor bidireccional 172 en el aparato de codificación de imagen, se omitirá una descripción de los mismos. Una estructura de sintaxis se muestra básicamente en la Fig. 19. Sin embargo, una configuración de una sintaxis de predicción de macrobloques usada cuando la predicción de 4 x 4 pixeles se selecciona será descrita más adelante con referencia a la Fig. 27.
BlkConv [block_order_flag] [luma4x4BlkIdx] en la Fig. 27 tiene una tabla de transformación que transforma un orden de predicción como se muestra en la Fig. 8 y da un índice de un bloque que será decodificado . Intra4x4_pred_mode_10 [block_order_flag] [order] son datos del índice decodificado . Intra4x4_bi_pred_flag en la Fig. 27 es una marca que intercambia entre un estado en el cual se lleva a cabo la predicción bidireccional al bloque de 4x4 pixeles y un estado de la predicción bidireccional no se lleva a cabo para el bloque de 4 x 4 pixeles. Más específicamente, la marca intra4x4_bi_pred_flag que es FALSE significa que la predicción unidireccional se lleva a cabo en los bloques de 4 x 4 pixeles. La marca que es TRUE significa que la predicción bidireccional se lleva a cabo en los bloques de 4 x 4 pixeles . Intra4x4_pred_mode_ll en la Fig. 27 son datos de un índice decodificado. Los datos intra4x4_pred_mode_ll se decodifican cuando intra4x4 :bi_pred_flag es TRÜE. Los detalles de la sintaxis se darán en seguida. Luma4x4Blk se transforma en unidades de block_order_flag de acuerdo con una tabla mostrada en blkConv [block_order_flag] [luma4x4BlkIdx] para calcular un índice de bloques [order] indicando que será codificado un sub-bloque (Fig. 8) .
Cuando los bloques de 4 x 4 pixeles indicados por el orden de índice de bloques serán decodificados, intra4x4_pred_model0 [block_order_flag] [order] se decodifica y se transforma inversamente en intra4x4_pred_model0_org [block_order_flag] [order] como se muestra en la Fig. 42. Este proceso se lleva a cabo debido a que los modos de predicción útiles cambian dependiendo de block_order_flag y las posiciones de los bloques en elmacrobloque . Más específicamente, como se muestra en la fig. 43, cuando block_order_flag es 0 (FALSE), un valor de intra4x4_pred_mode_10 se asigna directamente a intra4x4_pred_mode_10_org . En este momento, intra4x4_pred_mode_10_org son datos que indican un modo de predicción que se selecciona de los modos de predicción preparados de nueve tipos de la predicción unidireccional y que se usa para decodificar los bloques de 4 x 4 pixeles. Por otro lado, cuando block_order_flag es 1 (TRUE: predicción de bloques de extrapolación/interpolación) , las tablas se intercambian dependiendo de las posiciones en las cuales se localizan los bloques de 4 x 4 pixeles en un macrobloque. Más específicamente, cuando intra4x4_pred_mode_10 [1] [order] decodificado para el bloque de interpolación (2) es 13, el modo de predicción intra4x4_pred_mode_10_org [1] [order] se convierte en 15 (predicción derecha vertical inversa) . Cuando
intra4x4_pred_mode_10 [1] [order] decodificado al bloque de interpolación (3) es 12, el modo de predicción intra4x4_pred_mode_10_org [1] [order] se convierte en 14 (predicción superiro horixontal inversa) . Cuando intra4x4_bi_pred_flag es TRUE, intra4x4_pred_mode_ll [block_order_flag] [order] se decodifica. El intra4x4_pred_mode_10 [block_order_flag] [order] se transforma en intra4x4_pred_mode_10_org [block_order_flag] [order] como se muestra en la Fig. 43. En otra modalidad, la información de block_order_flag e intra4x4_bi_pred_flag se separa de la corriente de bits codificada y se decodifica. Sin embargo, la información de block_order_flag e intra4x4_bi_pred_flag puede mostrarse por la información de actividad calculada por bloques decodificados y pixeles. En este caso, usando la misma lógica que la del lado de codificación, la misma información es que en el lado de codificación se muestra como información de block_order_flag e intra4x4_bi_pred_flag . Por esta razón, la separación de la corriente de bits codificada y el proceso de decodificación no son necesarios. Como aún otro ejemplo, intra4x4_pred mode_10_org puede codificarse usando una correlación con intra4x4_pred_mode: 10_org en un bloque adyacente. Una estructura de sintaxis concreta se muestra en la Fig. 31, y
una configuración de la sintaxis de predicción de macrobloques mostrada en la Fig. 27 se reemplaza con la de la Fig. 31. Prev_intra4x4_pred_mode_10_flag [block_order_flag] [order] en la Fig. 31 es una marca que representa si un modo de predicción de ref_pred_org de la lista 0 calculada de un bloque de referencia (descrito después) es igual a un modo de predicción intra4x4_pred_mode_10_org [block_order_flag] [order] de la lista 0 de un bloque blanco. La Fig. 32 muestra un método de derivación prev_intra4x4_: pred_mode_10_flag [block_order_flag] [order] . En este caso, ref_blkA_mode_10 en la Fig. 32 denota un modo de predicción de la lista 0 de un bloque codificado más cercano blkA localizado en la izquierda del bloque blkA. Ref_blkB_mode_10 denota un modo de predicción de la lista 0 de un bloque codificado más cercano localizado en el lado superior del bloque blkB. Las posiciones de ref_blkA_mode_10 y ref_blkB_mode_10 cambian dependiendo de block_order_flag, más específicamente, se muestran en las Figs. 33, 44A, 44B, 44C, y 44D. Cuando block_order_flag es FALSe, blkA y blkB sirven como bloques decodificados izquierdo y superior adyacentes a un bloque blanco (Fig. 33) . Por otro lado, cuando block order_flag es TRUE, refJolkA y ref:_blkB sirven como
bloques decodificados izquierdo y superior al bloque blanco (Figs. 44A, 44B, 44C, y 44D) . Cuando prev_intra x4_pred_mode_10_flag [block_order_flag] [order] es TRUE, la información de intra4x4_pred_mode_10_org se muestra con 1 bit usando una correlación entre el bloque blanco y un bloque adyacente. Por otro lado, cuando prev_intra4x4_mode_10_flag [block_order_flag] [order] es FALSE, como un modo de predicción de la lista 0 excepto por prev_intra4x4_pred_mode_10_flag [block_order_flag] [order], se muestra rem_intra4x4_pred_mode_10 [block_order_flag] [order].
Los datos que representan un modo de predicción seleccionado de los modos de predicción excepto ref_pred_mode_org de rem_intra4x4_pred_mode_org de símbolos que pueden tomarse de acuerdo con el modo de predicción de la lista 0. Con respecto a la predicción de 8 x 8 pixeles, se usa la misma sintaxis que la utilizada en la predicción de 4 x 4 pixeles como se muestra en la Fig. 27. Por esta razón, se omitirá una descripción de la predicción de 8 x 8 pixeles. Un aparato de codificación de imágenes de acuerdo con otra modalidad será descrita más adelante con el enfoque en partes diferentes de las de la descripción anterior.
Block_order_flag mostrado en la sintaxis de la capa de macrobloques en la Fig. 33 es una marca que representa si se
lleva a cabo el intercambio de los órdenes de predicción. Por otro lado, cuando block_order_flag es FALSE, se lleva a cabo la predicción de bloques de trama sin intercambiar los órdenes de predicción. Cuando block_order_flag es TRUE, un método concreto para describir un orden de predicción se muestra por block_order_in_mb_mode . Block_order_in_mb_mode muestra un orden de predicción de acuerdo con la siguiente manera. (a) Cuando el modo es 0, se da un orden de predicción usado cuando se lleva a cabo la predicción de bloques de extrapolación/interpolación. (b) Cuando el modo es 1, una combinación de órdenes de predicción se convierten e información de índice, y un orden de predicción se muestra por la información de índice. Cuando se determina un orden de predicción para cuatro bloques, uno de 23 combinaciones de los órdenes de predicción excepto que la predicción de bloques de trama de 4P4 = 24 combinaciones obtenidas se determinan por permutación para cada macrobloque. Específicamente, block_order_idx en la Fig. 33 da el índice de combinación de bloques. (c) cuando el modo es 2, un número de orden se muestra directamente en cada bloque. Con respecto a bloques de 4 x 4 pixeles, los números de orden se muestran en 16 block order4x4 [BLK] . Con respecto a los bloques de 8 x 8
pixeles, los números de orden se muestran en cuatro block_order8x8 [BLK] . Como otro ejemplo, cuando el block_order_in_mb_mode es 1, únicamente se puede mostrar un bloque que será decodificado primero. En la predicción de 4 x 4 pixeles, el número de índices de órdenes de predicción es enorme. Por esta razón. El orden de los bloques de 4 x 4 pixeles mostrados en unidades de bloquees de 8 x 8 pixeles puede repetirse cuatro veces para reducir la información de los índices. Cuando block_order_in_mb_mode es 2, block_order4x4 [BLK] pueden mostrarse por una tabla extensa. Una diferencia entre block_order4x4 [BLk] y se puede calcular block_order4x [ ] adyacente, y se puede expresar block_order4x4 [BLK] por una longitud de código de variable. Dado que el último block_order4x4 [ 15] está en un orden restante, no necesita mostrarse block_order4x4 [15] . El mismo puede aplicarse a los bloques de 8 x 8 pixeles. En la predicción de 4 x 4 pixeles, el orden de bloques de 4 x 4 pixeles mostrados en unidades de bloques de 8 x 8 pixeles pueden repetirse cuatro veces para reducir información de block: order4x4. Para información tal como block_order_in_mb_mode, block order idx, block_order4x4 , y block_order8x8 , los
valores pueden ajustarse adaptablemente en unidades de secuencia, imágenes, diapositivas y macrobloques . De acuerdo con una modalidad de la presente invención, se selecciona un orden de predicción, de manera que no solo se puede llevar a cabo la extrapolación que usa una correlación para, por ejemplo, un pixel izquierdo o superior, sino también la interpolación efectiva usando una correlación a un pixel derecho o inferior. Dado que puede utilizarse el número de modos de predicción útiles, por ejemplo, se selecciona la predicción bidireccional que calcula las señales de predicción obtenidas en una pluralidad de modos de predicción en unidades de pixeles para que sea posible realizar eficiencia de alta predicción a una textura acompleja. Además, la información de intercambio de orden de predicción o información de número de selección de modo de predicción se puede decodificar de manera que las piezas de información se intercambian adaptablemente en unidades de secuencias, imágenes, diapositivas, macrobloques o sub-bloques. Por lo tanto, se puede llevar a cabo la codificación de imágenes que tienen alta eficiencia de codificación y decodificación de la imagen codificada. Un proceso de codificación de imágenes y un proceso de decodificación de imágenes basado en la modalidad descria antes puede realizase por hardware. Sin embargo, los procesos también peden llevarse a cabo ejecutando software usando un
computadora tal como una computadora personal. Por lo tanto, de acuerdo con este punto de vista, un programa de codificación de imágenes, un programa de decodificación de imágenes, o un medio que puede leerse en la computadora en al cual se almacenan programas que se usan para hacer que una computadora ejecuta por lo menos un proceso de codificación de imágenes y también se provee el proceso de codificación de imágenes . La presente invención no se limita directamente a las modalidades anteriores. En una fase de ejecución, la invención puede modalizarse cambiando los elementos constituyentes sin alejare del espíritu y alcance de la invención. Se pueden formar varias invenciones por las combinaciones apropiadas de la pluralidad de elementos constituyentes descritos en las modalidades. Por ejemplo, se pueden remover varios elementos constituyentes de todos los elementos constituyentes descritos en las modalidades. Además, los elementos constituyentes de diferentes modalidades pueden combinarse apropiadamente entre ellas.
APLICABILIDAD INDUSTRIAL La presente invención puede usarse en una técnica de codificación/decodificación de impresión de alta eficiencia de una imagen en movimiento o una imagen estática.
Claims (33)
1.- Un método de codificación de imágenes para llevar a cabo la información predictiva para cada uno de una pluralidad de bloques de pixeles obtenidos dividiendo un marco de una señal de imagen de entrada, comprendiendo: seleccionar un orden de predicción de una pluralidad de sub-bloques obtenidos dividiendo de bloques de pixeles de una pluralidad de órdenes de predicción predeterminados ; seleccionar, de una pluralidad de modos de predicción que regulan una manera de referirse a un pixel codificado cuando una primera señal de predicción de cada sub-bloque (sin base antecedente) se genera para el pixel codificado, el número de los modos de predicción usados en la predicción de la primera señal de predicción; seleccionar los mods de predicción del número de mods de predicción seleccionados de la pluralidad de modos de predicción para usar en la predicción de la primera señal de predicción, generar la primera señal de predicción en el orden de predicción seleccionado usando el número de modos de predicción seleccionados para generar una segunda señal de predicción correspondiendo el bloque de pixeles, y codificar una señal de error residual de predicción expresando una diferencia entre una señal de imagen del bloque de pixeles y la segunda señal de predicción para generar datos codificados obtenidos por la codificación predictiva .
2.- Un aparato de codificación de imágenes que lleva a cabo la codificación predictiva para cada uno de una pluralidad de bloques de pixeles obtenidos dividiendo un marco de una señal de imagen de entrada, comprendiendo: un primer selector que selecciona un orden de predicción de una pluralidad de sub-bloques obtenidos dividiendo el bloque de pixeles de una pluralidad de órdenes de predicción predeterminados, un segundo selector que selecciona, de una pluralidad de modos de predicción que regulan una manera de referirse a un pixel codificado cuando una primera señal de predicción de cada sub-bloque se genera para el pixel codificado, el número de modos de predicción usados en la predicción de la primera señal de predicción; un tercer selector que selecciona los modos de predicción del número de modos de predicción seleccionados de la pluralidad de modos de predicción para usarse en la predicción de la primera señal de predicción; un generador que genera la segunda señal de predicción usando la primera señal de predicción que corresponde al bloque de pixeles en el orden de predicción seleccionado usando el numero de modos de predicción seleccionados; y un codificador que codifica una señal de error residual de predicción que expresa una diferencia entre una señal de imágenes del bloque de pixeles y la segunda señal de predicción para genera datos codificados obtenidos por la codificación predictiva.
3. - El aparato de codificación de imágenes de acuerdo con la reivindicación 2, en donde el aparato de codificación de imágenes se configura para llevar a cabo la codificación predictiva usando por lo menos una predicción intra-marco y predicción inter-marco.
4. - El aparato de codificación de imágenes de acuerdo con la reivindicación 2, en donde el primer selector selecciona el orden de predicción para cada uno de los bloques de pixeles.
5. - El aparato de información de imágenes de acuerdo con la reivindicación 2, en donde el primer selector selecciona cualquiera de un primer orden de predicción y un segundo orden de predicción para cada uno de los bloques de pixeles.
6. - El aparato de codificación de imágenes de acuerdo con la reivindicación 2, en donde el primer selector se configura para controlar si los ordenes de predicción se seleccionan por intercambiarse para cada uno de los bloques de pixeles.
7. - El aparato de codificación de imágenes de acuerdo con la reivindicación 2, en donde el primer selector se configura para controlar cada uno de los bloques de pixeles ya sea que se seleccione o no cualquiera del primer orden de predicción y el segundo orden de predicción.
8. - El aparato de información de imágenes de acuerdo con la reivindicación 2, en donde el codificador se configura para codificar información que representa el orden de predicción seleccionado para generar los datos codificados.
9. - El aparato de codificación de imágenes de acuerdo con la reivindicación 2, en donde por lo menos uno de los modos de predicción es un modo de predicción direccional espacial que se refiere al pixel codificado en una dirección especifica definida por la señal de imagen de entrada.
10. - El aparato de codificación de imágenes de acuerdo con la reivindicación 2, en donde el predictor tiene un primer predictor que predice, cuando se selecciona un modo de predicción de la pluralidad de modos de predicción, el bloque de pixeles de acuerdo con el orden de predicción seleccionado y el modo de predicción seleccionado y un segundo predictor que predice, cuando por lo menos se seleccionan dos modos de predicción de la pluralidad de modos de predicción, el bloque de pixeles de acuerdo con el orden de predicción seleccionado y por lo menos dos modos de predicción seleccionados para generar una pluralidad de señales de predicción y la segunda señal de predicción combinando las señales de predicción para cada pixel .
11. - El aparato de codificación de imágenes de acuerdo con la reivindicación 10, en done el segundo predictor se configura para llevar a cabo una combinación de las unidades de pixeles por lo menos por uno de (a) un promedio en peso, (b) un filtro de valor máximo, (c) un filtro de valor mínimo, (d) un filtro medio, y (e) un ángulo de la predicción direccional que se refiere a el píxel codificado con respecto a una dirección espacial especifica definida por la señal de imagen de entrada o una tabla en la cual se describen los factores de peso dependiendo del número de los modos de predicción seleccionados .
12. - El aparato de codificación de imágenes de acuerdo con la reivindicación 2, en donde el codificador se configura para codificar información que representa el número de modos de predicción seleccionados para generar los datos codificados.
13. - El aparato de codificación de imágenes de acuerdo con la reivindicación 2, en dónde el primer selector se configura para seleccionar el orden de predicción de acuerdo con información de actividad del bloque de pixeles o bloques de pixeles adyacentes.
14. - El aparato de codificación de imágenes de acuerdo con la reivindicación 2, en donde el primer selector se configura para seleccionar el orden de predicción de acuerdo con información de actividad del bloque de pixeles o bloques de pixeles adyacentes, y el codificador se configura también para codificar información que representa el orden de predicción seleccionado para generar los datos codificados.
15. - El aparato de codificación de imágenes de acuerdo con la reivindicación 2, en donde el segundo selector se configura para seleccionar el número de modos de predicción usados en la predicción de la primera señal de predicción de acuerdo con información de actividad del bloque de pixeles o bloques de pixeles adyacentes.
16. - El aparato de codificación de imágenes de acuerdo con la reivindicación 2, en donde el segundo selector se configura para seleccionar el número de modos de predicción usados en la predicción de la primera señal de predicción dependiendo de la información de actividad del bloque de pixeles o un bloque de pixeles adyacente, y el codificador se configura para codificar también información que representa el número de modos de predicción seleccionados para generar los datos codificados.
17.- Un método de decodificación de imágenes para decodificar datos codificados para cada uno de una pluralidad de bloques de pixeles obtenidos dividiendo un marco de una señal de imagen de entrada, comprendiendo: seleccionar un orden de predicción de una pluralidad de sub-bloques obtenidos dividiendo el bloque de pixeles de una pluralidad de órdenes de predicción predeterminados; seleccionar, de una pluralidad de modos de predicción que regulan una manera de referirse a un pixel codificado cuando una primera señal de predicción de cada sub-bloque se genera para un pixel decodificado, un número de modos de predicción usados en la predicción de la primera señal de predicción, seleccionar modos de predicción del número de modos de predicción seleccionados de la pluralidad de modos de predicción para usarse en la predicción en la primera señal de predicción; generar la primera señal de predicción en el orden de predicción seleccionado usando el número de modos de predicción seleccionados para generar una segunda señal de predicción que corresponde al bloque de pixeles, y generar una señal de imágenes decodificadas usando la segunda señal de predicción.
18.- Un aparato de de información de imágenes que decodifica datos codificados para cada uno de una pluralidad de bloques de pixeles obtenidos dividiendo una marca de una señal de imágenes de entrada, comprendiendo: un primer selector que selecciona un orden de predicción de una pluralidad de sub-bloques obtenidos dividiendo el bloque de pixeles de una pluralidad de órdenes de predicción predeterminados; un segundo selector que selecciona, de una pluralidad de modos de predicción que regulan una forma de referirse a un pixel codificado cuando una primera señal de predicción de cada sub-bloque se genera para un pixel decodificado, un número de modos de predicción usados en la predicción de la primera señal de predicción; un tercer selector que selecciona modos de predicción del número de modos de predicción seleccionados de la pluralidad de modos de predicción para usarse en la predicción de la primera señal de predicción; un generador que genera la primera señal de predicción en el orden de predicción seleccionando usando el número de modos de predicción seleccionados para generar una segunda señal de predicción que corresponde al bloque de pixeles, y un generador que genera una señal de imágenes decodificadas usando la segunda señal de predicción.
19. - El aparato de codificación de imágenes de acuerdo con la reivindicación 18, en donde el primer selector selecciona el orden de predicción para cada uno de los bloques de pixeles.
20. - El aparato de codificación de imágenes de acuerdo con la reivindicación 18, en donde el primer selector selecciona cualquiera de un primer orden de predicción y un segundo orden de predicción para cada uno de los bloques de pixeles.
21. - El aparato de codificación de imágenes de acuerdo con la reivindicación 18, en donde el primer selector se configura para controlar si los órdenes de predicción se seleccionan intercambiándose para cada uno de los bloques de pixeles.
22. - El aparato de codificación de imágenes de acuerdo con la reivindicación 18, en donde el primer selector se configura para controlar para cada uno de los bloques de pixeles ya sea que se selección de cualquier del primer orden de predicción y el segundo orden de predicción.
23. - El aparato de codificación de imágenes de acuerdo con la reivindicación 18, que comprende además una unidad de separación que separa primer información, incluido en los datos codificados, representando un orden de predicción de una pluralidad de sub-bloques obtenidos dividiendo el bloque de pixeles, en donde el primer selector se configura para seleccionar un orden de predicción indicado por la primer a información.
24. - El aparato de codificación de imágenes de acuerdo con la reivindicación 18, en donde por lo menos uno de los modos de predicción es un modo de predicción direccional que se refiere al pixel decodificado en una dirección espacial especifica en un espacio definido por la señal de imágenes.
25. - El aparato de información de imágenes de acuerdo con la reivindicación 18, en donde el predictor tiene un primer predictor que predice, cuando se selecciona un modo de predicción de la pluralidad de modos de predicción, el bloque de pixeles de acuerdo con el orden de predicción seleccionado y el modo de predicción seleccionado, y un segundo predictor que predice, cuando por lo menos se seleccionan dos modos de predicción de la pluralidad de modos de predicción, el bloque de pixeles de acuerdo con el orden de predicción seleccionado y por lo menos dos modos de predicción seleccionados para generar una pluralidad de señales de predicción y una señal de predicción que corresponde al bloque de pixeles combinando las señales de predicción en unidades de pixeles.
26. - El aparato de codificación de imágenes de acuerdo con la reivindicación 25, en donde el segundo predictor se configura para lleva cabo una combinación de las unidades de pixeles por lo menos por uno de (a) un promedio en peso, (b) un filtro de valor máximo, (c) un filtro de valor mínimo, (d) un filtro medio, y (e) un ángulo de la predicción direccional que se refiere al píxel codificado con respecto a una dirección específica en un espacio definido por la señal de imagen de entrada o una tabla en la cual se describen los factores de peso dependiendo del número de modos de predicción seleccionados.
27. - El aparato de codificación de imágenes de acuerdo con la reivindicación 18, que comprende además una unidad de separación que separa la segunda información, incluida en los datos codificados, que representa el número de modos de predicción usados en la predicción de la primera señal de predicción, en donde el segundo selector se configura para seleccionar el número de modos de predicción indicados por la segunda información.
28. - El aparato de codificación de imágenes de acejero con la reivindicación 18, en donde el primer selector se configura para seleccionar el orden de predicción de acuerdo con la información de actividad del bloque de pixeles o un bloque de pixeles adyacente .
29. - El aparato de codificación de imágenes de acuerdo con la reivindicación 18, comprendiendo además una unidad de separación que separa la primera información, incluido en los datos codificados, representando un orden de predicción de una pluralidad de sub-bloques obtenidos por la división del bloque de pixeles, en donde el primer selector se configura para seleccionar el orden de predicción de acuerdo con por lo menos uno de la primera información de información de actividad del bloque de pixeles o un bloque de pixeles adyacente.
30. - El aparato de codificación de imágenes de acuerdo con la reivindicación 18, en donde el segundo selector se configura para seleccionar el número de modos de predicción usados en la predicción de la primera señal de predicción de acuerdo con la información de actividad del bloque de pixeles o un bloque de pixeles adyacente .
31.- El aparato de codificación de imágenes de acuerdo con la reivindicación 18, que comprende además una unidad de separación que separa la segunda información, incluida en los datos decodificados, que representan el número de modos de predicción usados en la predicción de la primera señal de predicción, en donde el segundo selector se configura para seleccionar el número de modos de predicción usados en la predicción de la primera señal de predicción dependiendo de por lo menos uno de la segunda información y la información de actividad del bloque de pixeles o un bloque de pixeles adyacente .
32.- Un medio de almacenamiento que puede leerse en la computadora que tiene almacenado en el mismo un programa de información de imágenes que ocasiona que una computador lleve a cabo codificación de imágenes incluyendo codificación predictiva para cada uno de una pluralidad de bloques de pixeles obtenidos dividiendo un marco de una señal de imagen de entrada, el programa comprendiendo: medios para ocasionar que la computadora seleccione un orden de predicción de una pluralidad de sub-bloques obtenido dividiendo el bloque de pixeles de una pluralidad de órdenes de predicción predeterminados; medios para ocasionar que la computadora seleccione, de una pluralidad de modos de predicción que regula una manera de referirse a un pixel codificado cuando una primera señal de cada sub-bloque se genera para el pixel codificado, el número de modos de predicción usados en la predicción de la primera señal de predicción; medios para ocasionar que la computadora seleccione modos de predicción del número de modos de predicción seleccionados de la pluralidad de modos de predicción para usarse en la predicción de la primera señal de predicción; Medios para ocasionar que la computadora genera la primera señal de predicción en el orden de predicción seleccionando usando el número de modos de predicción seleccionados para generar una segunda señal de predicción que corresponde al bloque de pixeles; y medios para ocasionar que la computadora codifique un error residual de predicción que expresa una diferencia entre una señal de imágenes del bloque de pixeles y la segunda señal de predicción para generar datos codificados obtenidos por la codificación predictiva.
33.- Un medio de almacenamiento que puede leerse en la computadora que tiene almacenado en el mismo un programa de decodificación de imágenes incluyendo decodificación de datos codificados para cada uno de una pluralidad de bloques de pixeles obtenidos dividiendo un marco de una señal de imágenes, el programa comprendiendo: medios para ocasionar que la computadora seleccionan un orden de predicción de una pluralidad de sub-bloques obtenidos dividiendo el bloque de pixeles de una pluralidad de órdenes de predicción predeterminadas; medios para ocasionar que la computadora seleccione de una pluraldiad de modos de predicción que regulan una forma de referirse a un pixel codificado cuando una primera señal de predicción de cada sub-bloque se genera para un pixel decodificado, un número de modos de predicción usado en la predicción de la primera señal de predicción; medios para ocasionar que la computadora seleccione los modos de predicción del número de modos de predicción seleccionados de la pluralidad del uso en la predicción de la primera señal de predicción; medios para ocasionar que la computadora genere la primera señal de predicción en el orden de predicción seleccionado usando los modos de predicción seleccionados para generar una segunda señal de predicción que corresponde al bloque de pixeles; y medios para ocasionar que la computadora genere una señal de imágenes decodificada usando la segunda señal de predicción. RESUMEN Un aparato de codificación de imágenes que comprende una primera parte de selección que selecciona, de entre una pluralidad de órdenes de predicción predeterminados, se ha dividido un orden de predicción para una pluralidad de sub-bloques obtenidos dividiendo cada uno de los bloques de pixeles en el cual se ha dividido el marco de una señal de imágenes de entrada; una segunda parte de selección que selecciona el numero de modos de predicción, que se usan para la predicción de una primera señal de predicción, de entre una pluralidad de modos de predicción una pluralidad de modos de predicción que especifican métodos para referirse a los pixeles codificados cuando de refieren a los pixeles codificados para generar la primera señal de predicción de cada sub-bloque; una tercera parte de selección que selecciona el número seleccionando de modos de predicción, que se usan para la predicción de la primera señal de predicción, de entre la pluralidad de modos de predicción; una parte de generación que usa el número seleccionando de modos de predicción seleccionados para generar la primera señal de predicción en el orden de predicción seleccionado de manera que genera una segunda señal de predicción que corresponde a un bloque de pixeles; y una parte de codificación que codifica una señal residual prevista que representa la diferencia entre la seña de imágenes del bloque de pixeles y la segunda señal de predicción de manera que genera datos codificados basado en la codificación de predicción.
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2006015039 | 2006-07-28 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| MX2009000832A true MX2009000832A (es) | 2009-02-04 |
Family
ID=41127665
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| MX2009000832A MX2009000832A (es) | 2006-07-28 | 2006-07-28 | Metodo y aparato de codificacion y decodificacion de imagenes. |
Country Status (1)
| Country | Link |
|---|---|
| MX (1) | MX2009000832A (es) |
-
2006
- 2006-07-28 MX MX2009000832A patent/MX2009000832A/es active IP Right Grant
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| AU2006346583B2 (en) | Image encoding and decoding method and apparatus | |
| RU2408161C1 (ru) | Способ кодирования изображения/декодирования изображения, устройство кодирования изображения/декодирования изображения | |
| RU2414093C2 (ru) | Способ и устройство, и программа кодирования/декодирования видео | |
| US20100118943A1 (en) | Method and apparatus for encoding and decoding image | |
| KR101365570B1 (ko) | 인트라 예측 부호화, 복호화 방법 및 장치 | |
| KR102103967B1 (ko) | 복수의 이웃 양자화 파라미터들로부터 양자화 파라미터 예측 변수들을 결정하기 위한 방법들 및 장치 | |
| KR101196429B1 (ko) | 동영상 트랜스코딩 방법 및 그 장치, 이에 사용되는움직임 벡터 보간방법 | |
| KR100667808B1 (ko) | 영상의 인트라 예측 부호화, 복호화 방법 및 장치 | |
| EP2106145A2 (en) | Method and apparatus for intra-prediction video coding/decoding | |
| JPWO2009001793A1 (ja) | 画像符号化と画像復号化の方法及び装置 | |
| KR101712351B1 (ko) | 다차원 정수 변환을 이용한 영상 부호화/복호화 장치 및 방법 | |
| TW200904199A (en) | Image coding and decoding method, and apparatus | |
| TW200850012A (en) | Image encoding method, device, image decoding method, and device | |
| CN110536133B (zh) | 视频数据解码方法及装置 | |
| CN102215392B (zh) | 用于估计像素值的帧内预测方法或装置 | |
| KR100510136B1 (ko) | 참조 픽처 결정 방법, 그 움직임 보상 방법 및 그 장치 | |
| KR101739580B1 (ko) | 적응적 스캔 장치 및 그 스캔 방법 | |
| KR20110036401A (ko) | 영상의 부호화 방법 및 장치, 그 복호화 방법 및 장치 | |
| RU2427976C2 (ru) | Способ и устройство для кодирования и декодирования изображения | |
| MX2009000832A (es) | Metodo y aparato de codificacion y decodificacion de imagenes. | |
| AU2019210554B2 (en) | Enhanced intra-prediction coding using planar representations | |
| Lam | Improvement and Optimization of H. 264 Video Codec | |
| MX2008006909A (es) | Metodo de codificacion de imagenes/decodificacion de imagenes y aparato para decodificacion de imagenes/decodificacion de imagenes |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| FG | Grant or registration |