Método y sistema para codificación aritmética binaria adaptativa basada en contexto.
Un método de codificación aritmética basada en contexto en el que una imagen se divide en una pluralidad de bloques que tienen una pluralidad de píxeles,
teniendo cada píxel un valor de píxel, y la operación de codificación por transformada se realiza en un bloque de píxeles para producir un bloque correspondiente de valores de coeficiente de transformada, y el bloque de valores de coeficiente de transformada es barrido en un orden de barrido dado para producir una matriz barrida de valores de coeficiente que representan diferentes frecuencias espaciales en el bloque, en donde los valores de coeficiente en la matriz barrida se representan mediante una pluralidad de pares de números de run-level, teniendo cada par un valor de LEVEL y un segundo número, siendo el valor de LEVEL y el segundo número asignados a un contexto seleccionado entre una pluralidad de contextos representativos de los pares de números, caracterizado por que el valor de LEVEL de un par de números es asignado a un contexto dependiendo al menos parcialmente de un valor de LEVEL de un par de números en el bloque asignado previamente a un contexto.
Tipo: Patente Internacional (Tratado de Cooperación de Patentes). Resumen de patente/invención. Número de Solicitud: PCT/IB2002/003745.
Solicitante: NOKIA CORPORATION.
Nacionalidad solicitante: Finlandia.
Dirección: KEILALAHDENTIE 4 02150 ESPOO FINLANDIA.
Inventor/es: KARCZEWICZ, MARTA, KURCEREN,RAGIP.
Fecha de Publicación: .
Clasificación Internacional de Patentes:
- H04N7/26
PDF original: ES-2442851_T3.pdf
Fragmento de la descripción:
Método y sistema para codificación aritmética binaria adaptativa basada en contexto.
Campo de la invención
La presente invención se refiere, en general, a la compresión de imágenes fijas y secuencias de video y, más particularmente, a codificación aritmética binaria adaptativa basada en contexto; y decodificación.
Antecedentes de la invención Una imagen digital en forma no comprimida comprende una matriz de píxeles de imagen o elementos de imagen. Por ejemplo, en un formato de imagen digital usado habitualmente, conocido como el Formato de Intercambio Común de un Cuarto (QCIF) , una imagen, o fotograma, comprende 25.344 píxeles dispuestos en una matriz de 176 x 144 píxeles. Cada píxel, a su vez, está representado por cierto número de bits, que portan información sobre el brillo (luminancia) y/o el color (crominancia) del píxel. Existen diferentes esquemas para representar la luminancia y/o crominancia de píxeles en una imagen digital. Habitualmente, se usa un llamado modelo de color YUV. El componente de luminancia, o Y, representa la luminancia del píxel, mientras que el color del píxel está representado por dos componentes de crominancia o color diferentes, marcados como U y V. Otros modelos de color, tales como los modelos de color RGB (del inglés Red, Green, Blue, es decir, Rojo, Verde, Azul) , que se basan en componentes que representan los tres colores primarios de la luz, también se usan habitualmente. Sin embargo, los modelos de color basados en una representación de luminancia/crominancia proporcionan ventajas en comparación con modelos de color basados en los colores primarios. Estos surgen de la naturaleza del sistema visual humano, que es más sensible a las variaciones de intensidad de lo que lo es a las variaciones de color. Los modelos de color YUV normalmente explotan esta propiedad usando una resolución espacial inferior para los componentes de crominancia (U, V) que para el componente de luminancia (Y) . De esta manera, la cantidad de información necesaria para representar la información de color en una imagen puede reducirse son una reducción perceptible de la calidad de la imagen percibida.
La resolución espacial inferior de los componentes de crominancia se consigue habitualmente mediante submuestreo. Normalmente, un bloque de 16 x 16 píxeles de la imagen se representa mediante cuatro bloques de 8 x 8 píxeles que comprenden información de luminancia y los componentes de crominancia correspondientes están, cada uno, representados mediante un bloque de 8 x 8 que representa un área de la imagen equivalente a la de los 16 x 16 píxeles en el componente de luminancia. Los componentes de crominancia son, por lo tanto, submuestreados espacialmente por un factor de 2 en las direcciones x e y. El conjunto resultante de cuatro bloques de luminancia de 8 x 8 píxeles y dos bloques de crominancia de 8 x 8 píxeles correspondientes se denomina habitualmente como un macrobloque YUV, o macrobloque, para abreviar. Una imagen de QCIF comprende 11 x 9 de dichos macrobloques. Si los bloques de luminancia y los bloques de crominancia se representan con resolución de 8 bits (es decir mediante números en el intervalo de 0 a 255) , el número total de bits requeridos para representar la información de luminancia y crominancia asociada con cada macrobloque es de 6 x (8 x 8 x 8) = 3072 bits. Por lo tanto, el número de bits necesarios para representar una imagen en formato QCIF es 99 x 3072 = 304.128 bits.
Debe apreciarse que, incluso en la situación descrita anteriormente, donde ambos componentes de crominancia de una imagen digital en color son submuestreados mediante un factor de dos, una imagen no comprimida de solamente tamaño moderado (por ejemplo 176 x 144 píxeles) requiere un gran número de bits para su representación. Esto significa que la cantidad de memoria requerida para almacenar imágenes digitales en forma no comprimida es excesiva. Además, si hay que transferir imágenes fijas, por ejemplo a través de una red de comunicación de datos que tiene un ancho de banda disponible moderado o bajo, los tiempos de transmisión pueden volverse prolongados, o la red puede volverse congestionada. Los requisitos de ancho de banda son aún más severos si se desea transmitir una serie de imágenes como una secuencia de video digital en tiempo real. Por ejemplo, transmisión de una secuencia de video digital que comprende una serie de imágenes en formato QCIF no comprimido, representada usando un modelo de color YUV, a una velocidad de 30 fotogramas por segundo, requieres más de 9 Mbits/s (millones de bits por segundo) . Dicha elevada velocidad de transferencia de datos es generalmente impráctica para su uso en aplicaciones de grabación, transmisión y visualización en video debido a las muy grandes capacidad de almacenamiento, capacidad del canal de transmisión y rendimiento de hardware requeridas. Si una secuencia de video va a ser transmitida en tiempo real por una red de línea fija tal como una ISDN (Red Digital de Servicios Integrados) o una PSTN (Red Telefónica de Servicio Público) , el ancho de banda de transmisión de datos disponible es normalmente del orden de 64 kbits/s. En videotelefonía móvil, donde la transmisión tiene lugar al menos en parte a través de un enlace de radiocomunicaciones, el ancho de banda disponible puede ser de hasta 20 kbits/s. Esto significa que debe conseguirse una reducción significativa de la cantidad de información usada para representar datos de video, para permitir la transmisión de imágenes digitales o secuencias de video a través de redes de comunicación de ancho de banda bajo. Es deseable, sin embargo, que esta reducción deba conseguirse sin degradar de forma significativa la calidad de las imágenes/la secuencia de video.
En los últimos años, una cantidad considerable de trabajo de investigación ha estado orientado a reducir la cantidad de datos requeridos para representar imágenes digitales y secuencias de video, dando como resultado el desarrollo de numerosos esquemas diferentes y estándares internacionales para comprimir imágenes fijas digitales y video digital. El enfoque básico para la compresión de imágenes usado en casi todos los codificadores de imagen fija y de video que existen actualmente implica codificación por transformada a base de bloques. Normalmente, la codificación por transformada traduce los datos de imagen de una representación que comprende valores de píxel en una forma que comprende un conjunto de valores de coeficiente, cada uno de los cuales es un factor de ponderación (multiplicador) para una función base de la transformada en cuestión. Puede mostrarse que existe un grado considerable de redundancia espacial dentro de una imagen digital típica. En términos prácticos, esto significa que, en general, el valor de cualquier píxel dentro de una imagen es sustancialmente el mismo que el valor de otros píxeles en sus proximidades inmediatas; es decir, existe un grado de correlación significativo entre valores de píxel. Se sabe además que, cuando se realizan ciertas transformaciones matemáticas, tales como la Transformada Discreta del Coseno bidimensional (DCT) , en datos de imagen, esta redundancia espacial se reduce de forma significativa, produciendo de este modo una representación más compacta de los datos de la imagen.
Codificación por transformada a base de bloques tal como se usa en codificación de imagen fija en JPEG
En la compresión de una imagen fija, tal como la realizada de acuerdo con el modo de referencia del ampliamente usado estándar JPEG, una imagen a codificar se divide en primer lugar en una matriz de bloques cuadrados no solapantes, comprendiendo cada bloque, por ejemplo, una matriz de 8 x 8 píxeles de la imagen. En el caso de la referencia de JPEG, una Transformada Discreta del Coseno bidimensional (DCT) se aplica a continuación independientemente a cada uno de los bloques de la imagen. Esto tiene el efecto de convertir los datos de la imagen del dominio del valor de píxel al dominio de la frecuencia espacial y de producir un conjunto correspondiente de valores de coeficiente, cada uno de los cuales es un factor de ponderación para una función base de la DCT bidimensional. Los valores de coeficiente producidos de este modo se cuantizan y a continuación se codifican de manera sin pérdidas usando codificación por entropía para reducir adicionalmente la cantidad de datos (es decir el número de bits) requerida para su representación. De acuerdo con la referencia de JPEG, el codificador por entropía emplea solamente codificación de Huffman para producir un flujo de bits comprimido, aunque en otros modos, como alternativa, puede usarse codificación aritmética. Finalmente, datos que describen imagen y parámetros de codificación (por ejemplo tipo de compresión, cuantización... [Seguir leyendo]
Reivindicaciones:
1. Un método de codificación aritmética basada en contexto en el que una imagen se divide en una pluralidad de bloques que tienen una pluralidad de píxeles, teniendo cada píxel un valor de píxel, y la operación de codificación por transformada se realiza en un bloque de píxeles para producir un bloque correspondiente de valores de coeficiente de transformada, y el bloque de valores de coeficiente de transformada es barrido en un orden de barrido dado para producir una matriz barrida de valores de coeficiente que representan diferentes frecuencias espaciales en el bloque, en donde los valores de coeficiente en la matriz barrida se representan mediante una pluralidad de pares de números de run-level, teniendo cada par un valor de LEVEL y un segundo número, siendo el valor de LEVEL y el segundo número asignados a un contexto seleccionado entre una pluralidad de contextos representativos de los pares de números, caracterizado por que el valor de LEVEL de un par de números es asignado a un contexto dependiendo al menos parcialmente de un valor de LEVEL de un par de números en el bloque asignado previamente a un contexto.
2. Un método de decodificación aritmética basada en contexto, comprendiendo el método decodificar una imagen que ha sido dividida en una pluralidad de bloques que tienen una pluralidad de píxeles, teniendo cada píxel un valor de píxel, en donde una operación de codificación por transformada ha sido realizada en un bloque de píxeles para producir un bloque correspondiente de valores de coeficiente de transformada, y el bloque de valores de coeficiente de transformada ha sido barrido en un orden de barrido dado para producir una matriz barrida de valores de coeficiente que representan diferentes frecuencias espaciales en el bloque, en donde los valores de coeficiente en la matriz barrida se representan mediante una pluralidad de pares de números de run-level, teniendo cada par un valor de LEVEL y un segundo número, comprendiendo el método asignar el valor de LEVEL y el segundo número de un par de números a un contexto seleccionado entre una pluralidad de contextos representativos de los pares de números, caracterizado por asignar el valor de LEVEL de un par de números a un contexto dependiendo al menos parcialmente de un valor de LEVEL de un par de números en el bloque asignado previamente a un contexto.
3. Un método de acuerdo con la reivindicación 1 o 2, en el que los valores de LEVEL de dichos pares de números se asocian a un conjunto de bins, teniendo cada uno de dicho conjunto de bins un número de bin asociado y siendo capaces de tomar uno de un primer valor o un segundo valor.
4. Un método de acuerdo con la reivindicación 1 o 2, en el que los segundos números de dichos pares de números se asocian a un conjunto de bins, teniendo cada uno de dicho conjunto de bins un número de bin asociado y siendo capaces de tomar uno de un primer valor o un segundo valor.
5. Un método de acuerdo con la reivindicación 3 o 4, en el que la asociación de un número a uno dado de dicho conjunto de bins se indica asignando el bin al primer valor.
6. Un método de acuerdo con la reivindicación 3, 4 o 5, en el que el primer valor es 1 y el segundo valor es 0.
7. Un método de acuerdo con cualquiera de las reivindicaciones 3 a 6, en el que el valor de LEVEL de un par de números es asignado a un contexto dependiendo al menos parcialmente del bin al que se asocia el valor de LEVEL del par de números.
8. Un método de acuerdo con cualquiera de las reivindicaciones 3 a 7, en el que el segundo número de un par de números es asignado a un contexto dependiendo al menos parcialmente del bin al que se asocia el segundo número del par de números.
9. Un método de acuerdo con cualquiera de las reivindicaciones 1 a 8, en el que dicho valor de LEVEL es indicativo de un valor de coeficiente distinto de cero y dicho segundo número es indicativo de un número de valores de coeficiente iguales a cero consecutivos que preceden a dicho valor de coeficiente distinto de cero.
10. Un método de acuerdo con la reivindicación 1 o 2, en el que los valores de LEVEL de dichos pares de números se asocian a un conjunto de bins, teniendo cada uno de dichos bins un número de bin asociado, en donde el valor de LEVEL de un par de números particular es asignado a un contexto de acuerdo con la siguiente lógica:
if (bin_nr > MAX_BIN_LEVEL) bin_nr = MAX_BIN_LEVEL; end if (prev_level > MAX_LEVEL) prev_level = MAX_LEVEL; end context = (bin_nr-1) *MAX_LEVEL + prev_level
donde bin_nr es el número de bin del bin al que se le asocia el valor de LEVEL de dicho par de números particular, MAX_BIN_LEVEL determina el bin al que se asocian valores LEVEL con valores mayores de MAX_BIN_LEVEL, prev_level es el valor del valor de LEVEL de un par de números inmediatamente precedente en dicho orden de barrido, MAX_LEVEL define un valor máximo para prev_level, al que se asocian todos los valores de prev_level mayores de MAX_LEVEL, y context es el contexto asignado al valor de LEVEL de dicho par de números particular.
11. Un método de acuerdo con cualquier reivindicación anterior, en el que el segundo número del par de números es asignado a un contexto dependiendo al menos parcialmente del valor de LEVEL del par de números.
12. Uso de un método de acuerdo con la reivindicación 1 o una cualquiera de las reivindicaciones 3 a 11 cuando depende de la reivindicación 1, en una aplicación de codificación de imágenes o codificación de video.
13. Uso de un método de acuerdo con la reivindicación 2 o una cualquiera de las reivindicaciones 3 a 11 cuando depende de la reivindicación 2, en aplicación de decodificación de imágenes o decodificación de video.
14. Aparato codificador aritmético basado en contexto configurado para dividir una imagen en una pluralidad de bloques que tienen una pluralidad de píxeles, teniendo cada píxel un valor de píxel, y la operación de codificación por transformada se realiza en un bloque de píxeles para producir un bloque correspondiente de valores de coeficiente de transformada, y el bloque de valores de coeficiente de transformada es barrido en un orden de barrido dado para producir una matriz barrida de valores de coeficiente que representan diferentes frecuencias espaciales en el bloque, en donde los valores de coeficiente en la matriz barrida se representan mediante una pluralidad de pares de números de run-level, teniendo cada par un valor de LEVEL y un segundo número, estando el aparato codificador aritmético basado en contexto dispuesto para asignar el valor de LEVEL de un par de números a un contexto seleccionado entre una pluralidad de contextos representativos de los pares de valores de LEVEL, caracterizado por que el aparato codificador está configurado además para asignar el valor de LEVEL de un par de números a un contexto dependiendo al menos parcialmente de un valor de LEVEL de un par de números en el bloque asignado previamente a un contexto.
15. Aparato decodificador aritmético basado en contexto configurado para decodificar una imagen que ha sido dividida en una pluralidad de bloques que tienen una pluralidad de píxeles, teniendo cada píxel un valor de píxel, y ha sido sometida a una operación de codificación por transformada realizada en un bloque de píxeles para producir un bloque correspondiente de valores de coeficiente de transformada, y el bloque de valores de coeficiente de transformada ha sido barrido en un orden de barrido dado para producir una matriz barrida de valores de coeficiente que representan diferentes frecuencias espaciales en el bloque, en donde los valores de coeficiente en la matriz barrida se representan mediante una pluralidad de pares de números de run-level, teniendo cada par un valor de LEVEL y un segundo número, estando el aparato decodificador aritmético basado en contexto dispuesto para asignar el valor de LEVEL de un par de números a un contexto seleccionado entre una pluralidad de contextos representativos de los pares de números, caracterizado por que el aparato decodificador está configurado además para asignar el valor de LEVEL de un par de números a un contexto dependiendo al menos parcialmente de un valor de LEVEL de un par de números en el bloque asignado previamente a un contexto.
16. Aparato de acuerdo con la reivindicación 14 o 15, en donde éste está dispuesto para asociar los valores de LEVEL de dichos pares de números a un conjunto de bins, teniendo cada uno de dicho conjunto de bins un número de bin asociado y siendo capaces de tomar uno de un primer valor o un segundo valor.
17. Aparato de acuerdo con la reivindicación 14 o 15, en donde éste está dispuesto para asociar los segundos números de dichos pares de números a un conjunto de bins, teniendo cada uno de dicho conjunto de bins un número de bin asociado y siendo capaces de tomar uno de un primer valor o un segundo valor.
18. Aparato de acuerdo con la reivindicación 16 o 17, en donde éste está dispuesto para asociar un número a uno dado de dicho conjunto de bins asignando el bin al primer valor.
19. Aparato de acuerdo con la reivindicación 16, 17 o 18, en el que el primer valor es 1 y el segundo valor es 0.
20. Aparato de acuerdo con cualquiera de las reivindicaciones 16 a 19, en donde éste está dispuesto para asignar el valor de LEVEL de un par de números a un contexto dependiendo al menos parcialmente del bin al que se asociar el valor de LEVEL del par de números.
21. Aparato de acuerdo con cualquiera de las reivindicaciones 16 a 20, en donde éste está dispuesto para asignar el segundo número de un par de números a un contexto dependiendo al menos parcialmente del bin al que se asocia el segundo número del par de números.
22. Aparato de acuerdo con cualquiera de las reivindicaciones 14 a 21, en el que dicho valor de LEVEL es indicativo de un valor de coeficiente distinto de cero y dicho segundo número es indicativo de un número de valores de coeficiente iguales a cero consecutivos que preceden a dicho valor de coeficiente distinto de cero.
23. Aparato de acuerdo con la reivindicación 14 o 15, en donde el aparato está dispuesto para asociar los valores de LEVEL de dichos pares de números a un conjunto de bins, teniendo cada uno de dichos bins un número de bin asociado, en donde el aparato está dispuesto además para asignar el valor de LEVEL de un par de números
particular a un contexto de acuerdo con la siguiente lógica:
if (bin_nr > MAX_BIN_LEVEL) bin_nr = MAX_BIN_LEVEL;
end if (prev_level > MAX_LEVEL) prev_level = MAX_LEVEL; end context = (bin_nr-1) *MAX_LEVEL + prev_level
donde bin_nr es el número bin del bin al que se le asocia el valor de LEVEL de dicho par de números particular, MAX_BIN_LEVEL determina el bin al que se asocian valores de LEVEL con valores mayores de MAX_BIN_LEVEL, prev_level es el valor del valor de LEVEL de un par de números inmediatamente precedente en dicho orden de barrido, MAX_LEVEL define un valor máximo para prev_level, al que se asocian todos los valores de prev_level
mayores de MAX_LEVEL, y context es el contexto asignado al valor de LEVEL de dicho par de números particular.
24. Aparato de acuerdo con cualquiera de las reivindicaciones 14-23, en el que el segundo número del par de números es asignado a un contexto dependiendo al menos parcialmente del valor de LEVEL del par de números.
25. Un programa informático que comprende un código legible por una máquina para implementar el método de codificación aritmética basada en contexto de acuerdo con la reivindicación 1.
ººººººººººººººº
Actualizar la estimación de probabilidad
Codificador aritmético adaptativo Actualizar la estimación de probabilidad
Codificador aritmético adaptativo
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 […]
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 […]