procedimiento de codificación de longitud variable.

Un procedimiento de codificación para realizar una codificación de longitud variable en coeficientesbidimensionales de un bloque que se obtienen realizando una transformación de frecuencia en los datos de imagen delbloque que posee un número de píxeles predeterminado,

comprendiendo el procedimiento:

escanear los coeficientes bidimensionales del bloque en un orden predeterminado partiendo desde un componente debaja frecuencia hacia un componente de alta frecuencia a fin de transformar los coeficientes bidimensionales encoeficientes unidimensionales;

transformar los coeficientes unidimensionales del bloque en un valor Run y un valor Level, siendo el valor Level un valorde coeficiente distinto de cero del bloque y siendo el valor Run un número de coeficientes cero anterior al coeficientedistinto de cero del bloque;

calcular un número total de coeficientes distintos de cero incluidos en el bloque;

realizar una codificación de longitud variable (S105) en cada uno de los coeficientes distintos de cero del bloquecorrespondientes a los valores Level consecutivos partiendo desde un componente de alta frecuencia hacia uncomponente de baja frecuencia, hasta que un número total de coeficientes codificados distintos de cero del bloquealcanza el número total de coeficientes distintos de cero incluidos en el bloque; y

realizar una codificación de longitud variable (S105) en dicho número total calculado de coeficientes distintos de ceroincluidos en el bloque, y realizar una codificación de longitud variable (S105) en cada uno de los valores Run de bloquepor separado de la codificación de coeficientes distintos de cero del bloque, usando una pluralidad de tablas de códigoque se usan para codificar los valores Run;

en el que dicha codificación de longitud variable (S105) en cada uno de los coeficientes distintos de cero del bloque serealiza cambiando entre una pluralidad de tablas de código de longitud variable, a cada una de las cuales se asigna unumbral tal que a la primera tabla se asigna el umbral inferior, y a cada una de las siguientes tablas se asigna un umbralque es diferente de y mayor que todos los umbrales asignados anteriormente;

en el que dicha codificación de longitud variable (S105) en cada uno de los coeficientes distintos de cero del bloquecomienza usando la primera tabla y cuando el valor absoluto de un coeficiente actual distinto de cero que se va acodificar supera el umbral asignado a la tabla usada para codificar el coeficiente actual distinto de cero, la tabla de códigose cambia por la siguiente tabla de código que tiene el umbral mayor asignado, el valor umbral usado para comprobar silos valores absolutos de los coeficientes distintos de cero superan el umbral se cambia por el umbral asignado a dichatabla cambiada, y el siguiente coeficiente distinto de cero a continuación del coeficiente actual distinto de cero se codificausando dicha tabla cambiada; y

en el que las tablas usadas para codificar los coeficientes distintos de cero del bloque son diferentes de las tablas decódigo usadas para codificar los valores Run del bloque.

Tipo: Patente Europea. Resumen de patente/invención. Número de Solicitud: E09168084.

Solicitante: PANASONIC CORPORATION.

Nacionalidad solicitante: Japón.

Dirección: 1006, OAZA KADOMA, KADOMA-SHI OSAKA 571-8501 JAPON.

Inventor/es: KADONO, SHINYA, HAGAI, MAKOTO, ABE, KIYOFUMI, KONDO, SATOSHI.

Fecha de Publicación: .

Clasificación Internacional de Patentes:

  • H03M7/40 ELECTRICIDAD.H03 CIRCUITOS ELECTRONICOS BASICOS.H03M CODIFICACION, DECODIFICACION O CONVERSION DE CODIGO, EN GENERAL (por medio de fluidos F15C 4/00; convertidores ópticos analógico/digitales G02F 7/00; codificación, decodificación o conversión de código especialmente adaptada a aplicaciones particulares, ver las subclases apropiadas, p. ej. G01D, G01R, G06F, G06T, G09G, G10L, G11B, G11C, H04B, H04L, H04M, H04N; cifrado o descifrado para la criptografía o para otros fines que implican la necesidad de secreto G09C). › H03M 7/00 Conversión de un código, en el cual la información está representada por una secuencia dada o por un número de dígitos, en un código en el cual la misma información está representada por una secuencia o por un número de dígitos diferentes. › Conversión en, o a partir de códigos la longitud variable, p. ej. código Shanno-Fano, código Huffman, código Morse.
  • H04N7/26
  • H04N7/30
  • H04N7/50

PDF original: ES-2388479_T3.pdf

 


Fragmento de la descripción:

Procedimiento de codificación de longitud variable

Campo Técnico

La presente invención se refiere a un procedimiento de codificación de longitud variable para codificar los coeficientes de cada bloque, que se obtienen realizando una transformación de frecuencia en los datos de imagen de una imagen en movimiento por bloque con un tamaño predeterminado, así como un procedimiento de descodificación de longitud variable, y similares.

Técnica anterior

Al codificar una imagen en movimiento, la compresión del volumen de información se realiza normalmente utilizando redundancias en las direcciones espacial y temporal que posee la imagen en movimiento. Normalmente se usa una transformación en un dominio de frecuencias como procedimiento para utilizar la redundancia espacial, mientras que la codificación por predicción interimagen se usa como procedimiento para utilizar la redundancia temporal.

En un procedimiento de codificación de imagen en movimiento que se encuentra actualmente en proceso de estandarización, la cuantización se realiza en cada bloque de tamaño 4x4 píxeles a fin de generar coeficientes tras realizar la transformación de frecuencias en tal bloque, con vistas a aumentar la eficacia de codificación de un procedimiento de codificación de imagen en movimiento MPEG-4 convencional. Después se realiza un escaneo partiendo desde los componentes de corriente continua hacia los componentes de alta frecuencia, se generan combinaciones de un valor R (Run, denominado en lo sucesivo simplemente “R”) que indica el número de coeficientes cero consecutivos y un valor de coeficiente L (Level, denominado en lo sucesivo simplemente “L”) posterior al mismo de forma que se cree una secuencia (R, L) . Después de transformar esta (R, L) en un número de código usando una tabla de códigos predeterminada, la codificación se realiza transformando el número de código en un código VLC, usando también una única tabla de codificación de longitud variable (VLC) . En la tabla de códigos se asigna normalmente un número de código más pequeño a medida que aumenta la probabilidad de que aparezcan. Por ejemplo, se asigna un número de código pequeño a una combinación en la que tanto R como L indican valores pequeños ya que la probabilidad de que aparezca es alta. En ciertas tablas de códigos VLC, se asigna un código VCL que posee una longitud de código corta a un número de código pequeño (véase la referencia al documento ISO/IEC 14496-2: “Information technology—Coding of audio-visual objects—Part 2: Visual” 7.4.1, págs. 119 a 120, 12/1999) .

Sin embargo, el uso del procedimiento existente ocasiona una disminución en la eficiencia de la codificación debido a que la longitud del código se hace más larga a medida que crecen el número de coeficientes R cero consecutivos y un valor de coeficiente L. Normalmente, la disminución en la eficiencia resulta evidente cuando se codifica un componente de baja frecuencia, ya que el valor de coeficiente L como valor del componente de baja frecuencia es alto.

Concretamente, a consecuencia de asignar una única tabla VLC de acuerdo con la probabilidad de aparición y un único y exclusivo código de longitud variable a un par formado por R y L, el valor de coeficiente L que indica un valor alto se transforma en un código de longitud variable que posee una longitud de código muy larga. Aún cuando se codifica L por separado de R (codificación unidimensional de L) usando una única tabla VLC, surge el mismo problema que en el caso de codificar R y L como un par.

En el documento EP 0827345 A1 se describe un sistema de codificación de imagen en el que una señal de imagen de entrada se divide en bloques, los bloques resultantes se transforman en dos o más tipos de coeficientes transformados, los coeficientes transformados se cuantizan según un tamaño de etapa de cuantización dado y los coeficientes transformados cuantizados se escanean de acuerdo con una pluralidad de secuencias de escaneo. Los coeficientes escanean de ese modo se codifican aún más de acuerdo con una pluralidad de tablas de codificación, y, entre las combinaciones de la pluralidad de secuencias de escaneo con la pluralidad de tablas de codificación, se selecciona una combinación de secuencia de escaneo con una tabla de codificación que proporciona la mayor eficiencia de codificación, mediante unos medios de selección de secuencia de escaneo y tabla de codificación, de acuerdo con el nivel de distribución de los coeficientes transformados.

En el documento EP 0616471 se describe una codificación de longitud variable que hace uso de una pluralidad de tablas, en la que se generan tablas para cada par run-level posible de acuerdo con la frecuencia de aparición. Cuando se van a codificar datos de un coeficiente, se selecciona una tabla correspondiente al tamaño de los datos del coeficiente proporcionados antes de que se seleccionen esos datos del coeficiente y la codificación se realiza basándose en la tabla seleccionada.

En el documento JP 8214310 se describe una codificación de longitud variable, cambiando entre 3 tablas de acuerdo con la correlación entre coeficientes consecutivos.

En el documento EP 0267578 se describe un sistema de codificación que efectúa una codificación de longitud variable haciendo uso de una pluralidad de conjuntos de códigos en la que los conjuntos de códigos se seleccionan por sus componentes de alta y baja frecuencia.

En el documento US 5751232 se describe un aparato codificador de alta eficiencia que posee un circuito de división de datos que aplica un escaneo unidimensional a los datos transformados ortogonalmente obtenidos mediante la aplicación de una transformación ortogonal a unos datos digitales divididos en bloques en la unidad de bloque y divide los datos en datos run-length y datos de coeficientes, un circuito de codificación que aplica una codificación run-length a los datos runlength divididos, mediante el empleo de datos con la mayor probabilidad de aparición (por ejemplo 0) , y un circuito de codificación que aplica una codificación run-length a los datos de coeficientes divididos mediante el empleo de datos con la mayor probabilidad de aparición (por ejemplo 1) reduce de ese modo la cantidad de datos digitales.

Descripción de la invención

La presente invención está concebida en vista de los anteriores problemas, y pretende proporcionar el procedimiento de codificación de longitud variable y el procedimiento de descodificación de longitud variable que pueden mejorar la eficiencia de la codificación cuando se codifica el valor de coeficiente L.

Con el fin de lograr el anterior objetivo, se propone un procedimiento de codificación de longitud variable de acuerdo con la presente invención, tal como se define en la reivindicación 1.

De este modo, es posible mejorar la eficiencia de la codificación, ya que el código de longitud variable con la longitud de código basada en el coeficiente puede adaptarse a cada tabla. En otras palabras, es posible acortar notablemente una longitud de código cambiando de una tabla a otra dependiendo del coeficiente, de forma que se pueda codificar un coeficiente en un código de longitud variable cuya longitud de código sea más corta en una tabla que en la otra cuando el coeficiente es alto.

Aquí, una dirección de cambio entre la pluralidad de tablas puede ser unidireccional. Así se evita el frecuente cambio de tablas y por tanto el número de veces que se cambia de una tabla a otra disminuye. Por lo tanto, es posible aumentar la eficiencia de la codificación. Por ejemplo, al tener el área de trabajo de la memoria un espacio limitado, sólo se almacena una tabla para su uso. En este caso, se tarda un tiempo en comenzar a codificar el siguiente coeficiente, ya que se tarda un tiempo en leer la siguiente tabla desde la ROM y en expandirla en el área de trabajo cada vez que se cambia de tabla. Este cambio unidireccional de una tabla a otra resulta eficaz para limitar el número de veces que se cambia de tabla y para reducir el tiempo total necesario para codificar el siguiente coeficiente.

En la etapa de codificación, la codificación se puede realizar en cada uno de dichos bloques cambiando entre la pluralidad de tablas y los coeficientes pueden ser coeficientes distintos de cero que se hayan unidimensionalizado.

Es preferible que la codificación sea una codificación no aritmética. De este modo, cuando se determina una tabla que se va a... [Seguir leyendo]

 


Reivindicaciones:

1. Un procedimiento de codificación para realizar una codificación de longitud variable en coeficientes bidimensionales de un bloque que se obtienen realizando una transformación de frecuencia en los datos de imagen del bloque que posee un número de píxeles predeterminado, comprendiendo el procedimiento:

escanear los coeficientes bidimensionales del bloque en un orden predeterminado partiendo desde un componente de baja frecuencia hacia un componente de alta frecuencia a fin de transformar los coeficientes bidimensionales en coeficientes unidimensionales;

transformar los coeficientes unidimensionales del bloque en un valor Run y un valor Level, siendo el valor Level un valor de coeficiente distinto de cero del bloque y siendo el valor Run un número de coeficientes cero anterior al coeficiente distinto de cero del bloque;

calcular un número total de coeficientes distintos de cero incluidos en el bloque;

realizar una codificación de longitud variable (S105) en cada uno de los coeficientes distintos de cero del bloque correspondientes a los valores Level consecutivos partiendo desde un componente de alta frecuencia hacia un componente de baja frecuencia, hasta que un número total de coeficientes codificados distintos de cero del bloque alcanza el número total de coeficientes distintos de cero incluidos en el bloque; y

realizar una codificación de longitud variable (S105) en dicho número total calculado de coeficientes distintos de cero incluidos en el bloque, y realizar una codificación de longitud variable (S105) en cada uno de los valores Run de bloque por separado de la codificación de coeficientes distintos de cero del bloque, usando una pluralidad de tablas de código que se usan para codificar los valores Run;

en el que dicha codificación de longitud variable (S105) en cada uno de los coeficientes distintos de cero del bloque se realiza cambiando entre una pluralidad de tablas de código de longitud variable, a cada una de las cuales se asigna un umbral tal que a la primera tabla se asigna el umbral inferior, y a cada una de las siguientes tablas se asigna un umbral que es diferente de y mayor que todos los umbrales asignados anteriormente;

en el que dicha codificación de longitud variable (S105) en cada uno de los coeficientes distintos de cero del bloque comienza usando la primera tabla y cuando el valor absoluto de un coeficiente actual distinto de cero que se va a codificar supera el umbral asignado a la tabla usada para codificar el coeficiente actual distinto de cero, la tabla de código se cambia por la siguiente tabla de código que tiene el umbral mayor asignado, el valor umbral usado para comprobar si los valores absolutos de los coeficientes distintos de cero superan el umbral se cambia por el umbral asignado a dicha tabla cambiada, y el siguiente coeficiente distinto de cero a continuación del coeficiente actual distinto de cero se codifica usando dicha tabla cambiada; y

en el que las tablas usadas para codificar los coeficientes distintos de cero del bloque son diferentes de las tablas de código usadas para codificar los valores Run del bloque.

2. El procedimiento de codificación según la reivindicación 1,

3. El procedimiento de codificación según la reivindicación2,

4. El procedimiento de codificación según la reivindicación 1,

en el que el cambio de las tablas se realiza en una dirección.

5. El procedimiento de codificación según la reivindicación 1,

en el que una longitud de código para un coeficiente distinto de cero más pequeño se hace más larga tabla a tabla en orden ascendente de los números asignados respectivamente a cada una de las tablas.

6. Un aparato de codificación (100a, 100b, 100c) para realizar una codificación de longitud variable en coeficientes bidimensionales de un bloque que se obtienen realizando una transformación de frecuencia en los datos de imagen del bloque que posee un número de píxeles predeterminado, comprendiendo el procedimiento:

en el que se determina un umbral entre una pluralidad de umbrales para cada cambio de las tablas.

en el que el cambio de las tablas se realiza en dirección hacia las tablas con mayores umbrales.

una unidad de escaneo (141, 161, 201) accionable para escanear los coeficientes bidimensionales del bloque en un orden predeterminado partiendo desde un componente de baja frecuencia hacia un componente de alta frecuencia a fin de transformar los coeficientes bidimensionales en coeficientes unidimensionales;

una unidad de transformación (141, 161, 201) accionable para transformar los coeficientes unidimensionales del bloque en un valor Run y un valor Level, siendo el valor Level un valor de coeficiente distinto de cero del bloque y siendo el valor Run un número de coeficientes cero anterior al coeficiente distinto de cero del bloque;

una unidad de cálculo accionable para calcular un número total de coeficientes distintos de cero incluidos en el bloque;

una primera unidad de codificación (143, 163, 205) accionable para realizar una codificación de longitud variable en cada uno de los coeficientes distintos de cero del bloque correspondientes a los valores Level consecutivos partiendo desde un componente de alta frecuencia hacia un componente de baja frecuencia, hasta que un número total de coeficientes codificados distintos de cero del bloque alcanza el número total de coeficientes distintos de cero incluidos en el bloque;

una segunda unidad de codificación (143, 163, 205) accionable para realizar una codificación de longitud variable en dicho número total calculado de coeficientes distintos de cero incluidos en el bloque; y

una tercera unidad de codificación (143, 163, 205) accionable para realizar una codificación de longitud variable en cada uno de los valores Run de bloque por separado de la codificación de coeficientes distintos de cero del bloque, usando una pluralidad de tablas de código que se usan para codificar los valores Run;

en el que la primera unidad de codificación (143, 163, 205) es accionable para realizar una codificación de longitud variable en cada uno de los coeficientes distintos de cero del bloque cambiando entre una pluralidad de tablas de código de longitud variable, a cada una de las cuales se asigna un umbral tal que a la primera tabla se asigna el menor umbral, y a cada una de las siguientes tablas se asigna un umbral que es diferente de y mayor que todos los umbrales asignados anteriormente;

en el que la primera unidad de codificación (143, 163, 205) es accionable para comenzar realizando dicha codificación de longitud variable en cada uno de los coeficientes distintos de cero del bloque usando la primera tabla y cuando el valor absoluto de un coeficiente actual distinto de cero que se va a codificar supera el umbral asignado a la tabla usada para codificar el coeficiente actual distinto de cero, para cambiar la tabla de código por la siguiente tabla de código que tiene el umbral mayor asignado, para cambiar el valor umbral usado para comprobar si los valores absolutos de los coeficientes distintos de cero superan el umbral asignado a dicha tabla cambiada, y para codificar el siguiente coeficiente distinto de cero a continuación del coeficiente actual distinto de cero usando dicha tabla cambiada; y

las tablas usadas para codificar los coeficientes distintos de cero del bloque son diferentes de las tablas de código usadas para codificar los valores Run del bloque.


 

Patentes similares o relacionadas:

Sistema y método para codificación y decodificación aritmética, del 29 de Abril de 2020, de NTT DOCOMO, INC.: Método de decodificación aritmética para convertir una secuencia de información compuesta por una secuencia de bits en una secuencia de eventos binarios compuesta […]

Imagen de 'Filtro de desbloqueo condicionado por el brillo de los píxeles'Filtro de desbloqueo condicionado por el brillo de los píxeles, del 25 de Marzo de 2020, de DOLBY INTERNATIONAL AB: Método para desbloquear datos de píxeles procesados con compresión de vídeo digital basado en bloque, incluyendo los pasos: - recibir […]

Método para codificar y descodificar imágenes B en modo directo, del 19 de Febrero de 2020, de Godo Kaisha IP Bridge 1: Un método para generar y descodificar una secuencia de bits de una imagen B objetivo, en donde generar la secuencia de bits de la imagen B objetivo incluye las siguientes […]

Interpolación mejorada de cuadros de compresión de vídeo, del 4 de Diciembre de 2019, de DOLBY LABORATORIES LICENSING CORPORATION: Un método para compresión de imágenes de video usando predicción en modo directo, que incluye: proporcionar una secuencia de cuadros predichos […]

Interpolación mejorada de cuadros de compresión de vídeo, del 4 de Diciembre de 2019, de DOLBY LABORATORIES LICENSING CORPORATION: Un método de compresión de imágenes de video que comprende: proporcionar una secuencia de cuadros referenciables (I, P) y predichos bidireccionales […]

Capa de sectores en códec de vídeo, del 27 de Noviembre de 2019, de Microsoft Technology Licensing, LLC: Un procedimiento de decodificación de vídeo e imágenes, que comprende: decodificar una imagen de un flujo de bits codificado que tiene una jerarquía […]

Transformación solapada condicional, del 20 de Noviembre de 2019, de Microsoft Technology Licensing, LLC: Un método para codificar un flujo de bits de vídeo utilizando una transformación solapada condicional, en donde el método comprende: la señalización de un modo de filtro […]

Técnica para una simulación del grano de película exacta de bits, del 4 de Septiembre de 2019, de InterDigital VC Holdings, Inc: Un procedimiento para simular un grano de película en un bloque de imagen que comprende: calcular el promedio de los valores de luminancia de píxeles dentro del bloque de […]

Utilizamos cookies para mejorar nuestros servicios y mostrarle publicidad relevante. Si continua navegando, consideramos que acepta su uso. Puede obtener más información aquí. .