ES2401991T3 - Dispositivo para la codificación de imágenes, procedimiento para la codificación de imágenes y programa para la codificación de imágenes - Google Patents

Dispositivo para la codificación de imágenes, procedimiento para la codificación de imágenes y programa para la codificación de imágenes Download PDF

Info

Publication number
ES2401991T3
ES2401991T3 ES03719223T ES03719223T ES2401991T3 ES 2401991 T3 ES2401991 T3 ES 2401991T3 ES 03719223 T ES03719223 T ES 03719223T ES 03719223 T ES03719223 T ES 03719223T ES 2401991 T3 ES2401991 T3 ES 2401991T3
Authority
ES
Spain
Prior art keywords
coding
macroblock
block
variable length
image
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
ES03719223T
Other languages
English (en)
Inventor
Kazuo Sugimoto
Satoru Adachi
Sadaatsu Kato
Minoru Etoh
Mitsuru Kobayashi
Hiroyuki Yamaguchi
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NTT Docomo Inc
Original Assignee
NTT Docomo Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NTT Docomo Inc filed Critical NTT Docomo Inc
Application granted granted Critical
Publication of ES2401991T3 publication Critical patent/ES2401991T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/192Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

Aparato para la codificación de imágenes que comprende: - una parte (11) de detección de movimiento para dividir una imagen objetivo de codificación en macrobloquesde unas dimensiones predeterminadas, dividiendo 5 cada uno de dichos macrobloques en bloques de una forma ydimensiones predeterminadas, especificadas basándose en un tipo de macrobloque, y llevar a cabo una prediccióncompensada en movimiento en cada unidad de dicho bloque para emitir un vector de movimiento; - una parte (12) de compensación de movimiento para generar una imagen de predicción a partir de unaimagen de referencia en base al vector de movimiento emitido desde la parte de detección de movimiento (11); - una parte de sustracción (13) para calcular la diferencia entre la imagen de predicción generada por la partede compensación de movimiento (12) y la imagen objetivo de codificación para emitir una imagen residual depredicción; - una parte de transformación (14) para llevar a cabo codificación de transformación de la imagen residual depredicción emitida desde la parte de sustracción (13), en cada unidad de un bloque de transformaciónpredeterminado para emitir coeficientes de transformación; - una parte (15) de cuantificación para cuantificar los coeficientes de transformación emitidos desde la parte detransformación (14), basándose en un parámetro de cuantificación para emitir coeficientes de transformacióncuantificados; y una parte de codificación (16, 50) para llevar a cabo codificación de compresión de información relativa acodificación que contiene el vector de movimiento emitido desde la parte de detección de movimiento (11), el tipo demacrobloque, el parámetro de cuantificación y los coeficientes de transformación cuantificados emitidos desde laparte de cuantificación (15) para emitir datos codificados; - en el que la parte de codificación (16, 50) comprende una memoria (31) de símbolos codificados paramemorizar la información relacionada con la codificación; un proveedor (32, 33, 52) de procedimiento de codificaciónpara proporcionar uno o varios tipos de procesos de codificación, en el que las longitudes de código de los códigospara codificación de la información relacionada con la codificación depende del tipo de proceso de codificación; yuna parte (30) de emisión de datos codificados para seleccionar uno de los procesos de codificación proporcionadospor el proveedor (32, 33, 52) de procedimiento de codificación al crear tablas de mapa utilizadas para codificación delongitud variable indicando relación entre información relativa con la codificación y códigos de longitud variable,basados en un criterio de selección predeterminado del proceso de codificación, - en el que la creación de tablas de mapa comprende: - deducir un modelo de bloque codificado (CBPY) para cada macrobloque expresado por una serie de bits,correspondiendo cada bit a un bloque de un macrobloque objetivo de codificación (A, B, C, D) en el que cada bitindica 1 para la presencia de un coeficiente de transformación ortogonal distinto de cero de un bloque respectivo enel macrobloque objetivo de codificación (A, B, C, D) o 0 para su ausencia, - para cada bloque del macrobloque objetivo de codificación (A, B, C, D) determinar el respectivo grado delvalor de correlación (P(A), P(B), P(C)) entre un correspondiente bloque y uno o varios bloques adyacentes de unmacrobloque adyacente, por cálculo de una serie ponderada de una operación predeterminada para un bloque conrespecto a sus bloques adyacentes de uno o varios macrobloques adyacentes, en el que la operaciónpredeterminada indica 1 cuando la presencia/ausencia de coeficientes de transformación ortogonal diferentes decero son iguales entre dicho bloque del macrobloque objetivo de codificación y dicho bloque adyacente o 0 cuandola presencia/ausencia de coeficiente de transformación ortogonal distintos de cero son diferentes entre dicho bloquedel macrobloque objetivo de codificación y dicho bloque adyacente, determinación del grado de correlación (P(CBPY)) como suma de los valores de grados de correlacióndeterminados (P(A), P(B), P(C)), - reestructurar a continuación los modelos de bloque codificado derivados y asignar longitudes de código a losmodelos de bloque codificado derivados (CBPY) de manera que la longitud de código de los modelos de bloquecodificado (CBPY) resulta más corta al resultar más alto el valor del grado de correlación, - y para llevar a cabo la codificación de compresión de la información relativa a la codificación en base alcriterio de selección del proceso de codificación para emitir los datos codificados; - en el que la codificación de compresión de la información relacionada con la codificación comprendecodificación de longitud variable.

Description

Dispositivo para la codificación de imágenes, procedimiento para la codificación de imágenes y programa para la codificación de imágenes
Sector técnico
La presente invención se refiere a un aparato para la codificación de imágenes, a un aparato para la decodificación de imágenes, a un procedimiento de codificación de imágenes, a un procedimiento de decodificación de imágenes, a un programa de codificación de imágenes, y a un programa de decodificación de imágenes.
Antecedentes técnicos
En estos últimos años se han ido popularizando sistemas para almacenamiento, reproducción o transmisión de señales de imagen, incluyendo CD foto, CD video, DVD video (Digital Disk-Video), teléfonos TV, conferencias TV, emisión de TV digital, VOD (Video On Demand), y otros. En un sistema de transmisión de imágenes, tal como se ha mostrado en al figura 29A, en el lado del transmisor, el codificador 1 codifica una imagen de entrada en un flujo de bits, y el transmisor 2 del flujo de bits transmite el flujo de bits por una red hasta un receptor; en el lado del receptor, el receptor de flujo de bits 3 recibe el flujo de bits y el decodificador de imágenes 4 decodifica el flujo de bits recibido para emitir una imagen. En un sistema de almacenamiento de imágenes, tal como se ha mostrado en la figura 29B, el codificador de imágenes 1 codifica una imagen de entrada en un flujo de bits y el flujo de bits es almacenado en el almacenamiento de flujo de bits 5, tal como un medio de almacenamiento. En un sistema de reproducción de imágenes, tal como se ha mostrado en la figura 29C, el decodificador de imágenes 4 decodifica un flujo de bits almacenado en el almacenamiento 5 de flujo de bits y emite una imagen reproducida.
En estos sistemas, existe un límite a una banda de transmisión o capacidad de almacenamiento y, por lo tanto, existen demandas para utilizar de manera efectiva estos recursos mediante la utilización de un sistema de codificación de imágenes con una relación de compresión lo más elevada posible. Los sistemas de codificación de imágenes pueden ser clasificados en sistemas de codificación de imágenes fijas y sistemas de codificación de imágenes móviles, de los que se describirá un ejemplo a continuación utilizando los sistemas de codificación de imágenes en movimiento.
Los sistemas de codificación conocidos convencionalmente para el movimiento de señales de imágenes incluyen las International Video Coding Standards, tal como la recomendación de ITU-TR H.263, la Norma Internacional ISO/IEC 14496-2 (MPEG-4 Visual), y otros.
En estos sistemas de codificación de imágenes en movimiento, de manera general, se lleva a cabo una predicción intertrama compensada por movimiento para una imagen de trama que forma una señal de imagen móvil suministrada como objetivo de codificación, con respecto a otra imagen de trama para reducir redundancia temporal en la señal de imagen móvil; operaciones de transformación y cuantificación ortogonal se llevan a cabo para la señal de imagen de diferencia o resultado de la predicción intertrama o para una señal de imagen no sometida a la predicción intertrama para reducir la redundancia espacial en la señal de imagen móvil, y se lleva a cabo, además, codificación de la fuente de información para datos de predicción y transformación, tales como vector de movimiento obtenido, coeficientes de transformación ortogonal y otros, para reducir la redundancia de la representación de datos. Estos procesos eliminan las redundancias en la señal de imagen móvil consiguiendo, por lo tanto, una codificación eficiente de una imagen móvil.
En estos sistemas de codificación de imagen móvil, los procesos descritos anteriormente son llevados a cabo para cada uno de los segmentos de una imagen de trama llamados macrobloques. En general, un macrobloque consiste en 16 píxeles x 16 píxeles, y un juego de dichos macrobloques constituye una sección (“slice”) o una trama (“frame”). Por otra parte, un macrobloque contiene unidades de bloques que resultan de su subdivisión y los procesos antes mencionados, incluyendo la compensación de movimiento, la transformación ortogonal, etc. son llevados a cabo en unidades que llegan a los macrobloques y si es necesario, en unidades de bloques más pequeñas.
La figura 1 es un diagrama de flujo que muestra de manera esquemática un ejemplo de un procedimiento de codificación de imágenes móviles. Este procedimiento de codificación es un procedimiento de codificación de imágenes para llevar a cabo una transformación predeterminada y operaciones de codificación en una imagen de entrada D1, que es una imagen de trama en una imagen móvil o similar para generar datos D9 codificados, con datos comprimidos, transmisibles o almacenables en el sistema de transmisión de imágenes o en el sistema de almacenamiento de imágenes.
En el sistema de codificación de imágenes mostrado en la figura 1, una operación de proceso de datos es llevada a cabo en unidades de macrobloques obtenidas por división de la imagen de entrada D1 en un tamaño predeterminado (un número predeterminado de píxeles). En primer lugar, la imagen de entrada D1 es sometida a la operación de proceso de datos predeterminada para llevar a cabo la transformación de datos de imagen de conversión, emitiendo de esta manera una imagen residual predictiva D5 expresada por coordenadas espaciales, información D3 de modalidad de codificación que indica información con respecto a la operación de proceso de datos e información D2 de vector de movimiento (etapa S101). La información D2 de vector de movimiento puede contener, por ejemplo, un valor de un vector de movimiento propiamente dicho o un valor de diferencia de vector de movimiento que es una diferencia entre un vector de movimiento en un bloque objetivo y un vector de movimiento en un bloque adyacente.
De manera específica, con referencia a una región de imagen predeterminada en una imagen local decodificada D12 que se describe más adelante, se hace una búsqueda de un área de imagen que se parece a una imagen del macrobloque objetivo de codificación (búsqueda de movimiento) y se determina un vector de movimiento por una magnitud de movimiento espacial del macrobloque objetivo de codificación con respecto al área de imagen que se parece al macrobloque objetivo de codificación, el detectado como resultado de la búsqueda (predicción compensada en movimiento). También se genera como imagen residual predictiva D5 los datos de diferencia de valores de píxel entre el macrobloque objetivo de codificación y el área de imagen que se parece a los datos de imagen del macrobloque objetivo de codificación, detectado como resultado de la búsqueda. Entonces, basándose en el vector de movimiento y datos de diferencia de valores de píxeles obtenidos como resultado de la búsqueda de movimiento, se selecciona una modalidad de codificación del macrobloque a aplicar a los datos de imagen a partir de una serie de modalidades de codificación de macrobloques preparadas.
Las modalidades de codificación de macrobloques se clasifican, en general, bajo modalidades de intercodificación, utilizando compensación de movimiento y modalidades de codificación intra que no utilizan compensación de movimiento. En las modalidades de codificación inter, la compensación de movimiento es aplicada a un macrobloque, y los residuos de predicción de valores de píxeles obtenidos como resultado del mismo son emitidos como imagen residual predictiva D5. En las modalidades de codificación intra, los valores de predicción de valores de píxeles del macrobloque se disponen a 0, de manera que la imagen de entrada D1 es emitida directamente como imagen residual predictiva D5. La información indicativa de la modalidad de codificación seleccionada y un parámetro de cuantificación son emitidos como información D3 de modalidad de codificación e información acerca del vector de movimiento como información D2 del vector de movimiento.
Entonces, la imagen residual predictiva D5 es sometida a una operación de transformación ortogonal para generar una serie de coeficientes de transformación ortogonal D6 que son datos de imagen expresados por frecuencia de espacio (datos de imagen de frecuencia) (etapa S102). Esta transformación ortogonal es llevada a cabo para cada uno de los bloques resultantes de la subdivisión de cada macrobloque para conseguir coeficientes de transformación ortogonal de cada bloque.
Los coeficientes de transformación ortogonal son cuantificados por utilización de un parámetro predeterminado de cuantificación para obtener coeficientes D7 de transformación ortogonal cuantificada (etapa S103).
Al mismo tiempo, la cuantificación de un cierto bloque resulta de la producción de coeficientes de transformación ortogonal, todos los cuales son cero en el bloque. No hay necesidad de llevar a cabo la codificación de información acerca de los coeficientes de transformación ortogonal para dicho bloque inefectivo con todos los coeficientes de transformación ortogonal de cero. A continuación, se omite la codificación de información de coeficiente de un bloque inefectivo por utilización de información del modelo de bloque codificado (al que se hará referencia a continuación como CBP, representando Coded Block Pattern) (Modelo de Bloque Codificado) indicando si existe un coeficiente de transformación ortogonal cuantificado significativo en el bloque, incrementando de esta manera la eficiencia de la codificación.
También, existen casos en los que el resultado del proceso de cuantificación es que la totalidad de coeficientes de transformación ortogonal son cero en todos los bloques de un macrobloque, y cada componente de un vector de movimiento es también cero. Para un macrobloque inefectivo de este tipo con todos los coeficientes de transformación ortogonal de cero, no hay necesidad de llevar a cabo la información de codificación acerca del macrobloque. Estos macrobloques inefectivos aparecen frecuentemente en partes de fondo estacionario y similares, y de este modo se utiliza un indicador de codificación de macrobloque (indicador COD) para cada macrobloque para discriminar si el macrobloque es efectivo o no lo es.
Los indicadores CBP y COD son emitidos como información suplementaria de codificación D8.
A continuación, se llevan a cabo operaciones de codificación de longitud variable y multiplexado para la información D2 del vector de movimiento, información D3 de modalidad de codificación, coeficientes D7 de transformación ortogonal cuantificada, e información D8 suplementaria de codificación para generar datos codificados D9 que son comprimidos (etapa S104).
De manera específica, la codificación de longitud variable que utiliza una tabla de codificación de longitud variable, se lleva a cabo en cada uno de los símbolos de codificación incluidos en la información D2 del vector de movimiento, codificando información D3 de modalidad de codificación, coeficientes de transformación ortogonal cuantificada D7, e información suplementaria de codificación D8 para generar los datos codificados D9.
La figura 2 es un diagrama de bloques que muestra un ejemplo de una configuración de un aparato de codificación de imágenes. El procedimiento de codificación de imágenes mostrado en la figura 1 se describirá adicionalmente a continuación con referencia al aparato de codificación de imágenes mostrado en la figura 2.
Con una imagen de entrada D1 suministrada como objetivo de codificación, en primer lugar, una trama de imagen de señal luma (luminancia) es dividida en macrobloques de imagen cuadrada con dimensiones de 16 píxeles x 16 líneas, y una trama de imagen de señal croma (diferencia de color) en macrobloques de bloques de imagen cuadrada con dimensión de 8 píxeles x 8 líneas. Estos macrobloques son bloques de imagen utilizados como unidades del proceso de datos, incluyendo la compensación de movimiento y otros. En una transformación DCT que se describe posteriormente (transformación ortogonal, por ejemplo, en el sistema de codificación MPEG-4), los bloques utilizados son bloques CDT con dimensiones de 8 píxeles x 8 líneas. En este caso, un macrobloque tiene cuatro bloques luma (Y) y dos bloques croma (cb, Cr) en el DCT. La codificación de imágenes es llevada a cabo para cada uno de estos bloques.
La imagen de entrada D1 es alimentada a medios de compensación de movimiento que consisten en el detector de movimiento 11 y en el compensador de movimiento 12. En primer lugar, la imagen de entrada D1 es alimentada al detector de movimiento 11, y una imagen de movimiento es detectada para cada macrobloque. El detector de movimiento 11 compara los datos de imagen del macrobloque objetivo de codificación con datos de imagen en una región de imagen de las mismas dimensiones que el macrobloque, en una imagen decodificada local para detectar un área de imagen que se parece a la imagen del macrobloque objetivo de codificación y genera un vector de movimiento D2 indicativo del movimiento de la imagen.
De manera específica, el detector de movimiento 11 busca un área de imagen parecida al macrobloque como objetivo de codificación en la imagen de entrada D1 con referencia a una región de imagen predeterminada en una imagen decodificada local D12 almacenada como imagen de trama codificada previamente en la memoria de trama
20. La información D2 del vector de movimiento es determinada por una magnitud de movimiento espacial entre el macrobloque objetivo de codificación y el área de imagen que se parece a los datos de imagen del macrobloque objetivo de codificación, detectados como resultado de la búsqueda.
En este momento, se selecciona también una modalidad también de codificación aplicada al macrobloque objetivo de codificación a partir de una serie de modalidades de codificación preparadas por adelantado. Las figuras 3A-3C son diagramas esquemáticos que muestran un ejemplo de las modalidades de codificación preparadas para la compensación de movimiento. La modalidad de codificación mostrada como ejemplo en la figura 3A es una modalidad de codificación inter 0, la modalidad de codificación de la figura 3B es una modalidad de codificación inter 1, y la modalidad de codificación de la figura 3C es una modalidad de codificación intra 2.
Las modalidades de codificación inter 0-1 son modalidades para llevar a cabo codificación intertrama, utilizando formas de segmentación de bloque distintas entre sí en bloques de compensación de movimiento. Con referencia a los bloques de compensación de movimiento de cada modalidad, tal como se ha mostrado en la figura 3A, la modalidad de codificación inter 0 utiliza un bloque con una dimensión de 16 píxeles x 16 líneas para una imagen componente luma. Tal como se ha mostrado en la figura 3B, la modalidad de codificación inter 1 utiliza cuatro bloques con dimensiones de 8 píxeles x 8 líneas para una imagen componente luma.
La información del vector de movimiento antes mencionada D2, es facilitada a cada bloque de compensación de movimiento, segmentada en la modalidad de codificación inter seleccionada. Por lo tanto, se facilita a cada macrobloque la información de vector de movimiento D2 por el número de bloques del segmento. La información D2 del vector de movimiento es asignada a cada bloque de compensación de movimiento, por ejemplo, de acuerdo con el orden indicado por los números de cada modalidad de codificación en las figuras 3A-3C. En ambas modalidades de codificación inter, se utiliza un bloque con dimensiones de 8 píxeles x 8 líneas para una imagen de componente croma y un vector de movimiento asignado al mismo es un vector con una longitud igual a la mitad de un vector de movimiento para una imagen de componente luma.
Un ejemplo del procedimiento de selección de modalidad de codificación es el siguiente: por ejemplo, se determina, en primer lugar, un valor de variancia de valores de píxeles en una imagen residual predictiva después de la compensación de movimiento en un macrobloque; en el que el valor de la variancia es superior que un umbral predeterminado o mayor que un valor de variancia de valores de píxeles en el macrobloque en la imagen de entrada, se selecciona la modalidad de codificación intra; la modalidad de codificación inter se selecciona en los otros casos. Esto significa que la modalidad de codificación intra es seleccionada en el caso en que los datos de imagen del macrobloque son complejos.
Cuando se selecciona la modalidad de codificación inter, se lleva a cabo la búsqueda de movimiento para cada uno de los cuatro bloques de segmento de un macrobloque para generar vectores de movimiento y valores de diferencia de datos de imagen correspondientes a los respectivos bloques. Entonces, se calculan una magnitud de código M (MV) para un vector de movimiento en la modalidad de codificación inter 0, y un total de magnitudes de código M (4MV) para cuatro vectores de movimiento en la modalidad de codificación inter 1. Además, se calculan valores de diferencia D (MV) de datos de imagen en la modalidad de codificación inter 0 y un total de valores de diferencia D (4MV) de datos de imagen en la modalidad de codificación inter 1. Entonces, utilizando un coeficiente predeterminado a, se lleva a cabo una comparación entre valores de M(MV)+ aD(MV) y M(4MV)+ a·D(4MV); por ejemplo, cuando los primeros son menores o iguales a los últimos, se selecciona la modalidad de codificación inter 0; cuando los últimos son menores, se selecciona la modalidad de codificación inter 1.
En el caso en el que la modalidad de codificación es la modalidad de codificación inter, después de haber obtenido el vector de movimiento para cada bloque de compensación de movimiento, el compensador de movimiento 12 genera una imagen de predicción D4, utilizando la información D2 del vector de movimiento del detector de movimiento 11 y la imagen decodificada local D12 desde la memoria de trama 20. A continuación, el sustractor 13 calcula la diferencia (residuo predictivo) entre la imagen de entrada D1 y la imagen de predicción D4 para generar una imagen residual predictiva D5.
En el caso en el que la modalidad de codificación es la modalidad de codificación intra, los datos de píxeles de la imagen de predicción D4 se disponen en 0, de manera que la imagen de entrada D1 es emitida directamente como imagen residual predictiva D5.
La información indicadora de la modalidad de codificación seleccionada y el parámetro de cuantificación son emitidos como información D3 de modalidad de codificación, y la información respecto al vector de movimiento como información D2 del vector de movimiento.
Los datos de imagen de la imagen residual predictiva D5 son alimentados a la parte de transformación ortogonal (medios de transformación ortogonal) 14. La parte 14 de transformación ortogonal lleva a cabo la transformación ortogonal para cada bloque de transformación ortogonal incluido en un macrobloque de la imagen residual predictiva D5, para generar coeficientes D6 de transformación ortogonal que son datos de imagen de frecuencia. Por ejemplo, en MPEG-4, un macrobloque comprende cuatro bloques con un tamaño de 8 píxeles x 8 líneas para cada imagen de componente luma, y un macrobloque comprende un bloque de transformación ortogonal con dimensiones de 8 píxeles x 8 líneas para cada imagen de componente croma.
Las figuras 4A y 4B son diagramas que muestran la transformación ortogonal de datos de imagen. Los datos de imagen de cada bloque resultante de la división para la transformación ortogonal en la imagen residual de predicción D5 son datos de imagen de espacio y, tal como se muestra a título de ejemplo por los componentes de imagen de 8 píxeles x 8 líneas en la figura 4A, está representado por los componentes de imagen de espacio a11-a88 de 8 píxeles x 8 líneas definidas por coordenadas horizontales y coordenadas verticales. La parte 14 de transformación ortogonal lleva a cabo la transformación ortogonal de estos datos de imagen de espacio, por un procedimiento de transformación predeterminado para transformarlo en datos de imagen de frecuencia, tal como se ha mostrado en la figura 4B. Estos datos de imagen de frecuencia están representados por coeficientes de transformación ortogonal f11-f88 que son componentes de imagen de frecuencia de 8 píxeles x 8 líneas definidas por frecuencias horizontales y frecuencias verticales.
Una transformación ortogonal específica aplicable en este caso es, por ejemplo, la Transformación Discreta de Coseno (DCT). La DCT es una transformación ortogonal que utiliza los términos de coseno de la transformación de Fourier y que se utilizan frecuentemente en codificación de imágenes. La DCT sobre datos de imagen de espacio genera los coeficientes de DCT f11-f88 que son datos de imagen de frecuencia. En la DCT, por ejemplo, en el sistema de codificación MPEG-4, bloques DCT de 8 píxeles x 8 líneas, tal como los que se han mostrado en las figuras 4A, 4B son utilizados como bloques para la transformación ortogonal.
El cuantificador 15 cuantifica los coeficientes de transformación ortogonal D6 generados de esta manera por un predeterminado parámetro de cuantificación para conseguir coeficientes de transformación ortogonal cuantificada D7. El cuantificador genera también los CBP indicando si existe un coeficiente de transformación ortogonal significativo, en unidades de bloques, y un indicador COD que indica si un macrobloque contiene un coeficiente de transformación ortogonal significativo, y los emite como información complementaria de codificación D8.
Los coeficientes D7 de transformación ortogonal cuantificada y la información suplementaria de codificación D8 generados por el cuantificador 15 son sometidos a codificación de longitud variable en el codificador de longitud variable 16 que genera datos codificados D9, siendo datos comprimidos de la imagen de entrada D1. El codificador de longitud variable 16 recibe adicionalmente la entrada de la información D2 del vector de movimiento detectada por el detector de movimiento 11 y la información D3 de modalidad de codificación indicativa de la modalidad de codificación seleccionada en el detector de movimiento 11 y el parámetro de cuantificación. Esta información D2 del vector de movimiento y la información D3 de modalidad de codificación son sometidos también a codificación de longitud variable en el codificador de longitud variable 16 y los datos resultantes son multiplexados con los datos codificados D9.
En el presente aparato de codificación de imágenes, los coeficientes de transformación ortogonal cuantificados D7, generados en el cuantificador 15 son descuantificados por el descuantificador 17 para facilitar coeficientes D10 de transformación ortogonal descuantificados y son sometidos además a una transformación ortogonal inversa en la parte de transformación ortogonal inversa 18 para facilitar una imagen residual descodificada local D11. Entonces, la imagen residual descodificada local D11 y la imagen de predicción D4 son añadidas en el dispositivo de edición 19 para generar una imagen decodificada local D12. Esta imagen decodificada local D12 es almacenada en la memoria de trama 20 para ser utilizada para la compensación de movimiento de otra imagen de trama.
Un ejemplo de un procedimiento de decodificación de imágenes móviles y aparato de decodificación de imágenes móviles se describirá a continuación.
La figura 5 es un diagrama de flujo que muestra esquemáticamente un ejemplo de un procedimiento de decodificación de imágenes. El presente procedimiento de decodificación es un procedimiento de decodificación de imágenes para efectuar operaciones predeterminadas de decodificación y transformación en datos codificados D9 generados por el procedimiento de codificación de imágenes mostrado en la figura 1 para reestablecer una imagen decodificada D12 como imagen idéntica a la imagen decodificada local D12.
En el procedimiento de decodificación de imágenes mostrado en la figura 5, en primer lugar, los datos codificados D9 están sometidos a decodificación de longitud variable utilizando una tabla de decodificación de longitud variable para generar coeficientes de transformación ortogonal cuantificada D7 (etapa S201). La información D2 de vector de movimiento, información de modalidad de codificación D3, e información suplementaria de codificación D8 son decodificadas por longitud variable de manera similar con respecto a los datos codificados D9 mediante utilización de la tabla de decodificación de longitud variable.
De manera específica, en primer lugar, se establece una tabla de decodificación de longitud variable como tabla a aplicar a los datos codificados D9, y los datos codificados son decodificados por longitud variable por utilización de la tabla de decodificación de longitud variable para generar símbolos de codificación de los elementos de información respectivos.
A continuación, los coeficientes de transformación ortogonal cuantificados D7 son sometidos a una operación de descuantificación para generar coeficientes de transformación ortogonal descuantificados D10 (etapa S202) y se lleva a cabo, además, una operación de transformación ortogonal inversa para generar una imagen residual decodificada local D11 (etapa S203). A continuación, utilizando la imagen residual decodificada local D11 y una trama decodificada previamente, se lleva a cabo la compensación de movimiento aplicando una modalidad de codificación indicada por la información de modalidad de codificación D3 para reestablecer la imagen decodificada D12 (S204).
La figura 6 es una diagrama de bloques que muestra esquemáticamente una configuración de un ejemplo de un aparato de decodificación de imágenes móviles.
Los datos codificados D9 suministrados como objetivo de decodificación son alimentados al decodificador de longitud variable 21 que lleva a cabo la decodificación de longitud variable utilizando una tabla de decodificación de longitud variable predeterminada para generar símbolos de decodificación del vector de información de movimiento D2, información de modalidad de codificación D3, coeficientes de la información ortogonal cuantificados D7 y información suplementaria de codificación D8. De manera específica, para datos codificados comprimidos D9, el decodificador de longitud variable 21 recupera cada uno de los datos incluidos para cada macrobloque en los datos codificados D9 de un flujo de bits, mientras empieza desde la cabecera de la imagen de trama y decodifica por longitud variable los datos para generar la información de vector de movimiento D2, información de modalidad de codificación D3, coeficientes de transformación ortogonal cuantificada D7, e información suplementaria de codificación D8. La tabla de decodificación de longitud variable utilizada para la decodificación por longitud variable es conmutada a otra, de acuerdo con cada símbolo como lo requiera la ocasión, tal como se ha descrito anteriormente.
Los coeficientes de transformación ortogonal cuantificados D7 son sometidos a descuantificación y a transformación ortogonal inversa en el descuantificador 22 y transformador ortogonal inverso 23. Esto tiene como resultado la generación de una imagen residual decodificada local D11. Esta imagen residual decodificada local D11 es la imagen que corresponde a la imagen residual de predicción D5 antes de la codificación, pero una parte de la información se pierde por los procesos de cuantificación y descuantificación.
Por otra parte, la información D2 del vector de movimiento y la información D3 de modalidad de codificación son alimentadas al compensador de movimiento 24. El compensador de movimiento 24 lleva a cabo la compensación de movimiento para la imagen por la modalidad de codificación indicada por la información de modalidad de codificación D3 para generar una imagen de predicción D4, utilizando la información de vector de movimiento D2 del decodificador de longitud variable 21 y una imagen decodificada almacenada en la memoria de tramas 25. A continuación, el dispositivo de adición 26 añade la imagen residual decodificada local D11 y la imagen de predicción D4 para enviar una imagen de trama recuperada como imagen decodificada D12.
El documento EP 0905987 A2 da a conocer de codificación de una imagen con eficiencia de energía.
El documento US 5 122 875 A2 da a conocer la codificación y decodificación de un HDTV.
El documento EP 05 424 74 A2 da a conocer la utilización de diferentes codificadores para captar la información relativa a la codificación.
El documento US6101276 da a conocer el almacenamiento de información con respecto a al forma en que cada macrobloque está codificado en el Modelo de Bloques Codificados.
Descripción de la invención
En los sistemas convencionales de codificación de imágenes en movimiento habituales, tal como se ha descrito en lo anterior, la información de modelo de bloque codificado (CBP) que indica si se encuentran presentes datos de imagen significativos, fue transmitida para cada bloque predeterminado de un macrobloque, a efectos de permitir la omisión de transmisión de datos de imagen de unidades de bloques, incrementando de esta manera la eficiencia de la codificación. La información de modelo de bloque codificado ha sido facilitada utilizando diferentes códigos de entropía, entre señales luma y señales croma, para aplicar códigos con una entropía más adecuada de acuerdo con características de las señales respectivas, incrementando de esta manera la eficiencia de la codificación.
La información de modelo de bloque codificado que indica datos de imagen significativos de cada bloque, se puede decir que indica la probabilidad de que existan datos de imagen significativos en el macrobloque, o un modelo de aspecto en cada bloque con datos de imagen significativos. Esta información difiere ampliamente en su propiedad dependiendo de las condiciones de codificación y de las propiedades de la imagen, incluso entre señales del mismo tipo, señales luma, o señales croma.
Por ejemplo, la codificación de la imagen móvil comporta la cuantificación de coeficientes de transformación ortogonal por el parámetro de cuantificación y, en este proceso, una transacción de disminución de la cantidad de datos de imagen es llevada a cabo por la disposición a 0 para coeficientes de transformación ortogonal de valores pequeños con poco efecto en la calidad de la imagen decodificada, pudiendo omitirlos.
En este momento en el que el parámetro de cuantificación adopta un valor grande, se hace la cuantificación más grosera a efectos de omitir muchos coeficiente de transformación ortogonal a los que se ha asignado 0, disminuyendo de esta manera el número de bloques con datos de imagen significativos. En este momento, se puede llevar a cabo codificación eficiente por codificación de fuente de información para asignar códigos de reducidas longitudes de código a la información de modelo de bloques codificados para pocos bloques con datos de imagen significativos.
En el caso en el que el parámetro de cuantificación adopta un valor pequeño, por intra parte, se hace una cuantificación más precisa a efectos de disminuir el número de coeficientes de transformación ortogonal a los que se ha asignado 0 a omitir, de manera que hay muchos bloques con datos de imagen significativos. En este caso, se puede llevar a cabo una codificación eficiente por codificación de la fuente de información para asignar códigos de longitudes de código más largas a la información de modelo de bloques codificados para muchos bloques con datos de imagen significativos.
Por ejemplo, en la codificación de imágenes con movimiento, el proceso de codificación de predicción intertrama compensada de movimiento tiende a hacer una predicción no satisfactoria y a proporcionar señales grandes de imágenes de diferencia en un área en la que el movimiento es significativo y complejo en una imagen, mientras que tiende a hacer una predicción satisfactoria y a proporcionar señales pequeñas de imagen de diferencia en un área en la que el movimiento es pequeño y simple en la imagen.
En este momento, hay muchos bloques con datos de imagen significativos en el caso de señales grandes de imagen de diferencia, mientras que hay pocos bloques con datos de imagen significativos en el caso de señales pequeñas de imagen de diferencia. Si la información de modelo de bloques codificados es codificada por medios de codificación de una fuente de información incluso en estos casos, será difícil conseguir una codificación eficiente en ambos casos.
Con respecto al vector de movimiento, es práctica habitual llevar a cabo codificación de la fuente de información de un vector de movimiento de diferencia, que es una diferencia entre un vector de movimiento de predicción, resultado de una predicción de un valor de vector de movimiento en un bloque como objetivo para codificación para valores de vectores de movimientos en bloques adyacentes y un vector de movimiento real. Las magnitudes de vectores de movimiento de diferencia tienden a converger en 0 en el caso en el que el movimiento es monotónico en imágenes adyacentes, mientras que las magnitudes de vectores de movimientos de diferencia tienden a no converger en 0, en el caso en el que el movimiento es intenso en imágenes adyacentes. Por lo tanto, en estos casos, si los vectores de movimiento de diferencia son codificados por medios de codificación de una fuente de información, también será difícil conseguir una codificación eficiente en ambos casos.
En cuanto a las modalidades de codificación de macrobloques, las características de distribución de probabilidad de modalidades de codificación que se producen son significativamente diferentes entre los casos en los que el movimiento y textura son complejos en imágenes adyacentes y en los casos en los que son monotonos y, por lo tanto, si las modalidades de codificación están codificadas por un medios de codificación de fuente de información, será también difícil conseguir una codificación eficiente en ambos casos.
Con respecto a los coeficientes de transformación ortogonal cuantificados, las características de distribución de coeficientes que se presentan en el bloque son también diferentes significativamente, dependiendo de las condiciones de codificación y de las características de la imagen. Por ejemplo, en el caso en el que el parámetro de cuantificación adopta un valor pequeño, se hace una cuantificación más precisa y, por lo tanto, tienden a aparecer coeficientes de transformación ortogonal cuantificados de valores grandes; en el caso en que el parámetro de cuantificación adopta un valor grande, tienden a ocurrir fácilmente coeficientes de transformación ortogonal cuantificados de pequeños valores. En estos casos, si los coeficientes de transformación ortogonal cuantificados son codificados por un medio de codificación de la fuente de información, será también difícil conseguir codificación eficiente en ambos casos.
Los coeficientes de transformación ortogonal cuantificados se describirán más adelante de manera más detallada. En los sistemas convencionales de codificación de imágenes habituales, tal como se ha descrito en lo anterior, los coeficientes de transformación ortogonales cuantificados han sido sometidos adicionalmente a codificación de fuente de información o codificación de longitud variable, a efectos de disminuir el volumen de información necesario para la transmisión de los coeficientes de transformación ortogonales, incrementando de esta manera la eficiencia de la codificación.
Con respecto a los coeficientes de transformación ortogonal, la característica de qué tipo de información tiende a presentarse varía dependiendo de las propiedades de la imagen. Por ejemplo, dependiendo de si se ha aplicado la modalidad de codificación intra o la modalidad de codificación inter en la codificación de imágenes en movimiento, la imagen sometida a transformación ortogonal difiere, o bien la propia imagen, o la imagen residual después de la compensación de movimiento, de manera que las propiedades de los coeficientes de transformación ortogonal pueden ser asimismo significativamente diferentes. Por esta razón, los sistemas habituales de codificación de imágenes en movimiento están configurados para preparar tablas de codificación de longitud variable especializadas para los coeficientes de transformación ortogonal en las respectivas modalidades de codificación, a efectos de implementar la codificación de fuente de información adecuada para las propiedades de los coeficientes de transformación ortogonal en las respectivas modalidades.
No obstante, los coeficientes de transformación ortogonal cambian sus propiedades respecto al tipo de información que tiende a presentarse, dependiendo también de situaciones de los propios coeficientes de transformación ortogonal a codificar.
Los coeficientes de transformación ortogonal son los obtenidos como resultado de una transformación para transformar señales de imagen en señales discretas en el dominio de frecuencia espacial por una transformación ortogonal. Por lo tanto, una imagen natural tiene una elevada correlación entre píxeles adyacentes y proporciona señales más fuertes en el dominio de frecuencia espacial bajo, y por lo tanto, los coeficientes de transformación ortogonal resultantes de la transformación ortogonal tienen, en general, características tales que es probable que aparezcan valores de coeficientes grandes de manera densa en el dominio de frecuencia baja, mientras que en el dominio de frecuencia alta es improbable que se presenten valores de coeficientes no cero, y raramente adoptan valores grandes. Además, en los sistemas de codificación de imágenes habituales, la cuantificación antes mencionada comporta una transacción de reducir a cero los coeficientes de transformación ortogonal de valores pequeños en el dominio de frecuencias elevadas. Esta es la transacción para aumentar la eficiencia de la codificación por disminución de señales con menos efecto en la visión humana, pero esta transacción aumenta la tendencia a que sea improbable la aparición de valores de coeficientes en el dominio de alta frecuencia.
Los coeficientes de transformación ortogonal no se encuentran completamente fuera de correlación en cuanto a la aparición de cada coeficiente en imágenes naturales; por ejemplo, en el caso en el que las señales de imágenes contienen señales con valores grandes de píxeles, muchos coeficientes transformados ortogonalmente de aquéllos adoptarán valores grandes. Inversamente, si dos coeficientes de transformación ortogonales corresponden a sus respectivas regiones de frecuencia separadas entre sí, la correlación será baja entre los coeficientes, si bien estará también afectada por la diferencia antes mencionada en las propiedades que dependen de los dominios de frecuencia.
Si bien los coeficientes de transformación ortogonal varían notablemente en sus propiedades dependiendo de las regiones de frecuencia a las que pertenece, los sistemas habituales de codificación de imágenes adoptan la codificación de fuente de información uniforme a pesar de los cambios de propiedades de los mismos, lo que presenta el problema de que no se conseguía una codificación eficiente de la fuente de información.
Tal como se ha descrito en lo anterior, la codificación de imagen móvil convencional tenía el problema de que la codificación de la fuente de información no se llevaba a cabo de manera eficiente porque las propiedades de la información relacionada con la codificación variaban dependiendo de las condiciones de la codificación y de las propiedades de la imagen.
La presente invención ha sido conseguida a efectos de solucionar los problemas descritos anteriormente, y un objetivo de la presente invención consiste en dar a conocer un aparato de codificación de imágenes, un aparato de decodificación de imágenes, un procedimiento de codificación de imágenes, un procedimiento de decodificación de imágenes, un programa de codificación de imágenes, y un programa de decodificación de imágenes capaz de llevar a cabo de manera eficiente la codificación de la fuente de información de la información relativa a la codificación, de acuerdo con las condiciones de codificación y las propiedades de la imagen.
A efectos de conseguir el objetivo anterior, un aparato de codificación de imágenes de la presente invención es un aparato de codificación de imágenes de acuerdo con la reivindicación 1.
A efectos de conseguir el objetivo antes mencionado, un procedimiento de codificación de imágenes, según la presente invención es un procedimiento de codificación de imágenes, de acuerdo con la reivindicación 10.
A efectos de conseguir el objeto anterior, un programa de codificación de imágenes, según la presente invención, es un programa de codificación de imágenes según la reivindicación 11.
Otras realizaciones de la presente invención se describen en las reivindicaciones dependientes.
El aparato de codificación de imágenes, procedimiento de codificación de imágenes, y programa de codificación de imágenes que se han descrito en lo anterior, están configurados para preparar una serie de procedimientos para llevar a cabo la codificación de la fuente de información de una información relacionada con el código y seleccionar un procedimiento a utilizar en la codificación de la fuente de información de la información relacionada con la codificación en un bloque, mediante estos procedimientos. Por lo tanto, el procedimiento a utilizar en la codificación de la fuente de información que es adecuado para las propiedades de cada símbolo de codificación variable, tal como se ha descrito anteriormente, puede ser seleccionado a partir de una serie de procedimientos. Como resultado, resulta factible llevar a cabo de manera eficiente la codificación de la fuente de información del símbolo de codificación, de acuerdo con las condiciones de codificación y las propiedades de la imagen.
El aparato de decodificación de imágenes anteriormente descrito, procedimiento de decodificación de imágenes, y programa de decodificación de imágenes están configurados para preparar una serie de procedimientos para la decodificación de la fuente de información de una información relacionada con el código, y seleccionar un procedimiento a utilizar en la decodificación de la fuente de información de la información relacionada con el código de un bloque, mediante estos procedimientos. Por lo tanto, es factible decodificar correctamente los datos codificados, codificados por el aparato de codificación de imágenes antes mencionado, procedimiento de codificación de imágenes, y programa de codificación de imágenes.
El aparato de codificación de imágenes de la presente invención puede ser configurado también de manera que la parte de codificación tiene una función de llevar a cabo codificación de compresión de la información del modelo de bloques codificados conteniendo un indicador de existencia de coeficiente no cero, que es indicador de si existe un coeficiente no cero, dicho coeficiente de transformación cuantificado, para cada bloque de transformación mencionado en dicho macrobloque, y de manera que, en caso de codificar la información de modelo de bloques codificados en el macrobloque objetivo de codificación, el proveedor del procedimiento de codificación proporciona un proceso de codificación de longitud de código decreciente al hacerse mayor la correlación espacial de la información de modelo de bloque codificado entre el macrobloque objetivo de codificación y un macrobloque adyacente al mismo.
En el aparato de decodificación de imágenes correspondiente, la parte de decodificación tiene una función de decodificación, para cada uno de los bloques de transformación de dicho macrobloque, de información de modelo de bloques codificados conteniendo un indicador de existencia de coeficiente no cero, indicador de si existe un coeficiente no 0, dicho coeficiente de transformación cuantificado y, en el caso de decodificación de la información de modelo de bloques codificados en el macrobloque objetivo de codificación, el proveedor del proceso de decodificación proporciona un proceso de decodificación que corresponde a un proceso de codificación facilitado para disminuir la longitud de código al resultar más elevada la correlación espacial de la información de modelo de bloques codificados entre el macrobloque objetivo de codificación y un macrobloque adyacente al mismo.
El aparato de codificación de imágenes de la presente invención puede estar configurado también de manera que, en el caso de que un tipo de macrobloque en un macrobloque adyacente al macrobloque objetivo de codificación es un macrobloque que indica división del macrobloque objetivo de codificación en un número máximo de bloques, el proveedor del proceso de codificación presupone que todos los bloques de codificación del macrobloque objetivo de codificación tienen la información de modelo de bloques codificados que indica la inclusión de un coeficiente de transmisión cuantificado no 0 y, en caso de codificar la información de modelo de bloques codificados en el macrobloque objetivo de codificación, el proveedor del proceso de codificación proporciona un proceso de codificación de longitud de código decreciente, mientras la correlación espacial de la información de modelo de bloques codificados se hace mayor entre el macrobloque objetivo de codificación y el macrobloque adyacente al mismo.
En el aparato de decodificación de imágenes correspondiente, en el que un tipo de macrobloque en el macrobloque adyacente al macrobloque objetivo de codificación, es uno que indica división del macrobloque objetivo de codificación en un número máximo de bloques, el proveedor del procedimiento de decodificación supone que todos los bloques de codificación en el macrobloque objetivo de codificación tienen la información de modelo de bloque codificado indicando la inclusión de un coeficiente de transformación cuantificado distinto de cero, y, en ocasión de decodificar la información de modelo de bloque codificado en el macrobloque objetivo de codificación, el proveedor del proceso de decodificación proporciona un procedimiento de decodificación que corresponde a un procedimiento de codificación proporcionado para disminuir la longitud del código al hacerse mayor la correlación espacial de la información de modelo de bloque codificado entre el macrobloque objetivo de codificación y el macrobloque adyacente al mismo.
Además, el aparato de codificación de imágenes de la presente invención puede ser configurado también de forma que, en ocasión de codificación de la información de modelo de bloque codificado en el macrobloque objetivo de codificación, en el caso en que las dimensiones del parámetro de cuantificación en el macrobloque objetivo de codificación es superior que un umbral predeterminado, el proveedor del procedimiento de codificación proporciona un procedimiento de codificación de ajuste de longitud de código más corto para la información de modelo de bloque codificado indicando un número menor de bloques que contienen un coeficiente de transformación cuantificado distinto de cero.
En el aparato de decodificación de imágenes correspondiente, en ocasión de decodificación de la información de modelo de bloque codificado en el macrobloque objetivo de codificación, en el caso de que las dimensiones del parámetro de cuantificación en el macrobloque objetivo de codificación son superiores a un umbral predeterminado, el proveedor de procedimiento de decodificación proporciona un procedimiento de decodificación correspondiente a un procedimiento de codificación proporcionado a efectos de ajustar una longitud de código más corta para la información de modelo de bloque codificado indicando un menor número de bloques incluyendo un coeficiente de transformación cuantificado distinto de cero.
El aparato de codificación de imágenes de la presente invención puede ser también configurado de manera que, en ocasión de codificación de la información de modelo de bloques codificados en el macrobloque objetivo de codificación, el proveedor de procedimiento de codificación proporciona un procedimiento de codificación de ajuste de una desviación más pequeña de longitudes de código, con incremento del número de bloques en un macrobloque adyacente al macrobloque objetivo de codificación.
En el aparato de decodificación de imágenes correspondiente, en ocasión de decodificación de la información de modelo de bloque codificado en el macrobloque objetivo de codificación, el proveedor del procedimiento de decodificación proporciona un procedimiento de decodificación que corresponde a un procedimiento de codificación proporcionado a efectos de ajustar una desviación más pequeña de longitudes de código con incremento del número de bloques en un macrobloque adyacente al macrobloque objetivo de codificación.
El aparato de codificación de imágenes de la presente invención puede ser en sí mismo configurado de manera que, en ocasión de codificación de los coeficientes de transformación cuantificados en el macrobloque objetivo de codificación, el proveedor del procedimiento de codificación proporciona un procedimiento de codificación de ajuste de una desviación más pequeña de longitudes de código con incremento de los valores absolutos de los coeficientes de transformación cuantificados en un macrobloque adyacente al macrobloque objetivo de codificación.
En el aparato de decodificación de imágenes correspondiente, en ocasión de la decodificación de los coeficientes de transformación cuantificados en el macrobloque objetivo de codificación, el proveedor del procedimiento de decodificación proporciona un procedimiento de decodificación que corresponde a un procedimiento de codificación proporcionado a efectos de ajustar una desviación más pequeña de longitudes de código con incremento de valores absolutos de los coeficientes de transformación cuantificados en un macrobloque adyacente al macrobloque objetivo de codificación.
El aparato de codificación de imágenes de la presente invención puede ser configurado también de manera que, en ocasión de codificación del tipo de macrobloque en el macrobloque objetivo de codificación, el proveedor de procedimiento de codificación proporciona un procedimiento de codificación de disminución de la longitud de código al hacerse mayor la correlación espacial del tipo de macrobloque entre el macrobloque objetivo de codificación y un macrobloque adyacente al mismo.
En el aparato de decodificación de imágenes correspondiente, en ocasión de decodificación del tipo de macrobloque en el macrobloque objetivo de codificación, el proveedor del procedimiento de decodificación proporciona un procedimiento de decodificación que corresponde a un procedimiento de codificación proporcionado a efectos de disminuir la longitud de código al hacerse mayor la correlación espacial del tipo de macrobloque entre el macrobloque objetivo de codificación y un macrobloque adyacente al mismo.
El aparato de codificación de imágenes de la presente invención puede estar configurado también de manera que en ocasión de la codificación del tipo de macrobloque en el macrobloque objetivo de codificación, el proveedor del procedimiento de codificación proporciona un procedimiento de codificación de ajuste de longitud de código más corta para un tipo de macrobloque que incluye un número más grande de bloques.
En el aparato de decodificación de imágenes correspondiente, en ocasión de decodificación del tipo de macrobloque en el macrobloque objetivo de codificación, el proveedor del procedimiento de decodificación proporciona un procedimiento de decodificación que corresponde a un procedimiento de codificación proporcionado para ajustar una longitud de código más corta para un tipo de macrobloque incluyendo un número más grande bloques.
El aparato de codificación de imágenes de la presente invención puede estar configurado también de manera que la parte de codificación tiene una función de codificación de una serie de coeficientes de transformación cuantificados diferentes de cero, antes mencionados en el bloque y, de manera que, en ocasión de codificación de la serie de dichos coeficientes de transformación cuantificados distintos de cero en el macrobloque objetivo de codificación, en el que el número de coeficientes de transformación cuantificados distintos de cero en un bloque adyacente al bloque objetivo de codificación es menor que un umbral predeterminado, el proveedor del procedimiento de codificación proporciona un procedimiento de codificación de disminución de la longitud de código con disminución del número de dichos coeficientes de transformación cuantificados distintos de cero.
En el aparato de decodificación de imágenes correspondiente, la parte de decodificación tiene la función de decodificación de una serie de dichos coeficientes de transformación cuantificados distintos de cero, y, en ocasión de decodificación de la serie de dichos coeficientes de transformación cuantificados distintos de cero en el macrobloque objetivo de codificación, en el caso en el que la serie de dichos coeficientes de transformación cuantificados distintos de cero en un bloque adyacente a bloque objetivo de codificación es menor que el umbral predeterminado, el proveedor del procedimiento de decodificación proporciona un procedimiento de decodificación que corresponde a un procedimiento de codificación proporcionado a efectos de disminuir la longitud de código con disminución en la serie de coeficientes de transformación cuantificados distintos de cero.
El aparato de codificación de imágenes de la presente invención puede estar también configurado de manera que la memoria de símbolos codificada tiene una función de mantener el valor de un vector de movimiento de diferencia siendo una diferencia entre un vector de movimiento de predicción con respecto a un bloque adyacente y un vector de movimiento real, y ello de forma que en ocasión de codificación de la información del modelo de bloque en el macrobloque objetivo de codificación, en el caso en el que la magnitud del valor del vector de movimiento de diferencia en un macrobloque adyacente con respecto al macrobloque objetivo de codificación es superior que un umbral predeterminado, el proveedor del procedimiento de codificación proporciona un procedimiento de codificación de ajuste de una longitud de código más corta para información del modelo de bloque codificado indicando un número mayor de bloques que contienen un coeficiente de transformación cuantificado distinto de cero.
En el aparato de decodificación de imágenes correspondiente, la memoria de símbolos decodificados tiene la función de mantener un valor de vector de movimiento de diferencia, siendo una diferencia entre un vector de movimiento de predicción con respecto a un bloque adyacente y un vector de movimiento real, y, en ocasión de decodificación de la información de un modelo de bloque codificado en el macrobloque objetivo de codificación, en el caso en el que la magnitud de valor del vector de movimiento de diferencia en un macrobloque adyacente con respecto al macrobloque objetivo de codificación es mayor que un umbral predeterminado, el proveedor del procedimiento de decodificación proporciona un procedimiento de decodificación correspondiente a un procedimiento de codificación proporcionado para disponer una longitud de código más corta para información de modelo de bloque codificado indicando un número superior de bloques que contienen un coeficiente de transformación cuantificado distinto de cero.
El aparato de codificación de imágenes de la presente invención puede ser también configurado de manera que la memoria de símbolos codificados tiene una función de mantenimiento de un valor de vector de movimiento de diferencia, siendo una diferencia entre un vector de movimiento de predicción con respecto a un bloque adyacente y un vector real, y ello, de manera que en ocasión de codificación del valor del vector de movimiento de diferencia en el macrobloque objetivo de codificación, en el caso en que la magnitud del valor del vector de movimiento de diferencia en un bloque adyacente con respecto al bloque objetivo de codificación es menor que un umbral predeterminado, el proveedor del procedimiento de codificación proporciona un proceso de codificación de ajuste de una longitud de código más corta para un valor del vector de movimiento de diferencia más pequeño.
En el aparato de decodificación de imágenes correspondiente, la memoria de símbolos decodificados tiene la función de mantener un valor de vector de movimiento de diferencia, siendo una diferencia entre un vector de movimiento de predicción con respecto a un bloque adyacente y un vector de movimiento real, y, en ocasión de decodificación, el valor del vector de movimiento de diferencia en el macrobloque objetivo, cuando la magnitud del valor del vector de movimiento de diferencia en un bloque adyacente con respecto al bloque objetivo de codificación es menor que un umbral predeterminado, el proveedor del proceso de decodificación proporciona un proceso de decodificación correspondiente a un proceso de codificación proporcionado a efectos de ajustar una longitud de código más corta para un valor de vector de movimiento de diferencia más pequeño.
El aparato de codificación de imágenes de la presente invención puede ser también configurado de manera que la memoria de símbolos codificados tiene una función de mantenimiento de un valor de vector de movimiento de diferencia, siendo una diferencia entre un vector de movimiento de predicción con respecto a un bloque adyacente y un vector real, y ello, de manera que en ocasión de codificación del tipo de macrobloque en el macrobloque objetivo de codificación, en el caso en que la magnitud del valor del vector de movimiento de diferencia en un bloque adyacente con respecto al bloque objetivo decodificación es mayor que un umbral predeterminado, el proveedor del procedimiento de codificación proporciona un proceso de codificación de ajuste de una longitud de código más corta para un tipo de macrobloque incluyendo un número de bloques más grande.
En el aparato de decodificación de imágenes correspondiente, la memoria de símbolos decodificados tiene la función de mantener un valor de vector de movimiento de diferencia, siendo una diferencia entre un vector de movimiento de predicción con respecto a un bloque adyacente y un vector de movimiento real, y, en ocasión de decodificación del tipo de macrobloque en el macrobloque objetivo de codificación, en el caso de que la magnitud del valor del vector de movimiento de diferencia en un bloque adyacente al bloque objetivo de codificación es superior a un umbral predeterminado, el proveedor del procedimiento de decodificación proporciona un procedimiento de decodificación correspondiente a un procedimiento de codificación proporcionado a efectos de ajustar una longitud de código más corta para un tipo de macrobloque incluyendo un número más grande de bloques.
Breve descripción de los dibujos
La figura 1 es un diagrama de flujo que muestra esquemáticamente un ejemplo de la técnica de codificación de imágenes en movimiento, de acuerdo con la técnica anterior.
La figura 2 es un diagrama de bloques que muestra esquemáticamente un ejemplo del aparato de codificación de imágenes en movimiento, de acuerdo con la técnica anterior.
Las figuras 3A-3C son diagramas que muestran un ejemplo de tipos de modalidades de codificación de macrobloque, de acuerdo con la técnica anterior.
Las figuras 4A y 4B son diagramas que muestran un ejemplo de la transformación ortogonal de acuerdo con la técnica anterior.
La figura 5 es un diagrama de flujo que muestra esquemáticamente un ejemplo de la técnica de decodificación de imágenes en movimiento, de acuerdo con la técnica anterior.
La figura 6 es un diagrama de bloques que muestra esquemáticamente un ejemplo del aparato de decodificación de imágenes móviles, de acuerdo con la técnica anterior.
Las figuras 7A y 7B son diagramas que muestran un ejemplo de distribución de coeficientes de transformación ortogonal cuantificados diferentes de cero.
La figura 8 es un diagrama que muestra relaciones entre bloques entre un macrobloque y bloques adyacentes.
Las figuras 9A y 9B son diagramas que muestran un ejemplo de una tabla de mapa que indica una relación entre información modelo de bloque codificado de señales luma y valores índice, y un ejemplo de tabla de codificación de longitud variable indicando una relación entre valores índice y códigos de longitud variable.
Las figuras 10A y 10B son diagramas que muestran un ejemplo de aplicación en el que se aplica conmutación entre tablas de mapas, de acuerdo con la presente invención, a la información de modelo de bloque codificado de señales luma.
Las figuras 11A y 11B son diagramas que muestran un ejemplo de una tabla de mapa que indica una relación entre la información de modelo de bloque codificado de señales croma y valores índice, y un ejemplo de una tabla de codificación de longitud variable indicativa de una relación entre los valores índice y códigos de longitud variable.
Las figuras 12A y 12B son diagramas que muestran un ejemplo de aplicación en el que se ha aplicado conmutación entre tablas de mapas, de acuerdo con la presente invención, a la información de modelo de bloque codificado de señales croma.
La figura 13 es un diagrama de bloques que muestra esquemáticamente un ejemplo de codificador de longitud variable, de acuerdo con la presente invención.
La figura 14 es un diagrama de bloques que muestra esquemáticamente un ejemplo de decodificador de longitud variable, de acuerdo con la presente invención.
Las figuras 15A y 15B son diagramas que muestran un ejemplo de localizaciones de bloques utilizadas en la generación de contexto de la información modelo de bloque codificado, de acuerdo con la presente invención.
Las figuras 16A y 16B son diagramas que muestran esquemáticamente configuraciones de macrobloques e información de bloque codificado en el sistema de codificación H.26L.
Las figuras 17A y 17B son diagramas que muestran relaciones entre un macrobloque y bloques adyacentes, en el que la presente invención es aplicada en el sistema de codificación H.26L.
Las figuras 18A-18D son diagramas que muestran un ejemplo de aplicación en el que se ha aplicado conmutación entre tablas de mapas, de acuerdo con la presente invención, a la información modelo de bloque codificado en el sistema de codificación H.26L.
La figura 19 es un diagrama que muestra un ejemplo de aplicación en el que se ha aplicado conmutación entre tablas de mapas, de acuerdo con la presente invención, a la información de modelo de bloque codificado de señales croma en el sistema de codificación H.26L.
Las figuras 20A y 20B son diagramas que muestran un ejemplo de distribución de probabilidades de que tengan lugar respectivos símbolos de información de modelo de bloque codificado.
Las figuras 21A-21C son diagramas que muestran un ejemplo de una serie de tablas de codificación de longitud variable con diferentes características.
Las figuras 22A-22D son diagramas que muestran esquemáticamente un procedimiento de codificación de coeficientes de transformación ortogonal cuantificados.
La figura 23 es un diagrama que muestra una relación de posición entre un macrobloque objetivo de codificación y macrobloques adyacentes.
Las figuras 24A-24J son diagramas que muestran esquemáticamente otro ejemplo de tipos de modalidades de codificación de macrobloque.
La figura 25 es un diagrama que muestra un ejemplo de definición de puntos para las respectivas modalidades de codificación de macrobloque.
Las figuras 26A-26B son diagramas que muestran un ejemplo de una tabla de mapas que indica una relación entre modalidades de codificación de macrobloque y valores índice, y un ejemplo de tabla de codificación de longitud variable indicativa de una relación entre valores índice y códigos de longitud variable.
La figura 27 es un diagrama que muestra otro ejemplo de definición de puntos para las modalidades de codificación del macrobloque.
Las figuras 28A y 28B son diagramas que muestran otro ejemplo de una tabla de mapas que indica una relación entre modalidades de codificación de macrobloque y valores índice, y otro ejemplo de tabla de codificación de longitud variable indicativa de una relación entre valores índice y códigos de longitud variable.
La figura 29A es un diagrama que muestra esquemáticamente una configuración de un sistema de transmisión de imágenes.
La figura 29B es un diagrama que muestra esquemáticamente una configuración de un sistema de almacenamiento de imágenes.
La figura 29C es un diagrama que muestra esquemáticamente una configuración de un sistema de reproducción de imágenes.
La figura 30 es un diagrama de bloques que muestra esquemáticamente un ejemplo del codificador de longitud variable, de acuerdo con la presente invención.
La figura 31 es un diagrama que muestra una tabla de mapas MT(CX), en la que CX adopta valores de 0 a 7.
La figura 32 es un diagrama de bloques que muestra esquemáticamente un ejemplo del decodificador de longitud variable, de acuerdo con la presente invención.
La figura 33 es un diagrama que muestra una relación de posición entre un macrobloque objetivo de codificación y macrobloques adyacentes.
Las figuras 34A y 34B son diagramas que muestran un ejemplo de una tabla de mapas indicativa de una relación entre valores de coeficientes de transformación ortogonal cuantificados distintos de cero y valores índice y, un ejemplo de tabla de codificación de longitud variable indicativa de una relación entre valores índice y longitudes variables.
Las figuras 35A y 35B son diagramas que muestran un ejemplo de cambio de la tabla de mapas, de acuerdo con la presente invención, y un ejemplo de una cadena de código utilizado la tabla de mapas después del cambio.
La figura 36 es un diagrama que muestra un ejemplo de la tabla de mapa, en la que números consecutivos con el valor absoluto de valor de nivel de 1 se han asignado en la tabla de código.
Las figuras 37A-37C son diagramas que muestran otro ejemplo de una serie de tablas de codificación de longitud variable con diferentes características.
Las figuras 38A-38C son diagramas que muestran tablas de probabilidad.
Mejores formas de llevar a cabo la invención
(Primera Realización)
Formas de realización del procedimiento de codificación de imágenes, procedimiento de decodificación de imágenes, aparato de codificación de imágenes, aparato de decodificación de imágenes, sistema de transmisión de imágenes, sistema de almacenamiento de imágenes, y sistema de reproducción de imágenes de acuerdo con la primera realización de la presente invención, se describirán a continuación de forma detallada con referencia a los dibujos. Los mismos elementos serán designados por los mismos símbolos de referencia en toda la descripción de los dibujos, sin descripción redundante de los mismos. Se hace observar también que las relaciones dimensionales en los dibujos no corresponden siempre a las de la descripción. En la descripción siguiente, la realización se describirá bajo la suposición que una imagen de trama de entrada alimentada como objetivo de codificación es una imagen móvil que consiste en imágenes de tramas de series de tiempo.
El procedimiento de codificación de longitud variable del CBP en la codificación de información suplementaria D8, y la situación de codificación adecuada de la misma, que son las características de la primera realización de la presente invención, se describirán a continuación con ejemplos específicos de las mismas, utilizando el sistema de codificación MPEG-4 como ejemplo. Se observará que el procedimiento de codificación y la situación de codificación que se describen a continuación, se pueden aplicar también de manera similar al procedimiento de codificación de imágenes y al aparato de codificación de imágenes mostrados en las figuras 1 y 2 y al procedimiento de decodificación de imágenes y al aparato de decodificación de imágenes mostrados en las figuras 5 y 6. Se hace observar también que el sistema de codificación y el sistema de decodificación específicos no se deben limitar al siguiente sistema de codificación MPEG-4.
En MPEG-4, el CBP es un indicador que indica si existe un componente AC distinto de cero entre los coeficientes de transformación ortogonal en cada bloque en un macrobloque para el que se ha seleccionado la modalidad de codificación intra. También, es un indicador que indica si existe un componente DC distinto de cero o un componente AC distinto de cero entre unos coeficientes de transformación ortogonal en cada bloque en un macrobloque para el que se ha seleccionado la modalidad de codificación inter.
A este respecto, un área de coeficientes de transformación ortogonal distintos de cero depende significativamente de las características espaciales de la imagen y del parámetro de cuantificación. Las figuras 7A y 7B son diagramas esquemáticos que muestran la relación entre las características espaciales de imagen y coeficientes de transformación ortogonal distintos de cero. Tal como se ha mostrado en las figuras 7A y 7B, existe menos movimiento en la parte de fondo en la pantalla en la que es relativamente fácil realizar una predicción compensada por el movimiento correcta; por lo tanto, es improbable que aparezcan coeficientes de transformación ortogonales distintos de cero. Inversamente, la parte de figura móvil en la pantalla contiene movimiento real que provoca considerable cambio de textura, de manera que aparecen muchos residuos por la predicción compensada de movimiento. Por esta razón, es probable que aparezcan en estas áreas coeficientes de transformación ortogonal distintos de cero. Es decir, los coeficientes de transformación ortogonal distintos de cero son de aparición improbable en áreas con pequeños cambios de textura y movimiento, mientras que los coeficientes de transformación ortogonales distintos de cero son de aparición probable en áreas con grandes cambios de textura y movimiento. Particularmente, en el caso de imágenes naturales y similares, ocurre frecuentemente que las tendencias de cambio de forma y movimiento son similares en áreas adyacentes.
En este caso, tal como se ha mostrado en la figura 8, se supondrá que los bloques de un macrobloque objetivo de codificación en una imagen de componente luma será el bloque A, bloque B, bloque C, y bloque D en el orden de escaneado, y los bloques inferiores de un macrobloque adyacente por encima, serán bloque E y bloque F. Además, los bloques de la derecha de un macrobloque adyacente a la izquierda será el bloque G y el bloque H. Además, se supondrá que los bloques de Cb y Cr en el macrobloque objetivo de codificación serán los bloques I y L respectivamente; los bloques adyacentes por encima serán los bloque J y M; y los bloques adyacentes a la izquierda serán bloques K y N.
Entonces, por ejemplo, en el caso de que existen coeficientes de transformación ortogonal distintos de cero en todos lo bloques E, F, y G, se puede inferir por analogía en consideración a la continuidad espacial de la imagen que hay una elevada probabilidad de que existan también coeficientes de transformación ortogonal distintos de cero en el bloque A. Inversamente, por ejemplo, en el caso en que ninguno de los bloques E, F, y G, contiene coeficientes de transformación ortogonal distintos de cero se puede inferir por analogía que existe una elevada posibilidad de que no existan tampoco en el bloque A, coeficientes de transformación ortogonal distintos de cero. De esta manera, para cada bloque del macrobloque objetivo de codificación, la probabilidad de existencia de coeficientes de transformación ortogonal distintos de cero en el macrobloque objetivo de codificación varía dependiendo de la presencia/ausencia de coeficientes de transformación ortogonales distintos de cero en los bloques adyacentes. Teniendo en cuenta lo anterior, el procedimiento de codificación de imágenes de la primera realización de la presente invención se caracteriza porque se puede implementar una codificación eficiente al generar el contexto espacial en base a la presencia/ausencia de coeficientes de transformación ortogonal distintos de cero en bloques adyacentes al macrobloque objetivo de codificación, y conmutando entre tablas de mapa utilizadas en la codificación de longitud variable del CBP del macrobloque objetivo de codificación en base al contexto espacial.
A continuación, se describirá un ejemplo de medios de conmutación entre tablas de mapas utilizadas en la codificación de longitud variable para codificar el CBP en la primera realización de la presente invención. En primer lugar, se introduce el contexto espacial, tal como se describe a continuación, para CBPY que el CBP para los componentes luma, y para CBPC que es el CBP para los componentes croma, y el procedimiento está configurado para conmutar entre tablas de mapa, de acuerdo con el contexto espacial.
La figura 9A muestra una tabla de mapa en la que se han mostrado CBPY con valores de índice correspondientes a los respectivos CBPY. La figura 9B muestra un ejemplo de una tabla de codificación de longitud variable en la que se han asociado valores índice con códigos de longitud variable correspondientes a los valores índice respectivos. Un CBPY se expresa por cuatro bits, que corresponden a los bloques A, B, C, y D en orden desde el MSB (Bit Más Significativo) y cada uno de los cuales indica 1 para la presencia de un coeficiente de transformación ortogonal distinta de cero, ó 0 para su ausencia. En este caso, se introducirán los puntos P(A), P(B), y P(C), y el operador “==”, a efectos de expresar correlaciones entre los bloques A, B, C, D y bloques adyacentes. El operador “==” es un operador que devuelve 1 en el caso de que dos numerales sean iguales, pero 0 en caso de que sean desiguales. Es decir, en el caso de que CBP(A) que es el CBP del bloque A es igual a CBP(G) que es el CBP del bloque G, el resultado de la operación de Ec (1) a continuación, es 1.
En otras palabras, en el caso en que ambos CBP(A) y CBP(G) son 1 ó 0, el resultado de la operación de Ec (1) es 1; de otro modo, el resultado de la operación de Ec (1) es 0. Los puntos P(A), P(B), y P(C) están definidos también en este caso por las siguientes ecuaciones (2), (3), y (4).
Estas ecuaciones permiten grados de correlaciones de los CBP de los bloques A, B, y C con los de bloques adyacentes a expresar por los puntos P(A), P(B), y P(C).
Se calcula P(A), P(B), y P(C) para todos los modelos en la tabla de mapa mostrada en las figuras 9A, 9B, y se define
No obstante, si un bloque adyacente al macrobloque objetivo de codificación se encuentra fuera de la pantalla o fuera de un segmento determinado (“slice”), el resultado de la operación con el operador “==” se ajusta siempre a 0
10 porque no hay correlación. Es decir, por ejemplo, en el caso en que los bloques G, H se encuentran fuera de la pantalla o fuera del segmento, por ejemplo, los valores de (CBP(A)==CBP(G)) y (CBP(A)==CBP(H)) son siempre 0.
El P(CBPY) obtenido de esta manera, proporciona un valor más grande para un CBPY que tiene una correlación espacial más grande con los CBPY en la proximidad del macrobloque objetivo de codificación. Eso significa que el 15 P(CBPY) adopta un valor más grande para un CBPY que se supone que tiene una mayor probabilidad de tener lugar en base al contexto espacial. A continuación, una tabla de mapa es creada para reposicionar el orden de valores índice de la figura 9A a efectos de asignar los valores índice de los CBPY en orden creciente desde las menores a los CBPY obtenidos de esta manera, empezando desde el mayor P(CBPY). No obstante, en el caso de que dos P(CBPY) sean iguales, una con un valor índice menor en la tabla de mapa de la figura 9A es asignada también un
20 valor índice más pequeño en la nueva tabla de mapa. Las figuras 10A y 10B muestran las tablas de mapa de CBPY en respectivos ejemplos en los que las CBP de los bloques E, F, G, y H son 1, 1, 0, 0, respectivamente (figura 10A) y en caso de que son 0, 1, 1, 0, respectivamente (figura 10B).
Para CBPC, la tabla de mapa es conmutada también a otra, de forma muy parecida en base al contexto espacial. La
25 figura 11A muestra un ejemplo de la tabla de mapa de CMPC, y la figura 11B un ejemplo de la tabla de codificación de longitud variable de CBPC. Un CBPC se expresa por dos bits que corresponden a Cb y Cr en orden desde el lado de MSB y cada uno de los cuales indica 1 para la presencia de un coeficiente de la información ortogonal distinto de cero, o 0 para su ausencia. De acuerdo con la figura 8, igual que en el caso de CBPY, P(I), P(L), y P(CHPC) están definidos por las ecuaciones siguientes (6), (7) y (8).
No obstante, en el caso en el que un bloque adyacente al macrobloque objetivo de codificación se encuentra fuera de la pantalla o fuera de un segmento determinado, el resultado de la operación por el operador “==” se ajusta
35 siempre a 0 a causa de la falta de correlación. Es decir, por ejemplo, en el caso de que el bloque K se encuentre fuera de la pantalla o fuera del segmento, por ejemplo, el valor de (CBP(I)==(CBP(K))) se ajusta siempre a 0.
El P(CHPC) obtenido de esta manera, proporciona un valor más grande para un CBPC que tiene una correlación espacial más elevada con las CBPC de las proximidades del macrobloque objetivo de codificación. Es decir, el 40 P(CBPC) adopta un valor más grande para un CBPC que se supone que tiene una mayor probabilidad de que ocurra en base al contexto espacial. A continuación, se crea una tabla de mapa por redisposición del orden de valores de índice en la figura 11A para asignar los valores de índice de los CBPC en orden creciente desde el menor de los valores de los P(CBPC) obtenidos de esta manera, empezando desde el P(CBPC) más grande. No obstante, en el caso en que dos P(CBPC) son iguales, uno con un valor de índice más pequeño en la tabla de mapa de la
45 figura 11A es asignado también a un valor índice más pequeño en la nueva tabla de mapa. Las figuras 12A y 12B muestran las tablas de mapa del CBPC en ejemplos respectivos en los que los CBP de J, K, M, y N en la figura 8 son (0, 1, 0, 0), respectivamente (Figura 12A), y en las que son (0, 0, 1, 1), respectivamente (figura 12B).
Tal como se ha descrito en lo anterior, dado que la primera realización de la presente invención está configurada para conmutar las tablas de mapa de CBPY y CBPC en consideración de la continuidad de imagen, es factible asignar palabras de código cortas a símbolos de probable aparición y palabras de código largas a símbolos con pocas probabilidades de aparición, y codificando de esta manera el CBP de forma adecuada.
La figura 13 es una ilustración que muestra un diagrama de bloques del codificador 16 de longitud variable, de acuerdo con la primera realización de la presente invención. Es decir, en el codificador de longitud variable 16 de la figura 13, los CBP son alimentados en primer lugar como símbolos de entrada H1 en la parte 30 de salida de código de longitud variable. Entonces, la memoria de símbolos codificados 31 alimenta los CBP en bloques adyacentes como información H2 de referencia de la tabla de mapa de codificación en el proveedor 32 de la tabla de mapa. A continuación, el proveedor 32 de la tabla de mapa de codificación determina una tabla de mapa de codificación a utilizar para la codificación de los CBP, en base a la técnica anterior mencionada y proporciona la tabla de mapa de codificación H4 a la parte 30 de salida de código de longitud variable. El proveedor 33 de la tabla de codificación de longitud variable alimenta también una tabla de codificación de longitud variable H5 en la parte de salida 30 de código de longitud variable. La información H3 de referencia de la tabla de codificación de longitud variable puede ser alimentada al proveedor 33 de la tabla de codificación de longitud variable, pero esta entrada no es siempre esencial en la presente realización. Entonces, los CBP objetivo de codificación son codificados con longitud variable, pero esta entrada no es siempre esencial en la presente realización. Entonces, los CBP objetivo de codificación son codificados en longitud variable para su emisión como datos codificados D9.
En la primera realización de la presente invención, se ha hecho referencia solamente a los bloques adyacentes, al macrobloque objetivo de codificación en ocasión de generar el contexto espacial de los CBP, sin embargo, sin tener que quedar limitados a los bloques adyacentes, es asimismo evidente que el contexto espacial puede ser generado utilizando información adicional de los CBP de bloques que no son adyacentes al macrobloque objetivo de codificación, sino que existen en las proximidades, por ejemplo, tal como se ha mostrado en la figura 15A, o que el contexto espacial puede ser generado también utilizando información de bloques en macrobloques no utilizados en la primera realización de la presente invención, por ejemplo, tal como se ha mostrado en la figura 15B, con efecto similar.
El procedimiento de codificación de la primera realización de la presente invención ha sido descrito en la consideración en la que el CBPY y CBPC fueron codificados separadamente cada uno de ellos con longitud variable, utilizando las tablas de codificación de longitud variable separadas, pero es evidente que se puede obtener también un efecto similar codificando el CBPY y CBPC conjuntamente, efectuando simultáneamente la conmutación de la tabla de mapa utilizando una tabla de codificación de longitud variable y una tabla de mapa para los CBP, por ejemplo, expresada por seis bits, de manera que cuatro bits del MSB representan el CBPY y dos bits del LSB el CBPC. En este caso, el procedimiento de codificación puede ser configurado también para llevar a cabo la conmutación de la tabla de codificación de longitud variable, utilizando el P(CBPY) y P(CBPC) calculados por las Ec
(5) y Ec (8), y, por ejemplo, utilizando el valor de P(CBP) obtenido por la siguiente Ec (9).
Dado que en el procedimiento de codificación, de acuerdo con la primera realización de la presente invención, se generó en el contexto espacial en base a la información de los bloques adyacentes previamente codificados, también se puede regenerar un contexto espacial similar en ocasión de decodificación, y se puede llevar a cabo la conmutación entre tablas de decodificación de longitud variable de manera similar a la del lado del codificador.
Es decir, en el diagrama de bloques del decodificador de longitud variable 21 mostrado en la figura 14, cuando se alimentan datos codificados D9 codificados por el procedimiento de codificación, de acuerdo con la primera realización de la presente invención, en la parte 40 de salida de símbolos decodificados del decodificador de longitud variable 21, la memoria de símbolos decodificados 41 alimenta los CBP de bloques adyacentes procedentes de los símbolos previamente decodificados, como información H7 de referencia de la tabla de mapa de decodificación en el proveedor 42 en la tabla de mapas de decodificación. Entonces, el proveedor 42 de la tabla de mapas de decodificación selecciona una tabla H9 de mapa de decodificación por un procedimiento similar al de la codificación, y lo alimenta a la parte de salida 40 de símbolos decodificados. El proveedor 43 de la tabla de decodificación de longitud variable alimenta una tabla de decodificación de longitud variable H10 en la parte 40 de salida de símbolos decodificados. La información H8 de referencia de la tabla de decodificación de longitud variable puede ser alimentada al proveedor 43 de la tabla de decodificación de longitud variable, pero esta entrada no es siempre esencial en la presente realización. Entonces, la parte 40 de salida del símbolo decodificado lleva a cabo la decodificación de longitud variable para decodificar y emitir los CBP como símbolos decodificados H6, y simultáneamente los almacena en la memoria 41 de símbolos decodificados.
Resulta que, el procedimiento de decodificación de la primera realización de la presente invención puede decodificar de manera adecuada los CBP codificados por el procedimiento de codificación de la primera realización de la presente invención.
El procedimiento de codificación de la primera realización de la presente invención fue descrito utilizando el sistema de codificación MPEG-4 como ejemplo, pero es evidente que se puede conseguir también un efecto similar en los otros sistemas de codificación al generar de manera similar el contexto espacial para la codificación de los CBP y llevando a cabo la conmutación de la tabla de codificación de longitud variable en base al contexto espacial. A continuación, se describirá un ejemplo de aplicación en el que la primera realización de la presente invención es aplicada al procedimiento de codificación de los CPB en el sistema de codificación H.26L como otro sistema de codificación.
Las figuras 16A y 16B muestran configuraciones de macrobloques y configuraciones de CPB en el sistema de codificación H.26L. En H.26L, un macrobloque de una imagen de componente luma tiene un tamaño de 16 píxeles x 16 líneas, mientras que los macrobloques de dos tipos de componente croma son de dimensiones de 8 píxeles x 8 líneas. La transformación ortogonal es llevada a cabo en unidades de 4 píxeles x 4 líneas para cada macrobloque, y los componentes DC de las imágenes de componente croma de los coeficientes de transformación ortogonales generadas de esta manera son sometidas adicionalmente a la transformación ortogonal de 2 píxeles x 2 líneas. En el caso de macrobloques intra codificados, hay dos tipos de modalidades de codificación, la modalidad de codificación 4 x 4 y la modalidad de codificación 16 x 16 como modalidades de codificación, y configuraciones de CBP en las modalidades respectivas son distintas.
En primer lugar, la modalidad de codificación intra 4 x 4, en cuanto al CBPY, un macrobloque dividido en cuatro bloques de 8 píxeles x 8 líneas, igual que en el MPEG-4, y se indica si existe un coeficiente de transformación ortogonal distinto de cero en cada bloque. Por otra parte, el CBPC tiene tres casos de “0”, “1”, y “2”. El CBPC “0” indica que no existe coeficiente de transformación ortogonal distinto de cero en cuanto a componentes croma. El CBPC “1” indica que un coeficiente de transformación ortogonal distinto de cero existe solamente en los componentes DC de los componentes croma, pero no existe ningún coeficiente de transformación ortogonal distinto de cero en los componentes AC. El CBPC “2” indica que, como mínimo, existe un coeficiente de transformación ortogonal distinto de cero en los componentes AC de los componentes croma. Los macrobloques intercodificados tienen las configuraciones de los CBP similares a las de la modalidad de codificación intra 4 x 4. En los CBP, en la modalidad de codificación intra 16 x 16, el CBPY está formado solamente por un bit, indicando si existe un coeficiente de transformación ortogonal distinto de cero en la componente AC de un macrobloque. El CBPC en la modalidad de codificación intra 16 x 16 es similar al de la modalidad de codificación intra 4 x 4.
En primer lugar, dado que la configuración del CBPY es similar a la del MPEG-4 excepto para el caso de la modalidad de codificación 16 x 16, los otros procedimientos de codificación pueden adoptar procedimientos similares a los del caso en el que la invención fue aplicada a MPEG-4 manipulando solamente el caso en la modalidad de codificación intra 16 x 16 como proceso excepcional. En el caso en el que el macrobloque objetivo de codificación de la figura 8 está codificado en la modalidad de codificación intra 16 x 16, se calcula el P (CBPY), por ejemplo, utilizando la siguiente Ec (10), y un CBPY que facilita un valor más grande de P (CBPY) recibe una prioridad más elevada. Tal como se ha mostrado en la figura 17A, el conjunto de macrobloque objetivo de codificación es definido como bloque Q, y el CBP (Q) representa el valor del CBPY en el macrobloque objetivo de codificación. Las figuras 18A y 18B muestran una tabla de mapas y una tabla de codificación de longitud variable en la codificación de CBPY en la aplicación a H.26L, similar a las figuras 9A y 9B.
En el caso de que un macrobloque adyacente a un macrobloque objetivo de codificación es un macrobloque codificado en la modalidad de codificación intra 16 x 16, todos los CBP para el componente luma del macrobloque codificado en la modalidad de codificación 16 x 16 intra se supone que tienen el mismo valor que el CBPY del macrobloque codificado en la modalidad de codificación intra 16 x 16, y la codificación es llevada a cabo por un procedimiento similar al de la aplicación a MPEG-4 en la primera realización de la presente invención. Es decir, por ejemplo, en el caso en el que la modalidad de codificación del macrobloque adyacente que queda en el macrobloque objetivo de codificación es la modalidad de codificación intra 16 x 16, y en el caso que el CBPY del mismo es “1”, el contexto espacial es generado suponiendo que los CBP(G) y CBP(H), que son los valores de CBP el bloque G y el bloque H de la figura 8, son ambos “1”.
Dado que la configuración de CBPC es común a todas las modalidades de codificación, no hay necesidad de un proceso excepcional en el procedimiento de codificación. Tal como se ha mostrado en la figura 17B, se supondrá que un bloque de la imagen de componente croma en un macrobloque objetivo de codificación será el bloque I, un bloque adyacente por encima será J, y un bloque adyacente por la izquierda será K. Las figuras 18C y 18D muestran una tabla de mapa y una tabla de codificación de longitud variable en la codificación de CBPC en la aplicación a H.26L. En la aplicación a H.26L, el CBPC puede adaptar uno de los valores “0”, “1”, y “2”. Dado que este valor se considera que se parece a valores de CBPC en bloques adyacentes, el contexto espacial es generado a efectos de estimar el valor de CBPC del bloque I a partir de los valores de CBPC del bloque J y del bloque K. Es decir, suponiendo que CBPC(J) represente el valor de CBPC en el bloque J y CBPC(K) represente el valor de CBPC en el bloque K, el P(CBPC) es calculado por Ec (11), que se indica a continuación, y la tabla de mapa es conmutada a una tabla en la que los valores del índice son asignados en orden creciente desde el valor de CBPC más próximo al P(CBPC).
Es decir, por ejemplo, en caso de que CBPC(J) = CBPC(K) = 2, la Ec (11) proporciona P(CBPC) = 2, y por lo tanto, la tabla de mapas es generada de manera que el valor índice para CBPC = 2 pasa a ser el más pequeño entre los CBPC en el macrobloque objetivo de codificación y los valores índice posteriores aumentan en orden para CBPC = 1 y finalmente para CBPC = 0, tal como se ha mostrado en la tabla de la figura 19.
Por la configuración que se ha descrito anteriormente, la conmutación de la tabla de mapas puede ser implementada también en el sistema de codificación H.26L en base al contexto espacial, mientras se aplica la información de los bloques adyacentes al macrobloque objetivo de codificación a la codificación de los CBP, y se pueden asignar palabras cortas de código a símbolos con elevadas probabilidades de que ocurra, que pueden implementar la codificación adecuada de los CBP.
(Segunda Realización)
La primera realización de la presente invención ha presentado el procedimiento de implementación de la codificación adecuada de los CBP por la configuración en la que el contexto espacial ha sido generado utilizando la información de los CBP en bloques adyacentes en la codificación de los CBP, y en el que la tabla de mapas ha sido conmutada en base al contexto espacial, mientras que el procedimiento de codificación y aparato en la segunda realización de la presente invención se caracteriza porque la eficiencia de codificación es incrementada al generar el contexto espacial, mientras se utiliza adicionalmente la información de modalidad de codificación en los bloques adyacentes e implementando la conmutación de la tabla de mapas basado en la misma, en la codificación de los CBP.
La codificación y decodificación en la segunda realización de la presente invención se describirán basándose en el sistema de codificación MPEG-4, tal como se ha descrito en la primera realización de la presente invención. La primera realización de la presente invención utilizó la configuración en la que el contexto espacial fue generado haciendo uso de los valores de los CBP en los bloques adyacentes en la codificación de los CBP del macrobloque objetivo de codificación, y en el que la tabla de mapas de los CBP fue conmutada de acuerdo con el contexto espacial, mientras que la segunda realización de la presente invención utiliza adicionalmente la información de la modalidad de codificación en los macrobloques adyacentes en la generación del contexto espacial.
Tal como se ha descrito en lo anterior, las modalidades de codificación de macrobloques en MPEG-4 consisten en dos modalidades de intercodificación y una modalidad de intracodificación. Entre las modalidades de intercodificación, la modalidad de intercodificación 1, caracterizado por la utilización de cuatro lectores de movimiento, se considera que es seleccionada a causa de la diferencia entre movimientos de respectivos bloques en un macrobloque, y se considera en este caso que los movimientos no son monotonos y que es probable que aparezcan coeficientes de transformación ortogonal distintos de cero. Por lo tanto, en el caso de los CBP de los bloques adyacentes al macrobloque objetivo de codificación, tal como se ha mostrado en la figura 8, si un macrobloque al que pertenecen los bloques adyacentes es codificado en la modalidad de intercodificación 1, el contexto espacial es generado adoptando CBP = 1 con independencia de los valores reales CBP. Esta configuración posibilita el ajuste de una tabla de mapas que refleja el hecho de que los coeficientes de transformación ortogonal distintos de cero es probable que aparezcan a causa de la complejidad de movimiento en la región adyacente en la modalidad de intercodificación 1, que se considera que indica un movimiento complejo, incrementando de esta manera la eficiencia de codificación de los CBP.
Los datos codificados por el procedimiento anterior se pueden decodificar de manera adecuada disponiendo la tabla de mapas por medios similares a los anteriores en ocasión de la decodificación.
El procedimiento de codificación de la segunda realización de la presente invención ha sido descrito anteriormente en la configuración en la que el contexto espacial fue generado de acuerdo con la modalidad de codificación en los macrobloques adyacentes al macrobloque objetivo de codificación, sin embargo es evidente que el contexto espacial puede ser generado también haciendo referencia a la modalidad de codificación en el macrobloque objetivo de codificación.
(Tercera Realización)
El procedimiento de codificación en la tercera realización de la presente invención se caracteriza porque en la codificación de los CBP, la tabla de codificación de longitud variable es conmutada de acuerdo con una distribución de probabilidades de que tengan lugar modelos respectivos de los CBP. Es decir, tal como se ha mostrado en las figuras 20A y 20B, existen casos en los que las tasas de aparición de símbolos difieren dependiendo de las imágenes, con respecto al orden de índice de CBPY, por ejemplo. La figura 20A es una tabla que muestra un caso en el que algunos valores de índice superior tienen mayores probabilidades de aparición y los otros tienen bajas probabilidades de aparición. La figura 20B es una tabla que muestra un caso en el que la desviación no es demasiado grande entre las probabilidades de aparición con respecto a valores índice. En estos casos, que muestran distribuciones de tasas de aparición con diferentes características, es factible incrementar adicionalmente la eficiencia de codificación al conmutar entre tablas de codificación de longitud variable adecuadas para las respectivas características.
Por ejemplo, se ha preparado una serie de tablas de codificación de longitud variable, tal como se ha mostrado en las figuras 21A a 21C, y se hace un control para la conmutación adaptativa entre ellas. Un ejemplo es una serie de tablas de codificación de longitud variable mostradas en las figuras 21A-21C, que son designadas códigos exp-Golomb y que están configuradas del modo siguiente. A saber, los códigos están configurados añadiendo la parte binaria de k+j bits a la parte Unitaria de j+1 bits (j=0, 1, ...). Es decir, j es igual al número de “0” en la parte Unitaria en un determinado código y k una longitud de código de parte binaria en el código de orden cero. La figura 21A muestra los códigos exp-Golomb en el caso de k = 0. La figura 21B en el caso de k = 1, y la figura 21C los del caso de k = 2. Tal como es evidente de las figuras, la desviación de longitudes de códigos de distribución tiende a disminuir al aumentar el valor de k.
A continuación, se ha preparado una serie de tablas de códigos de longitud variable con diferentes características de desviación de distribución de longitudes de códigos de esta manera, y se hace conmutación adaptativa entre estas. Un procedimiento de conmutación entre estas tablas de codificación de longitud variable es el siguiente. Por ejemplo, en el caso en el que el parámetro de cuantificación es grande, es improbable que aparezca un coeficiente de transformación ortogonal distinto de cero, es más probable que aparezca el CBPY con cada bit “0” y es, por lo tanto, fácil llevar a cabo una predicción correcta por el contexto espacial. Inversamente, el CBPY siendo cada bit “1”, es improbable que aparezca, de manera que la predicción por el contexto espacial tiende a su desaparición. En el caso en el que el parámetro de cuantificación es pequeño, es probable que aparezca un coeficiente de transformación ortogonal distinto de cero, es más probable que aparezca el CBPY, siendo cada bit “1”, y la predicción por el contexto espacial tiende a ser correcta. Inversamente, el CBPY con cada bit “0” es improbable que aparezca, de manera que la predicción por el contexto espacial tiende a desaparecer. Cuando el parámetro de cuantificación no es ni grande ni pequeño, el CBPY tiene sus bits dispersos sin desviación a “0” o “1”, aparecen modelos dependientes de los bits, y la predicción por el contexto espacial tiende también a desaparecer. Entonces, el control se puede hacer con referencia al valor del parámetro de cuantificación del macrobloque objetivo de codificación, de manera que, por ejemplo, la tabla de la figura 21A es aplicada al caso en el que el parámetro de cuantificación es mayor que el umbral predeterminado Th1, por ejemplo, se aplica la tabla de la figura 21C en el caso en el que el parámetro de cuantificación no es más que el umbral Th1 y es superior a un umbral Th2, y la tabla de la figura 21A al caso en el que el parámetro de cuantificación es menor que el umbral Th2; por lo que es factible facilitar las tablas de codificación de longitud variable adecuadas para respectivos casos, e implementan de esta manera la codificación de longitud variable con elevada eficiencia de codificación.
Otro ejemplo del procedimiento de conmutación entre tablas de codificación de longitud variable consiste en contar el número de apariciones de los CBPY reales, de acuerdo con valores índice de los CBPY. Es decir, en el caso en el que C(n) representa un contador de frecuencias de aparición, de acuerdo con valores índice de los respectivos CBPY (n = 1-15), el control se hace a efectos de aplicar, por ejemplo, la tabla de la figura 21C al caso en el que la variancia de C’(n) resultado de la normalización de C(n) es menor que un umbral predeterminado Th3, y aplicar, por ejemplo, la tabla de la figura 21A al caso en el que la variancia no es menor que el umbral Th3; por lo que es factible proporcionar las tablas de codificación de longitud variable adecuadas para los casos respectivos e implementar de esta manera la codificación de longitud variable con elevada eficiencia de codificación.
El procedimiento de codificación anterior ha sido descrito utilizando las tres tablas de codificación de longitud variable de las figuras 21A-21C, pero es evidente que el número y valores de las tablas de codificación de longitud variable no están limitadas a las figuras 21A-21C. La conmutación entre las tablas de codificación de longitud variable puede ser implementada conservando las tablas de codificación de longitud variable en una memoria, y otro procedimiento potencial es que la conmutación entre las tablas de codificación de longitud variable sea implementada utilizando los códigos universales, tales como los códigos exp-Golomb indicados anteriormente como ejemplo, y conmutando un parámetro de los mismos.
De manera específica, en el codificador de longitud variable 16 de la figura 13, lo CBP son alimentados en primer lugar como símbolos de entrada H1 en la parte 30 de salida de código de longitud variable. A continuación, la memoria 31 de símbolos codificados alimenta los CBP en los bloques adyacentes como información de referencia H2 de la tabla de codificación de longitud variable al proveedor 32 de la tabla de mapas de codificación. A continuación, el proveedor 32 de la tabla de mapas de codificación determina una tabla de mapas de codificación a utilizar en la codificación de los CBP, por ejemplo, en base a la técnica descrita en la primera realización de la presente invención, y facilita la tabla de codificación H4 a la parte 30 de salida de códigos de longitud variable. La memoria 31 de símbolos codificados alimenta también el parámetro de cuantificación del macrobloque objetivo de codificación como información H3 de referencia de la tabla de codificación de longitud variable al proveedor 33 de la tabla de codificación de longitud variable. Entonces, el proveedor 33 de la tabla de codificación de longitud variable determina una tabla de codificación de longitud variable a utilizar para la codificación de los CBP, en base a la técnica de la tercera realización de la presente invención, y suministra la tabla H5 de codificación de longitud variable a la parte de salida 30 de código de longitud variable. Entonces, las CBP objetivo de codificación son codificadas en longitud variable para su salida como datos codificados D9.
De manera similar, en el diagrama de bloques del decodificador de longitud variable 21 mostrado en la figura 14, cuando los datos codificados D9 codificados por el procedimiento de codificación de la tercera realización de la presente invención son alimentados a la parte 40 de salida de símbolos decodificados del decodificador 21 de longitud variable, la memoria de símbolos decodificados 41 alimenta el parámetro de cuantificación del macrobloque objetivo de codificación de los símbolos anteriormente decodificados, como información de referencia H7 de la tabla de mapas de decodificación en el proveedor 42 de la tabla de mapas de codificación. A continuación, el proveedor 42 de la tabla de mapas de decodificación selecciona una tabla H9 del mapa de decodificación por un proceso similar a la codificación y lo facilita a la parte 40 de salida de símbolos decodificados. La memoria 41 de símbolos decodificados alimenta también los CBP de los bloques adyacentes anteriormente decodificados, en primer lugar al macrobloque objetivo de decodificación en forma de información H8 de referencia de la tabla de decodificación de longitud variable en el proveedor 43 de la tabla de codificación de longitud variable. A continuación, el proveedor 43 en la tabla de decodificación de longitud variable selecciona una tabla de decodificación de longitud variable por un proceso similar a la codificación y lo alimenta en forma de tabla H10 de decodificación de longitud variable en la parte 40 de salida de símbolos decodificados. A continuación, la parte 40 de salida de símbolos decodificados lleva a cabo la decodificación de longitud variable para decodificar los CBP como símbolos decodificados H6, y los emite y simultáneamente los almacena en la memoria 41 de símbolos decodificados.
El procedimiento de codificación de la tercera realización de la presente invención ha sido configurado para la conmutación entre las tablas de decodificación de longitud variable en base al parámetro de cuantificación en el macrobloque objetivo de codificación, pero es evidente que la presente invención desea aplicar también por medios similares, utilizando cualquier información siempre que sea información de codificación que afecta la complejidad de la imagen a codificar en el macrobloque objetivo de codificación. Por ejemplo, en el caso en el que la modalidad de codificación del macrobloque es una modalidad en la que un macrobloque es dividido en bloques más finos, se considera que la imagen tiene un grado más elevado de complejidad. Inversamente, con la disminución del número de bloques divididos, la imagen es considerada como de complejidad de un grado más bajo. Por lo tanto, en el caso en el que la imagen se considera que tiene un alto grado de complejidad en base a la modalidad de decodificación del macrobloque, es probable que aparezcan coeficientes de transformación ortogonal cuantificados distintos de cero y se considera que todos los modelos de CBP pueden tener lugar; por lo tanto, el control se lleva a cabo a efectos de implementar la codificación utilizando una tabla de codificación de longitud variable con una desviación más pequeña de longitudes de código que una tabla de codificación de longitud variable para la codificación de los CBP. Inversamente, en el caso en el que la imagen se considera que tiene un grado bajo de complejidad, el control es realizado a efectos de implementar la codificación utilizando la cámara de codificación de longitud variable con una desviación más grande de longitudes de código que la tabla de codificación de longitud variable para la codificación de los CBP. Por ejemplo, respecto a los vectores de movimiento, la posibilidad de complejidad de la imagen a codificar tiene a ser más elevada con el incremento de la longitud del vector de movimiento. Por esta razón, el procedimiento de codificación puede ser configurado a efectos de llevar a cabo el control para utilizar una tabla de codificación de longitud variable con una desviación de longitudes de código más reducida y con el incremento de la longitud del vector de movimiento en el macrobloque. En el caso del sistema de codificación de predicción de un vector de movimiento del bloque objetivo de codificación de vectores de movimiento en los bloques adyacentes, y codificando un valor de diferencia entre un valor de predicción de movimiento y un vector de movimiento real, es también posible adoptar una configuración en la que la tabla de codificación de longitud variable es conmutada a otra en base al valor diferencia de vector de movimiento en el macrobloque objetivo de codificación. Es decir, al aumentar el valor de la diferencia del vector de movimiento, el movimiento resulta más complejo en las proximidades del macrobloque objetivo de codificación, y como resultado se puede inferir que es probable que tengan lugar coeficientes de transformación ortogonales cuantificados distintos de cero; en este caso, el control puede ser configurado para utilizar una tabla de codificación de longitud variable con menor desviación de longitudes de código, por ejemplo, con incremento del valor absoluto del vector de movimiento de diferencia en el macrobloque objetivo de codificación.
Tal como se ha descrito en lo anterior, la tercera realización de la presente invención utiliza la configuración en la que la conmutación entre tablas de codificación de longitud variable es implementada de acuerdo con la distribución de probabilidades de que tengan lugar los respectivos CBP y, por lo tanto, puede conseguir una codificación eficiente.
(Cuarta realización)
Se describe a continuación el procedimiento de codificación de longitud variable de coeficientes de transformación ortogonales en el procedimiento de codificación, de acuerdo con la cuarta realización de la presente invención. La presente descripción se basa en la suposición de que la transformación ortogonal para transformar los datos de imagen espacial en datos de imagen de frecuencia es la Transformada Discontinua de Coseno (Discrete Cosine Tranform) (DCT). La figura 22A muestra un ejemplo numérico específico de coeficientes q11 – q88 de transformación ortogonal cuantificados obtenidos al cuantificar los coeficientes de transformación ortogonal f11 – f88 de 8 píxeles x 8 líneas mostradas en la figura 4B. El codificador de longitud variable del aparato de codificación de imágenes lleva a cabo la codificación de longitud variable en dichos coeficientes de transformación ortogonal cuantificados de acuerdo con el procedimiento de proceso predeterminado para generar datos codificados.
En el caso de los coeficientes de transformación ortogonal cuantificados q11 – q88, en los que los subíndices i,j de cada coeficiente qi,j representan una frecuencia vertical y una frecuencia horizontal correspondiente a la misma, a diferencia de los componentes de imagen a11 – a88 en los datos de imagen espacial (ver figura 4A), cada coeficiente de transformación ortogonal cuantificado, referente a la magnitud del valor del coeficiente del mismo o similar tiene una característica de datos dependiente de los valores de las correspondientes frecuencias de espacio. En general, en el caso de imágenes naturales, se obtienen valores de coeficientes de transformación ortogonal grandes en la zona de frecuencia baja y los valores de los coeficientes disminuyen hacia la región de frecuencia alta. Esta distribución puede ser aproximada o de una distribución de Laplace con un máximo en cero. Dado que las densidades de píxeles en cada bloque varían notablemente, la extensión de la distribución de coeficientes de transformación es también más grande y el promedio del valor de amplitud de los coeficientes aumenta.
En el procedimiento de proceso de los coeficientes de transformación ortogonales cuantificados de codificación de longitud variable, en primer lugar, al ser los coeficientes de transformación ortogonales cuantificados q11 – q88 datos bidimensionales son transformados en datos monodimensionales, por ejemplo, por escaneado en zig-zag mostrado en la figura 22B. En este escaneado de zig-zag, los coeficientes de transformación ortogonal cuantificados son escaneados para proporcionar una cadena de datos de la región de baja frecuencia a la región de alta frecuencia como datos monodimensionales después del escaneado. Esto proporciona los datos monodimensionales mostrados en la figura 22C en la que los coeficientes de transformación ortogonal cuantificados están alineados desde la región de baja frecuencia a la región de alta frecuencia.
Los datos monodimensionales de los coeficientes de transformación ortogonal cuantificados son transformados adicionalmente en datos que consisten en valores “level” y “run” mostrados en la figura 22D. En este caso, “level” indica un nivel de coeficiente a un coeficiente de transformación ortogonal cuantificado con un valor de coeficiente distinto de cero entre la serie de coeficientes de transformación ortogonal cuantificados. El “run” indica una longitud de run cero que es el número de datos con valor de coeficiente de 0 presentes inmediatamente antes de un coeficiente de transformación ortogonal cuantificado distinto de cero.
Por ejemplo, en el caso del ejemplo de datos de los coeficientes DCT mostrados en la figura 22A, los sesenta y cuatro coeficientes DCT q11 – q88 son seleccionado, basándose en localizaciones de aspecto de coeficientes DCT con valor de coeficiente distinto de cero en un conjunto de coeficientes S1 que consiste en un coeficiente q11, un conjunto de coeficientes S2 que consiste en coeficientes q12, q21, un conjunto de coeficientes S3 que consiste en coeficientes q31 – q13, un conjunto de coeficientes S4 que consiste en coeficientes q14 – q32, un conjunto de coeficientes S5 que consiste en los coeficientes q41 – q15 y un conjunto de coeficientes S6 que consiste en los coeficientes q16 – q88 mostrados en la figura 22C.
Para cada uno de estos conjuntos de coeficientes Si(i=1-6), tal como se ha mostrado en la figura 22D, se determina el valor de umbral Li y el valor de run Li. De manera específica, el conjunto de coeficiente S1 tiene L1 = q11 = 10 y R1=0. El conjunto de coeficientes S2 tiene L2 = q21 = -2 y R2 = 1. El conjunto de coeficientes S3 tiene L3 = q13 = 2 y R3= 2. El conjunto de coeficiente S4 tiene L4 = q32 = -1 y R4= 2. El conjunto de coeficientes S5 tiene L5 = q15 = 1 y R5=
5. El último conjunto de coeficientes S6 es un grupo de coeficientes de los coeficientes q16 – q88 todos los cuales tienen un valor de coeficiente de 0, y por lo tanto, L6 = 0 y R6 es indefinido.
El conteo CC de coeficientes distintos de cero y el run total RT en el bloque objetivo de decodificación son calculados a partir de los datos del “level” y “run” mostrados en la figura 22D. Por ejemplo, de manera específica, son calculados como conteo de coeficientes CC = 5 distintos de cero y run total RT = 10 a partir de la figura 22D. Por ejemplo, igual que la tabla mostrada en la figura 9B puede ser utilizada como tabla de codificación de longitud variable a utilizar en la codificación de estos conjuntos de coeficientes y en el conteo CC de coeficientes distintos de cero y el run total RT. En esa tabla de codificación de longitud variable, la columna de la izquierda representa los valores de índice y la columna de la derecha los códigos de longitud variable correspondientes a los valores índice. La figura 13 es una ilustración que muestra el diagrama de bloques del codificador de longitud variable 16 de acuerdo con la cuarta realización de la presente invención. El conteo CC de coeficientes distintos de cero y el run total RT son alimentados en primer lugar como símbolos de entrada H1 a la parte 30 de salida de código de longitud variable y al proveedor 33 de la tabla de codificación de longitud variable. El proveedor 33 de la tabla de codificación de longitud variable proporciona, por ejemplo, la tabla H5 de codificación de longitud variable, tal como se ha mostrado en la figura 9B, como tabla de codificación de longitud variable que corresponde a los símbolos de entrada H1, para la parte 30 de salida de código de longitud variable, y los símbolos de entrada H1 son codificados utilizando la tabla H5 de codificación de longitud variable. Es decir, utilizando el valor obtenido restando 1 del valor del conteo CC de coeficientes distintos de cero como valor índice, se emite un código de longitud variable correspondiente como datos codificados D9. De manera similar, utilizando el valor del run total RT como valor índice, se emite un código correspondiente como datos codificados de longitud variable D9.
Entonces, los conjuntos de coeficiente son codificados en orden desde el lado de alta frecuencia. No obstante, el conjunto de coeficientes con todos los valores de coeficientes 0 no es codificado. En primer lugar, los valores de run Ri de todos los conjuntos de coeficientes son alimentados en el lugar como símbolos de entrada H1 en la parte 30 de salida de código de longitud variable y, a continuación, son codificados de manera similar utilizando la tabla de codificación de longitud variable y utilizando los valores de run Ri como índices a emitir como datos codificados D9. A continuación, la codificación del valor de level es llevada a cabo para todos los valores de level distintos de cero en orden desde el conjunto de coeficientes del lado de la alta frecuencia.
El procedimiento de codificación de la cuarta realización de la presente invención se caracteriza porque la tabla de codificación de longitud variable en la codificación de los valores de level en un bloque objetivo de codificación es conmutada de acuerdo con valores de level en bloques previamente codificados en las proximidades del bloque objetivo de codificación.
Se supondrá que un bloque como objetivo de codificación del bloque A, un bloque adyacente por encima a aquél será el bloque B, y un bloque adyacente a la izquierda de aquél será el bloque C, tal como se ha mostrado en la figura 23. Es sabido que en señales de imagen, los coeficientes de transformación ortogonal distintos de cero es improbable que aparezcan en áreas con cambios pequeños de textura y movimiento, e inversamente, los coeficientes de la información ortogonales distintos de cero es probable que aparezcan en zonas con cambios grandes de textura y movimiento. En particular, imágenes naturales y similares tienen frecuentemente a tener tendencias similares de cambio de textura y movimiento en regiones adyacentes. Por lo tanto, es posible hacer análoga una tendencia de aparición de coeficientes codificados en un bloque como objetivo de codificación, con respecto a tendencias de aparición de coeficientes codificados en bloques adyacentes al bloque objetivo de codificación.
Es decir, por ejemplo, si muchos coeficientes con valor grande de level aparecen en el bloque B y en el bloque C adyacente al bloque A como objetivo de codificación, sus áreas adyacentes son consideradas que demuestran un cambio complejo de textura y movimiento en señales de imagen; por lo tanto, se puede inferir por analogía que muchos coeficientes con valor de level grande aparecen también en el bloque objetivo de codificación A. Inversamente, por ejemplo, si solamente aparecen coeficientes con un valor de level pequeño en el bloque B y en el bloque C adyacente al bloque A como objetivo de codificación o si ningún coeficiente tiene un valor de level distinto de 0, sus áreas adyacentes son consideradas monótonas en textura y movimiento en las señales de imagen; por lo tanto, se puede inferir por analogía que los coeficientes con un valor de level pequeño tienden también a aparecer en el bloque objetivo de codificación C.
A este respecto, en el caso en el que aparecen muchos valores de level grandes es difícil deducir por analogía si un valor de level es pequeño o grande; por lo tanto, es factible llevar a cabo una codificación eficiente por utilización de una tabla de codificación de longitud variable con una desviación de longitudes de código para los correspondientes valores de level lo más reducida posible. Inversamente, en el caso en el que los valores de level tienden a ser pequeños, la codificación puede ser llevada a cabo de manera eficiente utilizando dicha tabla de codificación de longitud variable para hacer las longitudes de código más cortas para coeficientes con un valor de level pequeño. Entonces, se prepara una serie de tablas de codificación de longitud variable con diferentes características de la desviación de distribución de longitudes de código, por ejemplo, tal como se ha mostrado en las figuras 21A-21C, y la tabla de codificación de longitud variable para los valores de level del objetivo de codificación se conmuta a otra, de acuerdo con los valores de level en los macrobloques adyacentes. Es decir, el control es llevado a cabo del modo siguiente: en el caso en que se infiera que tienden a aparecer valores pequeños de level en el macrobloque objetivo de codificación, con respecto a los valores de level en los macrobloques adyacentes, la codificación es llevada a cabo por utilización de una tabla con una desviación grande de longitudes de código, tal como se ha mostrado en la figura 21A; cuando se infiere que tienden a aparecer también valores de level grandes, la codificación es llevada a cabo por utilización de una tabla con una desviación pequeña de longitudes de código, tal como se ha mostrado en la figura 21C.
Específicamente, en ocasión de codificación de los valores de level en los bloques como objetivo de planificación, por ejemplo, se determina un máximo MaxL de valores absolutos de valores level en unos bloques B y C de la figura 23, y se compara con los level predeterminados Th7 y Th8 (Th7<Th8), y se lleva a cabo la conmutación de la tabla de codificación de longitud variable de manera que la tabla de codificación de longitud variable de la figura 21A es utilizada en la que MaxL es menor que Th7, la tabla de codificación de longitud variable de la figura 21B es utilizada en la que MaxL no es menor que Th7 y es menor que Th8, y la tabla de codificación de longitud variable de la figura 21C es utilizada en la que MaxL no es menor que Th8.
Es decir, en el codificador 16 de la figura 13 de longitud variable, cuando los valores de level son alimentados como símbolos de entrada H1 en la parte de salida de código 30 de longitud variable, la memoria 31 de símbolos codificados alimenta MaxL como información de referencia H3 de la tabla de codificación de longitud variable en el proveedor 33 de la tabla de codificación de longitud variable, y el proveedor 33 de la tabla de codificación de longitud variable proporciona una tabla H5 de codificación de longitud variable que es seleccionada por la técnica de control antes mencionada en base a la información H3 de referencia de la tabla de codificación de longitud variable, para la parte 30 de salida de código de longitud variable. La otra operación es similar a la de las realizaciones primera a tercera de la presente invención.
Adoptando esta configuración, la tendencia de aparición de valores de level en los bloques como objetivo de codificación se pueden deducir por analogía a partir de los bloques adyacentes al bloque objetivo de codificación; se pueden asignar longitudes de código cortas a valores de level pequeños en el caso en el que es probable que aparezcan valores pequeños de level; también se pueden asignar longitudes de código no demasiado largas a valores de level grandes en el caso en el que es difícil deducir por analogía si los valores de level son pequeños o grandes; por lo tanto, es factible llevar a cabo codificación eficiente de valores de level.
El procedimiento de codificación de la cuarta realización de la presente invención ha sido descrito en la configuración en la que se han utilizado MaxL de los valores absolutos de los valores de level en el bloque B y en el bloque C en las proximidades del bloque objetivo de codificación como información de referencia H3 de la tabla de codificación de longitud variable, pero es evidente que la presente invención no debe quedar limitada en modo alguno a este ejemplo y que, por ejemplo, el máximo puede ser seleccionado a partir de valores absolutos de valores de level en el rango de referencia, incluyendo también otros bloques adyacentes codificados anteriormente o el máximo puede ser substituido por cualquier otra información seleccionada de una variedad de elementos de información que indican la característica de los valores de level en los bloques adyacentes, tal como un valor intermedio, un total de valores absolutos, una variancia, un promedio de valores absolutos, y otros.
El procedimiento de codificación de la cuarta realización de la presente invención ha sido descrito de manera que la codificación de valores de “run” fue llevada a cabo antes de los valores de level, pero es evidente que la presente invención puede ser dispuesta de manera que los valores “run” son codificados después de los valores de level o que los valores “run” y los valores de level son codificados de manera alternativa.
La figura 14 es una ilustración que muestra el diagrama de bloques del decodificador 21 de longitud variable, de acuerdo con la cuarta realización de la presente invención. Cuando se alimentan los datos codificados D9, codificados por el procedimiento de codificación de la cuarta realización de la presente invención en la parte 40 de salida de símbolos decodificados del decodificador 21 de longitud variable, la memoria 41 de símbolos decodificados alimenta MaxL en el proveedor 43 de la tabla de decodificación de longitud variable. A continuación, el proveedor 43 de la tabla de decodificación de longitud variable determina una tabla de decodificación de longitud variable utilizada para el objetivo, por el proceso similar al de la codificación y suministra la tabla H9 de decodificación de longitud variable a la parte 40 de salida de símbolos decodificados. La parte 40 de salida de símbolos decodificados lleva a cabo a continuación la decodificación de longitud variable para decodificar y emitir los valores de level como símbolos H6 decodificados, y simultáneamente los almacena en la memoria 41 de símbolos decodificados.
Dado que el decodificador de longitud variable está configurado tal como se ha descrito anteriormente, es factible decodificar de manera apropiada los datos codificados por el procedimiento de codificación de la cuarta realización de la presente invención.
El procedimiento de codificación y procedimiento de decodificación de la cuarte realización de la presente invención se han descrito anteriormente utilizando los valores de tablas específicos, pero es evidente que la presente invención no está destinada a quedar limitada a estos valores. La realización de la presente invención se ha descrito utilizando el ejemplo de coeficientes de DCT de 8 píxeles x 8 líneas, pero no es necesario indicar que el tipo de transformado ortogonal y las dimensiones de los bloques no están limitados a los indicados. (Quinta Realización)
El procedimiento de codificación de la quinta realización de la presente invención se describirá a continuación. En este caso, la información D2 del vector de movimiento es facilitado del modo siguiente: por ejemplo, en la codificación en MPEG-4, un valor intermedio de vectores de movimiento en los macrobloques adyacentes es generado como valor de predicción para un vector de movimiento en un macrobloque como objetivo de codificación, y se codifica una diferencia MVD entre el valor de predicción y el vector de movimiento real.
En este caso, tal como se ha mostrado en la figura 3, se supondrá que el macrobloque objetivo de codificación es el macrobloque A, un bloque adyacente por encima del mismo es el macrobloque B, y el bloque adyacente por la izquierda a aquél será el macrobloque C. En señales de imagen, particularmente las señales naturales y similares, tienden a tener una tendencia de cambio similar de textura y movimiento en una cierta área a la de las áreas adyacentes. Por lo tanto, en el caso en el que el cambio de movimiento es grande en macrobloques adyacentes a un macrobloque como objetivo de codificación, el cambio de movimiento es también grande en el macrobloque objetivo de codificación, y es difícil deducir por analogía, cuál es el valor absoluto de la diferencia del vector de movimiento. Inversamente, en el caso en el que el cambio de movimiento es pequeño en las proximidades de los macrobloques, se puede inferir que es muy probable que las áreas adyacentes contienen movimiento monótono o se encuentran todas detenidas y, por lo tanto, se puede inferir por analogía que el valor absoluto de la diferencia del vector de movimiento en el macrobloque objetivo de codificación adopta también un valor pequeño.
Por lo tanto, en el caso en el que los valores absolutos de las diferencias del vector de movimiento son pequeños en los macrobloques adyacentes al macrobloque objetivo de codificación, es muy posible que el valor absoluto de la diferencia de vector de movimiento del objetivo de codificación converja en la proximidad de 0, y por lo tanto la codificación se puede llevar a cabo de manera eficiente por utilización de una tabla de codificación de longitud variable con longitudes de codificación corta en la proximidad de 0. Inversamente, en el caso en el que los valores absolutos de las diferencias de vector de movimiento son grandes en los macrobloques adyacentes al macrobloque objetivo de codificación, el valor absoluto de la diferencia del vector de movimiento del objetivo de codificación no siempre converge en la proximidad de 0. Por lo tanto, en este caso, la codificación puede ser llevada a cabo eficientemente por utilización de una tabla de codificación de longitud variable sin diferencias demasiado grandes en las longitudes de código, con independencia de si el valor absoluto de la diferencia del vector de movimiento es grande o pequeño.
Teniendo estas cuestiones en consideración, la quinta realización de la presente invención comprende la preparación de una serie de tablas de codificación de longitud variable con diferentes características de desviación distribución de longitudes de código, por ejemplo, tal como se ha mostrado en las figuras 21A-21C, e implementando conmutación de la tabla de codificación de longitud variable para la diferencia de vector de movimiento en el macrobloque objetivo de codificación, de acuerdo con magnitudes de valores absolutos de diferencias de vector de movimiento en macrobloques adyacentes al macrobloque objetivo de codificación.
De manera específica, se definirán MVD (B) y MVD (C) como valores absolutos de diferencias de vector de movimiento en el macrobloque B adyacente por encima y en el macrobloque C adyacente por la izquierda como macrobloques adyacentes al macrobloque objetivo de codificación A, por ejemplo, tal como se ha mostrado en la figura 23. Con respecto al level predeterminado Th0, la codificación de longitud variable se lleva a cabo del modo siguiente: si ambos MVD (B) y MVD (C) son menores que Th0, la codificación de longitud variable es llevada a cabo utilizando la tabla de la figura 21A como tabla de codificación de longitud variable para la diferencia de vector de movimiento en el macrobloque A; si solamente uno de MVB (B) o MVD (A) es igual a Th0 o superior a Th0, la codificación de longitud variable es llevada a cabo utilizando la tabla de la figura 21B; si ambos MVD (B) y MVD (C) son iguales a Th0 o superiores a Th0, la codificación de longitud variable es llevada a cabo utilizando la tabla de la figura 21C. No obstante, en el caso de que el macrobloque B o el macrobloque C se encuentran fuera de la pantalla
o fuera de un segmento determinado, el proceso es llevado a cabo con la suposición de que el valor absoluto de la diferencia de vector de movimiento de aquel macrobloque es un valor predeterminado Z (Z ; Th0). La razón de ello es que, cuando un macrobloque adyacente se encuentra fuerza de la pantalla o fuera del segmento, es difícil realizar un valor de predicción correcto del vector de movimiento y los valores posibles de la diferencia de vector de movimiento del objetivo de codificación no siempre convergen en las proximidades de 0. En el caso en el que un macrobloque adyacente es un macrobloque intra, el proceso es llevado a cabo de manera similar con la suposición de que el valor absoluto de la diferencia de vector de movimiento del macrobloque es Z. La razón de ello es que es difícil realizar un valor de predicción correcto del vector de movimiento del objetivo de codificación, igual que en el caso anterior, y que los valores posibles de la diferencia del vector de movimiento del objetivo de codificación no siempre convergen en las proximidades de 0.
Es decir, en el codificador 16 de longitud variable de la figura 13, la diferencia del vector de movimiento MVD se alimenta, en primer lugar, como símbolo de entrada H1 en la parte 30 de salida del código de longitud variable. A continuación, la memoria 31 de símbolos codificados alimenta MVD (B) y MVD (C) como información H3 de referencia de la tabla de codificación de longitud variable en el proveedor 33 de la tabla de codificación de longitud variable. Entonces, el proveedor 33 de la tabla de codificación de longitud variable compara MVD (B) y MVD (C) con el level predeterminado Th0, tal como se ha descrito anteriormente, determina una tabla de codificación de longitud variable a utilizar para el vector de movimiento objetivo de codificación, en base al mismo, y proporciona la tabla H5 de codificación de longitud variable para la parte 30 de salida del código de longitud variable. Entonces, el vector de movimiento del objetivo de codificación es codificado en longitud variable para su emisión como datos codificados D9.
En el procedimiento de codificación, según la quinta realización de la presente invención en la que el valor de MVD tiende a converger alrededor de 0, tal como se ha descrito anteriormente, la tabla de codificación de longitud variable es cambiada a una tabla con longitudes de código cortas próximas a 0 para llevar a cabo un control para disminuir las longitudes de código en el caso de que el valor de MVD se encuentra en las proximidades de 0; de manera que el valor de MVD no siempre converge alrededor de 0, la tabla de codificación de longitud variable es cambiada a una tabla con pequeña desviación de longitudes de código para impedir que las longitudes de código resulten largas aunque el valor de MVD sea grande; por lo tanto, es factible codificar de manera eficiente el valor MVD.
El procedimiento de codificación ha sido descrito utilizando las tres tablas de codificación de longitud variable de las figuras 21A-21C, pero es evidente que el número y valores de las tablas de codificación variable no están limitados a los de las figuras 21A-21C. El cambio entre las tablas puede ser implementado también de manera tal que una serie de tablas de codificación de longitud variable sean retenidas en la memoria en el proveedor 33 de tabla de codificación de longitud variable y la disposición de la tabla H3 de codificación de longitud variable es cambiada entre ellos, o de manera tal que se utilicen códigos universales tales como el exp-Golomb y un parámetro del mismo se cambie para generar la tabla H3 de codificación de longitud variable en el proveedor 33 de la tabla de codificación de longitud variable.
La figura 14 es una ilustración que muestra en diagrama de bloques un decodificador 21 de longitud variable, de acuerdo con la quinta realización de la presente invención. Cuando se alimentan datos codificados D9 codificados por el procedimiento de codificación, según la quinta realización de la presente invención a la parte 40 de salida de símbolos decodificados de decodificador de longitud variable 21, la memoria 41 de símbolos decodificados alimenta MVD(B) y MVD(C) calculados a partir de los símbolos decodificados anteriormente, en forma de información H8 de referencia de la tabla de decodificación de longitud variable en el proveedor 43 de la tabla de decodificación de longitud variable. A continuación, el proveedor 43 de la tabla de decodificación de longitud variable selecciona una tabla H10 de decodificación de longitud variable por un procedimiento similar a la codificación, y lo suministra a la parte 40 de salida de símbolos decodificados. Entonces, la parte 40 de salida de símbolos decodificados lleva a cabo la decodificación de longitud variable para decodificar y emitir el valor MVD como símbolo decodificado H6, y simultáneamente, lo almacena en la memoria 41 de símbolos decodificados.
Dado que el decodificador de longitud variable está configurado tal como se ha descrito anteriormente, los datos codificados por el procedimiento de codificación de la quinta realización de la presente invención pueden ser decodificados de manera adecuada.
(Sexta Realización)
El procedimiento de codificación de la quinta realización de la presente invención fue configurado para cambiar la tabla de codificación de longitud variable, de acuerdo con vectores de movimiento en macrobloques alrededor de un macrobloque como objetivo de codificación, mientras que el procedimiento de codificación de la sexta realización de la presente invención se caracteriza por el hecho de que la tabla de codificación de longitud variable es cambiada de acuerdo con las modalidades de codificación del macrobloque en macrobloques alrededor de un macrobloque como objetivo de codificación.
Tal como se ha mostrado anteriormente en las figuras 3A-3C, por ejemplo, MPEG-4 tiene tres clases de modalidades de codificación de macrobloques, la modalidad de codificación inter 0, la modalidad de codificación inter 1, y la modalidad de codificación intra. A este respecto, la modalidad de codificación inter 1 es una modalidad de codificación en la que la compensación de movimiento es realizada de manera más efectiva utilizando cuatro vectores de movimiento, de manera que el movimiento en la pantalla es más complejo que en la modalidad de codificación inter 0. Por lo tanto, se puede inferir que el movimiento en la pantalla en un macrobloque para el que se ha seleccionado la modalidad de codificación inter 1 es más complejo que el de un macrobloque para el cual se ha seleccionado la modalidad de codificación inter 0. En el procedimiento de codificación, de acuerdo con la segunda realización de la presente invención, por lo tanto, se definen puntos P(MB) que indican complejidad de acuerdo con cada modalidad de codificación para un macrobloque arbitrario MB, tal como se ha mostrado en la figura 25. Se supondrán los puntos P(B) y P(C) calculados para los macrobloques B y C mostrados en la figura 8, que son adyacentes a un macrobloque como objetivo de codificación, de acuerdo con la definición. Entonces, un punto para
A continuación, el punto P(A) calculado, tal como se ha descrito anteriormente, representa la complejidad de movimiento en la pantalla en los macrobloques adyacentes al macrobloque como objetivo de codificación, y la dificultad de predicción del vector de movimiento en el macrobloque como objetivo de codificación a partir de los macrobloques adyacentes. Cuanto mayor es el punto, más difícil es la predicción o más complejo es el movimiento. Por lo tanto, se han preparado una serie de tablas de codificación de longitud variable con diferentes características de desviación de distribución de longitudes de código, tal como se han mostrado en las figuras 21A-21C, y la tabla de codificación de longitud variable para el vector de movimiento para la diferencia de vector de movimiento en el macrobloque objetivo de codificación se cambia de acuerdo con la magnitud del punto P(A) calculado a partir de modalidades de codificación de macrobloque en los macrobloques adyacentes al macrobloque objetivo de codificación.
Específicamente, por ejemplo, con respecto a los level predeterminados Th1 y Th2 (Th1 < Th2), se puede inferir que, si el punto P(A) es menor que Th1, el movimiento no es complejo y el vector de movimiento tiende a ser correcto y, por lo tanto, la codificación de longitud variable es llevada a cabo utilizando la tabla de la figura 21A configurada de manera que los códigos para vectores de movimiento con su valor absoluto próximo 0 tiene longitudes de código más cortas. De manera similar, si P(A) no es menor de Th1 y es menor de Th2, la codificación de longitud variable es llevada a cabo utilizando la tabla de la figura 21B; si P(A) no es menor de Th2, la codificación de longitud variable es llevada a cabo utilizando la tabla de la figura 21C. No obstante, en el caso de que el macrobloque B o el macrobloque C se encuentren fuera de la pantalla o fuera de un segmento determinado, el punto P(X) de aquél macrobloque (en el que X es B o C), se supone que es el mismo punto que para la modalidad de codificación intra (con coeficientes AC). La razón de ello es que, cuando un macrobloque adyacente se encuentra fuera de la pantalla
o fuera del segmento, el valor de predicción del vector de movimiento es improbable que sea correcto, y los valores posibles de la diferencia del vector de movimiento del objetivo de codificación no siempre convergen alrededor de 0. Es decir, en el codificador de longitud variable 16 de la figura 13, la diferencia MVD del vector de movimiento es alimentada en primer lugar como símbolo de entrada H1 en la parte 30 de salida de código de longitud variable. Entonces, la memoria de símbolos codificados 31 alimenta la información de modalidad de codificación del macrobloque B y el macrobloque C como información H3 de referencia de tabla de codificación de longitud variable en el proveedor 33 de la tabla de codificación de longitud variable. Después de ello, el proveedor 33 de la tabla de codificación de longitud variable calcula el punto P(A) que se ha descrito anteriormente, lo compara con los level predeterminados Th1 y Th2, determina un tabla de codificación de longitud variable a utilizar para el vector de movimiento de objetivo de codificación en base al mismo y, proporciona la tabla de codificación H5 de longitud variable para la parte 30 de salida del código de longitud variable. Entonces, el vector de movimiento del objetivo de codificación es codificado según longitud variable para su emisión como datos codificados D9.
En el procedimiento de codificación, según la sexta realización de la presente invención, en el caso en el que el valor MVD tiende a converger alrededor de 0 por analogía de las modalidades de codificación del macrobloque en los macrobloques alrededor del macrobloque como objetivo de codificación, tal como se ha descrito anteriormente, la tabla de codificación de longitud variable es cambiada a una tabla con longitudes de código cortas alrededor de 0 para llevar a cabo dicho control a efectos de reducir las longitudes de código en el caso de que el valor de MVD es próximo a 0; de manera que el MVD no siempre tiende a converger alrededor de 0, la tabla de codificación de longitud variable es cambiada a una tabla con pequeña desviación de longitudes y código para impedir que las longitudes de código se hagan largas aunque el valor de MVD es grande; por lo tanto, es factible implementar codificación eficiente del valor MVD.
El procedimiento de codificación ha sido descrito utilizando las tres tablas de codificación de longitud variable de las figuras 21A-21C, pero es evidente que el número y valores de las tablas de codificación de longitud variable no están limitados a los de las figuras 21A-21C. El cambio entre las tablas también se puede implementar de manera tal que se conserve una serie de tablas de codificación de longitud variable en una memoria en el proveedor 33 de la tabla de codificación de longitud variable y la disposición de la tabla H5 de codificación de longitud variable es cambiada entre ellas o de manera tal que se utilizan códigos universales tal como el código exp-Golomb, tal como se ha indicado a título de ejemplo y un parámetro del mismo es cambiado para generar la tabla de codificación de longitud variable H5 en el proveedor 33 de la tabla de codificación de longitud variable.
La figura 14 es una ilustración que muestra el diagrama de bloques del decodificador 21 de la longitud variable, de acuerdo con la sexta realización de la presente invención. Cuando lo datos codificados D9, codificados por el procedimiento de codificación de la sexta realización de la presente invención son suministrados a la parte 40 de salida de símbolos decodificados del decodificador 21 de longitud variable, la memoria 41 de símbolos decodificados alimenta las modalidades de codificación del macrobloque en los macrobloques B y C adyacentes al macrobloque como objetivo de codificación que se determinan a partir de los símbolos decodificados anteriormente, tal como información H8 de referencia de la tabla de decodificación de longitud variable al proveedor 43 de la tabla de decodificación de longitud variable. A continuación, el proveedor 43 de la tabla de decodificación de longitud variable selecciona una tabla de decodificación de longitud variable H10 mediante un procedimiento similar a la codificación, y lo suministra a la parte 40 de salida de símbolos decodificados. Después de ello, la parte 40 de salida de símbolos decodificados lleva a cabo la decodificación de longitud variable para decodificar y emitir el valor MVD como símbolo decodificado H6, y simultáneamente lo almacena en la memoria 41 de símbolos decodificados.
Dado que el decodificador de longitud variable está configurado tal como se ha descrito anteriormente, es factible decodificar de manera adecuada los datos codificados por el procedimiento de codificación, de acuerdo con la sexta realización de la presente invención.
La sexta realización de la presente invención describió el procedimiento de codificación preferente y el procedimiento de decodificación de la diferencia del vector de movimiento utilizando las modalidades de codificación del macrobloque por la utilización del ejemplo de aplicación a MPEG-4, pero se observará que el procedimiento de codificación no está limitado a este ejemplo, de forma evidente. Un ejemplo que se describe a continuación es un procedimiento de codificación en el que la invención es aplicada al sistema de codificación H.26L.
En el sistema de codificación H.26L, las modalidades de codificación del macrobloque preparadas son diez modalidades de codificación incluyendo una modalidad de salto (Skip) 0, siete modalidades inter 1-7, y dos modalidades intra 8, 9, tal como se ha mostrado en las figuras 24A-24J.
Entre éstas, la modalidad de salto 0 es una modalidad utilizada en el caso en que no se detecta movimiento de imagen, y una modalidad de copiado de una imagen en la misma localización en una trama de referencia utilizada para la compensación de movimiento.
Las modalidades inter 1-7 son modalidades en las que se lleva a cabo la codificación intertrama (codificación entre tramas) utilizando sus respectivas segmentaciones de bloques diferentes entre sí. Los bloques de compensación de movimiento en las respectivas modalidades son definidas tal como se ha mostrado en las figuras 24A-24J: la modalidad 1 es una modalidad que utiliza un bloque con dimensiones de 16 píxeles x 16 líneas. La modalidad 2 es una modalidad que utiliza dos bloques con dimensiones de 16 píxeles x 8 líneas. La modalidad 3 es una modalidad que utiliza dos bloques con dimensiones de 8 píxeles x 16 líneas. La modalidad 4 es una modalidad que utiliza cuatro bloques con dimensiones de 8 píxeles x 8 líneas. La modalidad 5 es una modalidad que utiliza ocho bloques con dimensiones de 8 píxeles x 4 líneas. La modalidad 6 es una modalidad que utiliza ocho bloques con dimensiones de 4 píxeles x 8 líneas. La modalidad 7 es una modalidad que utiliza dieciséis bloques con dimensiones de 4 píxeles x 4 líneas. La figura 28A muestra una tabla de mapa indicando la correspondencia entre estas modalidades y valores índice, y la figura 28B es una tabla de codificación de longitud variable que indica códigos que corresponden a los respectivos valores índice.
Las modalidades intra 8, 9 son modalidades en las que la codificación intertrama (codificación dentro de la trama) es llevada a cabo utilizando sus respectivas segmentaciones de bloques diferentes entre sí. Los bloques en las respectivas modalidades están definidas tal como se ha mostrado en las figuras 24A-24J: la modalidad 8 es una modalidad que utiliza dieciséis bloques con dimensiones 4 píxeles x 4 píxeles. La modalidad 9 es una modalidad que utiliza un bloque con dimensiones de 16 x 16.
A continuación, para estas diez modalidades de codificación, se definirán puntos P de manera muy similar al ejemplo de aplicación a MPEG-4. Por ejemplo, los puntos son definidos tal como se ha mostrado en la figura 27. Es decir, dado que se puede inferir que el movimiento resulta más complejo al aumentar el número de segmentos de bloque en las modalidades de codificación inter, los puntos son definidos de manera que resultan más grandes con incremento en el número de segmentos de bloque. Dado que la modalidad de salto se considera que no contiene movimiento, se puede inferir que el movimiento en las adyacente es frecuentemente nulo o pequeño y, por lo tanto, el punto se define como un punto que adopta un valor pequeño. También se espera en las modalidades de codificación intra, que el movimiento resulte complejo con el incremento en el número de segmentos de bloque a efectos de hacer más difícil la realización de una predicción precisa del vector de movimiento en el macrobloque objetivo de codificación, y que en el caso en el que el número de segmentos de bloque es pequeño en movimiento, no puede ser tan complejo, pero la predicción del vector de movimiento tiende a anularse. Por lo tanto, en la modalidad 8, el punto es definido para adoptar un gran volumen y en la modalidad 9 el punto es definido para adoptar un valor más pequeño que en la modalidad 8. Se observará que estos valores se han presentado solamente como ejemplo para una comprensión más fácil de la descripción, y la presente invención no está destinada en modo alguno a quedar limitada a estos valores específicos de la tabla.
A continuación, utilizando la tabla de puntos para las modalidades de codificación de la figura 27, se calculan los puntos P(B) y P(C) de los macrobloques B y C adyacentes al macrobloque objetivo de codificación básicamente de la misma manera que en el ejemplo de aplicación de MPEG-4. A continuación, se determina el punto P(A) para el macrobloque objetivo de codificación a partir de P(B) y P(C).
Posteriormente, se compara P(A) con los level de manera similar y la tabla de codificación de longitud variable es cambiada de acuerdo con el resultado de la comparación, posibilitando de este modo la aplicación de la presente invención al sistema de codificación H.26L.
(Séptima Realización)
Se describe a continuación el procedimiento de codificación, de acuerdo con la séptima realización de la presente invención. En ella, las modalidades de codificación del macrobloque, por ejemplo, en MPEG-4, tal como se ha mostrado anteriormente en las figuras 3A-3C, se clasifican bajo tres modalidades de codificación de macrobloques, la modalidad de codificación inter 0, la modalidad de codificación inter 1, y la modalidad de codificación intra. A este respecto, la modalidad de codificación inter 1 es una modalidad de codificación para llevar a cabo la compensación de movimiento utilizando cuatro vectores de movimiento de manera más efectiva en el caso de que el movimiento en la pantalla es complejo o en el caso en el que la textura es compleja en comparación con la modalidad de codificación inter 0. Por lo tanto, se puede deducir que el movimiento y textura en la pantalla en un macrobloque para el que se ha seleccionado la modalidad de codificación inter 1, son más complejos que en un macrobloque para el que se ha seleccionado la modalidad de codificación inter 0. También se considera, en cuanto a la modalidad de codificación intra, que la textura pasa a ser más compleja con el incremento en el número de coeficientes distintos de cero en un macrobloque, e inversamente, la textura se hace más monótona con la disminución en el número de coeficientes distintos de cero.
En este caso, tal como se ha mostrado en la figura 23, se supondrá que un macrobloque como objetivo de codificación será un macrobloque A, un bloque adyacente por encima del mismo será un macrobloque B y un bloque adyacente a la izquierda será un macrobloque C. En las señales de imagen, especialmente en el caso de imágenes naturales y similares, ocurre frecuentemente que la tendencia de cambio de textura y movimiento en un área determinada es similar a las de las áreas adyacentes. Por lo tanto, en el caso en el que el movimiento y textura son complejos en macrobloques adyacentes a un macrobloque que es objetivo de codificación, se puede deducir que el movimiento y textura se hacen también complejos en el macrobloque objetivo de codificación. Inversamente, en el caso de que el movimiento y la textura sean monótonos en los macrobloques adyacentes, se puede deducir que el movimiento y textura son también monótonos en el macrobloque objetivo de codificación.
Se deduce que se puede hacer análoga una modalidad de codificación que aparece con probabilidad en el macrobloque objetivo de codificación, a partir de la información de las modalidades de codificación del macrobloque,
o similares, en los macrobloques adyacentes al macrobloque objetivo de codificación.
En el procedimiento de codificación, de acuerdo con la séptima realización de la presente invención, por lo tanto, para un macrobloque arbitrario MB, se define el punto P(MB) indicador de la complejidad, de acuerdo con cada una de las modalidades de codificación, tal como se ha mostrado en la figura 25. No obstante, para la modalidad de codificación intra, se definen puntos diferentes dependiendo de si hay componentes AC entre los coeficientes de transformación ortogonal de componente luma. Los puntos P(B) y P(C) se definen como puntos calculados para macrobloques B y C mostrados en la figura 23 adyacentes al macrobloque objetivo de codificación mediante la aplicación de la definición. Entonces, se define un punto para el macrobloque A objetivo de codificación por la siguiente ecuación (13).
A continuación, el punto P(A) calculado tal como se ha descrito, indica la complejidad de movimiento y textura en los macrobloques adyacentes al macrobloque objetivo de codificación. Cuanto mayor es el punto, más complejos son el movimiento y la textura.
Por lo tanto, se preparara una tabla de mapa, tal como se ha mostrado en la figura 26A, y una tabla de codificación de longitud variable, tal como se ha mostrado en la figura 26B. La tabla de mapa es cambiada, de acuerdo con la magnitud del punto P(A) calculado a partir de las modalidades de codificación del macrobloque en los macrobloques adyacentes al macrobloque objetivo de codificación a efectos de cambiar la asignación de palabras de código en la codificación de longitud variable de la modalidad de codificación del macrobloque en el macrobloque objetivo de codificación. No obstante, dado que se han calculado dos puntos para un macrobloque intra, se adopta el más pequeño.
Específicamente, la tabla de mapa es cambiada del modo siguiente: por ejemplo, se calcula una diferencia DP entre el punto calculado P(A) y un punto definido para cada modalidad ed codificación y valores índice en la tabla de mapa son dispuestos en orden creciente, desde el más pequeño correspondiente a orden creciente de valores DP de las modalidades de codificación.
Es decir, en el codificador 16 de longitud variable de la figura 13, se envía, en primer lugar, una modalidad de codificación de un macrobloque como símbolo de entrada H1 en la parte 30 de salida del código de longitud variable. A continuación, la memoria 31 de lo símbolos codificados introduce la información de modalidad de codificación, y los CBP de los macrobloques B y C como información H2 de referencia de la tabla de mapa de codificación al proveedor 32 de la tabla de mapa de codificación. Entonces, el proveedor 32 de la tabla de mapa calcula el punto P(A), tal como se ha descrito anteriormente, determina una tabla de mapa de codificación en base al mismo y proporciona la tabla de mapa de codificación H4 para la parte 30 de salida de código de longitud variable. El proveedor 33 de tabla de codificación de longitud variable proporciona también una tabla H5 de codificación de longitud variable para la parte 30 de salida del código de longitud variable. Entonces, la modalidad de codificación del macrobloque es codificada en longitud variable para su emisión como datos codificados D9.
Dado que el procedimiento de codificación en la séptima realización de la presente invención está configurado para cambiar la tabla de mapa para codificar una modalidad de codificación de macrobloque, que por analogía es probable que aparezca por una longitud de código más corta, tal como se ha descrito anteriormente, puede codificar de manera eficiente la modalidad de codificación del macrobloque.
La figura 14 es una ilustración que muestra el diagrama de bloques del decodificador 21 de longitud variable, de acuerdo con la séptima realización de la presente invención. Cuando los datos codificados D9 codificados por el procedimiento de codificación de la séptima realización de la presente invención son alimentados a la parte 40 de salida de símbolos decodificados del decodificador 21 de longitud variable, la memoria 41 de símbolos decodificados alimentan las modalidades de codificación del macrobloque y los CBP en los macrobloques B y C, que son símbolos previamente decodificados, como información H7 de referencia de la tabla de mapa de decodificación en el proveedor 42 de la tabla de mapa de decodificación. Entonces, el proveedor 42 de la tabla de mapa de decodificación selecciona una tabla de mapa de decodificación H9 mediante un proceso similar a la codificación y lo facilita a la parte 40 de salida de símbolos decodificados. El proveedor 43 de la tabla de decodificación de longitud variable facilita también una tabla H10 de decodificación de longitud variable a la parte 40 de salida de símbolos decodificados. A continuación, la parte 40 de salida de símbolos decodificados lleva a cabo la decodificación de longitud variable para decodificar y emitir la modalidad de codificación como símbolo decodificado H6 y, simultáneamente, la registra en la memoria 41 de símbolos decodificados.
Dado que el decodificador de longitud variable está configurado tal como se ha descrito anteriormente, es factible decodificar de manera adecuada los datos codificados por el procedimiento de codificación de la séptima realización de la presente invención.
La séptima realización de la presente invención ha descrito el procedimiento de codificación preferente y el procedimiento de decodificación de la modalidad de codificación del macrobloque utilizando la información de codificación de los macrobloques adyacentes alrededor del macrobloque objetivo de codificación por la utilización del ejemplo de aplicación a MPEG-4, pero es evidente que el procedimiento de codificación no está limitado a este ejemplo. Un ejemplo que se describe a continuación es un procedimiento de codificación como ejemplo de aplicación al sistema de codificación H.26L.
En el sistema de codificación H.26L, las modalidades de codificación del macrobloque preparadas son diez modalidades de codificación incluyendo una modalidad de salto (Skip) 0, siete modalidades inter 1-7, y dos modalidades intra 8,9, tal como se ha mostrado en las figuras 24A-24J.
Entre éstas, la modalidad de salto 0 es una modalidad utilizada en el caso en que no se detecta movimiento de imagen, y modalidad de copiado de una imagen en la misma localización en una trama de referencia utilizada para la compensación de movimiento.
Las modalidades inter 1-7, son modalidades en las que el código intertrama (codificación entre tramas) es llevada a cabo utilizando sus respectivas segmentaciones de bloque diferentes entre sí. Los bloques de compensación de movimiento en las modalidades respectivas se han definido tal como se ha mostrado en las figuras 24A-24J: la modalidad 1 es una modalidad que utiliza un bloque con dimensiones con 16 píxeles x 16 líneas. La modalidad 2 es una modalidad que utiliza dos bloques de dimensiones de 16 píxeles x 8 líneas. La modalidad 3 es una modalidad que utiliza dos bloques con dimensiones 8 píxeles x 16 líneas. La modalidad 4 es una modalidad que utiliza cuatro bloques con dimensiones de 8 píxeles x 8 líneas. La modalidad 5 es una modalidad que utiliza ocho bloques con dimensiones de 8 píxeles x 4 líneas. La modalidad 6 es una modalidad que utiliza ocho bloques con dimensiones de 4 píxeles x 8 líneas. La modalidad 7 es una modalidad que utiliza dieciséis bloques con dimensiones de 4 píxeles x 4 líneas.
Las modalidades intra 8, 9 son modalidades en las que la codificación intertrama (codificación dentro de la trama) es llevada a cabo utilizando sus respectivas segmentaciones de bloques distintas entre sí. Los bloques en las modalidades respectivas son definidos, tal como se ha mostrado en las figuras 24A-24J: la modalidad 8 es una modalidad que utiliza dieciséis bloques de dimensiones 4 píxeles x 4 píxeles. La modalidad 9 es una modalidad que utiliza un bloque de dimensiones de 16 x 16.
A continuación, para estas diez modalidades de codificación, se definirán puntos P de manera muy similar al ejemplo de aplicación a MPEG-4. Por ejemplo, los puntos son definidos tal como se ha mostrado en la figura 27. Es decir, dado que se puede deducir que el movimiento y textura resultan más complejos con el aumento del número de segmentos de bloques en las modalidades de codificación inter, los puntos son definidos de manera que resultan más grandes con el incremento del número de segmentos de bloques. Dado que la modalidad de salto se considera que no contiene movimiento, se puede deducir que el movimiento en las proximidades es también frecuentemente nulo o pequeño y, por lo tanto, el punto es definido de manera que adopta un valor pequeño. Se espera también en las modalidades de codificación intra que el movimiento y textura se hagan más complejos con el incremento del número de segmentos de bloques, haciendo más difícil una predicción correcta del vector de movimiento en el macrobloque objetivo de codificación y que, en el caso en el que el número de segmentos del bloque es pequeño, el movimiento y la textura pueden no ser tan complejos, pero la predicción del vector de movimiento tiende a anularse. Por lo tanto, en la modalidad 8, los puntos se definen adoptando un valor grande, y en la modalidad 9 el punto se define adoptando un valor más pequeño que en la modalidad 8. Se observará que estos valores son presentados solamente como ejemplo para facilitar la comprensión de la descripción y que la presente invención no está destinada de modo alguno a quedar limitada a estos valores específicos de la tabla.
A continuación, utilizando la tabla de puntos para las modalidades de codificación de la figura 27, se calculan los puntos P(B) y P(C) de los macrobloques B y C adyacentes al macrobloque objetivo de codificación de manera muy similar al ejemplo de aplicación a MPEG-4. Entonces, el punto P(A) para el macrobloque objetivo de codificación es determinado a partir de P(B) y P(C), de acuerdo con la ecuación (13).
Posteriormente, si bien se hace referencia al valor de P(A) de manera similar, la tabla de mapa es cambiada a una en la que los valores índice se hacen más pequeños al resultar un punto de cada modalidad de codificación más próximo al valor del punto P(A) posibilitando, por lo tanto, la aplicación de la presente invención al sistema de codificación H.26L.
(Octava realización)
La séptima realización de la presente invención comportaba el cambio de solamente la tabla de mapa sin cambio de la tabla de codificación de longitud variable, mientras que el procedimiento de codificación de la octava realización de la presente invención se caracteriza porque la tabla de codificación de longitud variable es cambiada de acuerdo con las modalidades de codificación de los macrobloques adyacentes al macrobloque objetivo de codificación a efectos de implementar una codificación más eficiente.
A continuación, en el caso de que se seleccionen modalidades de codificación indicativas de complejidad del mismo nivel en los macrobloques B y C adyacentes al macrobloque A como objetivo de codificación previamente mostrado en la figura 23, se puede deducir que es altamente posible que se seleccione también en el macrobloque A una modalidad de codificación indicativa de complejidad del mismo nivel que la de los macrobloques B y C. No obstante, en el caso en el que se seleccionan modalidades de codificación que indican complejidades completamente diferentes en los macrobloques B y C, no se puede deducir por analogía qué modalidad de codificación es seleccionada en el macrobloque A. Por lo tanto, en caso de que los grados de complejidad son similares en las modalidades de codificación seleccionadas en los macrobloques B y C, la codificación de longitud variable de la modalidad de codificación es llevada a cabo utilizando la tabla de codificación de longitud variable con una desviación grande de longitudes en el código a efectos de implementar la codificación con longitudes de código más cortas para modalidades de codificación de valores índice más pequeños; inversamente, en el caso en que los grados de complejidad no son similares en las modalidades de codificación seleccionadas en los macrobloques B y C, la codificación de longitud variable de la modalidad de codificación es llevada a cabo utilizando la tabla de codificación de longitud variable con pequeña desviación de longitudes de código para no proporcionar una diferencia grande entre longitudes de código para las modalidades de codificación de valores índice pequeños y longitudes de código para modalidades de codificación de valores índice grandes, de manera que es factible implementar la codificación eficiente de longitud variable de la modalidad de codificación.
Por ejemplo, se han preparado una serie de tablas de codificación de longitud variable con diferentes características de desviación de distribución de longitudes de código, tal como se ha mostrado en las figuras 21A-21C y la tabla de codificación de longitud variable del macrobloque objetivo de codificación es cambiada de acuerdo con la magnitud de la diferencia entre los puntos P(B) y P(C) en los macrobloques adyacentes al macrobloque objetivo de codificación.
De manera específica, por ejemplo, en la aplicación al sistema de codificación H.26L, el cambio de la tabla de mapa es llevado a cabo de acuerdo con la séptima realización de la presente invención y el valor absoluto PD es calculado de la diferencia entre los puntos P(B) y P(C) determinada para los macrobloques B y C a partir de la tabla de la figura 27. Entonces, por ejemplo, con respecto a los level predeterminados Th1 y Th2 (Th1<Th2), la tabla de codificación de longitud variable de la figura 21A con una desviación grande de longitudes de código es utilizada siendo PD menor que Th1; la tabla de codificación de longitud variable de la figura 21B es utilizada en la que PD no es menor que Th1 y es menor que Th2; la tabla de codificación de longitud variable de la figura 21C con pequeña desviación de longitudes de código es utilizada en la que PD no es menor que Th2; de manera que es factible implementar una codificación eficiente de la modalidad de codificación del macrobloque.
Es decir, en el codificador de longitud variable 16 de la figura 13 se facilita en primer lugar una modalidad de codificación del macrobloque como símbolo de entrada H1 a la parte 30 de salida de código de longitud variable. Entonces, la memoria de símbolos codificados 31 alimenta la información de modalidad de codificación del macrobloque B y el macrobloque C como información H2 de referencia de la tabla de mapa de codificación en el proveedor 32 de la tabla de mapa de codificación. De manera similar, la memoria de símbolos codificados 31 facilita también la información de modalidad de codificación del macrobloque B y el macrobloque C como información H3 de referencia de la tabla de codificación de longitud variable al proveedor 33 de la tabla de codificación de longitud variable. Entonces, el proveedor 32 de la tabla de mapa de codificación calcula el punto P(A) que se ha descrito anteriormente, determina una tabla de mapa de codificación en base al mismo y proporciona la tabla H4 de mapa de codificación para la parte 30 de salida de código de longitud variable. El proveedor 33 de la tabla de codificación de longitud variable compara el valor absoluto PD de la diferencia entre el punto P(B) y el punto P(C) con los level predeterminados Th1 y Th2, tal como se ha descrito anteriormente para seleccionar una tabla de codificación H5 de longitud variable, y a continuación, lo facilita para la parte 30 de salida de código de longitud variable. Entonces, la modalidad de codificación de macrobloque es codificada en longitud variable para su emisión como datos codificados D9.
En el decodificador de longitud variable, de acuerdo con la octava realización de la presente invención, tal como se ha mostrado en la figura 14, cuando se facilitan los datos codificados D9 codificados por el procedimiento de codificación de la octava realización de la presente invención a la parte 40 de salida de símbolos decodificados del decodificador 21 de longitud variable, la memoria 41 de símbolos decodificados facilita la información de la modalidad de codificación del macrobloque a los macrobloques B y C siendo símbolos previamente decodificados, como información H7 de referencia de la tabla de mapa de decodificación al proveedor 42 de la tabla de mapa de decodificación. De manera similar, la memoria 41 de símbolos decodificados facilita también la información de modalidad de codificación del macrobloque en los macrobloques B y C que son símbolos previamente decodificados como información H8 de referencia de la tabla de decodificación de longitud variable en el proveedor 43 de la tabla de decodificación de longitud variable. Entonces, el proveedor 42 de la tabla de mapa de decodificación selecciona una tabla H9 de mapa de decodificación por un proceso similar a la codificación y lo facilita a la parte 40 de salida de símbolos decodificados. El proveedor 43 de la tabla de decodificación de longitud variable selecciona también una tabla H10 de decodificación de longitud variable por un procedimiento similar a la codificación y lo facilita a la parte 40 de salida de símbolos decodificados. Después de ello, una parte 40 de salida de símbolos decodificados lleva a cabo la decodificación de longitud variable para decodificar y emitir la modalidad de codificación como símbolo decodificado H6 y simultáneamente la registra en la memoria 41 de símbolos decodificados.
Dado que el decodificador de longitud variable está configurado tal como se ha descrito en lo anterior, es factible decodificar de manera apropiada los datos codificados por el procedimiento de codificación de la octava realización de la presente invención.
(Novena realización)
Los procedimientos de codificación de las realizaciones primera a octava de la presente invención, se han caracterizado por cambiar de manera adaptativa la tabla del mapa de codificación o la tabla de codificación de longitud variable de acuerdo con el contexto en las proximidades, mientras que el procedimiento de codificación, de acuerdo con la novena realización de la presente invención, se caracteriza por comportar un aprendizaje adicional de información de codificación correspondiente a cada valor índice en cada tabla de mapa de codificación a partir del resultado de codificación anterior.
La figura 30 es un diagrama de bloques que muestra una configuración de codificador 50 de longitud variable con una función de aprendizaje añadida, de acuerdo con la novena realización de la presente invención. En la figura 30, los mismos elementos que en el codificador 16 de longitud variable de la figura 13 se han designado con los mismos símbolos de referencia sin descripción redundante de los mismos. En el codificador 50 de longitud variable con función añadida de aprendizaje de la novena realización de la presente invención, la parte 51 de salida de código de longitud variable con función de realimentación añadida se caracteriza por tener adicionalmente una función de salida del valor índice adoptado H11 que es un valor índice con respecto a un símbolo de entrada en una tabla de mapa de codificación, además de la función de la parte de salida 30 de longitud variable de la figura 13. Además, el proveedor 52 de la tabla de mapa de codificación con la función de aprendizaje añadida se caracteriza por tener adicionalmente una función de recepción del valor índice adoptado en H11 y actualizar la tabla de mapa en el contexto contra el símbolo de entrada H1, además de la función del proveedor 32 de la figura 13 de la tabla de mapa de codificación.
Cuando el símbolo de entrada H1 es alimentado al codificador 50 de longitud variable con la función de aprendizaje añadida, de acuerdo con la novena realización de la presente invención, el proveedor 52 de la tabla de mapa de codificación con función de aprendizaje añadida determina una tabla de mapa utilizada en base a la información H2 de referencia de la tabla de mapa de codificación y del resultado de aprendizaje anterior y proporciona la tabla de mapa H4 para ser utilizada, para la parte 51 de salida de código de longitud variable con función de realimentación añadida. El proveedor 33 de la tabla de codificación de longitud variable determina, en caso necesario, una tabla de codificación de longitud variable a utilizar, en base a la información H3 de referencia de la tabla de codificación de longitud variable y proporciona la tabla H5 de codificación de longitud variable a utilizar para la parte 51 de salida de código de longitud variable con función de realimentación añadida. La parte 51 de código de longitud variable con función de realimentación añadida lleva a cabo la codificación de longitud variable del símbolo de entrada H1 utilizando la tabla de mapa y la tabla de codificación de longitud variable obtenida de esta manera, emite los datos codificados D9 y proporciona el valor índice adoptado H11 que es un valor índice en la tabla de mapa correspondiente al símbolo de entrada H1, para el proveedor 52 de la tabla de mapa de codificación con función de aprendizaje añadida. El proveedor 52 de la tabla de mapa de codificación con función de aprendizaje añadida actualiza la tabla de mapa utilizada en base al valor H11 del índice adoptado de entrada y en el caso de que se selecciona el mismo contexto la vez siguiente, la codificación es llevada a cabo utilizando la tabla de mapa actualizada de esta manera.
La actualización de la tabla de mapa se describirá a continuación en detalle con un ejemplo específico. En este caso, se presenta un ejemplo utilizando las modalidades de codificación de los macrobloques en H26.L con el símbolo objetivo de codificación que se describirá como aplicación a la séptima realización de la presente invención. En H26.L hay diez modalidades de codificación de macrobloques, tal como se ha mostrado en las figuras 24A-24J y el ejemplo en la séptima realización de la presente invención es tal que los puntos se han definido tal como se han mostrado en la figura 27, siendo determinado el punto P(A) por la ecuación 13 a partir de los puntos P(B) y P(C) para las modalidades de codificación de los macrobloques B y C adyacentes al macrobloque objetivo de codificación A mostrado en la figura 23, y la tabla de mapa ha sido cambiada utilizando el punto P(A) como contexto.
Es evidente a partir de la ecuación 13, que son valores posibles de P(A) ocho íntegros de 0 a 7. También es evidente que existen ocho tipos de tablas de mapa MT(CX) generadas de acuerdo con los valores CX de P(A). La figura 31 muestra las tablas de mapa MT(CX) en las que CX adopta los valores de 0 a 7. En las tablas mostradas en la figura 31 se supondrá que MT(CX, M) representa un valor de índice correspondiente a una modalidad de codificación M en la tabla de mapa MT(CX). Tal como se aprecia de la figura 31, por ejemplo, una tabla de mapa MT(3,M) para P(A) = 3 es configurada para tomar los valores de índice 7, 2, 0, 1, 3, 4, 5, 8, 9 y 6 en este orden de M = 0 a M = 9.
Suponiendo que el contexto es P(A) = 3 y la modalidad de codificación como objetivo de codificación es modalidad 8, se emite un código que corresponde al valor índice 9 en MT(3, 8) en la tabla de mapa MT(3), por ejemplo, basándose en la tabla de codificación de longitud variable mostrada en la figura 9B. No obstante, si la modalidad 8 es seleccionada con una alta frecuencia como modalidad de codificación con aparición del contexto P(A) = 3, se debería asignar un código corto a la modalidad 8 disponiendo el valor de índice correspondiente en un valor más pequeño.
Por lo tanto, por ejemplo, se cuenta una frecuencia C (3,8) de selecciones de modalidad 8 en MT(3) y, si la frecuencia resulta mayor que el level predeterminado Th9, el valor índice MT(3,8) que corresponde a la modalidad 8 es intercambiado con MT(3,7) que tiene un valor índice más pequeño, siguiente que MT(3,8). La frecuencia de selección C(3,8) que corresponde a la modalidad 8 es dispuesta a 0. Cuando el control se hace de esta manera a efectos de disminuir el valor índice para una modalidad con alta frecuencia de selección y actualizando las tablas de mapa independientemente entre sí, es factible optimizar cada una de las tablas de mapa de acuerdo con cada contexto.
El procedimiento de actualización de las tablas de mapa descritas es solamente un ejemplo, y optimizando las tablas de mapa de acuerdo con cada contexto, tal como se ha descrito, es factible implementar una codificación de longitud variable eficiente más adecuada para el estado de codificación y las características de la imagen.
La figura 32 es un diagrama de bloques que muestra una configuración del decodificador 60 de longitud variable con función añadida de aprendizaje de acuerdo con la novena realización de la presente invención. En la figura 32, los mismos elementos que en el decodificador de longitud variable 21 de la figura 14 se han designado con los mismos símbolos de referencia sin descripción redundante de los mismos. En el decodificador 60 de longitud variable con función de aprendizaje añadida de acuerdo con la novena realización de la presente invención, la parte 61 de salida de símbolos decodificados con función de realimentación añadida se caracteriza por tener adicionalmente una función de salida del valor H12 del índice utilizado que es un valor índice con respecto a un símbolo de salida en una tabla de mapa de decodificación además de una función de la parte de salida 40 de símbolos decodificados de la figura 14. El proveedor 62 de la tabla de mapa de decodificación con la función añadida de aprendizaje, se caracteriza por tener adicionalmente una función de recepción del valor índice utilizado H12 y de actualización de la tabla de mapa en el contexto para el símbolo de salida H6 además de la función del proveedor 42 de la tabla de mapa de decodificación de la figura 14.
El procedimiento de aprendizaje en el decodificador 60 de longitud variable con función de aprendizaje añadida, de la novena realización de la presente invención, configurada tal como se ha descrito anteriormente, está dispuesto de manera que es igual que el proceso de aprendizaje de la novena realización de la presente realización, de manera que es factible decodificar de manera adecuada los datos codificados por el procedimiento de codificación de la novena realización de la presente invención.
La novena realización de la presente invención describe el proceso de aprendizaje utilizando el ejemplo de las modalidades de codificación de macrobloque en el sistema de codificación H26.L, pero es evidente que puede ser aplicado a cualesquiera otros símbolos de codificación sin tener que estar limitados al ejemplo y se pueden conseguir el procedimiento de codificación y el procedimiento de decodificación como resultado de ello.
La novena realización de la presente invención ha sido descrita utilizando el procedimiento de cambio de la tabla de mapa en la séptima realización de la presente invención, pero es evidente que la presente invención no está limitada a ello y puede ser aplicada a cualquier procedimiento de codificación y decodificación con medios para seleccionar palabras de código a asignar a símbolos en base al contexto, proporcionando de esa manera, el procedimiento de codificación y procedimiento de deocodificación preferentes como resultado.
(Décima realización)
A continuación se describirá el procedimiento de codificación de acuerdo con la décima realización de la presente invención. El procedimiento de codificación de la quinta realización de la presente invención fue configurado para cambiar la tabla de codificación de longitud variable con referencia a los valores de diferencia del lector de movimiento en los macrobloques adyacentes en ocasión de codificación la diferencia MVD de vector de movimiento del macrobloque objetivo de codificación como información de vector de movimiento D2, mientras que el procedimiento de codificación de la décima realización de la presente invención se caracteriza por el cambio de la tabla de codificación de longitud variable con referencia a los vectores de movimiento en los macrobloques adyacentes.
Es decir, tal como se ha descrito anteriormente, la información D2 del vector de movimiento es obtenido, por ejemplo, en la codificación en MPEG-4 de la manera siguiente: se genera un valor intermedio de vectores de movimiento en los macrobloques adyacentes con valor de predicción, para un vector de movimiento de un macrobloque objetivo de codificación y se codifica como información D2 del vector de movimiento la diferencia MVD entre el valor de predicción y el vector de movimiento real. En el caso en que los vectores de movimiento de los macrobloques adyacentes adoptan valores próximos entre sí, el valor de predicción del vector de movimiento se puede considerar que es un valor fiable y, por lo tanto, la diferencia MVD del vector de movimiento tiende a converger cerca de 0 con elevada posibilidad. En este caso, por lo tanto, se puede implementar una codificación eficiente por utilización de una tabla de codificación de longitud variable con longitudes de código más cortas próximas a 0. Inversamente, en el caso de que los vectores de movimiento de los macrobloques adyacentes adopten valores muy distintos entre sí, el valor de predicción del vector de movimiento se considera que es un valor no fiable y, por lo tanto, la diferencia MVD del vector de movimiento no siempre converge cerca de 0. En este caso, por lo tanto, se puede implementar una codificación eficiente por la utilización de dicha tabla de codificación de longitud variable para no constituir una diferencia grande en las longitudes de código, con independencia de si la diferencia del vector de movimiento es grande o pequeña.
Teniendo en cuenta estas cuestiones, la décima realización de la presente invención comparte la preparación de una serie de tablas de codificación de longitud variable con diferentes características de desviación de distribución de longitudes de código, por ejemplo, tal como se ha mostrado en las figuras 21A-21C, y cambiando entre las tablas de código de longitud variable para el valor de diferencia del vector de movimiento en el macrobloque objetivo de codificación, de acuerdo con la magnitud de la suma de diferencias absolutas entre vectores de movimiento en los macrobloques adyacentes con respecto al macrobloque objetivo de codificación.
De manera específica, se supondrá que MV(B), MV(C) y MV(D) son un vector de movimiento en un macrobloque B adyacente por encima, un vector de movimiento en el macrobloque C adyacente en la izquierda y un vector de movimiento en un macrobloque D adyacente a la parte superior derecha como macrobloques adyacentes con respecto al macrobloque objetivo de codificación A mostrado en la figura 33. Con respecto a los level predeterminados Th10, Th11 (en los que Th10<Th11), si un valor de S = IMV(B) – MVD(C)II + IMV(C) – MV(D)II como suma de diferencias absolutas entre los vectores de movimiento es menor de Th10, la codificación de longitud variable se lleva a cabo utilizando la tabla de la figura 21A como tabla de codificación de longitud variable para la diferencia del vector de movimiento en el macrobloque A; si S no es menor de Th10 y es menor de Th11, la codificación de longitud variable es llevada a cabo utilizando la tabla de la figura 21B; si S no es menor de Th11, la codificación de longitud variable es llevada a cabo utilizando la tabla de la figura 21C. No obstante, en el caso que el macrobloque B, el macrobloque C o el macrobloque D se encuentran fuera de la pantalla o fuera de un segmento determinado o es un macrobloque con codificación intra, la diferencia absoluta del vector de movimiento de dicho macrobloque es tratada como valor predeterminado Z10 (Z10;Th10). La razón de ello es que cuando el macrobloque para la generación del valor de predicción del vector de movimiento se encuentra fuera de la pantalla o fuera del segmento o bien un macrobloque con codificación intra, es difícil formar un valor de predicción preciso del vector de movimiento y los valores posibles de la diferencia del vector de movimiento del objetivo de codificación no siempre convergen cerca de 0.
Es decir, en el codificador 16 de longitud variable de la figura 13, una diferencia del vector de movimiento MVD es alimentada en primer lugar como símbolo de entrada H1 en la parte 30 de salida del código de longitud variable. Entonces, la memoria de símbolos codificados 31 facilita MV(B), MV(C) y MV(D) como información H3 de referencia de la tabla de codificación de longitud variable en el proveedor 33 de la tabla de codificación de longitud variable. A continuación, el proveedor 33 de la tabla de codificación de longitud variable compara la suma S de las diferencias absolutas de MV(B), MV(C) y MV(D) con los level predeterminados Th10 y Th11 descritos anteriormente, determina una tabla de codificación de longitud variable a utilizar para el vector de movimiento objetivo de codificación, en base al mismo, y proporciona la tabla H5 de codificación de longitud variable para la parte de salida 30 del código de longitud variable. Entonces, el vector de movimiento objetivo de codificación es codificado según longitud variable para su emisión como datos codificados D9.
El procedimiento de codificación de la décima realización de la presente invención está configurado, tal como se ha descrito anteriormente, de manera que en caso de que el valor MVD tienda a converger cerca de 0, la tabla de codificación de longitud variable es cambiada a una tabla con longitudes de codificación cortas cerca de 0 para hacer que el control disminuya las longitudes de código en el caso de que el valor de MVD se encuentra cerca de 0 y de forma que la estimación del valor de MVD no siempre converge cerca de 0, la tabla de codificación de longitud variable es cambiada a una tabla con pequeña desviación de longitudes de código para impedir que las longitudes de código pasen a ser largas aún cuando el valor MVD es grande; por lo tanto, es factible implementar una codificación eficiente del valor MVD.
El procedimiento de codificación se ha descrito utilizando las tres tablas de codificación de longitud variable de las figuras 21A-21C, pero es evidente que el número de valores de las tablas de codificación de longitud variable no están limitadas a las de las figuras 21A-21C. El cambio entre las tablas se puede implementar también de manera tal que una serie de tablas de codificación de longitud variable se conserven en una memoria en el proveedor 33 de la tabla de codificación de longitud variable, y la disposición de la tabla H3 de codificación de longitud variable es cambiada entre ellos, o de manera tal que se utilicen códigos universales tales como el código exp-Golomb, como ejemplo, y un parámetro del mismo es cambiado para generar la tabla H3 de codificación de longitud variable en el proveedor 33 de la tabla de codificación de longitud variable.
La figura 14 es una ilustración que muestra el diagrama de bloques de un decodificador 21 de longitud variable, de acuerdo con la décima realización de la presente invención. Cuando los datos codificados D9 codificados por el procedimiento de codificación de la décima realización de la presente invención son facilitados a la parte 40 de salida de símbolos decodificados del decodificador de longitud variable 21, la memoria 41 de símbolos decodificados facilita MV(B), MV(C), y MV(D) calculados a partir de los símbolos decodificados previamente, como información H8 de referencia de la tabla de decodificación de longitud variable en el proveedor 42 de la tabla de decodificación de longitud variable. A continuación, el proveedor 43 de la tabla de codificación de longitud variable selecciona una tabla H10 de decodificación de longitud variable por un proceso similar a la codificación, y la facilita a la parte 40 de salida de símbolos decodificados. Entonces, la parte 40 de salida de símbolos decodificados lleva a cabo la decodificación de longitud variable para decodificar y emitir un vector de movimiento como símbolo decodificado H6 y, simultáneamente, lo registra en la memoria 41 de símbolos decodificados.
Dado que el decodificador de longitud variable está configurado, tal como se ha descrito anteriormente, es factible decodificar de manera adecuada los datos codificados por el procedimiento de codificación de la décima realización de la presente invención.
(Undécima Realización)
A continuación, se describirá el procedimiento de codificación de acuerdo con la undécima realización de la presente invención. El procedimiento de codificación de acuerdo con la cuarta realización de la presente invención no ha sido configurado para implementar el cambio de la tabla de codificación de longitud variable en ocasión de codificación del conteo CC de coeficientes distintos de cero en el bloque, mientras que el procedimiento de codificación de la undécima realización de la presente invención se caracteriza por cambiar la tabla de codificación de longitud variable con referencia a los conteos de coeficientes diferentes de cero en los bloques adyacentes en ocasión de codificación del conteo CC de coeficientes distintos de cero.
Es decir, dado que una característica de una imagen en cierto punto en la pantalla tiende a parecerse a una característica de la imagen en sus áreas adyacentes, tal como se ha descrito anteriormente, existe la posibilidad elevada de que el conteo de coeficientes distintos de cero en un bloque determinado se encuentre próximo a los de los bloques adyacentes. Por lo tanto, en caso de que los conteos de coeficientes distintos de cero en los bloques adyacentes al bloque objetivo de codificación son valores próximos a 0, el conteo CC de coeficientes distintos de cero en el bloque objetivo de codificación puede adoptar también un valor próximo a 0 con alta posibilidad. En este caso, por lo tanto, se puede llevar a cabo una codificación eficiente por la utilización de una tabla de codificación de longitud variable con longitudes de codificación cortas próximas a 0. Inversamente, cuando los conteos de coeficientes distintos de cero en los bloques adyacentes adoptan valores que no son próximos a 0, el conteo CC de coeficientes distintos de cero en el bloque objetivo de codificación no siempre converge cerca de 0. En este caso, por lo tanto, se puede llevar a cabo una codificación eficiente por la utilización de esta tabla de codificación de longitud variable para no constituir una diferencia grande en longitudes de código, con independencia de si el valor del conteo CC de coeficientes distintos de cero es grande o pequeño.
Teniendo estas cuestiones en cuenta, la undécima realización de la presente invención comporta la preparación de una serie de tablas de codificación de longitud variable con diferentes características de desviación de distribución de longitudes de código, por ejemplo, tal como se ha mostrado en las figuras 21A-21C y cambiando la tabla de codificación de longitud variable para el conteo CC de coeficientes distintos de cero en el bloque objetivo de codificación, de acuerdo con un promedio de valores de los conteos de coeficientes distintos de cero correspondientes en los bloques adyacentes con respecto al bloque objetivo de codificación.
Específicamente, se supondrá que CC(B) y CC(C) son conteos de coeficientes distintos de cero en el bloque B adyacente por encima, y el bloque C adyacente por la izquierda como bloques adyacentes al bloque objetivo de codificación A, por ejemplo, tal como se ha mostrado en la figura 23. Con respecto a los level predeterminados Th12, Th13 (en los que Th12 < Th13), siendo el valor de MC = (CC(B) + CC(C))/2 el promedio de conteos de coeficientes distintos de cero en los respectivos bloques, se compara con los level y se lleva a cabo codificación de longitud variable utilizando como tabla de codificación de longitud variable para el conteo CC(A) de coeficientes distintos de cero en el bloque A, la tabla de la figura 21A si MC es menor de Th12, la tabla de la figura 21B si MC no es menor de Th12 y es menor de Th13, o bien la tabla de la figura 21C si MC no es menor de Th13. No obstante, en el caso de que el bloque B o el bloque C se encuentren fuera de la pantalla o fuera de un segmento determinado, el conteo de coeficientes distintos de cero de dicho bloque es tratado como valor predeterminado Z11 (Z11 ; Th12). La razón de ello es que, cuando un bloque adyacente se encuentra fuera de la pantalla o fuera del segmento o es un bloque codificado intra, es difícil predecir posibles valores del conteo de coeficientes distintos de cero del objetivo de codificación y no siempre convergen cerca de 0.
Es decir, en el codificador 16 de longitud variable de la figura 13 se introduce, en primer lugar, un conteo CC de coeficientes distintos de cero como símbolo de entrada H1 en la parte 30 de salida de código de longitud variable. A continuación, la memoria 31 de símbolos codificados facilita CC(B) y CC(C) como información H3 de referencia de la tabla de codificación de longitud variable en el proveedor 33 de tabla de codificación de longitud variable. Entonces, el proveedor 33 de la tabla de codificación de longitud variable compara el promedio MAC de CC(B) y CC(C) con los level previamente determinados Th12 y Th13, tal como se ha descrito anteriormente, determina la tabla de codificación de longitud variable a utilizar para el conteo de coeficientes distintos de cero objetivo de codificación en base al mismo y facilita la tabla H5 de codificación de longitud variable a la parte 30 de salida de código de longitud variable. Entonces, el vector de movimiento objetivo de codificación es codificado en longitud variable para su salida como datos codificados D9.
El procedimiento de codificación de la undécima realización de la presente invención está configurado, tal como se ha descrito, de manera que, en el caso de que el conteo CC de coeficientes distintos de cero tiende a converger cerca de 0, la tabla de codificación de longitud variable es cambiada a una tabla con longitudes de código cortas cerca de 0 para realizar el control a efectos de reducir las longitudes de código en el caso de conteo CC de coeficientes distintos de cero cerca de 0, y de manera que en el caso de que la predicción del conteo CC de coeficientes distintos de cero no siempre converge cerca de 0, la tabla de codificación de longitud variable es cambiada a una tabla con desviación reducida de longitudes de código para impedir que las longitudes de código pasen a ser largas, incluso en el caso de que el conteo CC de coeficientes distintos de cero es grande; por lo tanto, puede codificar eficientemente el conteo CC de coeficientes distintos de cero.
El procedimiento de codificación ha sido descrito utilizando las tres tablas de codificación de longitud variable de las figuras 21A-21C, pero es evidente que el número y valores de tablas de codificación de longitud variable no están limitados a los de las figuras 21A-21C. El cambio entre las tablas puede ser implementado también de manera tal que se conserve una serie de tabla de longitud variable en una memoria del proveedor 33 de la tabla de codificación de longitud variable y la disposición de la tabla H3 de codificación de longitud variable es cambiada entre las tablas,
o de manera tal que los códigos universales, tales como los códigos exp-Golomb, a título de ejemplo, son utilizados como parámetro, siendo cambiados para generar la tabla H3 de codificación de longitud variable en el proveedor 33 de la tabla de codificación de longitud variable.
La figura 14 es una ilustración que muestra el diagrama de bloques del decodificador 21 de longitud variable de acuerdo con la undécima realización de la presente invención. Cuando los datos codificados D9 por el procedimiento de codificación de la undécima realización de la presente invención son facilitados a la parte 40 de salida de símbolos decodificados del decodificador de longitud variable 21, la memoria 41 de símbolos decodificados facilita CC(B) y CC(C) calculados a partir de los símbolos decodificados previamente como información H8 de referencia de la tabla de decodificación de longitud variable en el proveedor 42 de la tabla de decodificación de longitud variable. Entonces, el proveedor 43 de la tabla de decodificación de longitud variable selecciona una tabla H10 de decodificación de longitud variable por un proceso similar a la codificación, y lo facilita a la parte 40 de salida de símbolos decodificados. Entonces, la parte 40 de salida de símbolos decodificados lleva a cabo la decodificación de longitud variable para decodificar y emitir un conteo CC de coeficientes distintos de cero como símbolo decodificado H6, y simultáneamente o registra en la memoria 41 de símbolos decodificados.
(Duodécima Realización)
Se ha descrito en primer lugar, con referencia a las figuras 22A-22D el proceso de codificación de longitud variable de coeficientes de transformación ortogonales que son datos de imagen en el procedimiento de codificación de acuerdo con la duodécima realización de la presente invención. La presente descripción se basa en la suposición de que la transformación ortogonal para transformar datos de la imagen espacial en datos de imagen de frecuencia es la Transformación de Coseno Discreta (DCT). La figura 22A muestra un ejemplo numérico específico de coeficientes de transformación ortogonal cuantificados q11-q88 obtenidos por cuantificación de los coeficientes f11-f88 de transformación ortogonal de 8 píxeles x 8 líneas, mostrados en la figura 4B. El codificador de longitud variable del aparato de codificación de imágenes lleva a cabo la codificación de longitud variable en dichos coeficientes de transformación ortogonales cuantificados, de acuerdo con un proceso predeterminado para generar datos codificados.
En el caso de los coeficientes de transformación ortogonal cuantificados q11-q88 en los que los subíndices i, j de cada coeficiente qij representan una frecuencia vertical y una frecuencia horizontal correspondientes a los mismos, a diferencia de los componentes de imagen a11-a88 en los datos de imagen espacial (ver figura 4A), cada coeficiente de transformación ortogonal cuantificado referente a la magnitud del valor del coeficiente del mismo, o similar, tiene características de datos que dependen de los valores de las frecuencias espaciales correspondientes. En general, en el caso de imágenes naturales, se obtienen valores absolutos grandes de los valores de coeficientes de transformación ortogonal en la región de baja frecuencia, y valores absolutos de valores de coeficientes disminuyen hacia la región de alta frecuencia. Esta distribución puede ser aproximada por una distribución de Laplace con un máximo en cero. Dado que las densidades de píxeles en cada bloque varían mucho, la extensión de la distribución de coeficientes de transformación es también grande y el valor de la amplitud promedio de coeficientes aumenta. En el proceso de codificación de longitud variable de los coeficientes de transformación ortogonales cuantificados, en primer lugar, los coeficientes de transformación ortogonales cuantificados q11-q88, que son datos bidimensionales, son transformados en datos monodimensionales, por ejemplo, por el escaneado en zig-zag mostrado en la figura 22B. En este escaneado en zig-zag, los coeficientes de transformación ortogonales cuantificados son escaneados para proporcionar una cadena de datos procedente de la zona de baja frecuencia a la zona de alta frecuencia como datos monodimensionales después del escaneado. Esto facilita los datos monodimensionales mostrados en la figura 22C, en los que los coeficientes de transformación ortogonal cuantificados son alineados desde la región de baja frecuencia a la región de alta frecuencia.
Estos datos monodimensionales de coeficientes de transformación ortogonales cuantificados se transforman adicionalmente en datos que consisten en valores de level y run, mostrados en la figura 22D. En este caso, el level indica un valor de coeficiente en un coeficiente de transformación ortogonal cuantificado con un valor de coeficiente distinto de cero entre la serie de coeficientes de transformación ortogonal cuantificados. El “Run” indica una longitud de run cero, que es un número de datos con el valor de coeficiente 0, presente inmediatamente antes del coeficiente
5 de transformación ortogonal cuantificado distinto de cero.
Por ejemplo, en el caso del ejemplo de datos de coeficientes DCT, mostrado en la figura 22A, los sesenta y cuatro coeficientes DCT q11-q88 son clasificados basándose en localizaciones de aspecto de coeficientes DCT con un valor de coeficientes distintos de cero, en un conjunto de coeficientes S1 que consisten en el coeficiente q11, un conjunto
10 de coeficientes S2 que consiste en los coeficientes q12, q21, un conjunto de coeficientes S3 que consiste en los coeficientes q31-q13, un conjunto de coeficientes S4 que consiste en los coeficientes q14-q32, un conjunto de coeficientes S5 que consiste en los coeficientes q41-q15, y un conjunto de coeficientes S6 que consiste en los coeficientes q16-q88, tal como se ha mostrado en la Figura 22C.
15 Para cada uno de estos conjuntos de coeficientes S1 (i=1-6), tal como se ha mostrado en la figura 22D, se determinan el valor de level Li y el valor de run Ri. De manera específica, el conjunto de coeficientes S1 tiene L1=q11=10 y R1=0. El conjunto de coeficientes S2 tiene L2=q21=-2 y R2=1. El conjunto de coeficientes S3 tiene L3=q13=2 y R3=2. El conjunto de coeficientes S4 tiene L4=q32=-1 y R4=2. El conjunto de coeficientes S5 tiene L5 = q15=1 y R5=5. El ultimo juego de coeficientes S6 es un grupo de coeficientes de los coeficientes q16-q88 todos los
20 cuales tienen un valor de coeficiente 0, y por lo tanto, tiene L5=0 y R6 no definido, que es tratado como 0 en este caso a efectos de comodidad. El conteo CC de coeficientes distintos de cero y el RT total run en el bloque objetivo de codificación son calculados a partir de los datos de Level y Run mostrados en la figura 22D. Por ejemplo, específicamente son calculados como conteo CC =5 de coeficientes distintos de cero y Run total RT =10 de la figura 22D.
25 En este caso, se supondrá que Ri es el valor Run del conjunto de coeficientes Si, Li el valor level del mismo, Pi una localización de frecuencia de un coeficiente distinto de cero después del escaneado, y Li+1 el valor de level de Si+1 codificado justamente antes. Además, se supondrá que RT es un total de Run (run) en el bloque objetivo de codificación, CC el conteo de coeficientes distintos de cero del mismo, RTi el run Run total residual en el conjunto
30 de coeficientes Si y CCi el conteo residual de coeficientes distintos de cero. RTi y CCi son calculados de acuerdo con las siguientes Ec (1) y Ec (2), y Pi de acuerdo con Ec (3). No obstante, el conteo residual de coeficientes distintos de cero para el último juego de coeficientes Sj es dispuesto en forma CCj = CC + 1, a efectos de comodidad.
La figura 34B muestra un ejemplo de tabla de codificación de longitud variable utilizada en ocasión de llevar a cabo la codificación de estos conjuntos de coeficientes, y el conteo CC de coeficientes distintos de cero y el RT total de run. En esta tabla de codificación de longitud variable, la columna de la izquierda representa los valores índices, la
40 columna central los códigos de longitud variable correspondientes a los valores índice, y la columna de la derecha las longitudes de código de los respectivos códigos de longitud variable.
La figura 13 es una ilustración que muestra el diagrama de bloques del codificador 16 de longitud variable de acuerdo con la duodécima realización de la presente invención. El conteo CC de coeficientes distintos de cero y el 45 RT total de run son facilitados, en primer lugar, como símbolos de entrada H1 en la parte 30 de salida del código de longitud variable. El proveedor 33 de la tabla de codificación de longitud variable proporciona una tabla de codificación H5 de longitud variable, por ejemplo, tal como se ha mostrado en la figura 34B, como tabla de codificación de longitud variable correspondiente a los símbolos de entrada H1 para la parte de salida 30 del código de longitud variable, y los símbolos de entrada H1 son codificados utilizando la tabla de codificación de longitud 50 variable H5. Es decir, se resta uno del valor del conteo CC de coeficientes distintos de cero, y utilizando el valor
obtenido como valor índice, se emite como datos codificados D9 un código de longitud variable correspondiente al mismo. De manera similar, utilizando un valor de RT total de run (Run) como valor índice, se emite como datos codificados D9 un código de longitud variable correspondiente.
Entonces, se codifican los juegos de coeficientes en orden desde el conjunto de coeficientes del lado de la alta frecuencia. No obstante, no se codifica un conjunto de coeficientes con todos los valores de coeficiente 0. En primer lugar, cuando los valores de run Ri de todos los conjuntos de coeficientes son introducidos como símbolos de entrada H1 en la parte 30 de salida de código de longitud variable, son codificados de manera similar por la utilización de una tabla de codificación de longitud variable, utilizando los valores de run Ri como índices para su emisión como datos codificados D9.
Entonces, la codificación de valores level es llevada a cabo para todos los valores level distintos de cero en orden desde el conjunto de coeficientes del lado de alta frecuencia. Tal como se ha descrito previamente, los coeficientes de transformación ortogonal en DCT disminuyen valor absoluto del valor level con incremento de la frecuencia hacia las frecuencias altas, y esta distribución puede tener lugar aproximadamente mediante una distribución de Laplace con un máximo en cero. Por lo tanto, el valor absoluto del valor level de un objetivo de codificación, puede ser deducido por analogía a partir del valor absoluto del valor level codificado inmediatamente antes del coeficiente como objetivo de codificación. Es decir, dado que la codificación es llevada a cabo en orden, desde el lado de alta frecuencia en el eje de frecuencia, el valor de level del objetivo de codificación, es situado cerca del valor level en un conjunto de coeficientes más alto en una unidad en el lado de alta frecuencia en el eje de frecuencia, y por lo tanto, se puede inferir que es muy posible que el valor absoluto del valor level objetivo de codificación adopte un valor comparable al valor absoluto del valor level en un conjunto de coeficientes más alto en una unidad en el lado de alta frecuencia. Se deduce que la eficiencia de codificación se puede incrementar al generar el contexto a partir del valor absoluto del valor level en un conjunto de coeficientes de una unidad mayor en el lado de frecuencias elevadas que el valor level del objetivo de codificación y, cambiando la tabla de mapa para asociar los valores índices con los valores absolutos de los valores level en la tabla de codificación de longitud variable, en base al contexto.
En este caso, |Li| se considerará el valor absoluto del valor level objetivo de codificación, sign(Li) se considerará un signo indicativo de positivo o negativo, y |Li+1| se considerará el valor absoluto del valor de level en el conjunto de coeficientes Si+1 una unidad superior en el lado de la frecuencia elevada. En primer lugar, la memoria de símbolos codificados 31 facilita |Li+1| como información H2 de referencia de la tabla de mapa de codificación en el proveedor 32 de la tabla de mapa de codificación, y dado que |Li| se deduce por analogía que adopta un valor próximo a |Li+1|, se crea una tabla de mapa H4 de manera que relacione |Li+1| a un valor de índice para el código
de longitud variable más corto, relacionando a continuación |Li+1| - 1 y |Li+1| + 1 a valores índice para el código variable más corto siguiente, y relacionando de manera similar los más próximos a |Li+1| a valores índice para códigos de longitud variable más cortos en orden.
De manera más específica, la tabla de mapa es configurada, tal como se ha mostrado en la figura 34A, de manera que los valores índice resultan menores hacia “0” que es el valor absoluto del valor level (level) de S6, para el conjunto de coeficientes S5 mostrado en la figura 22C. De manera similar, para el conjunto de coeficientes S4, la tabla de mapa es configurada, tal como se ha mostrado en la figura 34A, de manera que los valores índice resultan menores hacia “1”, que es el valor absoluto del valor level de S5. Para el conjunto de coeficientes S3, se configura una tabla de mapa, tal como se ha mostrado en la figura 34A, de manera que los valores índice se hacen menores hacia “1” que es el valor absoluto del valor level de S4. Para el conjunto de coeficientes S2, se configura una tabla de mapa, tal como se ha mostrado en la figura 35A, de manera que los valores índice resultan menores hacia “2”, que es el valor absoluto del valor level de S3. Para el conjunto de coeficientes S1, se configura una tabla de mapa, tal como se ha mostrado en la figura 35A, de manera que los valores índice resultan menores hacia “2”, que es el valor absoluto del valor level de S2.
La tabla de mapa H4 es generada de esta manera, la parte 30 de salida de código de longitud variable lleva a cabo la codificación de longitud variable por la utilización de la tabla de codificación de longitud variable H5 utilizando los valores absolutos de los valores level correspondientes respectivamente, y de manera subsiguiente a la codificación de longitud variable de cada símbolo, se codifica un signo que indica positivo o negativo por un bit para designar “0” en el caso positivo, o “1” en el caso negativo. Es decir, cuando el valor level Li es introducido como símbolo de entrada en la parte 30 de salida de código de longitud variable, la memoria 31 de símbolos codificados facilita |Li+1| como información H2 de referencia de la tabla de mapa de codificación en el proveedor de la tabla de mapa de codificación 32, y se facilita una tabla de mapa de codificación correspondiente H4 para la parte de salida de código de longitud variable 30. Al mismo tiempo, el proveedor 33 de la tabla de codificación de longitud variable proporciona una tabla H5 de codificación de longitud variable para la parte 30 de salida de código de longitud variable, y el símbolo H1 de entrada es codificado en longitud variable para su emisión como datos codificados D9.
La figura 35B muestra el resultado de codificación de los valores Level en un caso en que la cadena de coeficientes en el ejemplo específico mostrado en la figura 22C es sometida a la codificación en la duodécima realización de la presente invención y en un caso de codificación convencional sin cambio de la tabla de mapa.
Dado que el procedimiento de codificación de la duodécima realización de la presente invención está configurado para implementar la codificación de longitud variable con cambios en la tabla de mapa a efectos de asignar valores con elevada probabilidad de aparición como valores level del objetivo de codificación, a códigos de longitud variable cortos con referencia al valor level en la proximidad en el eje de frecuencia con respecto al coeficiente objetivo de codificación.
El procedimiento de codificación de la duodécima realización de la presente invención se ha descrito para llevar a cabo la codificación de los valores “run” antes que los valores level (level), pero es evidente que la presente invención se puede aplicar también a una configuración de codificación de los valores run después de los valores level y a una configuración de codificación alternativa de los valores run y los valores level.
La figura 36 es una ilustración que muestra un diagrama de bloques del decodificador de longitud variable 21 de acuerdo con la duodécima realización de la presente invención. Cuando los datos codificados D9, codificados por el procedimiento de codificación de la duodécima realización de la presente invención son facilitados a la parte 40 de salida de símbolos decodificados del decodificador 21 de longitud variable, la memoria 41 de símbolos decodificados facilita un símbolo previamente decodificado |Li+1| como información de referencia H7 de la tabla de mapa de
decodificación al proveedor 42 de la tabla de mapa de codificación. Entonces, el proveedor 42 de la tabla de mapa de decodificación selecciona una tabla H9 de mapa de decodificación por un procedimiento similar a la codificación, y la facilita a la parte 40 de salida de símbolos decodificados, y el proveedor 43 de la tabla de decodificación de longitud variable facilita una tabla H10 de decodificación de longitud variable a la parte 40 de salida de símbolos decodificados. Entonces, la parte 40 de salida de símbolos decodificados lleva a cabo la decodificación de longitud variable para decodificar y emitir el valor level como símbolo H6 decodificado, y simultáneamente registra el mismo en la memoria de símbolos decodificados 41.
Dado que el decodificador de longitud variable está configurado tal como se ha descrito anteriormente, es factible decodificar de manera apropiada los datos codificados por el procedimiento de codificación de la duodécima realización de la presente invención.
La duodécima realización de la presente invención ha sido configurada para codificar los valores level en orden desde el componente de frecuencia más elevada de los coeficientes DCT, y en este caso es muy posible que los valores absolutos de los valores level de los componentes de alta frecuencia pasen a “1”; por lo tanto, es factible implementar una codificación y decodificación más adecuadas añadiendo números de “1” consecutivos desde el lado de alta frecuencia a la tabla de mapa de los valores level. Un ejemplo de la tabla de mapa se presenta en la figura 36.
(Treceava Realización)
Además del procedimiento de codificación de la duodécima realización de la presente invención, el procedimiento de codificación de acuerdo con la treceava realización de la presente invención se caracteriza por el cambio de la tabla de mapa por utilización de un valor run en un conjunto de coeficientes objetivo de codificación en ocasión de llevar a cabo la codificación de un valor level. Por lo tanto, el procedimiento de codificación de la treceava realización de la presente invención está configurado para codificar el valor run en el conjunto de coeficientes objetivo de codificación antes de la codificación del valor level como objetivo de codificación. Es decir, el procedimiento de codificación de la treceava realización de la presente invención está configurado de manera que en el codificador 16 de longitud variable mostrado en la figura 13, la memoria 31 de símbolos codificados facilita el valor run, así como el valor level |Li+1| como información H2 de referencia de tabla de mapa de codificación al proveedor 32 de tabla de mapa de
codificación. Específicamente, por ejemplo, en el caso de que el valor sea grande, se considera que un coeficiente objetivo de codificación está situado en la base de una distribución de Laplace y, por lo tanto, el valor level que aparezca debe ser reducido. Entonces, por ejemplo, se dispone de manera preliminar un level Th0 y se hace el control, de manera que el valor run es superior al level Th0, una tabla de mapa utilizada para el valor level está configurada para reducir los valores índice con un valor level decreciente. La otra operación es igual que en el procedimiento de codificación de acuerdo con la duodécima realización de la presente invención.
La configuración descrita anteriormente, dado que es muy posible que el valor level resulte pequeño si el valor run es grande, el procedimiento de codificación en la treceava realización de la presente invención puede codificar el valor level pequeño, que probablemente aparecerá en el caso de que el valor run sea grande, mediante una longitud de código corta. De acuerdo con ello, el procedimiento de codificación de la treceava realización puede codificar de manera eficiente los valores level.
El procedimiento de decodificación, de acuerdo con la treceava realización de la presente invención, es implementado por cambio de la tabla de mapa de codificación (tabla de mapa de decodificación) por un proceso similar al procedimiento de codificación, de acuerdo con la treceava realización de la presente invención, y llevando a cabo un proceso similar al procedimiento de decodificación de la duodécima realización de la presente invención. El procedimiento de decodificación de la treceava realización de la presente invención puede decodificar de manera adecuada los datos codificados con el procedimiento de codificación de la treceava realización de la presente invención.
(Catorceava Realización)
Además de los procedimientos de codificación de la duodécima y treceava realizaciones de la presente invención, el procedimiento de codificación según la catorceava realización de la presente invención, se caracteriza además porque, en ocasión de codificar un valor level en un conjunto de coeficientes objetivo de codificación, la tabla de codificación de longitud variable se cambia utilizando una localización de frecuencia P en el conjunto de coeficientes de objetivo de codificación. Por lo tanto, el procedimiento de codificación de la catorceava realización de la presente invención es configurado, antes de la codificación de un valor level como objetivo de codificación, para codificar un valor run en el conjunto de coeficientes objetivo de codificación.
Es decir, se considera, por ejemplo, que al hacerse más grande la localización de frecuencia P, el coeficiente objetivo de codificación se desplaza hacia la base de la distribución de Laplace y, por lo tanto, se puede deducir que el valor level que aparecerá se encontrará probablemente más próximo a un valor level en un conjunto de coeficientes una unidad suprior por el lado de las frecuencias altas. También, se considera que al hacerse más pequeña la frecuencia de localización P, el coeficiente objetivo de codificación se encuentra más próximo a la parte superior de la distribución de Laplace y, por lo tanto, el valor level que aparecerá debe disminuir la exactitud de la analogía desde un valor level en un conjunto de coeficientes una unidad superior por el lado de las frecuencias altas. De este modo, se prepara una serie de tablas de codificación de longitud variable, por ejemplo, tal como se ha mostrado en las figuras 21A-21C, y el control es llevado a cabo para cambiar adaptativamente entre estas tablas. La serie de tablas de codificación de longitud variable presentadas como ejemplo en las figuras 21A-21C, se llaman códigos exp-Golomb, y están configuradas del modo siguiente. Es decir, los códigos son configurados añadiendo la parte binaria de k+j bits a la parte Unitaria de j+1 bits (j=0, 1, ...). De manera específica, j es igual al número de “0” en la parte unitaria en un código de interés, y k es igual a la longitud de código del código de orden cero en la parte binaria. La figura 21A muestra los códigos exp-Golomb en el caso de k = 0, la figura 21B los del caso de k=1, y la figura 21C los del caso k = 2. Como es evidente de las figuras, la desviación de distribución de longitudes de código, tiende a disminuir con el aumento del valor de k.
A continuación, se han preparado una serie de tablas de código de longitud variable con diferentes características de desviación de distribución de longitudes de código de esta manera, y la tabla de codificación de longitud variable para el valor level objetivo de codificación se cambia de acuerdo con la frecuencia de localización P en el conjunto de coeficientes objetivo de codificación. Es decir, el control es tal que, cuando la localización de frecuencia P es grande, la tabla utilizada es una tabla con gran desviación de longitudes de código, tal como se ha mostrado en la figura 21A, y tal que, cuando la localización de frecuencia es pequeña, la tabla utilizada es una tabla con desviación pequeña en cuanto a longitudes de código, tal como se ha mostrado en la figura 21C.
De manera específica, por ejemplo, los level Th1 y Th2 se ajustan preliminarmente (de manera que Th1 > Th2), y el cambio es implementado de la manera siguiente: la tabla de codificación de longitud variable de la figura 21A es utilizada en el caso en que la localización de frecuencia Pi en el conjunto de coeficientes Si como objetivo de codificación es mayor que el level Th1; la tabla de codificación de longitud variable de la figura 21B es utilizada en el caso en que Pi no es superior al level Th1 y es superior a Th2; la tabla de codificación de longitud variable de la figura 21C es utilizada en el caso en que Pi es menor que el level Th2.
Es decir, en el codificador de longitud variable 16 de la figura 13, cuando un valor level es facilitado como símbolo de entrada H1 en la parte 30 de salida del código de longitud variable, la memoria de símbolo codificado 31 facilita la localización de frecuencia Pi en el conjunto de coeficientes objetivo de codificación Si calculados, como información H3 de referencia de tabla de codificación de longitud variable al proveedor 33 de tabla de código de longitud variable y el proveedor 33 de tabla de código de longitud variable proporciona una tabla H5 de codificación de longitud variable seleccionada por la técnica de control antes mencionada en base a la información H3 de referencia de tabla de codificación de longitud variable para la parte 30 de salida del código de longitud variable. La otra operación es muy similar a la de las realizaciones undécima y treceava de la presente invención.
El procedimiento de codificación de la catorceava realización de la presente invención está configurado para llevar a cabo un control tal que, en el caso en el que la predicción del valor level es probable que sea correcta, la tabla utilizada se cambia a una tabla con gran desviación de longitudes de código a efectos de disminuir las longitudes de código en el caso de predicción correcta, y que en el caso en que la predicción del valor level es improbable que sea correcta, la tabla utilizada se cambia a una tabla con pequeña desviación de longitudes de código para impedir que las longitudes de código resulten largas en el caso de predicción incorrecta, tal como se ha descrito antes; por lo tanto, se pueden codificar de manera eficiente los valores level.
El procedimiento de codificación ha sido descrito utilizando las tres tablas de codificación de longitud variable de las figuras 21A-21C, pero es evidente que el número y valores de las tablas de codificación de longitud variable no están limitadas a las de las figuras 21A-21C. En el cambio entre las tablas se pueden implementar también de manera tal que se retiene una serie de tablas de codificación de longitud variable en una memoria en el proveedor 32 de tabla de codificación de longitud variable y la provisión de la tabla H5 de codificación de longitud variable es cambiada entre ellas, o de manera tal que los códigos universales tales como exp-Golomb, tal como se ha indicado a título de ejemplo, se utilizan y un parámetro de los mismos es cambiado para generar la tabla H5 de codificación de longitud variable en el proveedor 32 de tabla de codificación de longitud variable.
El procedimiento de decodificación, según la catorceava realización de la presente invención, es implementado por cambio de la tabla de mapa de codificación (tabla de mapa de decodificación) por un procedimiento similar al procedimiento de codificación de acuerdo con la catorceava realización de la presente invención y llevando a cabo un proceso similar al procedimiento de decodificación de la duodécima realización de la presente invención. El procedimiento de decodificación de la catorceava realización de la presente invención puede decodificar de manera apropiada los datos codificados por el procedimiento de codificación de la catorceava realización de la presente invención.
(Quinceava realización)
Además de los procedimientos de codificación de las doceava a catorceava realizaciones de la presente invención, el procedimiento de codificación, de acuerdo con la quinceava realización de la presente invención, se caracteriza además porque en ocasión de codificación de un valor level en un conjunto de coeficientes objetivo de codificación, la tabla de codificación de longitud variable es cambiada utilizando un valor absoluto de un valor level en un conjunto de coeficientes una unidad más elevada en el lado de las frecuencias elevadas que el conjunto de coeficientes objetivo de codificación.
Es decir, por ejemplo, en el caso de que el valor absoluto del valor level en el conjunto de coeficientes una unidad superior en el lado de la frecuencia elevada es grande, resulta más difícil la predicción del valor level en el conjunto de coeficientes objetivo de codificación. Inversamente, en el caso en que el valor absoluto del valor level en el conjunto de coeficientes, una unidad superior en el lado de la frecuencia elevada es reducido, resulta más fácil realizar una predicción correcta para el valor level en el conjunto de coeficientes objetivo de codificación. Igual que en el procedimiento de codificación, según la catorceava realización de la presente invención, por lo tanto, el procedimiento de codificación de la presente realización comporta la preparación de una serie de tablas de codificación de longitud variable, por ejemplo, tal como se ha mostrado en las figuras 21A-21C y lleva a cabo dicho control para cambiar de forma repetida entre éstas. De manera específica, por ejemplo, los level Th3 y Th4 son dispuestos de forma preliminar (cumpliéndose Th3 < Th4), y el cambio entre las tablas de codificación de longitud variable es implementado de la manera siguiente en ocasión de codificación del valor level Li en el conjunto de coeficientes Si como objetivo de codificación: en el caso en el que el valor absoluto |Li+1| del valor level en el conjunto de coeficientes Si+1 una unidad más elevada en el lado de frecuencia alta es menor que Th3, se utiliza la tabla de codificación de longitud variable de la figura 21A; en el caso en el que |Li+1 no es menor que
Th3 y es menor que Th4, se utiliza la tabla de codificación de longitud variable de la figura 21B; en el caso que |Li+1| no es inferior a Th4, se utiliza la tabla de codificación de longitud variable de la figura 21C.
Es decir, en el codificador de longitud variable 16 de la figura 13, cuando se facilita un valor level como símbolo de entrada H1, en la parte 30 de salida de código de longitud variable, la memoria 31 de símbolos codificados facilita |Li+1| como información de referencia H3 de la tabla de codificación de longitud variable al proveedor 33 de tabla de codificación de longitud variable, y el proveedor 33 de la tabla de codificación de longitud variable proporciona una tabla H5 de codificación de longitud variable seleccionada por la técnica de control antes mencionada en base a la información de referencia H3 de la tabla de codificación de longitud variable para la parte 30 de salida de código de longitud variable. La otra operación es similar a las realizaciones duodécima a catorceava de la presente invención.
El procedimiento de codificación de la quinceava realización de la presente invención está configurado para llevar a cabo un control tal que en el caso en el que el valor de predicción level es probable que sea correcto, la tabla utilizada es cambiada a una tabla con una desviación grande de longitudes de código a efectos de disminuir las longitudes de código en el caso de predicción correcta, y que en el caso en el que el valor level de predicción es improbable que sea correcto, la tabla utilizada es cambiada a una tabla con pequeña desviación de longitudes de código para impedir que las longitudes de código resulten largas en el caso de predicción incorrecta. Tal como se ha descrito en lo anterior; por lo tanto, puede codificar de manera eficiente los valores level.
El procedimiento de codificación de la quinceava realización de la presente invención se ha descrito de forma que lleva a cabo la codificación de los valores run antes de los valores level, pero es evidente que la presente invención puede ser aplicada también a una configuración de codificación de los valores run después de los valores level, y a una configuración de codificación alternada de valores run y valores level.
El procedimiento de decodificación, de acuerdo con la quinceava realización de la presente invención, es implementado cambiado la tabla de mapa de código (tabla de mapa de decodificación) por un procedimiento similar al procedimiento de codificación de acuerdo con la quinceava realización de la presente invención y llevando a cabo un proceso similar al proceso de decodificación en la doceava realización de la presente invención. El procedimiento de decodificación de la quinceava realización de la presente invención puede decodificar de manera adecuada los datos codificados por el procedimiento de codificación de la quinceava realización de la presente invención.
(Dieciseisava Realización)
El procedimiento de codificación, de acuerdo con la dieciseisava realización de la presente invención, se caracteriza porque en ocasión de codificar un valor run en un conjunto de coeficientes objetivo de codificación, la tabla de codificación de longitud variable es cambiada utilizando el valor absoluto del valor run en el conjunto de coeficientes objetivo de codificación. Por lo tanto, el procedimiento de codificación de la dieciseisava realización de la presente invención está configurado para codificar el valor level en el conjunto de coeficientes objetivo de codificación antes de la codificación del valor run como objetivo de codificación.
Es decir, si el valor absoluto del valor level es grande en el conjunto de coeficientes objetivo de codificación, se puede deducir que el coeficiente objetivo de codificación está situado en una parte cerca de la parte superior de la distribución de Laplace, y los componentes de frecuencia de las proximidades son también distintos de cero con una elevada posibilidad; por lo tanto, se puede predecir que el valor run es pequeño. Inversamente, si el valor absoluto del valor level es pequeño en el conjunto de coeficientes objetivo de codificación, se puede deducir que el coeficiente objetivo de codificación está situado en una parte en la base de la distribución de Laplace, y no es siempre muy posible que los componentes de frecuencia de las proximidades sean distintos de cero; por lo tanto, resulta difícil hacer una predicción correcta para el valor run. Por lo tanto, igual que en el procedimiento de codificación de acuerdo con la quinceava realización de la presente invención, el procedimiento de codificación de la presente realización está configurado para preparar una serie de tablas de codificación de longitud variable, por ejemplo, tal como se ha mostrado en las figuras 21A-21C y llevar a cabo dicho control para cambiar de forma adaptativa entre ellas. De manera específica, por ejemplo, los level Th5 y Th6 se ajustan preliminarmente (siendo Th5 > Th6), y cambiando entre tablas de codificación de longitud variable se implementa de la manera siguiente en ocasión de codificación del valor run Ri en el conjunto de coeficientes Si como objetivo de codificación: en el caso en que el valor absoluto |Li| del valor level en el conjunto de coeficientes Si es mayor que Th5, se utiliza la tabla de codificación de longitud variable de la figura 21A; en el caso en que |Li| no es superior a Th5 y es superior a Th6, se utiliza la tabla de codificación de longitud variable de la figura 21B; en caso de que |Li| no es superior a Th6, se utiliza la tabla de codificación de longitud variable de la figura 21C.
Es decir, en el codificador de longitud variable 16 de la figura 13, cuando se facilita un valor level como símbolo de entrada H1, en la parte 30 de salida de código de longitud variable, la memoria 31 de símbolos codificados facilita |Li| como información de referencia H3 de la tabla de codificación de longitud variable al proveedor 33 de tabla de
codificación de longitud variable, y el proveedor 33 de la tabla de codificación de longitud variable proporciona una tabla H5 de codificación de longitud variable seleccionada por la técnica de control antes mencionada en base a la información de referencia H3 de la tabla de codificación de longitud variable para la parte 30 de salida de código de longitud variable. La otra operación es muy similar a la duodécima a quinceava realizaciones de la presente invención.
El procedimiento de codificación en la dieciseisava realización de la presente invención está configurado para llevar a cabo un control tal que haga fácil la predicción de que el valor run adopta un valor pequeño, siendo cambiada la tabla utilizada a una tabla con una desviación grande de longitud de código para disminuir las longitudes de código en el caso de predicción correcta y porque es difícil hacer una predicción correcta para el valor run, la tabla utilizada es cambiada a una tabla con pequeña desviación de longitudes de código para impedir que las longitudes de código se hagan demasiado largas en el caso de predicción incorrecta, tal como se ha descrito anteriormente; por lo tanto, puede codificar de manera eficiente los valores run.
El procedimiento de decodificación, de acuerdo con la dieciseisava realización de la presente invención, es implementado cambiado la tabla de mapa de código (tabla de mapa de decodificación) por un procedimiento similar al procedimiento de codificación de acuerdo con la dieciseisava realización de la presente invención y llevando a cabo un proceso similar al procedimiento de decodificación de la quinceava realización de la presente invención. El procedimiento de decodificación en la dieciseisava realización de la presente invención puede decodificar de manera adecuada los datos codificados por el procedimiento de codificación de la dieciseisava realización de la presente invención.
(Diecisieteava Realización)
Se describirá a continuación el procedimiento de codificación de acuerdo con la diecisieteava realización de la presente invención. El procedimiento de codificación de la duodécima realización de la presente invención no comportaba el cambio de la tabla de codificación de longitud variable en ocasión de codificación del valor total RT run en el bloque, mientras que el procedimiento de codificación de la diecisieteava realización de la presente invención se caracteriza porque, en ocasión de codificación del valor total RT run en el bloque, la tabla de codificación de longitud variable es cambiada de acuerdo con la diferencia DMV del vector de movimiento para el bloque objetivo de codificación.
El valor total RT run en el bloque puede ser objeto de predicción, por ejemplo, a partir del valor del conteo CC de coeficiente distinto de cero; el hecho de que los coeficientes DCT del bloque puedan ser aproximados por la distribución de Laplace y así sucesivamente. El run total objeto de predicción de esta manera se indica por PRT. Cuando la diferencia de DMV del vector de movimiento, que es una diferencia entre el valor de predicción del vector de movimiento, cuya predicción se ha realizado a partir de los bloques adyacentes, y un vector de movimiento de un bloque objetivo de codificación es pequeña, es muy posible que los coeficientes DCT que aparecen en el bloque objetivo de codificación se puedan aproximar fácilmente por la distribución de Laplace. En este caso, por lo tanto, se puede implementar una codificación eficiente utilizando una tabla de codificación de longitud variable para el RT total run del bloque, de manera que en dicha tabla de codificación de longitud variable tenga longitudes de código cortas en las proximidades del valor de predicción RT del run total. Inversamente, en el caso de que la diferencia de DMV de vector de movimiento del bloque objetivo de codificación es grande, es muy posible que el cambio de movimiento y textura sea complejo en las proximidades del bloque objetivo de codificación. En este caso, es muy posible que los coeficientes DCT no se puedan aproximar por la distribución de Laplace y el RT total run del bloque objetivo de codificación no siempre converge en las proximidades del valor de predicción PRT del run total. En este caso, por lo tanto, se puede implementar una codificación eficiente utilizando una tabla de codificación variable que no produzca una diferencia demasiado grande entre longitudes de código contra cualquier valor del RT total run.
Teniendo todo ello en cuenta, la diecisieteava realización de la presente invención comporta la preparación de una serie de tablas de código de longitud variable con diferentes características de desviación de distribución de longitudes de código, por ejemplo, tal como se ha mostrado en las figuras 21A-21C e implementando el cambio de la tabla de codificación de longitud variable para el RT total run en el bloque objetivo de codificación, de acuerdo con la magnitud de la diferencia DMV del vector de movimiento en el bloque objetivo de codificación.
De manera específica, por ejemplo, el cambio de la tabla de codificación de longitud variable es implementada basándose en una comparación de la magnitud |DMV| de la diferencia DMV de vector de movimiento en el bloque objetivo de codificación con los level predeterminados Th7, Th8 (en el que Th7 < Th8). El procedimiento de codificación está configurado para llevar a cabo la codificación de longitud variable utilizando una tabla de codificación de longitud variable para el RT total run en el bloque objetivo de codificación, la tabla de la figura 21A, en la que el valor de |DMV| es menor de Th7, la tabla de la figura 21B en la que |DMV| no es menor de Th7 o es menor de Th8, y la tabla de la figura 21C en la que |DMV| no es menor de Th8.
Es decir, en el codificador 16 de longitud variable de la figura 13, se facilita, en primer lugar, un RT total run como símbolo de entrada H1 en la parte 30 de salida del código de longitud variable. A continuación, la memoria 31 de símbolos codificados facilita |DMV| en el bloque objetivo de codificación como información de referencia H3 de la tabla de codificación de longitud variable al proveedor 33 de la tabla de codificación de longitud variable. Entonces, el proveedor 33 de la tabla de codificación de longitud variable compara |DMV| con los level predeterminados Th7 y Th8, tal como se ha descrito anteriormente, determina una tabla de codificación de longitud variable a utilizar para el RT total run en el bloque objetivo de codificación, en la base del mismo, y proporciona la tabla H5 de codificación de longitud variable para la parte 30 de salida del código de longitud variable. Entonces, el RT total run es codificado según longitud variable para su salida como datos codificados D9.
El procedimiento de codificación de la diecisieteava realización de la presente invención está configurado para llevar a cabo un control tal que, en el caso que run total tienda a converger en las proximidades del valor de predicción PRT del run total, la tabla de codificación de longitud variable es cambiada a una tabla con longitudes de código cortas de las proximidades de PRT para controlar las longitudes de código cortas, en el caso del run total cerca de PRT, y que en el caso de que el run total no converge siempre en las proximidades del valor de predicción PRT del run total, la tabla es cambiada a una tabla con pequeña desviación de longitudes de código para impedir que las longitudes de código resulten largas para cualquier valor que tome el RT total run; por lo tanto, puede codificar de manera eficiente el RT total run.
Las figura 36 es una ilustración que muestra el diagrama de bloque del decodificador 21 de longitud variable, de acuerdo con la diecisieteava realización de la presente invención. Cuando los datos codificados D9, codificados por el procedimiento de codificación de la diecisieteava realización de la presente invención son facilitados a la parte 40 de salida de símbolos decodificados del decodificador 21 de longitud variable, la memoria 41 de símbolos decodificados facilita |DMV| calculado a base de los símbolos decodificados anteriormente, como información H8 de referencia de la tabla de decodificación de longitud variable al proveedor 43 de la tabla de decodificación de longitud variable. A continuación, el proveedor 43 de la tabla de decodificación de longitud variable selecciona una tabla H10 de decodificación de longitud variable por un procedimiento similar a la codificación, y la facilita a la parte 40 de salida de símbolos codificados. A continuación, la parte 40 de salida de símbolos codificados lleva a cabo la decodificación de longitud variable para decodificar y emitir el RT total run como símbolo H6 decodificado.
Las realizaciones anteriores han sido descritas utilizando el aparato de codificación y el aparato de decodificación, pero se debe observar que estos pueden ser implementados por hardware o por software. Se observará también que se han descrito utilizando las tablas de codificación específicas de longitud variable y sistemas de codificación de imagen para mejor comprensión de la descripción y que la presente invención no está destinada en modo alguno a quedar limitada a estos.
Tal como se ha descrito en las realizaciones anteriores, se pueden prever fácilmente una amplia serie de ejemplos de modificación para los procedimientos de cambio de la tabla de codificación y tabla de mapa utilizando la condición de codificación o características de imagen, y que la presente invención puede ser aplicada a todos ellos.
Las realizaciones anteriores han sido descritas utilizando un ejemplo de codificación de imágenes móviles, sin embargo, la presente invención no tiene que quedar limitada a ello y se puede aplicar a cualquier sistema de codificación de imágenes móviles y sistema de codificación de imágenes fijas siempre que permitan la aplicación del símbolo de codificación objetivo y contexto utilizado.
Los procedimientos de codificación de imagen y procedimientos de decodificación de imagen de las realizaciones anteriores pueden ser aplicados preferentemente al sistema de transmisión de imágenes, sistema de almacenamiento de imágenes y sistema de reproducción de imágenes mostrados en las figuras 29A, 29B, y 29C, que resulta factible utilizar efectivamente dichos recursos como banda de transmisión, capacidad de almacenamiento y otros.
Las realizaciones anteriores han sido descritas utilizando tres tablas de codificación de longitud variable de las figuras 21A-21C, pero el número y valores de las tablas de codificación de longitud variable no están limitadas, desde luego, a las de las figuras 21A-21C. Por ejemplo, las tablas pueden ser tablas de codificación de longitud variable con diferentes distribuciones de longitud de código generadas por el cambio de otro parámetro de los códigos exp-Golomb, tal como se ha mostrado en las figuras 37A-37C.
Los procedimientos de codificación y de decodificación de las realizaciones anteriores han sido descritos utilizando valores de tabla específicos, pero no es necesario indicar que la presente invención no está limitada a estos valores. En las realizaciones anteriores los procedimientos han sido descritos utilizando un ejemplo de los coeficientes DCT de 8 píxeles x 8 líneas, pero no hace falta mencionar que el tipo de la transformación ortogonal y las dimensiones de bloques no están limitados a estos.
En las realizaciones anteriores, los valores run son tratados en orden desde los de los componentes de alta frecuencia, pero es evidente que se puede conseguir también igual efecto por el proceso desde los componentes de baja frecuencia. Además, se puede implementar una codificación/decodificación muy preferente, por ejemplo, por una configuración del cambio del orden de proceso de los valores run al otro, de acuerdo con el valor del conteo CC de coeficientes diferentes de cero en el bloque objetivo de proceso. Es decir, por ejemplo, con respecto a un level predeterminado ThC, los valores run son tratados desde los componentes de baja frecuencia en los que el conteo CC de coeficientes diferentes de cero es menor de ThC, pero a partir de componentes de alta frecuencia en los que el conteo CC de coeficientes diferentes de cero es igual o mayor que el level antes mencionado ThC, lo que aumenta la posibilidad de asignar valores más pequeños a los valores run a efectos de posibilitar una codificación y decodificación muy preferentes.
Los procedimientos de codificación y de decodificación de las realizaciones anteriores han sido descritos cada uno de ellos como realizaciones separadas, pero no es necesario indicar que se puede conseguir también igual efecto cuando se utilizan simultáneamente una serie de procedimientos entre los indicados.
Los procedimientos de codificación y de decodificación de las realizaciones anteriores han sido descritos como aquellos para codificar o decodificar los valores run y valores level en serie por utilización de tabla de codificación monodimensionales de longitud variable, pero no es necesario indicar que igual efecto se puede conseguir también por una configuración para codificarlos o decodificarlos en paralelo (en combinación de valores run y valores level) por utilización de una tablas de codificación de longitud variable bidimensional. En la tabla bidimensional de longitud variable que utiliza la correlación entre run y level, no obstante, un cambio de valores índice basado en el cambio de la tabla de mapas resultará en la degradación de la correlación entre run y level y, por lo tanto, disminuyendo la eficiencia de codificación y, por ello, se puede llevar a cabo una codificación más eficiente por la utilización de la tabla de codificación de longitud variable monodimensional en las realizaciones de la presente invención.
En las realizaciones, la codificación ha sido descrita utilizando la codificación de longitud variable para cambiar entre las tablas de codificación de longitud variable, pero igual efecto puede ser también conseguido utilizando codificación aritmética para llevar a cabo dicho proceso, desde luego. Cuando se aplica la codificación aritmética, las realizaciones se pueden modificar del modo siguiente con igual efecto: se utiliza la tabla de probabilidades con elevadas probabilidades de aparición de símbolos en codificación aritmética para un símbolo objetivo de codificación asignado a una longitud de código corta, y se utiliza una tabla de probabilidad con probabilidades de aparición de símbolos reducidos para un símbolo objetivo de codificación al que se ha asignado una longitud de código larga.
Además, se puede conseguir igual efecto utilizando una tabla de probabilidad con gran desviación de la probabilidad de aparición de símbolos correspondientes a símbolos correspondientes en codificación aritmética, en lugar de la tabla de codificación de longitud variable con códigos de codificación de desviación larga utilizados en las realizaciones, y por utilización de una tabla de probabilidad con pequeña desviación de probabilidades de aparición de símbolos correspondientes a respectivos símbolos en la codificación aritmética, en lugar de la tabla de codificación de longitud variable con pequeña desviación de las longitudes de código. De manera específica, se puede conseguir igual efecto utilizando las tablas de probabilidad de las figuras 38A-38C, por ejemplo, en lugar de las tablas de codificación de longitud variable de las figuras 21A-21C. Las otras operaciones son muy similares a las de las realizaciones descritas anteriormente y, por lo tanto, se omiten sus detalles.
Un programa de ordenador puede facilitar cada una de las funciones de los siguientes componentes de cada una de las realizaciones anteriores: detector de movimiento 11, compensador de movimiento 12, transformador ortogonal 14, cuantificador 15, codificador de longitud variable 16, decuantificador 17, transformador ortogonal inverso 18, decodificador de longitud variable 21, decuantificador 22, transformador ortogonal inverso 23, compensador de movimiento 24, proveedor de tabla de mapa de código 32, proveedor 33 de tabla de codificación de longitud variable, parte 30 de salida de código de longitud variable, parte 40 de salida de símbolos decodificados, proveedor 42 de la tabla de mapa de decodificación, proveedor 43 de la tabla de decodificación de longitud variable, proveedor 52 de la tabla de mapa de codificación con adición de función de aprendizaje, parte 51 de salida de código de longitud variable con función de realimentación añadida, proveedor 62 de tabla de mapa de codificación/decodificación con función de aprendizaje añadida, y parte 61 de salida de símbolos decodificados con función de realimentación añadida. Además, este programa de ordenador puede ser transmitido sobre una onda portadora.
Aplicabilidad Industrial
La presente invención es aplicable como aparato de codificación de imagen, aparato de decodificación de imagen, procedimientos de codificación de imagen, procedimientos de decodificación de imagen, programas de codificación de imagen, y programas de decodificación de imagen.

Claims (11)

  1. REIVINDICACIONES
    1.
    Aparato para la codificación de imágenes que comprende: una parte (11) de detección de movimiento para dividir una imagen objetivo de codificación en macrobloques de unas dimensiones predeterminadas, dividiendo cada uno de dichos macrobloques en bloques de una forma y dimensiones predeterminadas, especificadas basándose en un tipo de macrobloque, y llevar a cabo una predicción compensada en movimiento en cada unidad de dicho bloque para emitir un vector de movimiento; una parte (12) de compensación de movimiento para generar una imagen de predicción a partir de una imagen de referencia en base al vector de movimiento emitido desde la parte de detección de movimiento (11); una parte de sustracción (13) para calcular la diferencia entre la imagen de predicción generada por la parte de compensación de movimiento (12) y la imagen objetivo de codificación para emitir una imagen residual de predicción; una parte de transformación (14) para llevar a cabo codificación de transformación de la imagen residual de predicción emitida desde la parte de sustracción (13), en cada unidad de un bloque de transformación predeterminado para emitir coeficientes de transformación; una parte (15) de cuantificación para cuantificar los coeficientes de transformación emitidos desde la parte de transformación (14), basándose en un parámetro de cuantificación para emitir coeficientes de transformación cuantificados; y una parte de codificación (16, 50) para llevar a cabo codificación de compresión de información relativa a codificación que contiene el vector de movimiento emitido desde la parte de detección de movimiento (11), el tipo de macrobloque, el parámetro de cuantificación y los coeficientes de transformación cuantificados emitidos desde la parte de cuantificación (15) para emitir datos codificados; en el que la parte de codificación (16, 50) comprende una memoria (31) de símbolos codificados para memorizar la información relacionada con la codificación; un proveedor (32, 33, 52) de procedimiento de codificación para proporcionar uno o varios tipos de procesos de codificación, en el que las longitudes de código de los códigos para codificación de la información relacionada con la codificación depende del tipo de proceso de codificación; y una parte (30) de emisión de datos codificados para seleccionar uno de los procesos de codificación proporcionados por el proveedor (32, 33, 52) de procedimiento de codificación al crear tablas de mapa utilizadas para codificación de longitud variable indicando relación entre información relativa con la codificación y códigos de longitud variable, basados en un criterio de selección predeterminado del proceso de codificación, en el que la creación de tablas de mapa comprende: deducir un modelo de bloque codificado (CBPY) para cada macrobloque expresado por una serie de bits, correspondiendo cada bit a un bloque de un macrobloque objetivo de codificación (A, B, C, D) en el que cada bit indica 1 para la presencia de un coeficiente de transformación ortogonal distinto de cero de un bloque respectivo en el macrobloque objetivo de codificación (A, B, C, D) o 0 para su ausencia, para cada bloque del macrobloque objetivo de codificación (A, B, C, D) determinar el respectivo grado del valor de correlación (P(A), P(B), P(C)) entre un correspondiente bloque y uno o varios bloques adyacentes de un macrobloque adyacente, por cálculo de una serie ponderada de una operación predeterminada para un bloque con respecto a sus bloques adyacentes de uno o varios macrobloques adyacentes, en el que la operación predeterminada indica 1 cuando la presencia/ausencia de coeficientes de transformación ortogonal diferentes de cero son iguales entre dicho bloque del macrobloque objetivo de codificación y dicho bloque adyacente o 0 cuando la presencia/ausencia de coeficiente de transformación ortogonal distintos de cero son diferentes entre dicho bloque del macrobloque objetivo de codificación y dicho bloque adyacente, determinación del grado de correlación (P(CBPY)) como suma de los valores de grados de correlación determinados (P(A), P(B), P(C)), reestructurar a continuación los modelos de bloque codificado derivados y asignar longitudes de código a los modelos de bloque codificado derivados (CBPY) de manera que la longitud de código de los modelos de bloque codificado (CBPY) resulta más corta al resultar más alto el valor del grado de correlación, y para llevar a cabo la codificación de compresión de la información relativa a la codificación en base al criterio de selección del proceso de codificación para emitir los datos codificados; en el que la codificación de compresión de la información relacionada con la codificación comprende codificación de longitud variable.
  2. 2.
    Aparato de codificación de imagen, según la reivindicación 1, en el que en ocasión de codificación de la información de modelo de bloque codificado en el macrobloque objetivo de codificación, en el que la dimensión del parámetro de cuantificación en el macrobloque objetivo de codificación es superior a un level predeterminado, el proveedor (32, 33, 52) del proceso de codificación proporciona un proceso de codificación de disposición de una longitud de código más corta para la información del modelo del bloque codificado indicando un número menor de bloques que contienen coeficiente de transformación cuantificado distinto de cero.
  3. 3.
    Aparato de codificación de imagen, según la reivindicación 1, en el que en ocasión de codificación de la información de modelo de bloque codificado en el macrobloque objetivo de codificación, el proveedor (32, 33, 52) del proceso de codificación proporciona un proceso de codificación de disposición de una desviación menor de longitudes de código con incremento del número de bloques en un macrobloque adyacente al macrobloque objetivo de codificación.
  4. 4.
    Aparato de codificación de imagen, según la reivindicación 1, en el que en ocasión de codificación de los coeficientes de transformación cuantificados en el macrobloque objetivo de codificación, el proveedor (32, 33, 52) del proceso de codificación proporciona un proceso de codificación de disposición de una desviación más reducida de longitudes de código con aumento en los valores absolutos de los coeficientes de transformación cuantificados en un macrobloque adyacente al macrobloque objetivo de codificación.
  5. 5.
    Aparato de codificación de imagen, según la reivindicación 1, en el que en ocasión de codificación del tipo de macrobloque en el macrobloque objetivo de codificación, el proveedor (32, 33, 52) del proceso de codificación proporciona un proceso de codificación de disposición de un código de longitud más corta para un tipo de macrobloque incluyendo un número mayor de bloques.
  6. 6.
    Aparato de codificación de imagen, según la reivindicación 1, en el que la parte de codificación (16, 50) tiene una función de codificación de una serie de dichos coeficientes de transformación cuantificados distintos de cero en el bloque, en el que en ocasión de codificación del número de coeficientes de transformación cuantificados distintos de cero en el macrobloque objetivo de codificación, en el que el número de coeficientes de transformación cuantificadores distintos de cero en un bloque adyacente al bloque objetivo de codificación es menor que el level predeterminado, el proveedor (32, 33, 52) del proceso de codificación proporciona un proceso de codificación de disminución de la longitud de código con disminución del número de coeficientes de transformación cuantificados distintos de cero.
  7. 7.
    Aparato de codificación de imagen, según la reivindicación 1, en el que la memoria de símbolos codificados
    (31) tiene una función de retención de un valor del vector de movimiento de diferencia que es una diferencia entre un vector de movimiento de predicción de un bloque adyacente y un vector de movimiento real en el que, en ocasión de codificación de la información del modelo del bloque codificado en el macrobloque objetivo de codificación, en el que la magnitud del valor del vector de movimiento de diferencia en un macrobloque adyacente al macrobloque objetivo de codificación es mayor que un level predeterminado, el proveedor (32, 33, 52) del proceso de codificación proporciona un proceso de codificación de disposición de una longitud de código más corta para información de modelo de bloque indicando un número mayor de bloques que contienen un coeficiente de transformación cuantificado distinto de cero.
  8. 8.
    Aparato de codificación de imagen, según la reivindicación 1, en el que la memoria (31) de símbolos codificados tiene una función de retención de un valor del vector de movimiento de diferencia que es una diferencia entre un vector de movimiento de predicción de un bloque adyacente y un vector de movimiento real en el que, en ocasión de codificar el valor del vector de movimiento de diferencia en el macrobloque objetivo de codificación en el que la magnitud del valor del vector de movimiento diferencia en un bloque adyacente al bloque objetivo de codificación es menor que un level predeterminado, el proveedor (32, 33, 52) del proceso de codificación proporciona un proceso de codificación de disposición de una longitud de código más corta para una diferencia más pequeña.
  9. 9.
    Aparato de codificación de imagen, según la reivindicación 1, en el que la memoria (31) de símbolos codificados tiene una función de retención del valor del vector de movimiento de diferencia que es una diferencia entre un vector de movimiento de predicción de un bloque adyacente y un vector de movimiento real, en el que, en ocasión de codificación del tipo de macrobloque en el macrobloque objetivo de codificación, en el que la magnitud del valor del vector de movimiento diferencia en un bloque adyacente al bloque objetivo de codificación es mayor que un level predeterminado, el proveedor (32, 33, 52) del proceso de codificación proporciona un proceso de codificación de disposición de una longitud de código más corta para un tipo de macrobloque que incluye un número mayor de bloques.
  10. 10.
    Procedimiento de codificación de imágenes que comprende:
    una etapa de detección de movimiento de dividir una imagen objetivo de planificación en macrobloques de dimensiones predeterminadas, dividir cada uno de dichos macrobloques en bloques de forma y dimensiones predeterminadas especificadas basándose en un tipo de macrobloque y llevar a cabo una predicción compensada en movimiento en cada unidad de dicho bloque para emitir un vector de movimiento;
    una etapa de compensación de movimiento de generación de una imagen de predicción a partir de una imagen de referencia en base al vector de movimiento emitido en la etapa de detección de movimiento;
    etapa de sustracción de cálculo de una diferencia entre la imagen de predicción generada en la etapa de compensación de movimiento y la imagen objetivo de codificación para emitir una imagen residual de predicción;
    una etapa de transformación para llevar a cabo codificación de transformación de la imagen residual de predicción emitida en la etapa de sustracción, en cada unidad de un bloque de transformación predeterminado para emitir coeficientes de transformación;
    una etapa de cuantificación de los coeficientes de transformación emitidos en la etapa de transformación, basándose en un parámetro de cuantificación para emitir coeficientes de transformación cuantificados, y
    una etapa de codificación para llevar a cabo codificación de compresión de información relacionada con la codificación que contiene el vector de movimiento emitido en la etapa de detección de movimiento, el tipo de macrobloque, el parámetro de cuantificación y los coeficientes de transformación cuantificados emitidos en la etapa de cuantificación para emitir datos codificados;
    en el que la etapa de codificación está destinada a preparar uno o varios tipos de procesos de codificación, de manera que las longitudes de código de los códigos para la codificación de la información relacionada con la codificación depende del tipo de proceso de codificación, seleccionando un proceso de codificación de uno o varios tipos de procesos de codificación creando tablas de mapa utilizadas para codificación de longitud variable indicando la relación entre información relacionada con la codificación y códigos de longitud variable basándose en un criterio predeterminado de selección de proceso de codificación,
    en el que la creación de las tablas de mapa comprende:
    -
    deducir un modelo de bloque codificado (CBPY) para cada macrobloque expresado por una serie de bits, correspondiendo cada bit a un bloque de un macrobloque objetivo de codificación (A, B, C, D) en el que cada bit indica 1 para la presencia de un coeficiente de transformación ortogonal distinto de cero de un bloque respectivo en el macrobloque objetivo de codificación (A, B, C, D) o 0 para su ausencia,
    -
    para cada bloque del macrobloque objetivo de codificación (A, B, C, D), determinando un valor del respectivo grado de correlación (P(A), P(B), P(C)) entre un bloque correspondiente y uno o varios bloques adyacentes de un macrobloque adyacente, por cálculo, de una suma ponderada de una operación predeterminada para un bloque con respecto a sus bloques adyacentes de uno o varios macrobloques adyacentes, de manera que la operación predeterminada indica 1 cuando la presencia/ausencia de coeficientes de transformación ortogonal distintos de cero son iguales entre dicho bloque del macrobloque objetivo de codificación y dicho bloque adyacente o 0 cuando la presencia/ausencia de coeficientes de transformación ortogonal distintos de cero son diferentes entre dicho bloque del macrobloque objetivo de codificación y dicho bloque adyacente,
    -
    determinar el grado total del valor de correlación (P(CBPY)) como suma del grado determinado de valores de correlación (P(A), P(B), P(C)),
    -
    reestructurar a continuación los modelos de bloques codificados derivados y asignar longitudes de código a los modelos de bloque codificado derivados (CBPY), de manera que la longitud de código de los modelos de bloque codificado (CBPY) resulta más corta al hacerse más alto el grado total del valor de correlación,
    y para llevar a cabo la codificación de compresión de la información relacionada con la codificación en base al criterio de selección del proceso de codificación para emitir los datos codificados;
    en el que la codificación de compresión de la información relativa a la codificación comprende codificación de longitud variable.
  11. 11. Programa de codificación de imagen para hacer que un ordenador funcione como:
    medio de detección de movimiento (11) para dividir una imagen objetivo de codificación en macrobloques de dimensiones predeterminadas, dividiendo cada uno de dichos macrobloques en bloques de una forma y tamaño predeterminados especificados basándose en un tipo de macrobloque y llevando a cabo una predicción compensada en movimiento en cada unidad de dicho bloque para emitir un vector de movimiento;
    medios de compensación de movimiento (12) para generar una imagen de predicción a partir de imágenes de referencia en base al vector de movimiento emitido desde los medios de detección de movimiento (11);
    medios de sustracción (13) para calcular la diferencia entre la imagen de predicción generada por los medios (12) de compensación de movimiento y la imagen objetivo de codificación para emitir una imagen residual predicativa;
    medios de transformación (14) para llevar a cabo la codificación de transformación de la imagen residual predictiva emitida desde los medios de sustracción (13) en cada unidad de un bloque de transformación predeterminado para emitir coeficientes de transformación;
    medios de cuantificación (15) para cuantificar los coeficientes de transformación emitidos desde los medios de transformación (14) basados en un parámetro de cuantificación para emitir coeficientes de transformación cuantificados; y
    medios de codificación (16, 50) para llevar a cabo codificación de compresión de información relacionada con la codificación conteniendo el vector de movimiento emitido desde los medios (11) de detección de movimiento, el tipo de macrobloque, el parámetro de cuantificación y los coeficientes de transformación cuantificados emitidos desde los medios de cuantificación (15) para emitir datos codificados;
    en el que los medios de codificación (16, 50) comprenden medios (32, 33, 52) para proporcionar el proceso de codificación, para proporcionar uno o varios tipos de procesos de codificación, en el que las longitudes de código de los códigos para codificar la información relativa a codificación dependen del tipo de proceso de codificación, y medios (30) de emisión de datos codificados para la selección de uno de los procesos de codificación proporcionado por los medios (32, 33, 52) que proporcionan el proceso de codificación por la creación de tablas de mapa utilizadas para codificación de longitud variable indicando una relación entre información relacionada con la codificación y códigos de longitud variable basándose en un criterio de selección del procedimiento de codificación predeterminado,
    en el que la creación de las tablas de mapa comprende:
    -
    deducir un modelo de bloque codificado (CBPY) para cada macrobloque expresado por una serie de bits, correspondiendo cada bit a un bloque de un macrobloque objetivo de codificación (A, B, C, D) en el que cada bit indica 1 para la presencia de un coeficiente de transformación ortogonal distinto de cero de un bloque respectivo en el macrobloque objetivo de codificación (A, B, C, D) o 0 para su ausencia,
    -
    para cada bloque del macrobloque objetivo de codificación (A, B, C, D) determinar un grado respectivo de valor de correlación (P(A), P(H), P(C)) entre un bloque respectivo y uno o varios bloques adyacentes de un macrobloque adyacente, calculando la suma ponderada de una operación predeterminada para un bloque con respecto a sus bloques adyacentes de uno o varios macrobloques adyacentes, de manera que la operación predeterminada indica 1 cuando la presencia/ausencia de coeficientes de transformación ortogonal distintos de cero son los mismos entre dicho bloque del macrobloque objetivo de codificación y dicho bloque adyacente o 0 cuando la
    5 presencia/ausencia de coeficientes de transformación ortogonal distintos de cero son distintos entre dicho bloque del macrobloque objetivo de codificación y dicho bloque adyacente,
    -
    determinar el grado total del valor de correlación (P(CBPY)) como suma del grado determinado de los valores de correlación (P(A), P(B), P(C)),
    -
    reestructurar a continuación los modelos de bloque especificados deducidos y asignando longitudes de 10 código a los modelos de bloque codificados deducidos (CBPY) de manera que la longitud de código de los modelos de bloques codificados (CBPY) resulta más corta al hacerse más elevado el grado total del valor de correlación, y para llevar a cabo el código de compresión de la información relacionada con la codificación en base al criterio de selección del proceso de codificación para emitir los datos codificados;
    en el que la codificación de compresión de la información relacionada con la codificación comprende 15 codificación de longitud variable.
ES03719223T 2002-04-26 2003-04-25 Dispositivo para la codificación de imágenes, procedimiento para la codificación de imágenes y programa para la codificación de imágenes Expired - Lifetime ES2401991T3 (es)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
JP2002127485 2002-04-26
JP2002127471 2002-04-26
JP2002127471 2002-04-26
JP2002127485 2002-04-26
JP2002195162 2002-07-03
JP2002195162 2002-07-03
JP2002195158 2002-07-03
JP2002195158 2002-07-03
PCT/JP2003/005388 WO2004039083A1 (ja) 2002-04-26 2003-04-25 画像符号化装置、画像復号装置、画像符号化方法、画像復号方法、画像符号化プログラム及び画像復号プログラム

Publications (1)

Publication Number Publication Date
ES2401991T3 true ES2401991T3 (es) 2013-04-26

Family

ID=32180613

Family Applications (1)

Application Number Title Priority Date Filing Date
ES03719223T Expired - Lifetime ES2401991T3 (es) 2002-04-26 2003-04-25 Dispositivo para la codificación de imágenes, procedimiento para la codificación de imágenes y programa para la codificación de imágenes

Country Status (8)

Country Link
US (5) US7596279B2 (es)
EP (3) EP1478190B1 (es)
JP (1) JP3944225B2 (es)
KR (1) KR100627597B1 (es)
CN (1) CN100420308C (es)
ES (1) ES2401991T3 (es)
TW (1) TWI273832B (es)
WO (1) WO2004039083A1 (es)

Families Citing this family (139)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101030862B1 (ko) * 2001-11-22 2011-04-22 파나소닉 주식회사 부호화 방법 및 부호화 장치
ATE343302T1 (de) * 2002-05-02 2006-11-15 Fraunhofer Ges Forschung Kodierung und dekodierung von transformationskoeffizienten in bild- oder videokodierern
US9351013B2 (en) * 2003-11-13 2016-05-24 Qualcomm Incorporated Selective and/or scalable complexity control for video codecs
US7843997B2 (en) * 2004-05-21 2010-11-30 Broadcom Corporation Context adaptive variable length code decoder for decoding macroblock adaptive field/frame coded video data
US7573406B2 (en) * 2004-05-21 2009-08-11 Broadcom Corporation System and method for decoding context adaptive variable length coding
US7570827B2 (en) * 2004-07-14 2009-08-04 Slipstream Data Inc. Method, system and computer program product for optimization of data compression with cost function
US7298297B1 (en) * 2004-08-18 2007-11-20 Mediatek Inc. Hardware-implemented Huffman decoder
US8548055B2 (en) * 2005-03-10 2013-10-01 Qualcomm Incorporated Encoding of multimedia data
KR100703770B1 (ko) * 2005-03-25 2007-04-06 삼성전자주식회사 가중 예측을 이용한 비디오 코딩 및 디코딩 방법, 이를위한 장치
US20070005553A1 (en) * 2005-06-30 2007-01-04 Ravi Sahita System for composite instrumented resource data
US20070297517A1 (en) * 2005-07-15 2007-12-27 Samsung Electronics Co., Ltd. Entropy encoding and decoding apparatuses, and entropy encoding and decoding methods
JP4534935B2 (ja) * 2005-10-04 2010-09-01 株式会社日立製作所 トランスコーダ、記録装置及びトランスコード方法
KR20070046752A (ko) * 2005-10-31 2007-05-03 엘지전자 주식회사 신호 처리 방법 및 장치
KR100791295B1 (ko) * 2006-01-12 2008-01-04 삼성전자주식회사 플래그 부호화 방법, 플래그 복호화 방법, 및 상기 방법을이용한 장치
US8306118B1 (en) * 2006-03-01 2012-11-06 Maxim Integrated, Inc. High quality low bitrate video coding by enabling and disabling a non-residual mode
WO2007104266A1 (fr) * 2006-03-16 2007-09-20 Huawei Technologies Co., Ltd. Procédé et appareil de quantification adaptative dans une procédure de codage
KR100809298B1 (ko) * 2006-06-22 2008-03-04 삼성전자주식회사 플래그 인코딩 방법, 플래그 디코딩 방법, 및 상기 방법을이용한 장치
KR100829169B1 (ko) * 2006-07-07 2008-05-13 주식회사 리버트론 H.264 코딩의 압축모드 예측 장치 및 방법
US8577171B1 (en) * 2006-07-31 2013-11-05 Gatan, Inc. Method for normalizing multi-gain images
KR20080035891A (ko) * 2006-10-20 2008-04-24 포스데이타 주식회사 움직임의 스마트 서치를 지원하는 영상 재생 장치 및 방법
US8315466B2 (en) * 2006-12-22 2012-11-20 Qualcomm Incorporated Decoder-side region of interest video processing
US8335261B2 (en) * 2007-01-08 2012-12-18 Qualcomm Incorporated Variable length coding techniques for coded block patterns
JP4901772B2 (ja) * 2007-02-09 2012-03-21 パナソニック株式会社 動画像符号化方法及び動画像符号化装置
EP3107293A1 (en) 2007-03-20 2016-12-21 Fujitsu Limited Video encoding method and apparatus, and video decoding apparatus
JP4964689B2 (ja) * 2007-06-25 2012-07-04 日本電信電話株式会社 画像符号化方法,画像復号方法,画像符号化装置,画像復号装置,画像符号化プログラム,画像復号プログラムおよびコンピュータ読み取り可能な記録媒体
JP5217270B2 (ja) * 2007-06-26 2013-06-19 ソニー株式会社 画像処理装置およびその方法、並びにプログラム
US8023562B2 (en) 2007-09-07 2011-09-20 Vanguard Software Solutions, Inc. Real-time video coding/decoding
US8127233B2 (en) * 2007-09-24 2012-02-28 Microsoft Corporation Remote user interface updates using difference and motion encoding
US8619877B2 (en) * 2007-10-11 2013-12-31 Microsoft Corporation Optimized key frame caching for remote interface rendering
JP2009182623A (ja) * 2008-01-30 2009-08-13 Panasonic Corp 画像符号化方法
GB2457262A (en) * 2008-02-08 2009-08-12 Linear Algebra Technologies Compression / decompression of data blocks, applicable to video reference frames
WO2009110160A1 (ja) * 2008-03-07 2009-09-11 株式会社 東芝 動画像符号化/復号化方法及び装置
JP5007259B2 (ja) * 2008-03-27 2012-08-22 ルネサスエレクトロニクス株式会社 画像符号化装置
EP2290985B1 (en) * 2008-06-10 2017-05-03 Panasonic Intellectual Property Management Co., Ltd. Image decoding apparatus and image coding apparatus
US8311116B2 (en) 2008-07-09 2012-11-13 Marvell World Trade Ltd. Method and apparatus for periodic structure handling for motion compensation
WO2010018992A2 (en) * 2008-08-12 2010-02-18 Lg Electronics Inc. Method of processing a video signal
JP5680283B2 (ja) * 2008-09-19 2015-03-04 株式会社Nttドコモ 動画像符号化装置、動画像復号装置、動画像符号化方法、動画像復号方法、動画像符号化プログラム、及び動画像復号プログラム
KR101377660B1 (ko) * 2008-09-30 2014-03-26 에스케이텔레콤 주식회사 복수 개의 움직임 벡터 추정을 이용한 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
TWI482499B (zh) * 2008-10-03 2015-04-21 Ind Tech Res Inst 影像訊號處理裝置和方法
WO2010041857A2 (en) * 2008-10-06 2010-04-15 Lg Electronics Inc. A method and an apparatus for decoding a video signal
WO2010063883A1 (en) * 2008-12-03 2010-06-10 Nokia Corporation Switching between dct coefficient coding modes
US8502708B2 (en) * 2008-12-09 2013-08-06 Nippon Telegraph And Telephone Corporation Encoding method and decoding method, and devices, program and recording medium for the same
US8044831B2 (en) * 2009-01-16 2011-10-25 Canon Kabushiki Kaisha Decoding apparatus and control method thereof
US8576910B2 (en) * 2009-01-23 2013-11-05 Nippon Telegraph And Telephone Corporation Parameter selection method, parameter selection apparatus, program, and recording medium
CN102308580B (zh) * 2009-02-05 2016-05-04 汤姆森特许公司 用于自适应模式视频编码和解码的方法和装置
JP5258664B2 (ja) * 2009-04-14 2013-08-07 株式会社エヌ・ティ・ティ・ドコモ 画像符号化装置、方法およびプログラム、並びに、画像復号装置、方法およびプログラム
SG10201402451XA (en) * 2009-05-29 2014-07-30 Mitsubishi Electric Corp Image encoding device, image decoding device, image encoding method, and image decoding method
US9100648B2 (en) 2009-06-07 2015-08-04 Lg Electronics Inc. Method and apparatus for decoding a video signal
US12568248B2 (en) * 2009-06-07 2026-03-03 Lg Electronics Inc. Method and apparatus for decoding a video signal
US9635368B2 (en) 2009-06-07 2017-04-25 Lg Electronics Inc. Method and apparatus for decoding a video signal
JP5566455B2 (ja) * 2009-06-22 2014-08-06 トムソン ライセンシング 画像系列のビデオデータを符号化する方法及びエンコーダ並びに現在のブロックを復号化する方法及びデコーダ
JP5184447B2 (ja) * 2009-06-22 2013-04-17 株式会社Kddi研究所 動画像符号化装置および復号装置
JP2011024066A (ja) * 2009-07-17 2011-02-03 Sony Corp 画像処理装置および方法
KR101624649B1 (ko) * 2009-08-14 2016-05-26 삼성전자주식회사 계층적인 부호화 블록 패턴 정보를 이용한 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
WO2011021914A2 (ko) 2009-08-21 2011-02-24 에스케이텔레콤 주식회사 적응적 움직임 벡터 해상도를 이용한 영상 부호화/복호화 방법 및 장치
KR101441874B1 (ko) 2009-08-21 2014-09-25 에스케이텔레콤 주식회사 적응적 움직임 벡터 해상도를 이용한 영상 부호화/복호화 방법 및 장치
TW201121335A (en) * 2009-12-02 2011-06-16 Sunplus Core Technology Co Ltd Method and apparatus for adaptively determining compression modes to compress frames
CA2784515A1 (en) 2009-12-17 2011-06-23 Telefonaktiebolaget L M Ericsson (Publ) Method and arrangement for video coding
JP5556996B2 (ja) * 2010-01-06 2014-07-23 ソニー株式会社 画像処理装置および方法
KR101703327B1 (ko) * 2010-01-14 2017-02-06 삼성전자 주식회사 계층적 데이터 단위의 패턴 정보를 이용하는 비디오 부호화 방법과 그 장치, 및 비디오 복호화 방법과 그 장치
WO2011100347A2 (en) * 2010-02-09 2011-08-18 Vanguard Software Solutions, Inc. Video sequence encoding system and algorithms
JP5583992B2 (ja) * 2010-03-09 2014-09-03 パナソニック株式会社 信号処理装置
US8942282B2 (en) * 2010-04-12 2015-01-27 Qualcomm Incorporated Variable length coding of coded block pattern (CBP) in video compression
US20110249754A1 (en) * 2010-04-12 2011-10-13 Qualcomm Incorporated Variable length coding of coded block pattern (cbp) in video compression
ES2912048T3 (es) 2010-04-13 2022-05-24 Ge Video Compression Llc Codificación de mapas de significado y bloques de coeficiente de transformada
KR20110135763A (ko) * 2010-06-11 2011-12-19 에스케이 텔레콤주식회사 문맥 모델링 방법 및 장치와 이를 이용한 영상 부호화/복호화 방법 및 장치
KR101181970B1 (ko) * 2010-07-09 2012-09-11 (주)에프씨아이 송수신데이터의 복호화 방법 및 장치
JP2012060376A (ja) * 2010-09-08 2012-03-22 Olympus Corp データ圧縮装置、データ復号装置、データ圧縮方法、データ復号方法およびデータ圧縮および復号システム
KR20120035096A (ko) * 2010-10-04 2012-04-13 한국전자통신연구원 쿼드 트리 변환 구조에서 부가 정보의 시그널링 방법 및 장치
US9532059B2 (en) 2010-10-05 2016-12-27 Google Technology Holdings LLC Method and apparatus for spatial scalability for video coding
MX2013003557A (es) 2010-10-05 2013-05-01 Gen Instrument Corp Codificacion y decodificacion utilizando seleccion de modelo adaptativo al contexto con escaneo en zigzag.
US9172963B2 (en) 2010-11-01 2015-10-27 Qualcomm Incorporated Joint coding of syntax elements for video coding
US8787459B2 (en) * 2010-11-09 2014-07-22 Sony Computer Entertainment Inc. Video coding methods and apparatus
FR2968862A1 (fr) * 2010-12-13 2012-06-15 France Telecom Procedes de codage et de decodage d'une valeur n-aire, dispositifs et programme d'ordinateur correspondants.
WO2012080627A1 (fr) * 2010-12-13 2012-06-21 France Telecom Procedes de codage et de decodage d'une valeur n-aire, dispositifs et programme d'ordinateur correspondants
US9490839B2 (en) 2011-01-03 2016-11-08 Qualcomm Incorporated Variable length coding of video block coefficients
CN103299622B (zh) * 2011-01-07 2016-06-29 联发科技(新加坡)私人有限公司 编码方法与装置以及解码方法与装置
US8755620B2 (en) 2011-01-12 2014-06-17 Panasonic Corporation Image coding method, image decoding method, image coding apparatus, image decoding apparatus, and image coding and decoding apparatus for performing arithmetic coding and/or arithmetic decoding
KR20120100836A (ko) * 2011-03-03 2012-09-12 한국전자통신연구원 변환 계수 스캔 방법 및 그 장치
WO2012118358A2 (ko) * 2011-03-03 2012-09-07 한국전자통신연구원 변환 계수 스캔 방법 및 그 장치
US20120230396A1 (en) * 2011-03-11 2012-09-13 Mitsubishi Electric Research Laboratories, Inc. Method for Embedding Decoding Information in Quantized Transform Coefficients
US8938001B1 (en) 2011-04-05 2015-01-20 Google Inc. Apparatus and method for coding using combinations
US20120294353A1 (en) * 2011-05-16 2012-11-22 Mediatek Inc. Apparatus and Method of Sample Adaptive Offset for Luma and Chroma Components
US8989256B2 (en) 2011-05-25 2015-03-24 Google Inc. Method and apparatus for using segmentation-based coding of prediction information
JP2013034162A (ja) * 2011-06-03 2013-02-14 Sony Corp 画像処理装置及び画像処理方法
US9516316B2 (en) 2011-06-29 2016-12-06 Qualcomm Incorporated VLC coefficient coding for large chroma block
PL3422714T3 (pl) * 2011-06-30 2021-05-31 JVC Kenwood Corporation Urządzenie do kodowania obrazu, sposób kodowania obrazu, program do kodowania obrazu, urządzenie do dekodowania obrazu, sposób dekodowania obrazu i program do dekodowania obrazu
US9338456B2 (en) 2011-07-11 2016-05-10 Qualcomm Incorporated Coding syntax elements using VLC codewords
US8891616B1 (en) 2011-07-27 2014-11-18 Google Inc. Method and apparatus for entropy encoding based on encoding cost
MY164655A (en) 2011-07-29 2018-01-30 Sun Patent Trust Moving Picture Coding Method, Moving Picture Decoding Method, Moving Picture Coding Apparatus, Moving Picture Decoding Apparatus, And Decoding Apparatus
JP2011229190A (ja) * 2011-08-17 2011-11-10 Sharp Corp 動画像符号化装置及び動画像復号装置
PL2876883T3 (pl) * 2011-11-01 2019-10-31 Velos Media Int Ltd Wielopoziomowe mapy znaczeń do kodowania i dekodowania
US9571833B2 (en) 2011-11-04 2017-02-14 Nokia Technologies Oy Method for coding and an apparatus
KR102588425B1 (ko) 2011-11-11 2023-10-12 지이 비디오 컴프레션, 엘엘씨 적응적 분할 코딩
EP3468184B1 (en) 2011-11-11 2022-07-27 GE Video Compression, LLC Effective wedgelet partition coding using prediction
PT2777283T (pt) 2011-11-11 2018-04-18 Ge Video Compression Llc Predição eficaz utilizando codificação de partição
WO2013068562A1 (en) 2011-11-11 2013-05-16 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Effective wedgelet partition coding
US8693551B2 (en) 2011-11-16 2014-04-08 Vanguard Software Solutions, Inc. Optimal angular intra prediction for block-based video coding
US9247257B1 (en) 2011-11-30 2016-01-26 Google Inc. Segmentation based entropy encoding and decoding
ES2823478T3 (es) * 2011-12-13 2021-05-07 Jvc Kenwood Corp Dispositivo de codificación de vídeo, procedimiento de codificación de vídeo, programa de codificación de vídeo, dispositivo de decodificación de vídeo, procedimiento de decodificación de vídeo, y programa de decodificación de vídeo
CN104012092A (zh) * 2011-12-20 2014-08-27 摩托罗拉移动有限责任公司 高效变换单元编码的方法和设备
CA2950943C (en) * 2011-12-22 2019-06-04 Samsung Electronics Co., Ltd. Video encoding method using offset adjustment according to classification of pixels by maximum encoding units and apparatus thereof, and video decoding method and apparatus thereof
US8660374B1 (en) * 2011-12-23 2014-02-25 Massachusetts Institute Of Technology Selecting transform paths for compressing visual data
JP5988577B2 (ja) * 2011-12-28 2016-09-07 キヤノン株式会社 画像符号化装置、画像符号化方法及びプログラム
US9723308B2 (en) * 2012-02-28 2017-08-01 Panasonic Intellectual Property Management Co., Ltd. Image processing apparatus and image processing method
US9094681B1 (en) 2012-02-28 2015-07-28 Google Inc. Adaptive segmentation
US11039138B1 (en) 2012-03-08 2021-06-15 Google Llc Adaptive coding of prediction modes using probability distributions
US9143781B2 (en) * 2012-04-03 2015-09-22 Qualcomm Incorporated Weighted prediction parameter coding
MY166213A (en) * 2012-04-13 2018-06-22 Jvc Kenwood Corp Picture coding device, picture coding method, and picture coding program
JP2014007469A (ja) * 2012-06-21 2014-01-16 Canon Inc 画像符号化装置及び画像符号化方法
US9774856B1 (en) 2012-07-02 2017-09-26 Google Inc. Adaptive stochastic entropy coding
US9332276B1 (en) 2012-08-09 2016-05-03 Google Inc. Variable-sized super block based direct prediction mode
US9380298B1 (en) 2012-08-10 2016-06-28 Google Inc. Object-based intra-prediction
US9979960B2 (en) 2012-10-01 2018-05-22 Microsoft Technology Licensing, Llc Frame packing and unpacking between frames of chroma sampling formats with different chroma resolutions
KR101491591B1 (ko) * 2012-11-05 2015-02-09 주식회사 케이티 웹앱 가상화 서비스를 제공하는 가상화 서버 및 웹앱 가상화 서비스 제공을 위한 데이터 전송방법
US9106922B2 (en) 2012-12-19 2015-08-11 Vanguard Software Solutions, Inc. Motion estimation engine for video encoding
US10127624B1 (en) * 2012-12-28 2018-11-13 Amazon Technologies, Inc. Block mapping in high efficiency video coding compliant encoders and decoders
US9509998B1 (en) 2013-04-04 2016-11-29 Google Inc. Conditional predictive multi-symbol run-length coding
CN104244002B (zh) * 2013-06-14 2019-02-05 北京三星通信技术研究有限公司 一种视频编/解码中运动信息的获取方法及装置
US9967594B2 (en) * 2013-06-28 2018-05-08 Mozilla Corporation Probability modeling of intra prediction modes
US9392288B2 (en) 2013-10-17 2016-07-12 Google Inc. Video coding using scatter-based scan tables
US9179151B2 (en) 2013-10-18 2015-11-03 Google Inc. Spatial proximity context entropy coding
KR101582504B1 (ko) * 2014-06-12 2016-01-07 에스케이텔레콤 주식회사 인터 예측을 이용한 영상 부호화 및 복호화 방법과 장치
CN107925771B (zh) * 2015-05-29 2022-01-11 深圳市大疆创新科技有限公司 视频处理的方法、系统、存储介质和成像装置
US10171810B2 (en) 2015-06-22 2019-01-01 Cisco Technology, Inc. Transform coefficient coding using level-mode and run-mode
EP3373578A4 (en) * 2015-12-15 2019-04-24 Nippon Telegraph and Telephone Corporation DEVICE FOR DETECTING IMAGE DIFFERENCES, METHOD FOR DETECTING IMAGE DIFFERENCES AND COMPUTER PROGRAM
US10368080B2 (en) 2016-10-21 2019-07-30 Microsoft Technology Licensing, Llc Selective upsampling or refresh of chroma sample values
KR20180089290A (ko) * 2017-01-31 2018-08-08 세종대학교산학협력단 영상의 부호화/복호화 방법 및 장치
CN107862729B (zh) * 2017-08-24 2021-07-02 平安普惠企业管理有限公司 层级动画生成方法、终端及可读存储介质
WO2020046041A1 (en) 2018-08-31 2020-03-05 Samsung Electronics Co., Ltd. Electronic device for high-speed compression processing of feature map of cnn utilizing system and controlling method thereof
US10873747B2 (en) * 2018-11-18 2020-12-22 Sony Corporation Residual mapping method for image/video compression
KR20250073487A (ko) 2019-01-02 2025-05-27 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 통합된 변환 타입 시그널링 및 변환 타입 종속 변환 계수 레벨 코딩
US10897268B2 (en) * 2019-02-21 2021-01-19 Cirrus Logic, Inc. Probability-based synchronization of a serial code stream
CN110266316B (zh) * 2019-05-08 2023-02-21 创新先进技术有限公司 一种数据压缩、解压方法、装置和设备
US11973948B2 (en) 2019-06-19 2024-04-30 Sony Group Corporation Image processing device and method
CN113905242B (zh) * 2021-09-17 2025-09-02 中山大学 一种点云颜色属性自适应压缩行程编码方法
CN115052145A (zh) * 2022-06-07 2022-09-13 北京邮电大学 一种基于量化参数的宏块模式选择算法及系统
US12368889B2 (en) * 2022-07-28 2025-07-22 Apple Inc. Coefficient-based transform and mode signaling
WO2024107210A1 (en) * 2022-11-15 2024-05-23 Google Llc Dc only transform coefficient mode for image and video coding

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US1000000A (en) * 1910-04-25 1911-08-08 Francis H Holton Vehicle-tire.
JPS5816665B2 (ja) * 1975-10-30 1983-04-01 ケイディディ株式会社 フアクシミリシンゴウノフゴウカホウシキ
JP2787944B2 (ja) 1988-01-11 1998-08-20 富士通株式会社 動き補償動ベクトル探索方法
JPH02179584A (ja) 1988-12-29 1990-07-12 Suzuki Motor Co Ltd 車両の4輪操舵装置
US5875266A (en) * 1990-07-31 1999-02-23 Fujitsu Limited Image data processing a method and apparatus
US5116684A (en) * 1990-09-28 1992-05-26 Corning Incorporated Composite ophthalmic lens
JPH04185119A (ja) * 1990-11-20 1992-07-02 Matsushita Electric Ind Co Ltd 可変長符号化装置
US5122875A (en) * 1991-02-27 1992-06-16 General Electric Company An HDTV compression system
US5227878A (en) * 1991-11-15 1993-07-13 At&T Bell Laboratories Adaptive coding and decoding of frames and fields of video
US5510785A (en) * 1993-03-19 1996-04-23 Sony Corporation Method of coding a digital signal, method of generating a coding table, coding apparatus and coding method
JPH08205140A (ja) 1995-01-31 1996-08-09 Canon Inc 画像圧縮装置
JP3624450B2 (ja) * 1995-02-06 2005-03-02 ソニー株式会社 画像データ符号化方法及び画像データ符号化装置
US6101276A (en) 1996-06-21 2000-08-08 Compaq Computer Corporation Method and apparatus for performing two pass quality video compression through pipelining and buffer management
JP4034380B2 (ja) * 1996-10-31 2008-01-16 株式会社東芝 画像符号化/復号化方法及び装置
JP3208101B2 (ja) 1996-11-07 2001-09-10 松下電器産業株式会社 画像符号化方法および画像符号化装置並びに画像符号化プログラムを記録した記録媒体
US6345121B1 (en) 1996-11-07 2002-02-05 Matsushita Electric Industrial Co., Ltd. Image encoding apparatus and an image decoding apparatus
JP3304870B2 (ja) * 1997-03-26 2002-07-22 ソニー株式会社 画像符号化方法及び装置並びに画像復号方法及び装置
US6462791B1 (en) * 1997-06-30 2002-10-08 Intel Corporation Constrained motion estimation and compensation for packet loss resiliency in standard based codec
KR100226722B1 (ko) * 1997-07-30 1999-10-15 구자홍 동영상 움직임 벡터 추정 방법
EP0905987B1 (en) * 1997-09-26 2005-06-15 Matsushita Electric Industrial Co., Ltd. Image decoding method and apparatus, and data recording medium
DE10022520A1 (de) * 2000-05-10 2001-11-15 Bosch Gmbh Robert Verfahren zur örtlichen skalierbaren Bewegtbildcodierung
TW515192B (en) * 2000-06-06 2002-12-21 Noa Kk Off Compression method of motion picture image data and system there for
JP2002112268A (ja) * 2000-09-29 2002-04-12 Toshiba Corp 圧縮画像データ復号装置
JP3959039B2 (ja) * 2003-02-28 2007-08-15 株式会社エヌ・ティ・ティ・ドコモ 画像符号化装置、画像符号化方法、画像符号化プログラム、画像復号装置、画像復号方法、及び画像復号プログラム

Also Published As

Publication number Publication date
TWI273832B (en) 2007-02-11
JP3944225B2 (ja) 2007-07-11
KR100627597B1 (ko) 2006-09-25
US20070242892A1 (en) 2007-10-18
EP1478190B1 (en) 2013-01-02
US20120106630A1 (en) 2012-05-03
CN100420308C (zh) 2008-09-17
CN1545813A (zh) 2004-11-10
EP1478190A4 (en) 2009-04-01
US7596279B2 (en) 2009-09-29
KR20040068535A (ko) 2004-07-31
EP2202989B1 (en) 2014-04-16
WO2004039083A1 (ja) 2004-05-06
US7903891B2 (en) 2011-03-08
TW200401560A (en) 2004-01-16
US20040234144A1 (en) 2004-11-25
US7970223B2 (en) 2011-06-28
EP2367358A1 (en) 2011-09-21
US8265405B2 (en) 2012-09-11
EP1478190A1 (en) 2004-11-17
US20110228842A1 (en) 2011-09-22
EP2202989A1 (en) 2010-06-30
US20100002945A1 (en) 2010-01-07
JPWO2004039083A1 (ja) 2006-02-23

Similar Documents

Publication Publication Date Title
ES2401991T3 (es) Dispositivo para la codificación de imágenes, procedimiento para la codificación de imágenes y programa para la codificación de imágenes
KR101878293B1 (ko) 비디오 코딩을 위한 저 복잡성 인트라 예측
CN111064964B (zh) 一种编解码方法、装置及其设备
US12413705B2 (en) Method and apparatus for encoding/decoding image using geometrically modified reference picture
KR20240011197A (ko) 교차 성분 샘플 적응 오프셋에서의 코딩 향상
CN113709462A (zh) 一种编解码方法、装置及其设备
CN114598889A (zh) 一种编解码方法、装置及其设备
CN121942200A (zh) 基于外推滤波器的预测模式的方法和设备