ES2784761T3 - Aparato de codificación de imagen, procedimiento de codificación de imagen y programa, y aparato de decodificación de imagen, procedimiento de decodificación de imagen y programa - Google Patents

Aparato de codificación de imagen, procedimiento de codificación de imagen y programa, y aparato de decodificación de imagen, procedimiento de decodificación de imagen y programa Download PDF

Info

Publication number
ES2784761T3
ES2784761T3 ES12734504T ES12734504T ES2784761T3 ES 2784761 T3 ES2784761 T3 ES 2784761T3 ES 12734504 T ES12734504 T ES 12734504T ES 12734504 T ES12734504 T ES 12734504T ES 2784761 T3 ES2784761 T3 ES 2784761T3
Authority
ES
Spain
Prior art keywords
block
quantization parameter
cpu
blocks
image quality
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES12734504T
Other languages
English (en)
Inventor
Masaaki Kobayashi
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.)
Canon Inc
Original Assignee
Canon 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 Canon Inc filed Critical Canon Inc
Application granted granted Critical
Publication of ES2784761T3 publication Critical patent/ES2784761T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N11/00Colour television systems
    • H04N11/02Colour television systems with bandwidth reduction
    • 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
    • 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/124Quantisation
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • 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/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/196Methods 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 being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • 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
    • 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
    • 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/96Tree coding, e.g. quad-tree coding
    • 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]

Abstract

Aparato de codificación de imagen, configurado para dividir una imagen en bloques y codificar la imagen en unidades de bloques, comprendiendo el aparato de codificación de imagen: un medio de obtención (901), configurado para obtener información sobre un tamaño de bloque de un bloque a codificar y configurado para obtener información sobre un tamaño de bloque mínimo utilizado para controlar un parámetro de cuantificación; un medio de codificación de información (901), configurado para codificar la información sobre el tamaño de bloque mínimo utilizado para controlar un parámetro de cuantificación; un medio de verificación (901), configurado para verificar si el bloque a codificar es un bloque que está dividido y, para los bloques que no están divididos, verificar si el tamaño del bloque a codificar es mayor o igual que el tamaño de bloque mínimo utilizado para controlar un parámetro de cuantificación; y un medio de codificación (901); en el que, si el tamaño de bloque del bloque a codificar es mayor o igual que el tamaño de bloque mínimo utilizado para controlar un parámetro de cuantificación (S105): el medio de obtención (901) está configurado para obtener un primer parámetro de cuantificación para el bloque a codificar (S107) y el medio de codificación de información (901) está configurado para codificar un primer valor de diferencia entre el primer parámetro de cuantificación y un parámetro de cuantificación utilizado para codificar un bloque anterior (S108); y el medio de codificación (901) está configurado para codificar el bloque a codificar utilizando el primer parámetro de cuantificación; de otra manera: el medio de obtención está configurado para obtener un segundo parámetro de cuantificación para el bloque a codificar (S107) y el medio de codificación de información está configurado para codificar un segundo valor de diferencia entre el segundo parámetro de cuantificación y un parámetro de cuantificación utilizado para codificar un bloque anterior (S108) en el caso de que: el segundo valor de diferencia no haya sido codificado previamente para un bloque de un grupo de bloques que se obtiene por división de un bloque que tiene un tamaño de bloque igual al tamaño de bloque mínimo utilizado para controlar un parámetro de cuantificación, y comprende el bloque a codificar (S302); y el bloque a codificar es el primer bloque en el grupo de bloques, en un orden de codificación, que incluye un coeficiente de transformación cuantificado que no es igual a cero; y el medio de codificación (901) está configurado, además, para codificar el bloque a codificar del grupo de bloques utilizando el segundo parámetro de cuantificación, y para codificar un bloque posterior del grupo de bloques, en el orden de codificación, utilizando el segundo parámetro de cuantificación en el caso de que: el siguiente bloque del grupo de bloques incluye un coeficiente de transformación cuantificado que no es igual a cero.

Description

DESCRIPCIÓN
Aparato de codificación de imagen, procedimiento de codificación de imagen y programa, y aparato de decodificación de imagen, procedimiento de decodificación de imagen y programa
Sector técnico
La presente invención hace referencia a un aparato de codificación de imagen, un procedimiento de codificación de imagen y un programa, y a un aparato de decodificación de imagen, un procedimiento de decodificación de imagen y un programa. En concreto, la presente invención hace referencia a un procedimiento de codificación de parámetros de calidad de la imagen y a un procedimiento de decodificación perteneciente al cálculo de un parámetro de calidad de la imagen y de introducción de código en la codificación de imagen.
Estado de la técnica anterior
H.264/Codificación de video avanzada (AVC, Advanced Video Coding) del Grupo de expertos en imagen en movimiento (MPEG)-4, de aquí en adelante conocido como H.264, se conoce como un procedimiento de grabación por compresión de una imagen en movimiento. H.264 es ampliamente utilizado en la difusión digital terrestre de un segmento y otras aplicaciones. H.264 está caracterizado por proporcionar una pluralidad de capacidades de intrapredicción, utilizando transformaciones de enteros en unidades de 4 x 4 píxeles, además de esquemas de codificación convencionales (ver ISO/IEC 14496-10: 2004 Tecnología de la información - Codificación de objetos audiovisuales - Parte 10: Codificación de video avanzada, codificación de video avanzada ITU-T H.264 para servicios audiovisuales genéricos).
Los esquemas de codificación que utilizan una transformación ortogonal y cuantificación, tipificados mediante MPEG-2 y H.264, llevan a cabo una transformación ortogonal y una cuantificación en imágenes de bloques predeterminados para generar datos de coeficiente de cuantificación. Para el control de la calidad de la imagen, la cuantificación se lleva a cabo utilizando un parámetro de control de la calidad de la imagen llamado parámetro de cuantificación. Específicamente, la cuantificación utilizando un valor pequeño del parámetro de cuantificación produce una calidad de la imagen mejorada, pero con una gran cantidad de códigos. La cuantificación con un valor grande del parámetro de cuantificación produce una baja calidad de la imagen con una cantidad reducida de códigos. Se seleccionan valores óptimos de los parámetros de cuantificación para la codificación según una cantidad objetivo de códigos. Dicho control se conoce como control de velocidad. Se han explicado diversos procedimientos de control de velocidad, incluido TM5. Después de la cuantificación, los datos del coeficiente de cuantificación son sometidos a codificación de longitud variable para generar datos de coeficientes codificados.
Los parámetros de cuantificación también están codificados para generar código de parámetro de cuantificación. Por ejemplo, H.264 utiliza un valor de diferencia entre un parámetro de cuantificación que se utiliza para cuantificar un bloque que precede a un bloque objetivo y un parámetro de cuantificación que se utiliza para cuantificar el bloque objetivo. El valor de diferencia se conoce como delta del parámetro de cuantificación (QP_DELTA). El QP_DELTA calculado se codifica en el código de QP_DELTA mediante codificación de Golomb o codificación aritmética. Por ejemplo, el códec de código de QP_DELTA mediante codificación de Golomb produce un bit de código incluso si el valor de diferencia es 0. Los datos codificados del coeficiente y el código del parámetro de cuantificación generado de este modo son transmitidos a un decodificador. El decodificador decodifica los datos codificados del coeficiente y el código del parámetro de cuantificación para generar datos de coeficiente de cuantificación y parámetros de cuantificación. A continuación, el decodificador lleva a cabo una cuantificación inversa y una transformación ortogonal inversa en los datos del coeficiente de cuantificación utilizando los parámetros de cuantificación, generando de este modo una imagen decodificada.
Una sola unidad de procesamiento en MPEG-2 y H.264 se denomina macrobloque. Los macrobloques son bloques de retícula de 16 x 16 píxeles en los que una imagen está dividida en un patrón de retícula. En términos de píxeles, los bloques que se transformarán ortogonalmente en MPEG-2 tienen un tamaño de 8 x 8 píxeles, y en H.264, un tamaño de 8 x 8 píxeles o de 4 x 4 píxeles. Es decir, un solo macrobloque incluye una pluralidad de bloques de transformación ortogonal. MPEG-2 y H. 264 pueden controlar los parámetros de cuantificación (control de velocidad) en unidades de macrobloques. Los bloques de transformación ortogonal incluidos en el mismo macro bloque se cuantifican con el mismo parámetro de cuantificación. Según una tecnología mejorada de H.264, una imagen se divide en un patrón de retícula en bloques de retícula llamados bloques de árbol de codificación más grandes (LCTB, Largest Coding Tree Blocks). Un LCTb tiene un tamaño de 64 x 64 píxeles. Los LCTB se dividen en bloques de tamaños más pequeños llamados bloques de árbol de codificación (CTB, Coding Tree Block) mediante la utilización de una estructura de árbol cuaternario de región. Para buscar o introducir/exportar datos estructurados en árbol, se debe especificar el orden de escaneo. Un CTB incluye bloques de transformación ortogonal llamados unidades de transformación (TU, Transform Unit). Las TU también se pueden dividir en tamaños más pequeños mediante la utilización de una estructura de árbol cuaternario de región. Cada unidad tiene un indicador de división. Un bloque que tiene un indicador de división de verdadero está estructurado para incluir cuatro bloques de división que tienen un tamaño de 1/2 en altura y anchura. Un bloque que tiene un indicador de división de falso no incluye ningún bloque de división y en su lugar contiene datos reales en el bloque. En otras palabras, solo las TU no divididas contienen datos de coeficientes en bloques de imagen. Un LCTB (bloque de retícula) incluye una pluralidad de bloques estructurados jerárquicamente de diferentes tamaños de transformaciones ortogonales. El dividir o no un bloque se puede determinar por diversos procedimientos. Uno de los procedimientos de determinación se explica en la Solicitud de Patente japonesa abierta a inspección pública N° 2005-191706, que incluye la utilización de multiplicadores de Lagrange para calcular costes de bloques y seleccionar un procedimiento de división de bloques de menor coste.
Supóngase que un procedimiento de codificación de imagen incluye codificar una imagen en unidades de bloques de retícula en los que la imagen se divide en un patrón de retícula. Si los bloques de retícula son de gran tamaño y el control de la calidad de la imagen se lleva a cabo en unidades de bloques de retícula, los bordes entre bloques de diferentes calidades de imagen pueden resultar apreciables.
Los parámetros de calidad de la imagen se codifican y transmiten independientemente de si el parámetro de calidad de la imagen cambia. Si los bloques de retícula se subdividen en unidades más pequeñas para el control de la calidad de la imagen, existe un problema de sobrecarga causado por el código del parámetro de calidad de la imagen. La Literatura no de patente “Video coding technology proposal by Qualcomm Inc.”, N° JCTVC-A121 contiene muchas herramientas que han sido adoptadas en el software JMKTA, a saber, tamaños de bloque mayores de 16x16, transformación dependiente del modo (MDDT, Mode Dependent Transform) para intracodificación, filtrado de alta precisión de luma, filtros de interpolación de conmutación de paso único con compensaciones (SIFO de paso único), filtrado de bucle adaptativo basado en árbol cuaternario (QALF, Quadtree based Adaptive Loop Filtering) y aumento de la profundidad de bit interno (IBDI, Internal Bit Depth Increase). La Patente WO 2012/062161 da a conocer el procesamiento de parámetros de cuantificación adaptativa en el que un tamaño mínimo de CU de QP para la incorporación o la obtención de una delta QP se indica selectivamente en el nivel de fragmento o en el nivel de secuencia/imagen.
[Características de la invención]
La presente invención está dirigida a un aparato de codificación de imagen que permite el control de la calidad de la imagen en unidades de bloques apropiados y puede hacer que los bordes de bloque sean más pequeños para generar una imagen en la que los bordes son menos apreciables. La invención se expone en el conjunto de reivindicaciones adjunto; otros aspectos y realizaciones en la descripción se presentan solo como ejemplos ilustrativos.
Según un aspecto de la presente invención, un aparato de codificación de imagen configurado para dividir una imagen en bloques de división de una pluralidad de tamaños y para llevar a cabo codificaciones en la imagen mientras se controla la calidad de la imagen según un valor de parámetro en unidades de bloques de división, incluye una unidad configurada para obtener un tamaño de bloque de un bloque objetivo a codificar, una unidad configurada para obtener un tamaño de bloque mínimo utilizado para controlar el valor del parámetro, una unidad configurada para obtener un estado de división del bloque objetivo, una unidad configurada para obtener el valor del parámetro, una unidad configurada para determinar si el bloque objetivo se divide según el estado de división del bloque objetivo, una unidad configurada para determinar si el tamaño de bloque del bloque objetivo es mayor o igual que el tamaño de bloque mínimo, una unidad configurada para determinar si el tamaño del bloque objetivo es igual al tamaño de bloque mínimo y una unidad configurada para codificar el valor del parámetro obtenido.
Según una realización a modo de ejemplo de la presente invención, es posible controlar la calidad de la imagen en unidades de bloques apropiados y hacer que los bordes de los bloques sean más pequeños para generar una imagen en la que los bordes son menos apreciables. Puesto que no es necesario introducir el código del parámetro de control de la calidad de la imagen en todos los bloques transformados ortogonalmente, la cantidad de código del parámetro de cuantificación no aumentará más de lo necesario.
Otras características y aspectos de la presente invención resultarán evidentes a partir de la siguiente descripción detallada de realizaciones a modo de ejemplo, haciendo referencia a los dibujos adjuntos.
[Breve descripción de los dibujos]
Los dibujos adjuntos, que están incorporados en una parte de la memoria descriptiva y constituyen la misma, muestran realizaciones a modo de ejemplo, características y aspectos de la invención y, junto con la descripción, sirven para explicar los principios de la invención.
[figura 1]
La figura 1 es un diagrama de flujo que muestra un procedimiento de codificación de un parámetro de calidad de la imagen, según una primera realización a modo de ejemplo de la presente invención.
[figura 2]
La figura 2 es un diagrama de flujo que muestra un procedimiento de decodificación de un parámetro de calidad de la imagen, según una segunda realización a modo de ejemplo de la presente invención.
[figura 3]
La figura 3 es un diagrama de flujo que muestra un procedimiento de codificación de un parámetro de calidad de la imagen, según una tercera realización a modo de ejemplo de la presente invención.
[figura 4]
La figura 4 es un diagrama de flujo que muestra un procedimiento de decodificación de un parámetro de calidad de la imagen, según una cuarta realización a modo de ejemplo de la presente invención.
[figura 5] La figura 5 es un diagrama de flujo que muestra un procedimiento de codificación de un parámetro de calidad de la imagen, según una quinta realización a modo de ejemplo de la presente invención.
[figura 6] La figura 6 es un diagrama de flujo que muestra un procedimiento de decodificación de un parámetro de calidad de la imagen, según una sexta realización a modo de ejemplo de la presente invención.
[figura 7] La figura 7 es un diagrama que muestra un ejemplo de un bloque de retícula dividido.
[figura 8A] La figura 8A es un diagrama que muestra un ejemplo de división de un bloque de retícula y un indicador de división.
[figura 8B] La figura 8B es un diagrama que muestra un ejemplo de división de un bloque de retícula e indicadores de división.
[figura 8C] La figura 8C es un diagrama que muestra un ejemplo de división de un bloque de retícula e indicadores de división.
[figura 8D] La figura 8D es un diagrama que muestra un ejemplo de división de un bloque de retícula e indicadores de división.
[figura 9] La figura 9 es un diagrama que muestra un ejemplo de una configuración de hardware para llevar a cabo un procedimiento de codificación y un procedimiento de decodificación, según una realización a modo de ejemplo de la presente invención.
[figura 10] La figura 10 es un diagrama que muestra un ejemplo de una configuración de hardware para llevar a cabo un procedimiento de codificación, según una realización a modo de ejemplo de la presente invención.
[figura 11] La figura 11 es un diagrama que muestra un ejemplo de una configuración de hardware para llevar a cabo un procedimiento de decodificación, según una realización a modo de ejemplo de la presente invención.
[figura 12A] La figura 12A es un diagrama que muestra un ejemplo de control de la calidad de la imagen en bloques de división.
[figura 12B] La figura 12B es un diagrama que muestra un ejemplo de control de la calidad de la imagen en bloques de división.
[figura 12C] La figura 12C es un diagrama que muestra un ejemplo de control de la calidad de la imagen en bloques de división.
[figura 13] La figura 13 es un diagrama de flujo que muestra un procedimiento de procesamiento de codificación en un fotograma.
[figura 14] La figura 14 es un diagrama de flujo que muestra un procedimiento de procesamiento de decodificación en un fotograma.
[figura 15] La figura 15 es un diagrama que muestra la estructura de datos de un fotograma codificado.
[figura 16] La figura 16 es un diagrama que muestra la estructura de datos de datos codificados en un bloque de retícula.
[figura 17] La figura 17 es un diagrama de flujo que muestra los detalles de un procedimiento de codificación de bloques de división.
[figura 18] La figura 18 es un diagrama de flujo que muestra los detalles de un procedimiento de decodificación de bloques de división.
[figura 19] La figura 19 es un diagrama de flujo que muestra un procedimiento de cálculo de un parámetro de calidad de la imagen, según la primera realización a modo de ejemplo.
[figura 20] La figura 20 es un diagrama que muestra bloques de división que van acompañados por parámetros de cuantificación.
[figura 21A] La figura 21A es un diagrama que muestra una relación entre un perfil, un nivel y un tamaño de bloque mínimo de control de la calidad de la imagen.
[figura 21B] La figura 21B es un diagrama que muestra una relación entre un perfil, un nivel y un tamaño de bloque mínimo de control de la calidad de la imagen.
[figura 22] La figura 22 es un diagrama de flujo que muestra un procedimiento para calcular un tamaño de bloque mínimo de control de la calidad de la imagen.
[figura 23A] La figura 23A es un diagrama que muestra una estructura de datos codificados de una secuencia.
[figura 23B] La figura 23B es un diagrama que muestra una estructura de datos codificados de una secuencia.
[figura 24] La figura 24 es un diagrama de flujo que muestra un procedimiento de codificación de imagen, según una séptima realización a modo de ejemplo de la presente invención.
[figura 25] La figura 25 es un diagrama de flujo que muestra un procedimiento de decodificación de imagen, según una octava realización a modo de ejemplo de la presente invención.
Descripción de las realizaciones
A continuación, se describirán con detalle diversas realizaciones a modo de ejemplo, características y aspectos de la invención, haciendo referencia a los dibujos.
Un procedimiento para codificar bloques de división, según una primera realización a modo de ejemplo de la presente invención se describirá haciendo referencia a las figuras 1,9, 13, 17 y 19.
La figura 9 muestra una configuración para ejecutar un programa de codificación que incluye el procedimiento de codificación según la presente realización a modo de ejemplo. El programa de codificación se graba en un dispositivo de disco duro (de aquí en adelante, abreviado como HDD, Hard Disk Device) 903. El programa de codificación se carga en una memoria de acceso aleatorio (RAM, Random Access Memory) 902 tras la activación. Una unidad central de procesamiento (CPU, Central Processing Unit) 901 lleva a cabo las etapas que se describen a continuación para llevar a cabo el procesamiento de codificación de imagen. En la presente realización a modo de ejemplo, los datos de imagen de entrada se almacenan y se leen desde el HDD 903. Los datos de salida se graban en el HDD 903.
Se describirá una operación de codificación de la configuración anterior. La figura 13 es un diagrama de flujo que muestra un procedimiento para codificar un fotograma completo. La presente realización a modo de ejemplo trata un caso en el que las pantallas se dividen cada una en una estructura de retícula en bloques de retícula de 64 x 64 píxeles y son procesados secuencialmente en unidades de bloques de retícula. Los bloques de retícula en una pantalla se procesan en un orden de escaneo de fotograma. Se debe observar que el tamaño del bloque de retícula no está limitado a 64.
En la etapa S1301, la CPU 901 establece un tamaño de bloque mínimo de control de la calidad de la imagen. En la etapa S1302, la CPU 901 codifica el tamaño de bloque mínimo de control de la calidad de la imagen. En la etapa S1303, la CPU 901 codifica la información de la cabecera del fotograma. En la etapa S1304, la CPU 901 establece un primer bloque de retícula en la parte superior izquierda de la pantalla como un bloque de retícula objetivo. En la etapa S1305, la CPU 901 lleva a cabo un procesamiento de predicción en el bloque de retícula objetivo para generar datos residuales. En la etapa S1306, la CPU 901 lleva a cabo un procedimiento para codificar datos residuales en el bloque de retícula objetivo. En la etapa S1307, la CPU 901 determina si se procesan todos los bloques de retícula en el fotograma. En la etapa S1308, la CPU 901 establece el siguiente bloque de retícula como un bloque de retícula objetivo.
El procedimiento de las etapas se describirá a continuación. En la etapa S1301, la CPU 901 establece un parámetro llamado tamaño de bloque mínimo de control de la calidad de la imagen. La presente realización a modo de ejemplo se describirá suponiendo que la calidad de la imagen está controlada por un parámetro de cuantificación que se utiliza para cuantificar los coeficientes de transformación ortogonal. El tamaño de bloque mínimo de control de la calidad de la imagen es de 16 x 16 píxeles, de modo que la información del tamaño de bloque mínimo de control de la calidad de la imagen tiene un valor de 16. No obstante, el valor no está limitado a 16. El desarrollador del programa puede incrustar un valor fijo en el programa. El usuario puede especificar un valor a través de una interfaz de usuario del programa. El propio programa puede calcular y establecer un valor óptimo. El programa puede calcular valores óptimos dependiendo de las imágenes de entrada. Por ejemplo, si una imagen de entrada es mayor que 640 x 480 píxeles, el programa puede establecer el tamaño de bloque mínimo de control de la calidad de la imagen en un valor tan grande como 16. Si la resolución es menor o igual que 640 x 480 píxeles, el programa puede establecer el tamaño de bloque mínimo de control de la calidad de la imagen en un valor tan pequeño como 8. En la etapa S1302, la CPU 901 codifica el tamaño de bloque mínimo de control de la calidad de la imagen establecido en la etapa S1301 para generar el código del tamaño de bloque mínimo de control de la calidad de la imagen. Por ejemplo, la CPU 901 puede proporcionar un índice que expresa información del tamaño de bloque mínimo de control de la calidad de la imagen de 64 como “0” y, de manera similar 32, 16 y 8 como “1”, “2” y “3”, respectivamente. Entonces, la CPU 901 puede generar un código de longitud fija que representa el índice.
En la etapa S1303, la CPU 901 genera y codifica la información de la cabecera del fotograma. La CPU 901 incluye el código de tamaño de bloque mínimo de control de la calidad de la imagen generado en la etapa S1302 como parte de la información de la cabecera del fotograma. Se debe observar que, si bien la presente realización a modo de ejemplo trata el caso en el que el código del tamaño de bloque mínimo de control de la calidad de la imagen está incluido en una cabecera de fotograma, esto no es restrictivo. El código del tamaño de bloque mínimo de control de la calidad de la imagen puede estar incluido en una secuencia, una imagen, un fragmento o un bloque del nivel jerárquico superior.
En la etapa S1304, la CPU 901 establece un bloque de retícula en la parte superior izquierda de la pantalla como un primer bloque de retícula objetivo a procesar.
En la etapa S1305, la CPU 901 genera una imagen predicha utilizando predicción intrafotograma y predicción de compensación de movimiento, y genera datos residuales de los píxeles del bloque de retícula objetivo. La predicción intrafotograma incluye generar una imagen predicha haciendo referencia a la proximidad del bloque de retícula objetivo. La predicción de compensación de movimiento incluye generar una imagen predicha haciendo referencia a píxeles en otros fotogramas. Los ejemplos incluyen intrapredicción y predicción de compensación de movimiento que se adoptan en el esquema de codificación H.264 mencionado anteriormente. La CPU 901 codifica un modo de predicción intrafotograma y/o vectores de movimiento generados, y envía la resultante a una memoria intermedia de salida como código de la información de la cabecera del bloque de retícula.
En la etapa S1306, la CPU 901 lleva a cabo un procedimiento para codificar datos residuales en un bloque, que se describirá junto con la figura 17, en el bloque de retícula objetivo. La figura 17 se describirá en detalle a continuación.
En la etapa S1307, la CPU 901 determina si todos los bloques de retícula en el fotograma están procesados. Si todos los bloques de retícula están procesados (SÍ, en la etapa S1307), la CPU 901 finaliza el procesamiento de codificación en todo el fotograma. Si todavía no se han procesado todos los bloques de retícula (NO, en la etapa S1307), la CPU 901 lleva a cabo la etapa S1308.
En la etapa S1308, la CPU 901 establece el siguiente bloque de retícula en un orden de escaneo de fotograma como un bloque de retícula objetivo, y vuelve a la etapa S1305.
La figura 17 es un diagrama de flujo detallado de la etapa S1306. En la etapa S1306, la CPU 901 codifica una pluralidad de bloques de transformación ortogonal estructurados jerárquicamente, de diferentes tamaños, para generar datos codificados que incluyen código de parámetro de control de calidad de la imagen. Específicamente, la CPU 901 lleva a cabo la división de bloques, una transformación ortogonal y la cuantificación en base a un tamaño de bloque mínimo de control de la calidad de la imagen, a datos de tamaño de bloque y a datos residuales en los bloques. El diagrama de flujo muestra, asimismo, el procesamiento para codificar bloques de división para generar código de indicador de división de bloque, datos de coeficientes codificados y código de QP_DELTA relacionados con la actualización de un parámetro de calidad de la imagen. La presente realización a modo de ejemplo utiliza una estructura de árbol cuaternario de región para la estructuración jerárquica. Los bloques en el nivel jerárquico más alto son bloques de retícula de 64 x 64 píxeles. A medida que el nivel desciende mediante procesamiento de la división, bloques de 32 x 32 píxeles, 16 x 16 píxeles, y tan pequeños como de 8 x 8 píxeles pueden ser procesados.
La estructura de división de bloques basada en árbol cuaternario de región se puede transmitir al lado de un decodificador por medio de indicadores de división de bloques incrustados en un flujo.
En la etapa S1700, la CPU 901 calcula los costes cuando un bloque objetivo es dividido y cuando no. En la etapa S1701, la CPU 901 determina si dividir el bloque objetivo. En la etapa S1702, la CPU 901 codifica un indicador de división de bloque establecido como falso y genera el resultado. En la etapa S1703, la CPU 901 lleva a cabo un procedimiento para calcular un parámetro de calidad de la imagen. En la etapa S1704, la CPU 901 lleva a cabo una transformación ortogonal, una cuantificación y una codificación de longitud variable. En la etapa S1705, la CPU 901 lleva a cabo un procedimiento para codificar el parámetro de calidad de la imagen. En la etapa S1706, la CPU 901 clasifica los datos codificados y envía la resultante a una memoria intermedia de salida. En la etapa S1707, la CPU 901 codifica un indicador de división de bloques establecido como verdadero y genera la resultante. En la etapa 51708, la CPU 901 lleva a cabo el procedimiento para calcular un parámetro de calidad de la imagen. En la etapa 51709, la CPU 901 lleva a cabo el procedimiento para codificar el parámetro de calidad de la imagen. En la etapa 51710, la CPU 901 procesa bloques de división incluidos.
El procedimiento de las etapas se describirá a continuación. En la etapa S1700, la CPU 901 calcula los costes cuando el bloque es dividido y cuando no. Los costes se pueden calcular utilizando los multiplicadores de Lagrange mencionados anteriormente, así como las características de la imagen, estadísticas y longitudes de código predichas.
En la etapa S1701, la CPU 901 compara los costes con y sin división, calculados en la etapa S1700. Si el coste con división de bloque es menor que el coste sin división de bloque (SÍ, en la etapa S1701), la CPU 901 determina que la comparación es verdadero. Si no (NO, en la etapa S1701), la CPU 901 determina que la comparación es falso. Si el resultado de la determinación en la etapa S1701 es falso (NO, en la etapa S1701), la CPU 901 lleva a cabo las etapas S1702 a S1706. Si el resultado de la determinación en la etapa S1701 es verdadero (SÍ, en la etapa S1701), la CPU 901 lleva a cabo las etapas S1707 a S1710.
Inicialmente, se proporcionará una descripción del caso en el que el coste es menor sin división de bloques. En la etapa S1702, la CPU 901 codifica un indicador de división de bloque establecido como falso. La CPU 901 habitualmente asigna y codifica un valor de un bit de 0, aunque no está limitado a este.
En la etapa S1703, la CPU 901 lleva a cabo un procedimiento de cálculo de parámetros de calidad de la imagen mostrado en la figura 19 para calcular un parámetro de calidad de la imagen. La figura 19 se describirá en detalle a continuación.
En la etapa S1704, la CPU 901 lleva a cabo una transformación ortogonal, una cuantificación y una codificación de longitud variable en datos residuales para generar datos de coeficientes codificados. La transformación ortogonal se implementa mediante una transformada discreta del coseno (DCT, Discrete Cosine Transform). La cuantificación se lleva a cabo utilizando el parámetro de calidad de la imagen calculado en la etapa S1703. La CPU 901 lleva a cabo la cuantificación utilizando el mismo valor del parámetro de calidad de la imagen que el utilizado para la cuantificación anterior si no se calcula un nuevo parámetro de calidad de la imagen mediante el procedimiento de cálculo del parámetro de calidad de la imagen mostrado en la figura 19 que se describirá a continuación. Para la codificación de longitud variable, la CPU 901 puede utilizar la codificación de Huffman y la codificación aritmética. Dichas técnicas de codificación se pueden implementar utilizando procedimientos similares a los de H.264 mencionados anteriormente.
En la etapa S1705, la CPU 901 lleva a cabo el procedimiento de codificación de parámetros de calidad de la imagen. El procedimiento de codificación de parámetros de calidad de la imagen se describirá en detalle a continuación haciendo referencia a la figura 1.
En la etapa S1706, la CPU 901 ordena el código de indicador de división de bloques, el código de QP_DELTA y los datos de coeficientes codificados, y envía la resultante a una memoria intermedia de salida en este orden. Si no hay datos codificados para enviar, la CPU 901 solo clasifica y genera los datos codificados existentes. La figura 16 muestra un ejemplo del orden de código.
A continuación, se proporcionará una descripción del caso en el que el coste es menor con división de bloques. En la etapa S1707, la CPU 901 codifica un indicador de división de bloque establecido como verdadero. La CPU 901 habitualmente asigna y codifica un valor de un bit de 1, aunque no está limitado a este.
En la etapa S1708, la CPU 901 lleva a cabo el procedimiento de cálculo del parámetro de calidad de la imagen mostrado en la figura 19 que se describirá a continuación, calculando de este modo un parámetro de calidad de la imagen.
En la etapa S1709, la CPU 901 lleva a cabo el procedimiento de codificación de parámetros de calidad de la imagen como en la etapa S1705. El procedimiento de codificación de parámetros de calidad de la imagen se describirá en detalle a continuación haciendo referencia a la figura 1.
En la etapa S1710, la CPU 901 lleva a cabo recursivamente el presente procedimiento en todos los bloques de división incluidos, es decir, cuatro bloques de división (superior izquierdo, superior derecho, inferior izquierdo e inferior derecho) que están incluidos en el nivel jerárquicamente posterior. Cada uno de los bloques de división tiene un tamaño de 1/2 del bloque objetivo original, tanto en altura como en anchura. El tamaño del bloque objetivo disminuye división a división. El procesamiento recursivo puede ser llevado a cabo hasta un tamaño de bloque tan pequeño como de 8 x 8 píxeles. Mediante dicho procesamiento recursivo, un bloque de retícula es dividido sucesivamente en una estructura de árbol cuaternario de región. Por ejemplo, supóngase que un bloque de retícula está dividido tal como se muestra en la figura 7. Un indicador de división para indicar la presencia o la ausencia de división de bloque se indicará con 1 cuando un bloque correspondiente está dividido, y 0 cuando no. Los indicadores de división en los bloques de división respectivos se expresan tal como se muestra en las figuras 8A, 8B, 8C y 8D. Las figuras 8A, 8B, 8C y 8D muestran los niveles y los bloques de 64 x 64 píxeles, 32 x 32 píxeles, 16 x 16 píxeles y 8 x 8 píxeles, respectivamente. Los números indican indicadores de división. “-” indica que no se necesita ningún indicador. Los números entre paréntesis indican el orden estructural. En la presente realización a modo de ejemplo, el orden estructural hace referencia al orden de superior izquierdo, superior derecho, inferior izquierdo e inferior derecho en términos de bloques. En términos de niveles, el orden estructural hace referencia al orden hacia delante de escaneo de la estructura de árbol cuaternario de región. Los conjuntos de código de indicador de división, código de QP_DELTA y datos de coeficientes codificados se almacenan en el orden estructural. No se ajusta ningún indicador de división en bloques de 8 x 8 píxeles, ya que dichos bloques no se dividirán más. Un bloque que tiene un indicador de división de 1 no contiene datos de coeficientes en sí, ya que dicho bloque está subdividido en bloques de división de menor tamaño que contienen datos de coeficientes. Tal como se muestra en la figura 16 que se describirá a continuación, un flujo tiene una estructura de datos tal que los fragmentos de información codificada en bloques de división respectivos están dispuestos en el orden estructural. Un fragmento de información codificada en cada bloque de división incluye un conjunto de código de indicador de división, código de QP_DELTA y/o datos de coeficientes en el bloque de división.
La figura 1 es un diagrama de flujo detallado del procedimiento de codificación de parámetros de calidad de la imagen llevado a cabo en las etapas S1705 y S1709. En la etapa S101, la CPU 901 obtiene un tamaño del bloque objetivo. En la etapa S102, la CPU 901 obtiene un tamaño de bloque mínimo de control de la calidad de la imagen. En la etapa S103, la CPU 901 obtiene el estado de división del bloque. En la etapa S104, la CPU 901 determina si el bloque objetivo está dividido. En la etapa S105, la CPU 901 determina si el tamaño del bloque objetivo es mayor o igual que el tamaño de bloque mínimo de control de la calidad de la imagen. En la etapa S106, la CPU 901 determina si el tamaño del bloque objetivo es igual al tamaño de bloque mínimo de control de la calidad de la imagen. En la etapa S107, la CPU 901 obtiene un parámetro de calidad de la imagen. En la etapa S108, la CPU 901 codifica el parámetro de calidad de la imagen.
El procedimiento de las etapas se describirá a continuación. En la etapa S101, la CPU 901 obtiene un tamaño del bloque objetivo. Inmediatamente después de que se llame al presente procedimiento desde el procedimiento de la figura 17, el bloque objetivo que se procesará es un bloque de retícula en sí mismo. El valor del tamaño del bloque objetivo es, por lo tanto, 64. A medida que el nivel de la estructura del árbol cuaternario de la región desciende posteriormente debido a llamadas recursivas, el valor del tamaño cambia a 32, 16 y 8.
En la etapa S102, la CPU 901 obtiene un tamaño de bloque mínimo de control de la calidad de la imagen que se establece desde el exterior. En la presente realización a modo de ejemplo, el valor del tamaño de bloque mínimo de control de la calidad de la imagen es 16. Si el bloque objetivo a codificar está dividido o no, se ha determinado en las etapas S1700 y S1701 de la figura 17. En la etapa S103, la CPU 901 obtiene la información del estado de división que indica el resultado de la determinación de división.
En la etapa S104, la CPU 901 hace referencia al estado de división del bloque objetivo obtenido, y determina si el bloque objetivo está dividido. Si el bloque objetivo está dividido (SÍ, en la etapa S104), la CPU 901 lleva a cabo la etapa S106. Si el bloque objetivo no está dividido (NO, en la etapa S104), la CPU 901 lleva a cabo la etapa S105.
En la etapa S105, la CPU 901 determina si el tamaño del bloque objetivo es mayor o igual que el tamaño de bloque mínimo de control de la calidad de la imagen. Si se determina que el tamaño del bloque objetivo es mayor o igual (SÍ, en la etapa S105), la CPU 901 lleva a cabo la etapa S107 y la etapa siguiente. Si no (NO, en la etapa S105), la CPU 901 finaliza el procesamiento de codificación de parámetros de calidad de la imagen.
En la etapa S106, la CPU 901 determina si el tamaño del bloque objetivo es igual al tamaño de bloque mínimo de control de la calidad de la imagen. Si se determina que el tamaño del bloque objetivo es igual al tamaño de bloque mínimo de control de la calidad de la imagen (SÍ, en la etapa S106), la CPU 901 lleva a cabo las etapas S107 y S108. Si no (NO, en la etapa S108), la CPU 901 finaliza el procesamiento de codificación del parámetro de calidad de la imagen.
En la etapa S107, la CPU 901 obtiene un parámetro de calidad de la imagen. El parámetro de calidad de la imagen es el determinado en la etapa S1703 o S1708 de la figura 17. En la etapa S108, la CPU 901 codifica el parámetro de calidad de la imagen. En la presente realización a modo de ejemplo, la CPU 901 determina un valor de diferencia entre el parámetro de calidad de la imagen utilizado para codificar el bloque anterior y el parámetro de calidad de la imagen obtenido en la etapa S107 como un valor de QP_DELTA. La CPU 901 codifica el valor de QP_DELTA determinado mediante la codificación de Golomb en el código de QP_DELTA, que es el código del parámetro de calidad de la imagen. En la presente realización a modo de ejemplo, QP_DELTA está codificado mediante codificación de Golomb. No obstante, esto no es restrictivo. QP_DELTA se puede codificar mediante codificación aritmética u otra codificación de longitud variable. El parámetro de calidad de la imagen se utiliza para calcular el siguiente valor de QP_DELTA.
La figura 19 es un diagrama de flujo detallado del procedimiento de cálculo del parámetro de calidad de la imagen llevado a cabo en las etapas S1703 y S1708.
En la etapa S1901, la CPU 901 obtiene un tamaño del bloque objetivo. En la etapa S1902, la CPU 901 obtiene un tamaño de bloque mínimo de control de la calidad de la imagen. En la etapa S1903, la CPU 901 obtiene el estado de división del bloque. En la etapa S1904, la CPU 901 determina si el bloque objetivo está dividido. En la etapa S1905, la CPU 901 determina si el tamaño del bloque objetivo es mayor o igual al tamaño de bloque mínimo de control de la calidad de la imagen. En la etapa S1906, la CPU 901 determina si el tamaño del bloque objetivo es igual al tamaño de bloque mínimo de control de la calidad de la imagen. En la etapa S1907, la CPU 901 calcula un parámetro de calidad de la imagen.
El procedimiento de las etapas se describirá a continuación. En la etapa S1901, la CPU 901 obtiene un tamaño del bloque objetivo. Inmediatamente después de que se llame al presente procedimiento desde el procedimiento de la figura 17, el bloque objetivo a procesar es un bloque de retícula en sí mismo. El valor del tamaño del bloque objetivo es, por lo tanto, 64. A medida que el nivel de la estructura del árbol cuaternario de la región desciende posteriormente debido a llamadas recursivas, el valor del tamaño cambia a 32, 16 y 8.
En la etapa S1902, la CPU 901 obtiene un tamaño de bloque mínimo de control de la calidad de la imagen que se establece desde el exterior. En la presente realización a modo de ejemplo, el tamaño de bloque mínimo de control de la calidad de la imagen tiene un valor de 16.
Si el bloque objetivo a codificar está dividido o no se ha determinado en las etapas S1700 y S1701 de la figura 17. En la etapa S1903, la CPU 901 obtiene información del estado de división que indica el resultado de la determinación de división.
En la etapa S1904, la CPU 901 hace referencia al estado de división del bloque objetivo obtenido, y determina si el bloque objetivo está dividido. Si el bloque objetivo está dividido (SÍ, en la etapa S1904), la CPU 901 lleva a cabo la etapa S1906. Si el bloque objetivo no está dividido (NO, en la etapa S1904), la CPU 901 lleva a cabo la etapa S1905.
En la etapa S1905, la CPU 901 determina si el tamaño del bloque objetivo es mayor o igual que el tamaño de bloque mínimo de control de la calidad de la imagen. Si se determina que el tamaño del bloque objetivo es mayor o igual (SÍ, en la etapa S1905), la CPU 901 lleva a cabo la etapa S1907. Si no (NO, en la etapa S1905), la CPU 901 finaliza el procesamiento del cálculo del parámetro de calidad de la imagen.
En la etapa S1906, la CPU 901 determina si el tamaño del bloque objetivo es igual al tamaño de bloque mínimo de control de la calidad de la imagen. Si se determina que el tamaño del bloque objetivo es igual al tamaño de bloque mínimo de control de la calidad de la imagen (SÍ, en la etapa S1906), la CPU 901 lleva a cabo la etapa S1907. Si no (NO, en la etapa S1906), la CPU 901 finaliza el procesamiento de cálculo del parámetro de calidad de la imagen. En la etapa S1907, la CPU 901 lleva a cabo el procesamiento de control de velocidad para calcular un parámetro de calidad de la imagen para codificar el bloque objetivo. Por ejemplo, como con TM5, la CPU 901 predice la cantidad de códigos de bloque objetivo y calcula un parámetro de cuantificación óptimo. Si el bloque objetivo está dividido, todos los bloques de división incluidos están sujetos al control de velocidad. Los bloques de división incluidos son codificados con el mismo parámetro de calidad de la imagen.
El procedimiento de codificación según la presente realización a modo de ejemplo se utiliza para generar datos que tienen una estructura de datos mostrada en las figuras 15 y 16. Haciendo referencia a la figura 15, la información de la cabecera del fotograma incluye el código del tamaño de bloque mínimo de control de la calidad de la imagen que se incrusta en la etapa S1303 de la figura 13. Todos los bloques de retícula dentro del fotograma están bajo el control del código. Haciendo referencia a la figura 16, un indicador de división en un bloque de retícula, o un bloque de 64 x 64 píxeles, está seguido por un indicador de división en un bloque superior izquierdo de 32 x 32 píxeles en el nivel posterior. Si el bloque de 32 x 32 píxeles no está dividido, sigue el código del parámetro de calidad de la imagen o el código de QP_DELTA de ese bloque, acompañado del código de datos del coeficiente en el residuo de los 32 x 32 píxeles. Sigue un indicador de división en un bloque superior derecho de 32 x 32 píxeles. Tal como se dijo anteriormente, si un bloque de 32 x 32 píxeles se divide en bloques de 16 x 16 píxeles, sigue un indicador de división para indicar el estado de la división. Si un bloque no se divide más, sigue el código de QP_DELTA y el código de datos del coeficiente. El tamaño de bloque mínimo de control de la calidad de la imagen es 16. Si un bloque se divide en bloques de menos de 16 x 16 píxeles, sigue un indicador de división y un código de datos de coeficiente sin el código de QP_DELTA agregado a los bloques más pequeños.
Tal como se describió anteriormente, un tamaño del bloque objetivo es comparado con el tamaño de bloque mínimo de control de la calidad de la imagen, y si se codifica un valor de QP_DELTA se controla según el resultado de la comparación. La provisión de dicho mecanismo permite el control de la calidad de la imagen en unidades de bloques en las que una imagen se divide en un patrón de retícula. El control de la calidad de la imagen se puede llevar a cabo en unidades más finas (figura 12C) que en un caso convencional donde el código de QP_DELTA está incrustado en unidades de bloques de retícula (figura 12A). Esto puede estrechar los bordes entre bloques de diferentes calidades de imagen y hacer que las diferencias en la calidad de la imagen sean menos apreciables. En otro caso convencional, el control de la calidad de la imagen se lleva a cabo y el código de QP_DELTA está incorporado en unidades de bloques de transformación ortogonal (figura 12B). A diferencia de este caso, la cantidad de código no aumentará más de lo necesario, porque la unidad de control de la calidad de la imagen puede ser seleccionada y el código de QP_DELTA no necesita ser incrustado en cada bloque de transformación ortogonal. El procedimiento de cálculo del parámetro de calidad de la imagen se lleva a cabo solo si se cumple la misma condición que para introducir un parámetro de calidad de la imagen. De este modo, se evita que el cálculo del parámetro de calidad de la imagen también aumente más de lo necesario.
En la presente realización a modo de ejemplo, los bloques se definen como bloques cuadrados. Se comprenderá que los bloques pueden ser rectangulares, tal como de 8 x 4 píxeles. Aunque la estructura del árbol cuaternario de la región se escanea utilizando un procesamiento recursivo, las estructuras de bucle se pueden utilizar para implementar el escaneo.
Tal como se muestra en la figura 10, el procedimiento de codificación según la presente realización a modo de ejemplo se puede llevar a cabo mediante una configuración que incluye hardware dedicado, tal como un transformador ortogonal 1003, un cuantificador 1004 y un codificador de longitud variable 1005. La CPU 1001 no llevará a cabo la transformación ortogonal, la cuantificación y la etapa de codificación de longitud variable, sino que hace que las unidades anteriores lleven a cabo las partes respectivas del procesamiento. En otros aspectos, el procedimiento es el mismo que el mostrado en la figura 17.
La presente realización a modo de ejemplo ha tratado el caso en el que los datos codificados están grabados en el HDD 903. No obstante, esto no es restrictivo. Los datos codificados pueden ser grabados en un medio de grabación que no sea el dispositivo de disco duro 903. Se apreciará que los datos codificados pueden ser transmitidos a un circuito de comunicación a través de una interfaz de comunicación 905. Un dispositivo de grabación externo puede estar conectado para grabar datos codificados en un medio portátil.
La presente realización a modo de ejemplo también ha tratado el caso en el que las aplicaciones de software están grabadas en el dispositivo de disco duro 903. No obstante, esto no es restrictivo. Las aplicaciones de software pueden estar grabadas en un fragmento de hardware, tal como una memoria de solo lectura (ROM, Read Only Memory). Se apreciará que las aplicaciones de software pueden estar grabadas en un medio portátil, tal como una tarjeta de memoria y un disco.
La presente realización a modo de ejemplo también ha tratado el caso en el que el número de veces de división se codifica para producir código que indica el tamaño de un bloque mínimo de control de la calidad de la imagen. No obstante, esto no es restrictivo. Puesto que el tamaño de bloque máximo es el de un bloque de retícula, el tamaño de un bloque mínimo de control de la calidad de la imagen se puede expresar mediante un código de longitud fija de 6 bits. Un bloque mínimo de control de la calidad de la imagen no está limitado a una configuración cuadrada. Los bloques mínimos de control de la calidad de la imagen para configuraciones horizontales y verticales se pueden proporcionar por separado. Por ejemplo, los bloques horizontales u horizontalmente adyacentes pueden ser agrupados y los parámetros de calidad de la imagen pueden ser controlados en unidades de grupos de bloques. En tal caso, los tamaños de bloque mínimo de control de la calidad de la imagen pueden establecerse de manera efectiva para configuraciones horizontales y verticales de manera separada.
Un procedimiento de decodificación de imagen según una segunda realización a modo de ejemplo de la presente invención se describirá haciendo referencia a las figuras 2, 9, 14 y 18.
La figura 9 muestra una configuración para ejecutar un programa de decodificación que incluye el procedimiento de decodificación según la presente realización a modo de ejemplo. El programa de grabación se graba en e1HDD 903. El programa de decodificación se carga en la RAM 902 y la CPU901 lleva a cabo las etapas de un procedimiento que se describirá a continuación para el procesamiento de decodificación. Los datos codificados de entrada se leen desde el HDD 903. Una imagen decodificada se envía a una pantalla a través de una memoria intermedia de salida de imagen que está dispuesta en una RAM de video (VRAM, Video RAM) 904. La CPU 901 lleva a cabo el procesamiento de decodificación bloque por bloque. Cada bloque se decodifica para producir una imagen decodificada del bloque, que se copia en una posición apropiada en un fotograma cuando se envía a la memoria intermedia de salida de imágenes. Cuando se completa el procesamiento de decodificación en bloques tanto como en un solo fotograma, un fotograma de imagen es emitido a una memoria intermedia de salida. La siguiente descripción se proporcionará con la suposición de que los datos codificados de entrada son datos codificados que se generan en la primera realización a modo de ejemplo.
La figura 14 muestra el procedimiento para decodificar datos codificados de entrada. Los bloques de retícula se decodifican en un orden de escaneo de fotograma. En la etapa S1401, la CPU 901 decodifica y obtiene la información de la cabecera del fotograma. La presente realización a modo de ejemplo trata el caso en el que la información de la cabecera del fotograma incluye un tamaño de bloque mínimo de control de la calidad de la imagen. No obstante, esto no es restrictivo. Según un formato de datos predeterminado, se puede obtener un tamaño de bloque mínimo de control de la calidad de la imagen a partir de la información de la cabecera en una secuencia, una imagen, un fragmento o un bloque del nivel jerárquico más alto. En la etapa S1402, la CPU 901 decodifica y obtiene un tamaño de bloque mínimo de control de la calidad de la imagen. En la etapa S1403, la CPU 901 lleva a cabo una configuración para que el resultado de la decodificación de los datos codificados se almacene primero en un primer bloque de retícula objetivo. En la etapa S1404, la CPU 901 decodifica el modo de predicción del bloque de retícula objetivo y genera una imagen predicha según el modo de predicción. En la etapa S1405, la CPU 901 lleva a cabo un procedimiento de decodificación de bloque de división en el bloque de retícula objetivo. En la etapa S1406, la CPU 901 agrega datos de imagen predichos y datos residuales del bloque de retícula objetivo, y envía la resultante a la memoria intermedia de salida de imagen. En la etapa S1407, la CPU 901 determina si se procesan todos los bloques de retícula en un fotograma. En la etapa S1408, la CPU 901 establece el siguiente bloque de retícula como un bloque de retícula objetivo.
El procedimiento de las etapas se describirá a continuación. En la etapa S1401, la CPU 901 obtiene un parámetro llamado tamaño de bloque mínimo de control de la calidad de la imagen a partir de la información de la cabecera en un bloque que es del orden más alto en términos de secuencias, imágenes, fotogramas, fragmentos y estructura jerárquica.
En la etapa S1402, la CPU 901 decodifica y obtiene el tamaño de bloque mínimo de control de la calidad de la imagen. Según la primera realización a modo de ejemplo, el tamaño de bloque mínimo de control de la calidad de la imagen se codifica como un índice. El tamaño de bloque mínimo de control de la calidad de la imagen es 16. En la etapa S1403, la CPU 901 establece el bloque de retícula en la parte superior izquierda de la pantalla como un bloque de retícula objetivo.
En la etapa S1404, la CPU 901 decodifica datos codificados en el bloque de retícula objetivo. De este modo, la CPU 901 decodifica un modo de predicción intrafotograma y/o vectores de movimiento generados en la primera realización a modo de ejemplo. Con intracodificación, la CPU 901 hace referencia a píxeles decodificados adyacentes y genera datos de imagen predichos basados en el modo de predicción intrafotograma decodificado. Con intercodificación, la CPU 901 lleva a cabo una compensación de movimiento para generar datos de imagen predichos basados en los vectores de movimiento.
En la etapa S1405, la CPU 901 lleva a cabo un procedimiento de decodificación de bloque de división, que se describirá a continuación junto con la figura 18, en el bloque de retícula. Puesto que la decodificación de bloques de división está estructurada jerárquicamente, la CPU 901 decodifica indicadores de división en bloques y determina los estados de los bloques de división mientras lleva a cabo la decodificación. La CPU 901 genera con ello parámetros de calidad de la imagen y datos residuales con respecto a las predicciones.
En la etapa S1406, la CPU 901 agrega los datos de imagen predichos generados en la etapa S1404 y los datos residuales generados en la etapa S1405 para generar una imagen decodificada del bloque de retícula objetivo. La CPU 901 envía la imagen decodificada a la memoria intermedia de salida de imagen.
En la etapa S1407, la CPU 901 determina si todos los bloques de retícula en el fotograma se han procesado para la decodificación. Por ejemplo, la CPU 901 cuenta el número de bloques de retícula decodificados. Si no todos los bloques de retícula están procesados para decodificación (NO, en la etapa S1407), la CPU 901 pasa a la etapa S1408. Si todos los bloques de retícula están decodificados (SÍ, en la etapa S1407), la CPU 901 finaliza el proceso de decodificación en el fotograma.
En la etapa S1408, la CPU 901 establece el resultado de la decodificación que viene a continuación en un orden de escaneo de fotograma como el siguiente bloque de retícula objetivo.
La figura 18 es un diagrama de flujo detallado de la etapa S1405, que muestra un procedimiento para decodificar una pluralidad de bloques de transformación ortogonal estructurados jerárquicamente, de diferentes tamaños. Específicamente, la figura 18 muestra un procedimiento para llevar a cabo una decodificación de longitud variable, una transformación ortogonal inversa y una cuantificación inversa en datos de coeficientes codificados de longitud variable basados en el código de indicador de división de bloque y el código de QP_DELTA, para generar datos residuales. La presente realización a modo de ejemplo utiliza una estructura de árbol cuaternario de región para la estructuración jerárquica. Un bloque en el nivel más alto (primer bloque objetivo que se procesará) es un bloque de retícula de 64 x 64 píxeles.
En la etapa S1801, la CPU 901 decodifica un indicador de división de bloque en el bloque objetivo. En la etapa S1802, la CPU 901 lleva a cabo un procedimiento de decodificación de parámetros de calidad de la imagen. En la etapa S1803, la CPU 901 determina si el bloque objetivo a decodificar está dividido. En la etapa S1804, la CPU 901 lleva a cabo una decodificación de longitud variable, una cuantificación inversa y una transformación ortogonal inversa. En la etapa S1805, la CPU 901 lleva a cabo recursivamente el procesamiento de decodificación en los bloques de división incluidos.
El procedimiento de las etapas se describirá a continuación. En la etapa S1801, la CPU 901 decodifica un indicador de división de bloque, tal como el mostrado en la figura 16, para obtener información sobre si el bloque objetivo está subdividido. La decodificación se lleva a cabo según una estructura jerárquica de árbol cuaternario. De este modo, la CPU 901 puede obtener el estado de división de bloques.
En la etapa S1802, la CPU 901 lleva a cabo un procedimiento de decodificación del parámetro de calidad de la imagen que se describirá a continuación junto con la figura 2. La CPU 901 decodifica de este modo un parámetro de calidad de la imagen que se utiliza en la cuantificación inversa para decodificar el bloque objetivo.
En la etapa S1803, la CPU 901 hace referencia al indicador de división de bloque decodificado para determinar si el bloque objetivo está dividido. Si se determina que el bloque objetivo no está dividido (NO, en la etapa S1803), la CPU 901 lleva a cabo la etapa S1804. Si se determina que el bloque objetivo está dividido (SÍ, en la etapa S1803), la CPU 901 lleva a cabo la etapa S1805.
En la etapa S1804, la CPU 901 lleva a cabo una decodificación de longitud variable, una cuantificación inversa y una transformación ortogonal inversa en datos de coeficientes codificados del bloque objetivo, generando de este modo datos residuales. Para la decodificación de longitud variable, la CPU 901 lleva a cabo la decodificación según el esquema de codificación utilizado en la primera realización a modo de ejemplo. La CPU 901 obtiene de este modo los datos del coeficiente de cuantificación incluidos en el bloque. Para la cuantificación inversa, la CPU 901 utiliza el parámetro de calidad de la imagen decodificado en la etapa S1802. Si no se decodifica un nuevo parámetro de calidad de la imagen en S1802, la CPU 901 lleva a cabo una cuantificación inversa simplemente utilizando el parámetro de calidad de la imagen previamente decodificado. La CPU 901 lleva a cabo una transformación ortogonal inversa en los datos de coeficientes resultantes de la cuantificación inversa, generando de este modo datos residuales.
En la etapa S1805, la CPU 901 lleva a cabo recursivamente el procesamiento en las etapas S1801 a S1805 siempre que un indicador de división de bloques decodificado indique la presencia de un nivel jerárquicamente posterior. La CPU 901 restaura con ello los datos residuales hasta que se alcanza el tamaño de bloque mínimo de división.
A continuación, la etapa S1802 destinada a decodificar un parámetro de calidad de la imagen se describirá en detalle haciendo referencia a la figura 2.
La figura 2 muestra un procedimiento para decodificar un parámetro de calidad de la imagen de una pluralidad de bloques de transformación ortogonal estructurados jerárquicamente, de diferentes tamaños. En la etapa S201, la CPU 901 obtiene un tamaño del bloque objetivo. En la etapa S202, la CPU 901 obtiene un tamaño de bloque mínimo de control de la calidad de la imagen. En la etapa S203, la CPU 901 obtiene el estado de división del bloque. En la etapa S204, la CPU 901 determina si el bloque objetivo está dividido. En la etapa S205, la CPU 901 determina si el tamaño del bloque objetivo es mayor o igual que el tamaño de bloque mínimo de control de la calidad de la imagen. En la etapa S206, la CPU 901 determina si el tamaño del bloque objetivo es igual al tamaño de bloque mínimo de control de la calidad de la imagen. En la etapa S207, la CPU 901 decodifica un parámetro de calidad de la imagen. El procedimiento de las etapas se describirá a continuación. En la etapa S201, la CPU 901 obtiene un tamaño del bloque objetivo. Inmediatamente después de que se llama al presente procedimiento desde el procedimiento de la figura 18, el bloque objetivo a procesar es un bloque de retícula en sí mismo. El valor del tamaño del bloque objetivo es, por lo tanto, 64. A medida que los indicadores de división son decodificados posteriormente, el valor del tamaño cambia a 32, 16 y 8 en consecuencia.
En la etapa S202, la CPU 901 obtiene un tamaño de bloque mínimo de control de la calidad de la imagen. En la presente realización a modo de ejemplo, la CPU 901 obtiene el tamaño de bloque mínimo de control de la calidad de la imagen decodificado en la etapa S1402 de la figura 14. En la etapa S203, la CPU 901 obtiene el estado de división del bloque. En la presente realización a modo de ejemplo, la CPU 901 obtiene el indicador de división de bloque que fue decodificado en la etapa S1801 de la figura 18.
En la etapa S204, la CPU 901 determina el valor del indicador de división de bloque. Utilizando la misma asignación de código que la descrita en la primera realización a modo de ejemplo, un indicador de división de bloque que tiene un valor de “0” indica que el bloque no está dividido. Un indicador de división de bloque que tiene un valor de “1” indica que el bloque está dividido. Si el valor del indicador de división de bloque es “0” (NO, en la etapa S204), la CPU 901 lleva a cabo la etapa S205. Si el valor es “1” (SÍ, en la etapa S204), la CPU 901 lleva a cabo la etapa s206. En la etapa S205, la CPU 901 determina si el tamaño del bloque objetivo es mayor o igual que el tamaño de bloque mínimo de control de la calidad de la imagen. Si el tamaño del bloque objetivo es mayor o igual que el tamaño de bloque mínimo de control de la calidad de la imagen (SÍ, en la etapa S205), la CPU 901 lleva a cabo la etapa S207. Si no (NO, en la etapa S205), la CPU 901 finaliza el procesamiento.
En la etapa S206, la CPU 901 determina si el tamaño del bloque objetivo es igual al tamaño de bloque mínimo de control de la calidad de la imagen. Si el tamaño del bloque objetivo es igual al tamaño de bloque mínimo de control de la calidad de la imagen (SÍ, en la etapa S206), la CPU 901 lleva a cabo la etapa S207. Si no (NO, en la etapa S206), la CPU 901 finaliza el procesamiento.
En la etapa S207, la CPU 901 decodifica el código del parámetro de calidad de la imagen. En la presente realización a modo de ejemplo, la CPU 901 decodifica el código de QP_DELTA en un valor de QP_DELTA mediante decodificación de Golomb. En la presente realización a modo de ejemplo, QP_DELTA se decodifica mediante decodificación de Golomb. No obstante, esto no es restrictivo. QP_DELTA puede ser decodificado mediante decodificación aritmética u otra decodificación de longitud variable, dependiendo del formato de datos predeterminado. A continuación, la CPU 901 agrega el valor de QP_DELTA para el parámetro de calidad de la imagen que se utiliza para codificar el bloque anterior, generando de este modo un parámetro de calidad de la imagen.
En la presente realización a modo de ejemplo, si decodificar o no un parámetro de calidad de la imagen se controla dependiendo de la misma condición que para comparar el tamaño del bloque objetivo en el que se codifica el parámetro de calidad de la imagen y el tamaño de bloque mínimo de control de la calidad de la imagen. Esto permite decodificar un flujo generado por el procedimiento de codificación descrito en la primera forma de realización a modo de ejemplo.
Tal como se muestra en la figura 11, el procedimiento de decodificación según la presente realización a modo de ejemplo puede ser llevado a cabo mediante una configuración que incluye hardware dedicado, tal como un transformador ortogonal inverso 1103, un cuantificador inverso 1104 y un decodificador de longitud variable 1105, en lugar de la configuración mostrada en la figura 9. La CPU 1101 no llevará a cabo la transformación ortogonal inversa, la cuantificación inversa y la etapa de decodificación de longitud variable, sino que hace que las unidades anteriores lleven a cabo las partes respectivas de procesamiento. En otros aspectos, el procedimiento es el mismo que el mostrado en la figura 18.
La presente realización a modo de ejemplo ha tratado el caso en el que los datos codificados están grabados en el dispositivo de disco duro 903. No obstante, esto no es restrictivo. Se pueden recibir datos codificados desde un circuito de comunicación a través de una interfaz de comunicación 1006. Se puede conectar un dispositivo de grabación externo para introducir datos codificados desde un medio portátil.
La presente realización a modo de ejemplo también ha tratado el caso en el que las aplicaciones de software están grabadas en el dispositivo de disco duro 903. No obstante, esto no es restrictivo. Las aplicaciones de software pueden estar grabadas en un fragmento de hardware tal como una memoria de solo lectura (ROM, Read Only Memory). Se apreciará que las aplicaciones de software pueden estar grabadas en un medio portátil, tal como una tarjeta de memoria y un disco.
Se describirá un procedimiento de codificación de un parámetro de calidad de la imagen según una tercera realización a modo de ejemplo de la presente invención haciendo referencia a la figura 3. A menos que se especifique lo contrario, la configuración para llevar a cabo el procedimiento de codificación y la operación de las etapas es la misma que en la primera realización a modo de ejemplo. En la presente realización a modo de ejemplo, un bloque que incluye un bloque objetivo y tiene el mismo tamaño que un tamaño de bloque mínimo de control de la calidad de la imagen se definirá como un bloque mínimo de control de la calidad de la imagen. La información que indica si un parámetro de calidad de la imagen está codificado en un bloque mínimo de control de la calidad de la imagen se definirá como información de estado de codificación del parámetro de calidad de la imagen. La información del estado de codificación del parámetro de calidad de la imagen es equivalente a la información que indica si un parámetro de calidad de la imagen del primer bloque de división en el bloque mínimo de control de la calidad de la imagen está codificado.
La figura 3 muestra un procedimiento para codificar un parámetro de calidad de la imagen. La figura 3 es un diagrama de flujo detallado del procedimiento de codificación del parámetro de calidad de la imagen que se llevará a cabo en las etapas S1705 y S1709 de la figura 17. Este procedimiento se lleva a cabo en lugar del procedimiento de codificación del parámetro de calidad de la imagen mostrado en la figura 1. En la etapa S301, la CPU 901 obtiene información de estado de codificación de los parámetros de calidad de la imagen. En la etapa S302, la CPU 901 hace referencia a la información del estado de codificación del parámetro de calidad de la imagen y determina si un parámetro de calidad de la imagen ya ha sido codificado en un bloque mínimo de control de la calidad de la imagen. El procedimiento de las etapas se describirá a continuación. En la etapa S104, como la primera realización a modo de ejemplo, la CPU 901 hace referencia al estado de división del bloque objetivo obtenido, es decir, si el bloque objetivo está dividido adicionalmente mediante un árbol cuaternario. Si se determina que el bloque objetivo está dividido (SÍ, en la etapa S104), la CPU 901 finaliza el procesamiento de manera diferente a la primera realización a modo de ejemplo. Si se determina que el bloque objetivo no está dividido (NO, en la etapa S104), la CPU 901 lleva a cabo la etapa S105 como la primera realización a modo de ejemplo.
En la etapa S105, como la primera realización a modo de ejemplo, la CPU 901 determina si el tamaño del bloque objetivo es mayor o igual que el tamaño de bloque mínimo de control de la calidad de la imagen. Si se determina que el tamaño del bloque objetivo es mayor o igual (SÍ, en la etapa S105), la CPU 901 lleva a cabo las etapas S107 y S108 como la primera realización a modo de ejemplo. Si no (NO, en la etapa S105), la CPU 901 lleva a cabo el procesamiento de las etapas S301 y S302.
En la etapa S301, la CPU 901 obtiene información del estado de codificación del parámetro de calidad de la imagen. En la presente realización a modo de ejemplo, el tamaño de bloque mínimo de control de la calidad de la imagen es 16. Si el bloque objetivo es un bloque superior izquierdo de 8 x 8 píxeles, se deduce que la CPU 901 obtiene la información de que ningún parámetro de calidad de la imagen está codificado. Si el bloque objetivo es un bloque superior derecho, inferior izquierdo o inferior derecho de 8 x 8 píxeles, un parámetro de calidad de la imagen ya ha sido codificado en un bloque superior izquierdo de 8 x 8 píxeles. En tal caso, la CPU 901 obtiene la información de que un parámetro de calidad de la imagen está codificado.
En la etapa S302, la CPU 901 hace referencia a la información del estado de codificación del parámetro de calidad de la imagen y determina si un parámetro de calidad de la imagen ya ha sido codificado en el bloque mínimo de control de la calidad de la imagen. Si no se determina que ningún parámetro de calidad de la imagen ha sido codificado (NO, en la etapa S302), la CPU 901 lleva a cabo las etapas S107 y S108. Si se determina que un parámetro de calidad de la imagen ha sido codificado (SÍ, en la etapa S302), la CPU 901 finaliza el procesamiento de codificación del parámetro de calidad de la imagen.
Se describirá una diferencia entre la presente realización a modo de ejemplo y la primera realización a modo de ejemplo. En la primera realización a modo de ejemplo, el código de q P_d El t A se incrusta como datos que acompañan a un bloque objetivo (un conjunto de bloques de división) si “el bloque objetivo está dividido y el tamaño del bloque objetivo es igual al tamaño de bloque mínimo de control de la calidad de la imagen”. En la presente realización a modo de ejemplo, el código de QP_DELTA se agrega a un bloque superior izquierdo, que es el primer bloque en un bloque objetivo, si “el bloque objetivo está dividido y el tamaño del bloque objetivo es igual al tamaño de bloque mínimo de control de la calidad de la imagen”. En la presente realización a modo de ejemplo, el tamaño de bloque mínimo de control de la calidad de la imagen es 16. Supóngase que los bloques divididos tal como se muestra en la figura 20 constituyen una secuencia. En tal caso, el código de QP_DELTA es introducido inmediatamente antes de los fragmentos de datos del coeficiente codificado de longitud variable que corresponden a los bloques sombreados de N° 0, 1, 7, 5, 6, 8, 9, 13, 14 y 15. En otras palabras, el código de QP_DELTA acompaña a los bloques de 16 x 16 píxeles o más. Si un bloque de 16 x 16 píxeles está dividido, el código de QP_DELTA acompaña el bloque superior izquierdo de 8 x 8 píxeles, es decir, el primer bloque subdividido del bloque de 16 x 16 píxeles.
La presente realización a modo de ejemplo puede proporcionar de este modo los mismos efectos que los de la primera realización a modo de ejemplo, mientras que los procedimientos y las estructuras de los datos tienen diferentes conceptos. En otra posible configuración, no se codifica ningún parámetro de calidad de la imagen a menos que los coeficientes de cuantificación tengan un valor distinto de cero. Si un bloque superior izquierdo en un bloque objetivo no incluye un coeficiente de cuantificación de un valor distinto de cero, un parámetro de calidad de la imagen se adjunta a un primer bloque de división estructuralmente posterior en el que un coeficiente de cuantificación tiene un valor distinto de cero. En la etapa S301 de la presente realización a modo de ejemplo, la CPU 901 calcula y obtiene la información de estado de codificación de los parámetros de calidad de la imagen a partir del tamaño y la posición del bloque objetivo a codificar. No obstante, esto no es restrictivo. Por ejemplo, puede estar dispuesto un indicador que indique si un parámetro de calidad de la imagen está codificado en un tamaño de bloque mínimo de control de la calidad de la imagen. El indicador es restablecido cada vez que se lleva a cabo el procesamiento de división de un bloque mínimo de control de la calidad de la imagen, y es establecido cada vez que se codifica un parámetro de calidad de la imagen. Para obtener la información del estado de codificación de los parámetros de calidad de la imagen, la CPU 901 hace referencia al indicador. Si el indicador está restablecido, la CPU 901 obtiene la información de que ningún parámetro de calidad de la imagen está codificado. Si el indicador está establecido, la CPU 901 obtiene la información de que un parámetro de calidad de la imagen está codificado. Se describirá un procedimiento para decodificar un parámetro de calidad de la imagen según una cuarta realización a modo de ejemplo de la presente invención haciendo referencia a la figura 4. A menos que se especifique lo contrario, la configuración para llevar a cabo el procedimiento de decodificación y el funcionamiento de las etapas son los mismos que en la segunda realización a modo de ejemplo. En la presente realización a modo de ejemplo, un bloque que incluye un bloque objetivo y tiene el mismo tamaño que un tamaño de bloque mínimo de control de la calidad de la imagen se definirá como un bloque mínimo de control de la calidad de la imagen. La información que indica si un parámetro de calidad de la imagen está decodificado en un bloque mínimo de control de la calidad de la imagen se definirá como la información del estado de decodificación de los parámetros de calidad de la imagen. La figura 4 muestra un procedimiento para decodificar un parámetro de calidad de la imagen. La figura 4 es un diagrama de flujo detallado del procedimiento de decodificación de los parámetros de calidad de la imagen que se llevará a cabo en la etapa S1802 de la figura 18. Este procedimiento se lleva a cabo en lugar del procedimiento de decodificación de parámetros de calidad de la imagen mostrado en la figura 2. En la etapa S401, la CPU 901 obtiene la información del estado de decodificación de los parámetros de calidad de la imagen. En la etapa S402, la CPU 901 hace referencia a la información del estado de decodificación del parámetro de calidad de la imagen y determina si un parámetro de calidad de la imagen ya ha sido decodificado en un bloque mínimo de control de la calidad de la imagen.
El procedimiento de las etapas se describirá a continuación. En la etapa S204, la CPU 901 determina el valor del indicador de división de bloque. Si el valor del indicador de división de bloque es “0”, lo que indica que el bloque no está dividido (NO, en la etapa S204), la CPU 901 lleva a cabo la etapa S205 como la segunda realización a modo de ejemplo. Si el valor del indicador de división de bloque es “1”, lo que indica que el bloque está dividido (SÍ, en la etapa S204), la CPU 901 finaliza el procesamiento de decodificación de los parámetros de calidad de la imagen de manera diferente a la segunda realización a modo de ejemplo.
En la etapa S205, como la segunda realización a modo de ejemplo, la CPU 901 determina si el tamaño del bloque objetivo es mayor o igual que el tamaño de bloque mínimo de control de la calidad de la imagen. Si se determina que el tamaño del bloque objetivo es mayor o igual (SÍ, en la etapa S205), la CPU 901 continúa con la etapa S207. En la etapa S207, la CPU 901 decodifica un parámetro de calidad de la imagen como la segunda realización a modo de ejemplo. Si no (NO, en la etapa S205), la CPU 901 lleva a cabo las etapas S401 y S402.
En la etapa S401, la CPU 901 obtiene la información del estado de decodificación del parámetro de calidad de la imagen. En la presente realización a modo de ejemplo, el tamaño de bloque mínimo de control de la calidad de la imagen es 16. Si el bloque objetivo es un bloque superior izquierdo de 8 x 8 píxeles, se deduce que la CPU 901 obtiene la información de que ningún parámetro de calidad de la imagen está decodificado. Si el bloque objetivo es un bloque superior derecho, inferior izquierdo o inferior derecho de 8 x 8 píxeles, un parámetro de calidad de la imagen ya ha sido decodificado en un bloque superior izquierdo de 8 x 8 píxeles. En tal caso, la CPU 901 obtiene la información de que un parámetro de calidad de la imagen está decodificado.
En la etapa S402, la CPU 901 hace referencia a la información del estado de decodificación del parámetro de calidad de la imagen y determina si un parámetro de calidad de la imagen ya ha sido decodificado en el bloque mínimo de control de la calidad de la imagen. Si no se ha decodificado ningún parámetro de calidad de la imagen (NO, en la etapa S402), la CPU 901 lleva a cabo la etapa S207. Si se ha decodificado un parámetro de calidad de la imagen (SÍ, en la etapa S402), la CPU 901 finaliza el procesamiento de decodificación de los parámetros de calidad de la imagen.
En la presente realización a modo de ejemplo, decodificar o no realmente un parámetro de calidad de la imagen se controla en base a la condición para comparar un tamaño del bloque objetivo en el que se codifica el parámetro de calidad de la imagen y el tamaño de bloque mínimo de control de la calidad de la imagen, y a una condición de determinación para determinar si el parámetro de calidad de la imagen ya ha sido decodificado en el bloque mínimo de control de la calidad de la imagen. Dicho modo permite la decodificación de un flujo generado por el procedimiento de codificación descrito en la tercera realización a modo de ejemplo. El procedimiento de codificación puede emplear una configuración tal que no se codifique ningún parámetro de calidad de la imagen a menos que los coeficientes de cuantificación tengan un valor distinto de cero. En tal caso, el procedimiento de decodificación puede emplear una configuración similar. Si un bloque superior izquierdo en un bloque objetivo no incluye ningún coeficiente de cuantificación de un valor distinto de cero, se decodifica un parámetro de calidad de la imagen en un primer bloque de división estructuralmente posterior en el que un coeficiente de cuantificación tiene un valor distinto de cero.
En la etapa S401 de la figura 4 según la presente realización a modo de ejemplo, la CPU 901 calcula y obtiene la información de estado de la decodificación de los parámetros de calidad de la imagen a partir del tamaño y la posición del bloque objetivo a decodificar. No obstante, esto no es restrictivo. Por ejemplo, puede estar dispuesto un indicador que indique si un parámetro de calidad de la imagen está decodificado dentro de un tamaño de bloque mínimo de control de la calidad de la imagen. El indicador se restablece cada vez que se lleva a cabo el procesamiento de dividir un bloque mínimo de control de la calidad de la imagen, y se establece cada vez que se decodifica un parámetro de calidad de la imagen. Para obtener la información del estado de la decodificación de los parámetros de calidad de la imagen, la CPU 901 hace referencia al indicador. Si el indicador se ha restablecido, la CPU 901 obtiene la información de que ningún parámetro de calidad de la imagen está decodificado. Si el indicador se ha establecido, la CPU 901 obtiene la información de que un parámetro de calidad de la imagen está decodificado.
Se describirá un procedimiento para codificar datos residuales en un bloque haciendo referencia a la figura 5. Este procedimiento pertenece a un procedimiento de codificación de un parámetro de calidad de la imagen según una quinta realización a modo de ejemplo de la presente invención. A menos que se especifique lo contrario, la configuración para llevar a cabo el procedimiento de codificación y la operación de las etapas es la misma que en la primera realización a modo de ejemplo.
La figura 5 muestra un procedimiento para codificar un parámetro de calidad de la imagen y codificar datos residuales. El procedimiento implementa el procesamiento mostrado en las figuras 17 y 1. Este procedimiento se llama desde la etapa S1306 de la figura 13. En la etapa S501, la CPU 901 obtiene un tamaño del bloque objetivo. En la etapa S502, la CPU 901 obtiene un tamaño de bloque mínimo de control de la calidad de la imagen. En la etapa 5503, la CPU 901 calcula los costes cuando el bloque objetivo se divide y cuando no, respectivamente. En la etapa 5504, la CPU 901 determina si dividir el bloque objetivo. En la etapa S505, la CPU 901 envía un indicador de división de bloque establecido como falso. En la etapa S506, la CPU 901 determina si el tamaño del bloque objetivo es mayor o igual que el tamaño de bloque mínimo de control de la calidad de la imagen. En la etapa S507, la CPU 901 calcula un parámetro de calidad de la imagen. En la etapa S508, la CPU 901 lleva a cabo un procedimiento para codificar el parámetro de calidad de la imagen. En la etapa S509, la CPU 901 lleva a cabo la predicción y lleva a cabo una transformación ortogonal, una cuantificación y una codificación de longitud variable. En la etapa S510, la CPU 901 envía un indicador de división de bloque establecido como verdadero. En la etapa S511, la CPU 901 determina si el tamaño del bloque objetivo es igual al tamaño de bloque mínimo de control de la calidad de la imagen. En la etapa S512, la CPU 901 calcula un parámetro de calidad de la imagen. En la etapa S513, la CPU 901 codifica el parámetro de calidad de la imagen. En la etapa S514, la CPU 901 procesa los bloques de división incluidos.
El procedimiento de procesamiento se describirá concretamente a continuación. En la etapa S501, la CPU 901 obtiene un tamaño del bloque objetivo. Inmediatamente después de que se llame al presente procedimiento desde el procedimiento de la figura 13, el bloque objetivo a procesar es un bloque de retícula en sí mismo. En la presente realización a modo de ejemplo, el valor del tamaño del bloque objetivo es de 64, aunque no está limitado a este. A medida que el nivel de la estructura de árbol cuaternario de la región desciende posteriormente debido a llamadas recursivas, el valor del tamaño cambia a 32, 16 y 8. Se debe observar que el número de niveles no está limitado a los mismos.
En la etapa S502, la CPU 901 obtiene un tamaño de bloque mínimo de control de la calidad de la imagen que se establece desde el exterior. En la presente realización a modo de ejemplo, el valor del tamaño de bloque mínimo de control de la calidad de la imagen es de 16, aunque no está limitado a este.
En la etapa S503, la CPU 901 calcula los costes cuando el bloque se divide y cuando no, respectivamente. Los costes se calculan utilizando los multiplicadores de Lagrange mencionados anteriormente, así como las características de la imagen, las estadísticas y las longitudes de código predichas.
En la etapa S504, la CPU 901 compara los costes con y sin división, calculados en la etapa S503. Si el coste con división de bloque es menor que el coste sin división de bloque (SÍ, en la etapa S504), la CPU 901 lleva a cabo las etapas S510 a S514. Si no (NO, en la etapa S504), la CPU 901 lleva a cabo las etapas S505 a S509.
En la etapa S505, la CPU 901 envía un indicador de división de bloque establecido como falso. En la etapa S506, la CPU 901 determina si el tamaño del bloque objetivo es mayor o igual que el tamaño de bloque mínimo de control de la calidad de la imagen. Si el tamaño del bloque objetivo es mayor o igual (SÍ, en la etapa S506), la CPU 901 lleva a cabo las etapas S507 a S509. Si no (NO, en la etapa S506), la CPU 901 lleva a cabo la etapa S509 sin llevar a cabo las etapas S507 y S508.
En la etapa S507, la CPU 901 lleva a cabo el control de velocidad en el bloque objetivo para calcular un parámetro de calidad de la imagen. En la etapa S508, la CPU 901 codifica el parámetro de calidad de la imagen calculado en la etapa S507. En la presente realización a modo de ejemplo, la CPU 901 determina un valor de diferencia entre el parámetro de calidad de la imagen utilizado en el bloque anterior y el parámetro de calidad de la imagen calculado en la etapa S507 como un valor de QP_DELTA. La CPU 901 codifica el valor de QP_DELTA determinado mediante codificación de Golomb en el código de QP_DELTA, que es el código del parámetro de calidad de la imagen.
En la etapa S509, la CPU 901 lleva a cabo una transformación ortogonal, una cuantificación y una codificación de longitud variable en datos residuales para generar datos de coeficientes codificados. La CPU 901 lleva a cabo la cuantificación utilizando el parámetro de calidad de la imagen calculado en la etapa S507. Si en la etapa S506 se determina que el tamaño del bloque objetivo es menor que el tamaño de bloque mínimo de control de la calidad de la imagen (NO, en la etapa S506), la CPU 901 utiliza el mismo parámetro de calidad de la imagen que el utilizado para la cuantificación previa.
En la etapa S510, la CPU 901 codifica un indicador de división de bloque establecido como verdadero. En la etapa S511, la CPU 901 determina si el tamaño del bloque objetivo es igual al tamaño de bloque mínimo de control de la calidad de la imagen. Si el tamaño del bloque objetivo es igual al tamaño de bloque mínimo de control de la calidad de la imagen (SÍ, en la etapa S511), la CPU 901 lleva a cabo las etapas S512 a S514. Si no (NO, en la etapa S511), la CPU 901 lleva a cabo la etapa S514 sin llevar a cabo las etapas S512 y S513.
En la etapa S512, la CPU 901 lleva a cabo el procesamiento de control de la velocidad para calcular un parámetro de calidad de la imagen con el que codificar el bloque objetivo. Todos los bloques de división incluidos están sujetos al control de velocidad. Los bloques de división incluidos están codificados con el mismo parámetro de calidad de la imagen.
En la etapa S513, la CPU 901 lleva a cabo la misma operación que en la etapa S508 para codificar el parámetro de calidad de la imagen calculado en la etapa S512. En la etapa S514, la CPU 901 lleva a cabo recursivamente el presente procedimiento en cuatro bloques de división (superior izquierdo, superior derecho, inferior izquierdo e inferior derecho) que están incluidos en el nivel jerárquicamente subsiguiente. Cada uno de los bloques de división tiene un tamaño de 1/2 del bloque objetivo original tanto en altura como en anchura. El tamaño del bloque objetivo disminuye división a división. Dicho procesamiento recursivo se puede llevar a cabo hasta un tamaño de bloque tan pequeño como de 8 x 8 píxeles. Mediante el procesamiento recursivo, el código de indicador de división, el código de QP_DELTA y los datos de coeficiente en los bloques de división respectivos se envían como una secuencia en un orden estructural, tal como se muestra en la figura 16.
Tal como se describió anteriormente, el procesamiento de control de la velocidad y el procesamiento de codificación de los parámetros de calidad de la imagen pueden integrarse uno con otro. Incluso, dicha configuración permite el control de la calidad de la imagen en unidades más finas como el procedimiento de codificación de un parámetro de calidad de la imagen descrito en la tercera realización a modo de ejemplo.
Un procedimiento para decodificar un parámetro de calidad de la imagen según una sexta realización a modo de ejemplo de la presente invención se describirá haciendo referencia a la figura 6.
La figura 6 muestra un procedimiento para decodificar un parámetro de calidad de la imagen. Este procedimiento se aplica a la etapa S1405 de la figura 14. En la etapa S601, la CPU 901 obtiene el tamaño de un bloque objetivo a decodificar. En la etapa S602, la CPU 901 obtiene un tamaño de bloque mínimo de control de la calidad de la imagen. En la etapa S603, la CPU 901 decodifica un indicador de división de bloque. En la etapa S604, la CPU 901 determina si el bloque objetivo a decodificar está dividido. En la etapa S605, la CPU 901 determina si el tamaño del bloque objetivo es mayor o igual que el tamaño de bloque mínimo de control de la calidad de la imagen. En la etapa S606, la CPU 901 decodifica un parámetro de calidad de la imagen. En la etapa S607, la CPU 901 lleva a cabo una decodificación de longitud variable, una cuantificación inversa y una transformación ortogonal inversa. En la etapa S608, la CPU 901 determina si el tamaño del bloque objetivo es igual al tamaño de bloque mínimo de control de la calidad de la imagen. En la etapa S609, la CPU 901 decodifica un parámetro de calidad de la imagen. En la etapa S610, la CPU 901 llama de manera recursiva al presente procedimiento de decodificación, dirigido a bloques de división incluidos.
El procedimiento de las etapas se describirá concretamente a continuación. En la etapa S601, la CPU 901 obtiene el tamaño de un bloque objetivo para decodificar. Inmediatamente después de que se llame al presente procedimiento desde el procedimiento de la figura 14, el bloque objetivo a procesar es un bloque de retícula en sí mismo. En la presente realización a modo de ejemplo, un bloque de retícula tiene un valor de tamaño de 64, aunque no está limitado a este. A medida que el nivel de la estructura de árbol cuaternario de la región desciende posteriormente debido a llamadas recursivas, el valor del tamaño cambia a 32, 16 y 8. Se debe tener en cuenta que el número de niveles no está limitado a estos.
En la etapa S602, la CPU 901 obtiene un tamaño de bloque mínimo de control de la calidad de la imagen. En la presente realización a modo de ejemplo, la CPU 901 obtiene el tamaño de bloque mínimo de control de la calidad de la imagen que está incrustado en la información de la cabecera del fotograma.
En la etapa S603, la CPU 901 obtiene el estado de división del bloque. En la presente realización a modo de ejemplo, la CPU 901 hace referencia al valor del indicador de división de bloque que es decodificado en la etapa S1801 de la figura 18.
En la etapa S604, la CPU 901 determina si el valor del indicador del bloque división es verdadero o falso. Si es falso (NO, en la etapa S604), la CPU 901 lleva a cabo las etapas S605 a S607. Si es verdadero (SÍ, en la etapa S604), la CPU 901 lleva a cabo las etapas S608 a S610.
En la etapa S605, la CPU 901 determina si el tamaño del bloque objetivo es mayor o igual que el tamaño de bloque mínimo de control de la calidad de la imagen. Si el tamaño del bloque objetivo es mayor o igual que el tamaño de bloque mínimo de control de la calidad de la imagen (SÍ, en la etapa S605), la CPU 901 lleva a cabo las etapas S606 y s 607. Si no (NO, en la etapa S605), la CPU 901 lleva a cabo la etapa S607 sin llevar a cabo la etapa S606.
En la etapa S606, la CPU 901 decodifica el código del parámetro de calidad de la imagen. En la presente realización a modo de ejemplo, la CPU 901 decodifica el código de QP_DELTA en un valor de QP_DELTA mediante la decodificación de Golomb. A continuación, la CPU 901 agrega el valor de QP_DELTA a un parámetro de calidad de la imagen que se ha utilizado en la cuantificación inversa anterior, generando de este modo un parámetro de calidad de la imagen.
En la etapa S607, la CPU 901 lleva a cabo una decodificación de longitud variable, una cuantificación inversa y una transformación ortogonal inversa. Para la cuantificación inversa, la CPU 901 utiliza el parámetro de calidad de la imagen decodificado en la etapa S606. Si el tamaño del bloque objetivo es menor que el tamaño de bloque mínimo de control de la calidad de la imagen (NO, en la etapa S608), la CPU 901 utiliza el parámetro de calidad de la imagen que se ha utilizado para cuantificar inversamente el bloque objetivo anterior. Posteriormente, la CPU 901 finaliza la decodificación del bloque objetivo.
En la etapa S608, la CPU 901 determina si el tamaño del bloque objetivo es igual al tamaño de bloque mínimo de control de la calidad de la imagen. Si el tamaño del bloque objetivo es igual al tamaño de bloque mínimo de control de la calidad de la imagen (SÍ, en la etapa S608), la CPU 901 lleva a cabo la etapa S609. Si no (NO, en la etapa S608), la CPU 901 continúa con la etapa S610 sin llevar a cabo la etapa S609.
En la etapa S609, la CPU 901 decodifica el código del parámetro de calidad de la imagen como en la etapa S606. En la etapa S610, la CPU 901 lleva a cabo recursivamente el presente procedimiento en cuatro bloques de división (superior izquierdo, superior derecho, inferior izquierdo, superior derecho) que están incluidos en el nivel jerárquicamente posterior. Cada uno de los bloques de división tiene un tamaño de 1/2 del bloque objetivo original tanto en altura como en anchura. El tamaño del bloque objetivo disminuye de división a división. Mediante dicho procesamiento recursivo, la CPU 901 decodifica el código de indicador de división, el código de QP_DELTA y los datos de los coeficientes en cada bloque de división en el orden de la estructura de árbol cuaternario de la región tal como se muestra en la figura 16.
Tal como se describió anteriormente, el procesamiento recursivo para escanear la estructura de árbol cuaternario de la región y el procesamiento de decodificación de los parámetros de calidad de la imagen se puede integrar uno con otro. Incluso, dicha configuración puede decodificar una secuencia codificada mediante el procedimiento de codificación según la primera realización a modo de ejemplo o la quinta realización a modo de ejemplo.
Una séptima realización a modo de ejemplo de la presente invención trata con un procedimiento de codificación de bloque de división. El procedimiento de codificación de bloque de división según la presente realización a modo de ejemplo se implementa utilizando la configuración mostrada en la figura 9.
Antes de la codificación, la CPU 901 establece un perfil y un nivel. Los perfiles describen las características de un flujo que se generará en la presente realización a modo de ejemplo. Los niveles son un conjunto de parámetros que están permitidos según el rendimiento del procesamiento del decodificador. Ya que el rendimiento del procesamiento depende principalmente del tamaño de la imagen, los niveles están definidos para los tamaños de imagen respectivos. No obstante, las unidades de definición de nivel no están limitadas a los tamaños de imagen. Por ejemplo, los niveles se pueden establecer según el número de bloques de retícula a procesar, porque el rendimiento de procesamiento depende del número. En la presente realización a modo de ejemplo, los tamaños de bloque mínimo de control de la calidad de la imagen se establecen en un valor mínimo en cada nivel. Las figuras 21A y 21B muestran tablas que definen los tamaños mínimos de bloque de control de la calidad de la imagen limitados por perfil y por nivel.
La presente realización a modo de ejemplo trata un caso en el que los perfiles incluyen un perfil de referencia que utiliza solo herramientas básicas y un perfil principal que utiliza otras herramientas. No obstante, los perfiles no están limitados a los mismos.
La figura 21A muestra una tabla que muestra los niveles y los límites de los tamaños mínimos de bloque de control de la calidad de la imagen en el perfil de referencia. La figura 21B muestra una tabla que muestra los niveles y los límites del tamaño de bloque mínimo de control de la calidad de la imagen en el perfil principal.
En la presente realización a modo de ejemplo, los niveles se clasifican por el número máximo de bloques de retícula (64 x 64 píxeles) incluidos en un fotograma. Específicamente, el nivel 1 está destinado a imágenes relativamente pequeñas, tal como de 640 x 480 píxeles. El nivel 2 está destinado a imágenes de tamaño medio de 1920 x 1080 píxeles. El nivel 3 está destinado a imágenes grandes de 4096 x 2160 píxeles. Se debe observar que el número de niveles y las clasificaciones de nivel no limitan la esencia de la presente invención.
Se describirá el perfil de referencia mostrado en la figura 21A. El nivel 1 muestra que el valor mínimo de un tamaño de bloque mínimo de control de la calidad de la imagen es 8 y los tamaños mínimos de bloque de control de la calidad de la imagen se pueden establecer en el intervalo de 8 a 64. El nivel 2 muestra que el valor mínimo de un tamaño de bloque mínimo de control de la calidad de la imagen es 16 y los tamaños mínimos de bloque de control de la calidad de la imagen se pueden establecer en el intervalo de 16 a 64. El nivel 3 muestra que el valor mínimo de un tamaño de bloque mínimo de control de la calidad de la imagen es 32 y los tamaños mínimos de bloque de control de la calidad de la imagen se pueden establecer en el intervalo de 32 a 64. El perfil principal mostrado en la figura 21B muestra que los tamaños mínimos de bloque de control de la calidad de la imagen están controlados en el intervalo de 8 a 64, independientemente del nivel.
La CPU 901 determina el perfil y el nivel dependiendo de las condiciones de un procedimiento o aparato de codificación, tales como herramientas y capacidades de memoria, y/o considerando las condiciones de un procedimiento o aparato de decodificación. No obstante, el procedimiento para determinar el perfil y el nivel no está limitado especialmente. Un usuario no mostrado puede establecer un perfil y un nivel. El perfil y nivel determinados pueden codificarse, incluirse en una cabecera de secuencia que describe la información sobre una imagen en movimiento completa, y enviarse desde la interfaz de comunicación 905. Dicho perfil y nivel pueden estar grabados en el HDD 903.
A continuación, se describirá un procedimiento para codificar fotogramas. En la etapa S1301 de la figura 13, como la primera realización a modo de ejemplo, la CPU 901 establece inicialmente un parámetro de un tamaño de bloque mínimo de control de la calidad de la imagen. La figura 22 es un diagrama de flujo que muestra un procedimiento para calcular un tamaño de bloque mínimo de control de la calidad de la imagen. En la etapa S2201, la CPU 901 determina un tipo de perfil. Si el tipo de perfil es un perfil de referencia (PERFIL DE REFERENCIA en la etapa S2202), la CPU 901 lleva a cabo la etapa S2204 y las etapas posteriores. Si el tipo de perfil es un perfil principal (PERFIL PRINCIPAL en la etapa S2202), la CPU 901 lleva a cabo la etapa S2203.
El caso con el perfil principal se describirá en primer lugar. En la etapa S2203, la CPU 901 establece el tamaño de bloque mínimo de control de la calidad de la imagen en 8. A continuación, la CPU 901 finaliza el procesamiento. A continuación, se describirá el caso con el perfil de referencia. En la etapa S2204, la CPU 901 obtiene un valor de nivel. En la presente realización a modo de ejemplo, el valor del nivel se calcula según un tamaño de imagen de entrada. El valor del nivel indica un nivel mínimo en el que se puede decodificar una secuencia del tamaño de la imagen de entrada.
En la etapa S2205, la CPU 901 determina si el valor de nivel es 1. Si la determinación es verdadero (SÍ, en la etapa S2205), la CPU 901 lleva a cabo la etapa S2206. Si la determinación es falso (NO, en la etapa S2205), la CPU 901 lleva a cabo la etapa S2207. En la etapa S2206, la CPU 901 establece el tamaño de bloque mínimo de control de la calidad de la imagen en 8. En la etapa S2207, la CPU 901 determina si el valor del nivel es 2. Si la determinación es verdadero (SÍ, en la etapa S2207), la CPU 901 lleva a cabo la etapa S2208. Si la determinación es falso (NO, en la etapa S2207), la CPU 901 lleva a cabo la etapa S2209. En la etapa S2208, la CPU 901 establece el tamaño de bloque mínimo de control de la calidad de la imagen en 16. En la etapa S2209, la CPU 901 establece el tamaño de bloque mínimo de control de la calidad de la imagen a 32.
A continuación, la CPU 901 vuelve al proceso mostrado en la figura 13. En la etapa S1302, como la primera realización a modo de ejemplo, la CPU 901 codifica el tamaño de bloque mínimo de control de la calidad de la imagen. En la etapa S1303, la CPU 901 genera la información de la cabecera de fotograma que incluye los datos codificados. La figura 23A muestra el flujo de bits generado. Una cabecera de secuencia incluye datos codificados en un perfil y un nivel, seguidos de códigos que indican el tamaño de la imagen. Una cabecera de fotograma en cada pieza de datos de fotograma incluye el código de tamaño de bloque mínimo de control de la calidad de la imagen, con una configuración de tamaño mayor o igual al valor mínimo de un tamaño de bloque mínimo de control de la calidad de la imagen definido en la figura 21A.
La figura 24 es un diagrama de flujo que muestra un procedimiento completo. En la etapa S2401, la CPU 901 introduce el tamaño de una imagen a codificar. En la etapa S2402, la CPU 901 selecciona un perfil. La CPU 901 también selecciona un nivel según la figura 21A o 21B. En la etapa S2403, la CPU 901 obtiene el valor mínimo de un tamaño de bloque mínimo de control de la calidad de la imagen según el nivel seleccionado. En la etapa S2404, la CPU 901 codifica el perfil y nivel seleccionados. En la etapa S2405, la CPU 901 genera una cabecera de secuencia que incluye los datos codificados en el perfil y el nivel. En la etapa S2406, la CPU 901 lleva a cabo la codificación en unidades de fotogramas. Los tamaños posibles de los bloques mínimos de control de la calidad de la imagen en cada fotograma son mayores o iguales que el valor mínimo anterior de un tamaño de bloque mínimo de control de la calidad de la imagen. En la etapa S2407, la CPU 901 determina si todos los fotogramas están codificados. Si no todos los fotogramas están codificados (NO, en la etapa S2407), la CPU 901 continúa con la etapa S2406 para codificar un fotograma siguiente. Si todos los fotogramas están codificados (SÍ, en la etapa S2407), la CPU 901 finaliza el proceso de codificación.
Proporcionar perfiles y niveles y la limitación de los tamaños mínimos de bloque de control de la calidad de la imagen permite la determinación de tamaños mínimos de bloque de control de la calidad de la imagen dependiendo del tamaño de la imagen. Por lo tanto, es posible codificar una imagen, aunque se omiten las operaciones en bloques más pequeños sin causar una disminución en la calidad de la imagen. Esto permite diseñar un circuito óptimo para un aparato deseado y diseñar una configuración para ciertos consumos de energía suprimidos. Por ejemplo, un perfil de referencia se puede utilizar para comunicaciones móviles, de modo que se pueden imponer restricciones de carga severas en las operaciones de codificación a la vista del tiempo de funcionamiento de la batería. Se puede utilizar un perfil principal para aparatos estacionarios sin batería, por lo que se imponen restricciones más flexibles sobre la carga de operación. En términos de software, el tiempo de operación para llevar a cabo el control de cuantificación en bloques más pequeños que los tamaños mínimos de bloque de control de la calidad de la imagen se puede omitir para agilizar.
Se comprenderá que un procedimiento de codificación basado en perfil y nivel, tal como la presente realización a modo de ejemplo, se puede aplicar a la tercera y quinta realizaciones a modo de ejemplo.
Los valores mínimos de un tamaño de bloque mínimo de control de la calidad de la imagen determinado para los niveles respectivos, mostrados en las figuras 21A y 21B, siempre se pueden utilizar en los niveles respectivos. En tal caso, se puede omitir el código de tamaño de bloque mínimo de control de la calidad de la imagen que se incluirá en cada fotograma. La figura 23B muestra dicho flujo de bits. El flujo de bits mostrado en la figura 23B difiere del mostrado en la figura 23A en que las cabeceras de fotograma no incluyen el código de tamaño de bloque mínimo de control de la calidad de la imagen. Los tamaños de bloque mínimo de control de la calidad de la imagen en la secuencia se fijan en el valor mínimo de un tamaño de bloque mínimo de control de la calidad de la imagen que está definido para el perfil y el nivel. Esto proporciona el efecto de eliminar el código redundante para mejorar la eficiencia de la codificación.
Las capacidades de memoria para almacenar matrices de cuantificación más pequeñas que el tamaño de bloque mínimo de control de la calidad de la imagen y el procesamiento para actualizar dichas matrices de cuantificación también pueden estar omitidos.
Una octava realización a modo de ejemplo de la presente invención trata un procedimiento de decodificación de imagen para decodificar un flujo de bits que se genera en la séptima realización a modo de ejemplo. El procedimiento de decodificación de imagen según la presente realización a modo de ejemplo se implementa utilizando la configuración mostrada en la figura 9.
Antes de decodificar fotogramas, la CPU 901 introduce y decodifica una cabecera de secuencia. La CPU 901 decodifica el código relacionado con un perfil y un nivel según la figura 23A. La CPU 901 también decodifica el código de la anchura de la imagen y el código de la altura de imagen. Si el perfil decodificado es un perfil de referencia, la CPU 901 hace referencia a la tabla de la figura 21A. La CPU 901 selecciona y determina adicionalmente el valor mínimo de un tamaño de bloque mínimo de control de la calidad de la imagen correspondiente al nivel. Si el perfil decodificado es un perfil principal, la CPU 901 hace referencia a la tabla de la figura 21B y establece el valor mínimo de un tamaño de bloque mínimo de control de la calidad de la imagen en 8. En este momento, la CPU 901 reserva memorias intermedias y otras memorias necesarias en la RAM 902. Por ejemplo, con un perfil de referencia en el nivel 2, no se llevará a cabo ningún control de la calidad de la imagen en un tamaño de bloque de 8 x 8 píxeles. En tal caso, se pueden omitir áreas de memoria para almacenar parámetros de calidad de la imagen en unidades de bloques de 8x8 y 4x4 píxeles.
La CPU 901 decodifica los fotogramas según el diagrama de flujo de la figura 14, que se ha descrito en la segunda realización a modo de ejemplo. En la etapa S1402, la CPU 901 decodifica un tamaño de bloque mínimo de control de la calidad de la imagen incluido en una cabecera de fotograma. En la etapa S1405, la CPU 901 lleva a cabo la decodificación jerárquica con un bloque de retícula como un bloque objetivo. En la etapa S1805 de la figura 18 descrita en la segunda realización a modo de ejemplo, la CPU 901 lleva a cabo el procesamiento recursivo según el nivel jerárquico, decodificando de este modo los parámetros de control de la calidad de la imagen hasta bloques del tamaño de bloque mínimo de control de la calidad de la imagen.
La figura 25 es un diagrama de flujo que muestra un procedimiento completo. En la etapa S2501, la CPU 901 introduce una cabecera de secuencia. En la etapa S2502, la CPU 901 decodifica datos codificados en un perfil y un nivel, obteniendo de este modo el perfil y el nivel. En la etapa S2503, la CPU 901 obtiene el valor mínimo de un tamaño de bloque mínimo de control de la calidad de la imagen según el nivel seleccionado. En la etapa S2504, la CPU 901 lleva a cabo la decodificación en unidades de fotogramas. Esto garantiza que los posibles tamaños de bloques mínimos de control de la calidad de la imagen en cada fotograma sean mayores o iguales al valor mínimo anterior de un tamaño de bloque mínimo de control de la calidad de la imagen. En la etapa S2505, la CPU 901 determina si todos los fotogramas están decodificados. Si no todos los fotogramas están codificados (NO, en la etapa S2505), la CPU 901 continúa con la etapa S2504 para decodificar un fotograma siguiente. Si se han decodificado todos los fotogramas (SÍ, en la etapa S2505), la CPU 901 finaliza el proceso de decodificación.
Proporcionar perfiles y niveles y la limitación de los tamaños mínimos de bloque de control de la calidad de la imagen permite la determinación de tamaños mínimos de bloque de control de la calidad de la imagen dependiendo del tamaño de la imagen. Por lo tanto, es posible decodificar una imagen, aunque se omiten las operaciones en bloques pequeños sin causar una disminución en la calidad de la imagen. La determinación de los tamaños mínimos de bloque de control de la calidad de la imagen puede reducir el número de veces que se lleva a cabo un procesamiento recursivo, por lo que se pueden suprimir las variaciones en el tiempo para llevar a cabo la decodificación en unidades de bloques de retícula.
En consecuencia, es posible diseñar un circuito óptimo para un aparato previsto y diseñar una configuración para suprimir cierto consumo de energía. Por ejemplo, un perfil de referencia se puede utilizar para comunicaciones móviles, de modo que se pueden imponer restricciones de carga severas en las operaciones de codificación a la vista del tiempo de funcionamiento de la batería. Se puede utilizar un perfil principal para aparatos estacionarios sin batería, por lo que se imponen restricciones más flexibles sobre la carga de operación. En términos de software, el tiempo de operación para llevar a cabo el control de cuantificación en bloques más pequeños que los tamaños mínimos de bloque de control de la calidad de la imagen se puede omitir para agilizar.
Se comprenderá que la CPU 901 puede decodificar código relacionado con el perfil y el nivel según la figura 23B. Como en la descripción anterior, la CPU 901 introduce y decodifica una cabecera de secuencia. Según el perfil y el nivel resultantes, la CPU 901 determina un tamaño de bloque mínimo de control de la calidad de la imagen, tal como se ha descrito anteriormente. Cuando se decodifican fotogramas, la CPU 901 omite la etapa S1402 y utiliza el tamaño de bloque mínimo de control de la calidad de la imagen.
La determinación única de un tamaño de bloque mínimo de control de la calidad de la imagen según el perfil y el nivel hace posible la decodificación de imagen sin el código de tamaño de bloque mínimo de control de la calidad de la imagen en cada cabecera de fotograma.
La CPU 901 puede comparar un tamaño de bloque mínimo de control de la calidad de la imagen decodificado con un tamaño de bloque mínimo de control de la calidad de la imagen determinado por el perfil y el nivel. Si el último es mayor que el primero, la CPU 901 puede detectar el flujo de bits en busca de un error.
Esta solicitud reivindica la prioridad de la Solicitud de Patente Japonesa n.° 2011-004648 presentada el 13 de enero de 2011.

Claims (12)

REIVINDICACIONES
1. Aparato de codificación de imagen, configurado para dividir una imagen en bloques y codificar la imagen en unidades de bloques, comprendiendo el aparato de codificación de imagen:
un medio de obtención (901), configurado para obtener información sobre un tamaño de bloque de un bloque a codificar y configurado para obtener información sobre un tamaño de bloque mínimo utilizado para controlar un parámetro de cuantificación;
un medio de codificación de información (901), configurado para codificar la información sobre el tamaño de bloque mínimo utilizado para controlar un parámetro de cuantificación;
un medio de verificación (901), configurado para verificar si el bloque a codificar es un bloque que está dividido y, para los bloques que no están divididos, verificar si el tamaño del bloque a codificar es mayor o igual que el tamaño de bloque mínimo utilizado para controlar un parámetro de cuantificación; y
un medio de codificación (901);
en el que, si el tamaño de bloque del bloque a codificar es mayor o igual que el tamaño de bloque mínimo utilizado para controlar un parámetro de cuantificación (S105):
el medio de obtención (901) está configurado para obtener un primer parámetro de cuantificación para el bloque a codificar (S107) y el medio de codificación de información (901) está configurado para codificar un primer valor de diferencia entre el primer parámetro de cuantificación y un parámetro de cuantificación utilizado para codificar un bloque anterior (S108); y
el medio de codificación (901) está configurado para codificar el bloque a codificar utilizando el primer parámetro de cuantificación;
de otra manera:
el medio de obtención está configurado para obtener un segundo parámetro de cuantificación para el bloque a codificar (S107) y el medio de codificación de información está configurado para codificar un segundo valor de diferencia entre el segundo parámetro de cuantificación y un parámetro de cuantificación utilizado para codificar un bloque anterior (S108) en el caso de que:
el segundo valor de diferencia no haya sido codificado previamente para un bloque de un grupo de bloques que se obtiene por división de un bloque que tiene un tamaño de bloque igual al tamaño de bloque mínimo utilizado para controlar un parámetro de cuantificación, y comprende el bloque a codificar (S302); y
el bloque a codificar es el primer bloque en el grupo de bloques, en un orden de codificación, que incluye un coeficiente de transformación cuantificado que no es igual a cero; y
el medio de codificación (901) está configurado, además, para codificar el bloque a codificar del grupo de bloques utilizando el segundo parámetro de cuantificación, y para codificar un bloque posterior del grupo de bloques, en el orden de codificación, utilizando el segundo parámetro de cuantificación en el caso de que:
el siguiente bloque del grupo de bloques incluye un coeficiente de transformación cuantificado que no es igual a cero.
2. Aparato de codificación de imagen, según la reivindicación 1, en el que el primer valor de diferencia es un valor de diferencia entre el primer parámetro de cuantificación y un parámetro de cuantificación utilizado antes del primer parámetro de cuantificación, y
en el que el segundo valor de diferencia es un valor de diferencia entre el segundo parámetro de cuantificación y un parámetro de cuantificación utilizado antes del segundo parámetro de cuantificación.
3. El aparato de codificación de imagen, según la reivindicación 1, en el que la información sobre el tamaño de bloque mínimo utilizado para controlar un parámetro de cuantificación es un índice correspondiente a un tamaño de bloque.
4. El aparato de codificación de imagen, según la reivindicación 1, en el que el medio de obtención obtiene la información sobre el tamaño de bloque de un bloque a codificar haciendo referencia a la información que indica si dividir o no el bloque a codificar.
5. Aparato de decodificación de imagen, que comprende:
un primer medio de obtención (901), configurado para obtener un tamaño de bloque de un bloque a decodificar; un segundo medio de obtención (901), configurado para obtener un tamaño de bloque mínimo utilizado para controlar un parámetro de cuantificación para la cuantificación inversa;
un medio de verificación (901), configurado para verificar si un bloque a decodificar es un bloque que está dividido y, para los bloques que no están divididos, verificar si el tamaño de bloque del bloque a decodificar es mayor o igual que el tamaño de bloque mínimo utilizado para controlar un parámetro de cuantificación;
un medio de obtención de parámetros de cuantificación; y
un medio de decodificación,
en el que, si el tamaño de bloque del bloque a decodificar es mayor o igual que el tamaño de bloque mínimo utilizado para controlar un parámetro de cuantificación:
el medio de obtención del parámetro de cuantificación está configurado para decodificar un primer valor de diferencia entre un primer parámetro de cuantificación para el bloque a decodificar y un parámetro de cuantificación utilizado para decodificar un bloque anterior y configurado para obtener el primer parámetro de cuantificación para el bloque a decodificar utilizando el primer valor de diferencia; y
el medio de decodificación está configurado para decodificar el bloque a decodificar utilizando el primer parámetro de cuantificación; en caso contrario:
el medio de obtención del parámetro de cuantificación está configurado para decodificar un segundo valor de diferencia entre un segundo parámetro de cuantificación para el bloque a decodificar y un parámetro de cuantificación utilizado para decodificar un bloque anterior en el caso de que:
el segundo valor de diferencia no haya sido decodificado previamente para un bloque de un grupo de bloques que se obtiene por división de un bloque que tiene un tamaño de bloque igual al tamaño de bloque mínimo utilizado para controlar un parámetro de cuantificación, y comprende el bloque a decodificar; y el bloque a decodificar es el primer bloque del grupo de bloques, en un orden de decodificación, que incluye un coeficiente de transformación cuantificado que no es igual a cero;
el medio de obtención del parámetro de cuantificación está configurado para obtener el segundo parámetro de cuantificación para el bloque a decodificar utilizando el segundo valor de diferencia; y
el medio de decodificación (901) está configurado, además, para decodificar el bloque a decodificar del grupo de bloques utilizando el segundo parámetro de cuantificación, y para decodificar un bloque posterior del grupo de bloques, en el orden de decodificación, utilizando el segundo parámetro de cuantificación en el caso de que: el siguiente bloque del grupo de bloques incluya un coeficiente de transformación cuantificado que no es igual a cero.
6. Aparato de decodificación de imagen, según la reivindicación 5, en el que el primer valor de diferencia es un valor de diferencia entre el primer parámetro de cuantificación y un parámetro de cuantificación utilizado antes del primer parámetro de cuantificación, y en el que el segundo valor de diferencia es un valor de diferencia entre el segundo parámetro de cuantificación y un parámetro de cuantificación utilizado previamente al segundo parámetro de cuantificación.
7. Aparato de decodificación de imagen, según la reivindicación 5, en el que la información sobre el tamaño de bloque mínimo utilizado para controlar un parámetro de cuantificación es un índice correspondiente a un tamaño de bloque.
8. Aparato de decodificación de imagen, según la reivindicación 5, en el que el medio de obtención obtiene la información sobre el tamaño de bloque de un bloque a decodificar haciendo referencia a la información que indica si se debe dividir o no el bloque a decodificar.
9. Procedimiento de codificación de imagen para codificar imágenes, que divide una imagen en bloques y codifica la imagen en unidades de bloques, comprendiendo el procedimiento de codificación de imagen:
obtener información sobre un tamaño de bloque de un bloque a codificar (S101) y obtener información sobre un tamaño de bloque mínimo utilizado para controlar un parámetro de cuantificación (S102);
codificar información sobre el tamaño de bloque mínimo utilizado para controlar un parámetro de cuantificación utilizado para controlar la cuantificación;
verificar si el bloque a codificar es un bloque que está dividido (S104) y, para los bloques que no están divididos, verificar si el tamaño del bloque del bloque a codificar es mayor o igual que el tamaño de bloque mínimo utilizado para controlar un parámetro de cuantificación (S105);
si el tamaño de bloque del bloque a codificar es mayor o igual que el tamaño de bloque mínimo utilizado para controlar un parámetro de cuantificación (S105):
obtener un primer parámetro de cuantificación para el bloque a codificar (S107) y codificar un primer valor de diferencia entre el primer parámetro de cuantificación y un parámetro de cuantificación utilizado para codificar un bloque anterior (S108); y
codificar el bloque a codificar utilizando el primer parámetro de cuantificación;
de lo contrario:
obtener un segundo parámetro de cuantificación para el bloque a codificar (S107) y codificar un segundo valor de diferencia entre el segundo parámetro de cuantificación y un parámetro de cuantificación utilizado para codificar un bloque anterior (S108) en el caso de que:
el segundo valor de diferencia no haya sido previamente codificado para un bloque de un grupo de bloques que se obtiene por división de un bloque que tiene un tamaño de bloque igual al tamaño de bloque mínimo utilizado para controlar un parámetro de cuantificación y comprende el bloque a codificar (S302); y
el bloque a codificar sea el primer bloque del grupo de bloques, en un orden de codificación, que incluye un coeficiente de transformación cuantificado que no es igual a cero; y
codificar el bloque a codificar del grupo de bloques, utilizando el segundo parámetro de cuantificación, y codificar un bloque posterior del grupo de bloques, en el orden de codificación, utilizando el segundo parámetro de cuantificación en el caso de que:
el siguiente bloque del grupo de bloques incluya un coeficiente de transformación cuantificado que no es igual a cero.
10. Procedimiento de decodificación de imagen para la decodificación de imagen que comprende:
obtener un tamaño de bloque de un bloque a decodificar (S201);
obtener un tamaño de bloque mínimo utilizado para controlar un parámetro de cuantificación para la cuantificación inversa (S202);
verificar si un bloque a decodificar es un bloque que está dividido (S204) y, para los bloques que no están divididos, verificar si el tamaño del bloque a decodificar es mayor o igual que el tamaño de bloque mínimo utilizado para controlar un parámetro de cuantificación;
en el que, si el tamaño de bloque del bloque a decodificar es mayor o igual que el tamaño de bloque mínimo utilizado para controlar un parámetro de cuantificación:
decodificar un primer valor de diferencia entre un primer parámetro de cuantificación para el bloque a decodificar y un parámetro de cuantificación utilizado para decodificar un bloque anterior y obtener el primer parámetro de cuantificación para el bloque a decodificar utilizando el primer valor de diferencia; y
decodificar el bloque a decodificar utilizando el primer parámetro de cuantificación;
en caso contrario:
decodificar un segundo valor de diferencia entre un segundo parámetro de cuantificación para el bloque a decodificar y un parámetro de cuantificación utilizado para decodificar un bloque anterior en el caso de que:
el segundo valor de diferencia no haya sido decodificado previamente para un bloque de un grupo de bloques que se obtiene mediante la división de un bloque que tiene un tamaño de bloque igual al tamaño de bloque mínimo utilizado para controlar un parámetro de cuantificación y comprende el bloque a decodificar; y
el bloque a decodificar es el primer bloque del grupo de bloques, en un orden de decodificación, que incluye un coeficiente de transformación cuantificado que no es igual a cero;
obtener el segundo parámetro de cuantificación para el bloque a decodificar utilizando el segundo valor de diferencia; y
decodificar el bloque a decodificar del grupo de bloques utilizando el segundo parámetro de cuantificación, y decodificar un bloque posterior del grupo de bloques, en el orden de decodificación, utilizando el segundo parámetro de cuantificación en el caso de que:
el siguiente bloque del grupo de bloques incluya un coeficiente de transformación cuantificado que no es igual a cero.
11. Programa informático que, cuando es ejecutado en un ordenador hace que el ordenador lleve a cabo el procedimiento de codificación de imagen de la reivindicación 9.
12. Programa informático que, cuando es ejecutado en un ordenador, hace que el ordenador lleve a cabo el procedimiento de decodificación de imagen de la reivindicación 10.
ES12734504T 2011-01-13 2012-01-12 Aparato de codificación de imagen, procedimiento de codificación de imagen y programa, y aparato de decodificación de imagen, procedimiento de decodificación de imagen y programa Active ES2784761T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011004648 2011-01-13
PCT/JP2012/000151 WO2012096181A1 (en) 2011-01-13 2012-01-12 Image coding apparatus, image coding method, and program, and image decoding apparatus, image decoding method, and program

Publications (1)

Publication Number Publication Date
ES2784761T3 true ES2784761T3 (es) 2020-09-30

Family

ID=46507086

Family Applications (5)

Application Number Title Priority Date Filing Date
ES20151296T Active ES2883132T3 (es) 2011-01-13 2012-01-12 Aparato de codificación de imagen, procedimiento de codificación de imagen y programa, y aparato de decodificación de imagen, procedimiento de decodificación de imagen y programa
ES21176051T Active ES2926203T3 (es) 2011-01-13 2012-01-12 Aparato de codificación de imagen, procedimiento de codificación de imagen y programa, y aparato de decodificación de imagen, procedimiento de decodificación de imagen y programa
ES20151294T Active ES2936531T3 (es) 2011-01-13 2012-01-12 Aparato de codificación de imagen, procedimiento de codificación de imagen y programa, y aparato de decodificación de imagen, procedimiento de decodificación de imagen y programa
ES21176055T Active ES2924028T3 (es) 2011-01-13 2012-01-12 Aparato de codificación de imagen, procedimiento de codificación de imagen y programa, y aparato de decodificación de imagen, procedimiento de decodificación de imagen y programa
ES12734504T Active ES2784761T3 (es) 2011-01-13 2012-01-12 Aparato de codificación de imagen, procedimiento de codificación de imagen y programa, y aparato de decodificación de imagen, procedimiento de decodificación de imagen y programa

Family Applications Before (4)

Application Number Title Priority Date Filing Date
ES20151296T Active ES2883132T3 (es) 2011-01-13 2012-01-12 Aparato de codificación de imagen, procedimiento de codificación de imagen y programa, y aparato de decodificación de imagen, procedimiento de decodificación de imagen y programa
ES21176051T Active ES2926203T3 (es) 2011-01-13 2012-01-12 Aparato de codificación de imagen, procedimiento de codificación de imagen y programa, y aparato de decodificación de imagen, procedimiento de decodificación de imagen y programa
ES20151294T Active ES2936531T3 (es) 2011-01-13 2012-01-12 Aparato de codificación de imagen, procedimiento de codificación de imagen y programa, y aparato de decodificación de imagen, procedimiento de decodificación de imagen y programa
ES21176055T Active ES2924028T3 (es) 2011-01-13 2012-01-12 Aparato de codificación de imagen, procedimiento de codificación de imagen y programa, y aparato de decodificación de imagen, procedimiento de decodificación de imagen y programa

Country Status (11)

Country Link
US (6) US9445094B2 (es)
EP (5) EP3905680B1 (es)
JP (6) JP5963446B2 (es)
KR (5) KR101888515B1 (es)
CN (6) CN106454362B (es)
BR (6) BR122019025405B8 (es)
ES (5) ES2883132T3 (es)
HU (5) HUE060051T2 (es)
PL (5) PL3905680T3 (es)
RU (5) RU2551801C2 (es)
WO (1) WO2012096181A1 (es)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9549190B2 (en) * 2009-10-01 2017-01-17 Sk Telecom Co., Ltd. Method and apparatus for encoding/decoding image using variable-size macroblocks
BR122019025405B8 (pt) 2011-01-13 2023-05-02 Canon Kk Aparelho de codificação de imagem, método de codificação de imagem, aparelho de decodificação de imagem, método de decodificação de imagem e meio de armazenamento
JP6130128B2 (ja) * 2012-11-30 2017-05-17 任天堂株式会社 圧縮データのデータ構造、記録媒体、データ圧縮装置、データ圧縮システム、データ圧縮プログラム、およびデータ圧縮方法
US20150145535A1 (en) * 2013-11-26 2015-05-28 Semtech Corporation Capacitive sensing interface for proximity detection
US10298927B2 (en) * 2014-03-28 2019-05-21 Sony Corporation Image decoding device and method
US10735728B2 (en) 2015-10-12 2020-08-04 Lg Electronics Inc. Method for processing image and apparatus therefor
JPWO2018092868A1 (ja) 2016-11-21 2019-10-17 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 符号化装置、復号装置、符号化方法及び復号方法
WO2018092869A1 (ja) 2016-11-21 2018-05-24 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
EP3383043A1 (en) 2017-03-27 2018-10-03 Thomson Licensing Methods and apparatus for picture encoding and decoding
WO2019076138A1 (en) * 2017-10-16 2019-04-25 Huawei Technologies Co., Ltd. METHOD AND APPARATUS FOR ENCODING
EP3737098A4 (en) 2018-01-02 2021-06-09 Samsung Electronics Co., Ltd. CODING PROCESS AND ASSOCIATED APPARATUS, AND DECODING PROCESS AND ASSOCIATED APPARATUS
WO2019164660A1 (en) 2018-02-23 2019-08-29 Futurewei Technologies, Inc. Position dependent spatial varying transform for video coding
CA3157007A1 (en) * 2018-05-22 2019-11-28 Panasonic Intellectual Property Corporation Of America Encoder, decoder, encoding method, decoding method, and picture compression program
PT3782361T (pt) 2018-05-31 2023-11-17 Huawei Tech Co Ltd Transformada que varia espacialmente com um tipo de transformada adaptativa
JP7278719B2 (ja) 2018-06-27 2023-05-22 キヤノン株式会社 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
US20200068197A1 (en) * 2018-08-27 2020-02-27 Ati Technologies Ulc Benefit-based bitrate distribution for video encoding
CN110881129B (zh) * 2018-09-05 2024-01-05 华为技术有限公司 视频解码方法及视频解码器
US11399195B2 (en) * 2019-10-30 2022-07-26 Tencent America LLC Range of minimum coding block size in video coding
CN114697656B (zh) * 2020-12-31 2024-02-13 浙江宇视科技有限公司 一种编码方法、装置、电子设备及介质
CN113658283B (zh) * 2021-08-18 2023-11-28 北京达佳互联信息技术有限公司 图像处理方法、装置、电子设备及存储介质

Family Cites Families (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0535963B1 (en) * 1991-10-02 1998-06-10 Matsushita Electric Industrial Co., Ltd. Orthogonal transformation encoder
US5754699A (en) * 1994-11-24 1998-05-19 Victor Company Of Japan, Ltd. Method of reducing mosquito noise generated during decoding process of image data and device for decoding image data using the same
US6002802A (en) * 1995-10-27 1999-12-14 Kabushiki Kaisha Toshiba Video encoding and decoding apparatus
US6366614B1 (en) 1996-10-11 2002-04-02 Qualcomm Inc. Adaptive rate control for digital video compression
US6124811A (en) * 1998-07-02 2000-09-26 Intel Corporation Real time algorithms and architectures for coding images compressed by DWT-based techniques
US6570926B1 (en) * 1999-02-25 2003-05-27 Telcordia Technologies, Inc. Active techniques for video transmission and playback
US6477280B1 (en) * 1999-03-26 2002-11-05 Microsoft Corporation Lossless adaptive encoding of finite alphabet data
US6600836B1 (en) * 2000-01-28 2003-07-29 Qualcomm, Incorporated Quality based image compression
KR100973216B1 (ko) 2002-04-23 2010-07-30 노키아 코포레이션 비디오 부호화 시스템에서 양자화 변수들을 표시하는 방법 및 장치
US6795584B2 (en) * 2002-10-03 2004-09-21 Nokia Corporation Context-based adaptive variable length coding for adaptive block transforms
EP1453004A2 (en) * 2003-02-28 2004-09-01 NTT DoCoMo, Inc. Image encoding apparatus and method
JP3959039B2 (ja) * 2003-02-28 2007-08-15 株式会社エヌ・ティ・ティ・ドコモ 画像符号化装置、画像符号化方法、画像符号化プログラム、画像復号装置、画像復号方法、及び画像復号プログラム
US6900748B2 (en) * 2003-07-17 2005-05-31 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Method and apparatus for binarization and arithmetic coding of a data value
US7724827B2 (en) * 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
JP4127818B2 (ja) 2003-12-24 2008-07-30 株式会社東芝 動画像符号化方法及びその装置
US20050259730A1 (en) * 2004-05-18 2005-11-24 Sharp Laboratories Of America, Inc. Video coding with residual color conversion using reversible YCoCg
JP4247680B2 (ja) * 2004-07-07 2009-04-02 ソニー株式会社 符号化装置、符号化方法、符号化方法のプログラム及び符号化方法のプログラムを記録した記録媒体
JP2006157481A (ja) * 2004-11-30 2006-06-15 Canon Inc 画像符号化装置及びその方法
JP4737991B2 (ja) * 2005-01-04 2011-08-03 株式会社東芝 再生装置
US8019000B2 (en) * 2005-02-24 2011-09-13 Sanyo Electric Co., Ltd. Motion vector detecting device
JP4146444B2 (ja) * 2005-03-16 2008-09-10 株式会社東芝 動画像符号化の方法及び装置
KR101246915B1 (ko) * 2005-04-18 2013-03-25 삼성전자주식회사 동영상 부호화 또는 복호화 방법 및 장치
EP1753242A2 (en) * 2005-07-18 2007-02-14 Matsushita Electric Industrial Co., Ltd. Switchable mode and prediction information coding
JP2007116351A (ja) 2005-10-19 2007-05-10 Ntt Docomo Inc 画像予測符号化装置、画像予測復号装置、画像予測符号化方法、画像予測復号方法、画像予測符号化プログラム、及び画像予測復号プログラム
KR101200865B1 (ko) * 2006-03-23 2012-11-13 삼성전자주식회사 영상의 부호화 방법 및 장치, 복호화 방법 및 장치
KR20080045516A (ko) * 2006-11-20 2008-05-23 삼성전자주식회사 Rgb 영상의 부호화 및 복호화 방법과 그 장치
EP3107292B1 (en) 2007-03-20 2018-08-15 Fujitsu Limited Video encoding method and apparatus, and video decoding apparatus
JP4650461B2 (ja) * 2007-07-13 2011-03-16 ソニー株式会社 符号化装置、符号化方法、プログラム、及び記録媒体
US8345763B2 (en) * 2007-11-27 2013-01-01 Mediatek Inc. Motion compensation method and integrated circuit utilizing the same
KR101213704B1 (ko) * 2007-12-05 2012-12-18 삼성전자주식회사 가변 컬러 포맷 기반 동영상 부호화 방법 및 장치, 그복호화 방법 및 장치
JP5359302B2 (ja) * 2008-03-18 2013-12-04 ソニー株式会社 情報処理装置および方法、並びにプログラム
JP4506875B2 (ja) * 2008-05-19 2010-07-21 ソニー株式会社 画像処理装置および画像処理方法
WO2009157577A1 (ja) 2008-06-27 2009-12-30 ソニー株式会社 画像処理装置及び画像処理方法
JP5035910B2 (ja) * 2008-06-27 2012-09-26 ソニー株式会社 画像処理装置および画像処理方法、並びにプログラム
US9467699B2 (en) * 2008-12-03 2016-10-11 Hfi Innovation Inc. Method for performing parallel coding with ordered entropy slices, and associated apparatus
US9635368B2 (en) * 2009-06-07 2017-04-25 Lg Electronics Inc. Method and apparatus for decoding a video signal
EP2273796A3 (en) 2009-06-09 2011-12-21 Thomson Licensing Method and device for coding
JP4774451B2 (ja) 2009-06-25 2011-09-14 株式会社大潟村あきたこまち生産者協会 米麺の製造方法と該方法による米麺と該米麺による乾麺
US20110274162A1 (en) * 2010-05-04 2011-11-10 Minhua Zhou Coding Unit Quantization Parameters in Video Coding
EP4290860A3 (en) * 2010-06-04 2024-02-14 Sony Group Corporation Image processing apparatus and method
US20110317757A1 (en) * 2010-06-25 2011-12-29 Qualcomm Incorporated Intra prediction mode signaling for finer spatial prediction directions
US8848779B2 (en) * 2010-07-15 2014-09-30 Sharp Laboratories Of America, Inc. Method of parallel video coding based on block size
US20120044992A1 (en) * 2010-08-17 2012-02-23 Qualcomm Incorporated Low complexity adaptive filter
MX2013001774A (es) * 2010-09-30 2013-03-18 Panasonic Corp Metodo de decodificacion de imagen, metodo de codificacion de imagen, aparato de decodificacion de imagen, aparato codificacion de imagen, programa, y circuito integrado.
US20120114034A1 (en) * 2010-11-08 2012-05-10 Mediatek Inc. Method and Apparatus of Delta Quantization Parameter Processing for High Efficiency Video Coding
CN105847830B (zh) * 2010-11-23 2019-07-12 Lg电子株式会社 由编码装置和解码装置执行的间预测方法
US9288496B2 (en) * 2010-12-03 2016-03-15 Qualcomm Incorporated Video coding using function-based scan order for transform coefficients
BR122019025405B8 (pt) 2011-01-13 2023-05-02 Canon Kk Aparelho de codificação de imagem, método de codificação de imagem, aparelho de decodificação de imagem, método de decodificação de imagem e meio de armazenamento
CN102685478B (zh) * 2011-03-11 2015-04-29 华为技术有限公司 编码方法以及装置、解码方法以及装置
US9609336B2 (en) * 2013-04-16 2017-03-28 Fastvdo Llc Adaptive coding, transmission and efficient display of multimedia (acted)
US20140376611A1 (en) * 2013-06-21 2014-12-25 Qualcomm Incorporated Adaptive color transforms for video coding
US10291827B2 (en) * 2013-11-22 2019-05-14 Futurewei Technologies, Inc. Advanced screen content coding solution
JP6368795B2 (ja) * 2014-03-14 2018-08-01 ヴィド スケール インコーポレイテッド Rgbビデオコーディングエンハンスメントのためのシステムおよび方法
US10057578B2 (en) * 2014-10-07 2018-08-21 Qualcomm Incorporated QP derivation and offset for adaptive color transform in video coding
US10390020B2 (en) * 2015-06-08 2019-08-20 Industrial Technology Research Institute Video encoding methods and systems using adaptive color transform

Also Published As

Publication number Publication date
JP2016192794A (ja) 2016-11-10
JP6338621B2 (ja) 2018-06-06
JP6686206B2 (ja) 2020-04-22
US20190020874A1 (en) 2019-01-17
RU2015113380A (ru) 2015-09-10
JP6801037B2 (ja) 2020-12-16
KR101969359B1 (ko) 2019-04-16
ES2926203T3 (es) 2022-10-24
PL3905679T3 (pl) 2022-10-24
BR112013017952B1 (pt) 2022-08-02
JP2019146228A (ja) 2019-08-29
KR20150104221A (ko) 2015-09-14
BR122019025405B1 (pt) 2022-10-11
EP3905680A1 (en) 2021-11-03
JP2012161074A (ja) 2012-08-23
EP3668094B1 (en) 2022-11-23
KR20180091966A (ko) 2018-08-16
US10750177B2 (en) 2020-08-18
HUE055548T2 (hu) 2021-12-28
BR122019025404B8 (pt) 2023-05-02
US20190364280A1 (en) 2019-11-28
EP2664147B1 (en) 2020-03-11
BR122019025407B1 (pt) 2022-10-11
US20160353105A1 (en) 2016-12-01
BR122019025407B8 (pt) 2023-05-02
US9445094B2 (en) 2016-09-13
CN106412591B (zh) 2019-09-06
JP2019146226A (ja) 2019-08-29
US20140119455A1 (en) 2014-05-01
US10382757B2 (en) 2019-08-13
BR122019025404B1 (pt) 2022-10-11
JP6513261B2 (ja) 2019-05-15
HUE048896T2 (hu) 2020-08-28
RU2613736C2 (ru) 2017-03-21
EP3668095B1 (en) 2021-07-07
CN106412591A (zh) 2017-02-15
JP2018152884A (ja) 2018-09-27
HUE060786T2 (hu) 2023-04-28
RU2668727C2 (ru) 2018-10-02
RU2017107973A3 (es) 2018-09-13
US10110899B2 (en) 2018-10-23
BR122019025404A2 (pt) 2020-02-18
PL3668094T3 (pl) 2023-02-13
US20180152705A1 (en) 2018-05-31
BR122019025406A2 (pt) 2020-02-18
EP3905680B1 (en) 2022-07-20
RU2701054C1 (ru) 2019-09-24
RU2017107973A (ru) 2018-09-13
BR122022013139B1 (pt) 2023-04-04
JP2019146227A (ja) 2019-08-29
CN106488242B (zh) 2020-02-28
RU2690218C1 (ru) 2019-05-31
KR101888515B1 (ko) 2018-08-14
BR122019025406B1 (pt) 2023-03-21
ES2936531T3 (es) 2023-03-17
PL3668095T3 (pl) 2021-12-13
RU2013137765A (ru) 2015-02-20
CN106454362A (zh) 2017-02-22
KR101969362B1 (ko) 2019-04-16
KR20180014846A (ko) 2018-02-09
BR122019025407A2 (pt) 2020-02-18
PL3905680T3 (pl) 2022-10-31
CN105959693A (zh) 2016-09-21
ES2883132T3 (es) 2021-12-07
KR101598822B1 (ko) 2016-03-14
RU2551801C2 (ru) 2015-05-27
KR20180093099A (ko) 2018-08-20
EP3668095A1 (en) 2020-06-17
EP3668094A1 (en) 2020-06-17
HUE060051T2 (hu) 2023-01-28
ES2924028T3 (es) 2022-10-04
US20190020873A1 (en) 2019-01-17
BR122019025405A2 (pt) 2020-02-18
CN106454362B (zh) 2019-06-28
EP3905679B1 (en) 2022-07-27
JP6801038B2 (ja) 2020-12-16
CN103380620A (zh) 2013-10-30
WO2012096181A1 (en) 2012-07-19
CN103380620B (zh) 2016-12-14
CN106454361A (zh) 2017-02-22
BR112013017952A2 (pt) 2019-12-10
KR20140022797A (ko) 2014-02-25
US9918089B2 (en) 2018-03-13
BR122019025405B8 (pt) 2023-05-02
EP2664147A1 (en) 2013-11-20
EP3905679A1 (en) 2021-11-03
US10397575B2 (en) 2019-08-27
KR101825110B1 (ko) 2018-03-14
CN106454361B (zh) 2019-06-28
CN106488242A (zh) 2017-03-08
JP5963446B2 (ja) 2016-08-03
PL2664147T3 (pl) 2020-08-24
EP2664147A4 (en) 2015-11-18
HUE059647T2 (hu) 2022-12-28
CN105959693B (zh) 2019-03-29

Similar Documents

Publication Publication Date Title
ES2784761T3 (es) Aparato de codificación de imagen, procedimiento de codificación de imagen y programa, y aparato de decodificación de imagen, procedimiento de decodificación de imagen y programa