ES2755882T3 - Procedimiento de codificación de imágenes en movimiento, procedimiento de descodificación de imágenes en movimiento y aparatos de los mismos - Google Patents

Procedimiento de codificación de imágenes en movimiento, procedimiento de descodificación de imágenes en movimiento y aparatos de los mismos Download PDF

Info

Publication number
ES2755882T3
ES2755882T3 ES17203000T ES17203000T ES2755882T3 ES 2755882 T3 ES2755882 T3 ES 2755882T3 ES 17203000 T ES17203000 T ES 17203000T ES 17203000 T ES17203000 T ES 17203000T ES 2755882 T3 ES2755882 T3 ES 2755882T3
Authority
ES
Spain
Prior art keywords
blocks
macroblock
scheme
scanning
macroblocks
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
ES17203000T
Other languages
English (en)
Inventor
Torsten Palfner
Thomas Wedi
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.)
Sun Patent Trust Inc
Original Assignee
Sun Patent Trust 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 Sun Patent Trust Inc filed Critical Sun Patent Trust Inc
Application granted granted Critical
Publication of ES2755882T3 publication Critical patent/ES2755882T3/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/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/174Methods 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 slice, e.g. a line of blocks or a group of 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/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • 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
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • 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/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/182Methods 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 a pixel
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

Un procedimiento de decodificación de imágenes en movimiento para decodificar una imagen en movimiento codificada que incluye imágenes, que comprende: detectar (S110), a partir de la imagen en movimiento codificada, una división de bloque en filas y columnas de macrobloques cada uno de los cuales se divide en bloques, en el que cada bloque incluye píxeles y tiene un tamaño de 4 x 4 píxeles u 8 x 8 píxeles, y cada macrobloque tiene un tamaño de 16 x 16 píxeles; determinar (S120) una combinación de un esquema de exploración para los macrobloques y un esquema de exploración para los bloques de un macrobloque de entre una pluralidad de combinaciones de un esquema de exploración para los macrobloques y un esquema de exploración para los bloques de un macrobloque de acuerdo con un identificador de esquema de escaneo incluido en la imagen en movimiento codificada, en el que el esquema de exploración para los macrobloques define un orden de exploración de los macrobloques y el esquema de exploración para los bloques de un macrobloque define un orden de exploración para los bloques de un macrobloque; obtener (S130) a partir de la imagen en movimiento codificada, un bloque codificado que incluye píxeles y un conjunto de modos de intra predicción para los macrobloques; y decodificar (S140), de acuerdo con el conjunto de modos de intra predicción, los bloques de un macrobloque en un orden en el que se exploran los bloques;caracterizado porque la pluralidad de combinaciones incluye una combinación que explora una fila de bloques de un macrobloque que es adyacente en sentido horizontal con respecto a un macrobloque actual y que sigue al macrobloque actual con respecto al esquema de exploración determinada para los macrobloques antes de explorar una fila siguiente de bloques del macrobloque actual.

Description

DESCRIPCIÓN
Procedimiento de codificación de imágenes en movimiento, procedimiento de descodificación de imágenes en movimiento y aparatos de los mismos
La presente invención se refiere a la codificación para la compresión de datos de imágenes en movimiento y, en particular, a un procedimiento de codificación de imágenes en movimiento, un procedimiento de descodificación de imágenes en movimiento y aparatos de los mismos que logran una eficiencia de codificación alta.
Los datos de imágenes en movimiento se están adoptando en un número creciente de aplicaciones, que varían desde la realización de llamadas videotelefónicas y de videoconferencias a DVD y televisión digital. Cuando se están transmitiendo o registrando datos de imágenes en movimiento, se ha de enviar una cantidad sustancial de datos a través de canales de transmisión convencionales de ancho de banda de frecuencia disponible limitado o se ha de almacenar en soportes de almacenamiento convencionales de capacidad de datos limitada. Con el fin de transmitir y almacenar datos digitales en canales y soportes convencionales, es inevitable comprimir o reducir el volumen de datos digitales.
Para la compresión de datos de imágenes en movimiento, se ha desarrollado una pluralidad de normas de codificación de imágenes en movimiento. Tales normas de imágenes en movimiento son, por ejemplo, la norma de UIT-T que se indica mediante H.26x y las normas de ISO / IEC que se indican mediante MPEG-x. La letra “x” representa, por ejemplo, 1, 2 y 4. La norma de codificación de imágenes en movimiento más actualizada y avanzada es, en la actualidad, la norma que se indica como H.264 / MPEG-4 AVC.
El enfoque de codificación que subyace a la mayor parte de estas normas consiste en las siguientes fases principales:
(a) Dividir cada trama de vídeo individual en bloques que incluyen píxeles, con el fin de someter cada trama de vídeo a una compresión de datos a un nivel de bloque.
(b) Explorar cada bloque de datos de imágenes en movimiento de acuerdo con un esquema de exploración fijo que define el orden en el que se codificarán los bloques.
(c) Predecir cada bloque explorado al aprovechar o bien las dependencias temporales entre bloques de las tramas subsiguientes (compensación de movimiento) o bien las dependencias espaciales entre el bloque actual y bloques previamente codificados de la misma trama (predicción de intra trama).
(d) Calcular un residuo entre el bloque explorado y su predicción y codificar el residuo de cada bloque.
Un enfoque particular de las normas de codificación de imágenes en movimiento actuales es que la información de imagen se transforma del dominio espacial al dominio de la frecuencia. La compresión de imágenes se logra al representar el contenido de imagen por medio de solo unas pocas componentes de frecuencia. Un contenido de imagen natural está concentrado en su mayor parte en los coeficientes del dominio de la frecuencia inferior. Por lo tanto, las partes de una frecuencia más alta, para las cuales el ojo humano es, de todos modos, menos sensible, se pueden retirar o cuantificar con el fin de reducir la cantidad de datos que se van a codificar.
En muchas aplicaciones, el volumen o ancho de banda disponible para almacenar o transmitir datos de imágenes en movimiento codificados está fuertemente limitado. Por lo tanto, existe la necesidad perentoria de comprimir los datos de imágenes en movimiento en la medida en la que sea posible. No obstante, aumentar la tasa de compresión de datos mediante una cuantificación de una forma aún más tosca con el fin de reducir la cantidad de datos conduce de forma inevitable a un deterioro en la calidad de imagen.
La figura 1 es un diagrama de bloques que ilustra una estructura de un aparato de codificación de imágenes en movimiento de la técnica anterior. Un aparato de codificación de imágenes en movimiento 100 incluye un restador 110, una unidad de transformada y de cuantificación 120, una unidad de cuantificación inversa y de transformada inversa 130, un sumador 135, un filtro de desagrupamiento de bloques 137, una memoria 140, una unidad de predicción de intra trama 150, una unidad de predicción de compensación de movimiento 160, una unidad de estimación de movimiento 170, un conmutador intra / inter 180 y una unidad de codificación por entropía 190. El restador 110 calcula una diferencia entre un bloque actual que se va a codificar y una señal de predicción que se basa en un bloque previamente codificado que se almacena en la memoria 140. La unidad de transformada y de cuantificación 120 transforma el error de predicción que se obtiene a partir del restador 110 del dominio espacial al dominio de la frecuencia y cuantifica los coeficientes de transformada obtenidos. La unidad de codificación por entropía 190 codifica por entropía los coeficientes de transformada cuantificados.
De acuerdo con la norma H.264/AVC, la imagen de entrada se divide en macrobloques. El aparato de codificación de imágenes en movimiento 100 solo transmite las diferencias entre bloques de una secuencia de imágenes en movimiento de entrada y sus predicciones sobre la base de bloques previamente codificados (“la imagen descodificada de forma local”). Estas diferencias se determinan en el restador 110, que recibe los bloques que se van a codificar con el fin de restar de los mismos la señal de predicción.
La imagen descodificada de forma local se proporciona por medio de una unidad de descodificación local (la unidad de cuantificación inversa y de transformada inversa 130, el sumador 135 y el filtro de desagrupamiento de bloques 137) que se incorporan en el aparato de codificación de imágenes en movimiento 100. La unidad de descodificación local realiza las etapas de codificación de forma inversa. La unidad de cuantificación inversa y de transformada inversa 130 descuantifica los coeficientes cuantificados y aplica una transformada inversa a los coeficientes descuantificados. En el sumador 135, las diferencias que se obtienen por medio de la transformada inversa se añaden a la señal de predicción para formar la imagen descodificada de forma local. Además, el filtro de desagrupamiento de bloques 137 reduce el ruido de bloque en la imagen descodificada.
El tipo de predicción que es empleado por el aparato de codificación de imágenes en movimiento 100 depende de si los macrobloques se codifican en un modo “Intra” o “ Inter”. En un modo “Intra”, la norma de codificación de imágenes en movimiento H.264 / AVC usa un esquema de predicción sobre la base de macrobloques ya codificados de la misma imagen con el fin de predecir los macrobloques subsiguientes. En un modo “Inter”, se emplea una compensación / predicción de movimiento entre bloques correspondientes de varias tramas consecutivas.
Solo las imágenes intra codificadas (imágenes I) se pueden descodificar sin referencia a imagen alguna previamente descodificada. Las imágenes I proporcionan resistencia frente a la propagación de errores para la secuencia de imágenes en movimiento codificada. Además, unos puntos de entrada a los flujos de bits de datos codificados son proporcionados por las imágenes I con el fin de posibilitar un acceso aleatorio, es decir, para acceder a las imágenes I dentro de la secuencia de imágenes en movimiento codificada. Una conmutación entre un modo Intra, es decir, un procesamiento por parte de la unidad de predicción de intra trama 150, y un modo Inter, es decir, un procesamiento por parte de la unidad de predicción de compensación de movimiento 160, se controla por medio del conmutador intra / inter 180.
En un modo “ Inter”, un macrobloque se predice a partir de bloques de tramas previas mediante el empleo de una compensación de movimiento. La predicción de movimiento se logra por medio de la unidad de estimación de movimiento 170, que recibe la señal de entrada actual y la imagen descodificada de forma local. La estimación de movimiento produce unos vectores de movimiento bidimensionales que representan un movimiento de píxel entre el bloque actual y el bloque correspondiente en tramas previas. Sobre la base del movimiento estimado, la unidad de predicción de compensación de movimiento 160 proporciona una señal de predicción.
Para los modos de codificación tanto “ Intra” como “ Inter”, las diferencias entre la señal actual y la señal predicha se transforman en coeficientes de transformada por medio de la unidad de transformada y de cuantificación 120. En general, se emplea una transformada ortogonal tal como una transformada discreta del coseno (DCT, Discrete Cosine Transform) bidimensional o una versión entera de la misma.
Los coeficientes de transformada se cuantifican con el fin de reducir la cantidad de datos que se han de codificar. La etapa de cuantificación se controla por medio de unas tablas de cuantificación que especifican la precisión y el número de bits que se usan para codificar cada coeficiente de frecuencia. Por lo general, las componentes de frecuencia inferior son más importantes para la calidad de imagen que los detalles finos de tal modo que se gastan más bits para codificar las componentes de baja frecuencia que para las más altas.
Para reconstruir las imágenes codificadas por medio de un aparato de descodificación, el proceso de codificación se aplica de forma inversa.
La figura 2 es un diagrama de bloques que ilustra una estructura de un aparato de descodificación de imágenes en movimiento de la técnica anterior. Un aparato de descodificación de imágenes en movimiento 200 incluye una unidad de descodificación por entropía 210, una unidad de cuantificación inversa y de transformada inversa 220, un sumador 230, un filtro de desagrupamiento de bloques 240, una memoria 250, una unidad de predicción de intra trama 260 y una unidad de predicción de compensación de movimiento 270.
En la unidad de descodificación por entropía 210, se invierte la codificación por entropía de los coeficientes de transformada y los datos de movimiento por medio de la unidad de codificación por entropía 190. Entonces, el bloque descodificado por entropía se remite a la unidad de cuantificación inversa y de transformada inversa 220 y los datos de movimiento descodificados por entropía se envían a la unidad de predicción de compensación de movimiento 270. El resultado de la cuantificación inversa y la transformada inversa contiene errores de predicción. Los errores de predicción son añadidos por el sumador 230 a la señal de predicción que proviene de la unidad de predicción de compensación de movimiento 270 en un modo Inter o que proviene de la unidad de predicción de intra trama 260 en un modo Intra. La imagen reconstruida se pasa a través del filtro de desagrupamiento de bloques 240 y se almacena en la memoria 250 para ser usada por la unidad de predicción de intra trama 260 y la unidad de predicción de compensación de movimiento 270.
De acuerdo con la norma H.264/AVC, una imagen se divide en macrobloques que no se solapan de un tamaño de píxeles de 16 x 16. Estos macrobloques se pueden dividir adicionalmente en 4 por 4 bloques de un tamaño de píxeles de 4 x 4 o en 2 por 2 bloques de un tamaño de píxeles de 8 x 8. Entonces, se hace referencia a estos macrobloques junto con el bloque de un tamaño de 16 x 16 píxeles no dividido como I4MB (Macro Bloque), I8MB e I16MB, de forma respectiva.
Los mecanismos de codificación y de descodificación que se han descrito en lo que antecede se aplican a cada bloque por separado. En consecuencia, la disposición bidimensional de bloques se ha de convertir en una secuencia unidimensional en la que los bloques serán manejados por el aparato de codificación y el aparato de descodificación.
Dicho de otra forma, los bloques se han de explorar de acuerdo con un determinado esquema de exploración que define el orden en el que se procesarán los bloques.
La figura 3 es un diagrama que ilustra un esquema de exploración para bloques de acuerdo con la norma H.264 / AVC. Las flechas indican el orden en el que se exploran los bloques de un macrobloque I8MB (310) y un macrobloque I4MB (320). Los números 0 a 15 en la figura dan el orden en el que se exploran los bloques de 4 x 4 píxeles del macrobloque I4MB (320). La referencia 350 indica píxeles individuales de los bloques.
El orden en el que se exploran los bloques es particularmente importante para los bloques intra codificados, es decir, para bloques en los que se aprovechas las correlaciones espaciales con el fin de reducir la cantidad de información que se ha de codificar. Tal como se ha descrito en lo que antecede, los bloques intra codificados se predicen a partir de los píxeles adyacentes de bloques ya codificados. Este valor de predicción se resta del bloque real y solo se codifica el residuo. Por lo tanto, la precisión de predicción es crucial para una relación de compresión alta.
La figura 4A es un diagrama que ilustra la intra predicción de un macrobloque tal como se especifica en la norma H.264 / AVC. En la figura, el área sombreada representa bloques ya codificados, mientras que un área no sombreada representa unos bloques que aún se han de codificar. Los 4 x 4 píxeles del bloque actual 6 se han de extrapolar a partir de los píxeles adyacentes de bloques ya codificados. Los 13 píxeles (430) que están constituidos por un píxel de un bloque 1, cuatro píxeles de un bloque 3, cuatro píxeles de un bloque 4, cuatro píxeles de un bloque 5 se emplean para predecir el bloque actual mediante la replicación de los valores de píxel correspondientes en una determinada dirección de predicción (440).
La figura 4B resume los nueve modos de predicción diferentes que se definen en la norma H.264/AVC. Los modos 0, 1 y 3 a 8 están caracterizados por la dirección de predicción en la que los píxeles de referencia (430) se replican en el bloque actual. Por ejemplo, en el modo 1, cuatro píxeles del bloque 4 se replican como valores de predicción de los 4 x 4 píxeles del bloque actual. El modo 2 (DC) emplea el promedio de los píxeles de referencia para llenar el bloque actual de forma homogénea, como un valor de predicción de cada píxel del bloque actual.
Además, en la referencia no de patente 2 y en las referencias de patente 1a 3 se divulgan procedimientos para aplicar diversos patrones de exploración en la codificación de datos de imagen.
Referencia no de patente 1: ITU-T Rec. H264 | ISO/IEC 14496-10, versión 1 “Information technology - Coding of audio-visual objects - Part 10: Advanced video coding"
Referencia no de patente 2: Lee J H y col.:”An Efficient Encoding OF DCT Blocks With Block-Adaptive Scanning", IEICE Transactions on Communications, Communications Society, Tokio, JP, vol. E77-B, n.° 12, 1 de diciembre de 1994, páginas 1489 - 1494
Referencia de patente 1: EP 0230632
Referencia de patente 2: US 5767909
Referencia de patente 3: JP 2004253826
No obstante, de acuerdo con las técnicas de la técnica anterior que se han descrito en lo que antecede, existe un problema de que no es posible mejorar la precisión de predicción espacial en la intra predicción. Esto da como resultado el problema de que la eficiencia de codificación tampoco se puede mejorar. Con referencia a las figuras 5A y 5B, estos problemas se describirán de forma concreta. En la figura, el área sombreada representa bloques previamente codificados, mientras que un área no sombreada representa unos bloques que aún se han de codificar.
Tal como resulta evidente a partir del orden de exploración y los ejemplos que se muestran en las figuras 5A y 5B, no todos los píxeles de referencia se encuentran disponibles para todos los bloques. En la figura 5A, por ejemplo, un bloque 3 se ha de predecir sin los cuatro píxeles de referencia (540) del bloque 4, debido a que el bloque 4 aún no se ha codificado. Esto perjudica a los modos de intra predicción 3 y 7 y conduce a un error de predicción más alto. Por lo tanto, se han de gastar más bits para codificar el residuo, y la precisión de predicción y la eficiencia de codificación se deterioran. Además, el error de predicción más alto conduce a una calidad de imagen más baja.
La figura 5B muestra otro ejemplo de píxeles de referencia ausentes debido al orden de exploración. Un bloque 13 se ha de codificar sin cuatro píxeles de referencia (540) que son parte del siguiente macrobloque. En consecuencia, la precisión de predicción se ve perjudicada, lo que conduce a unos errores de predicción más altos y a un desempeño deteriorado del aparato de codificación.
Otro problema de la norma H.264/AVC se refiere al conjunto de modos de predicción disponibles. Este conjunto de modos de predicción es asimétrico en el sentido de que la dirección de predicción es principalmente hacia abajo y a la derecha en sentido diagonal. Dicho de otra forma, no hay, por ejemplo, modo de predicción alguno hacia la izquierda en horizontal o hacia arriba en vertical. Resulta obvio que esta falta de simetría se debe a la dirección de exploración principal de la norma H.264 / AVC, que también es hacia abajo y a la derecha en sentido diagonal. Es perfectamente concebible que, dependiendo del contenido de imagen, determinadas direcciones de predicción que no sean las que se muestran en la figura 4B puedan proporcionar una precisión de predicción superior. No obstante, debido al esquema de exploración fijo de la norma H.264 / AVC, no se puede lograr una mejora de este tipo.
Un objeto de la presente invención es la provisión de un procedimiento de codificación de imágenes en movimiento, un procedimiento de descodificación de imágenes en movimiento y aparatos de los mismos que mejoran la precisión de predicción espacial en una intra predicción. Esto se logra por medio de las características de las reivindicaciones independientes.
De acuerdo con el procedimiento de codificación de imágenes en movimiento de la presente invención, es posible adaptarse a la mejora de la precisión de predicción espacial y la eficiencia de codificación. Como resultado, se pueden mejorar la calidad de imagen.
La figura 1 es un diagrama de bloques que ilustra una estructura de un aparato de codificación de imágenes en movimiento de la técnica anterior.
La figura 2 es un diagrama de bloques que ilustra una estructura de un aparato de descodificación de imágenes en movimiento de la técnica anterior.
La figura 3 ilustra una exploración de bloques de acuerdo con la norma H.264/AVC.
La figura 4A ilustra una intra predicción de un macrobloque que se especifica en la norma H.264 / AVC.
La figura 4B resume los nueve modos de predicción diferentes que se definen en la norma H.264 / AVC.
La figura 5A es un diagrama que ilustra unos píxeles de referencia disponibles en una intra predicción.
La figura 5B es un diagrama que ilustra unos píxeles de referencia disponibles en una intra predicción.
La figura 6 es un diagrama de bloques que ilustra una estructura de un aparato de codificación de imágenes en movimiento de acuerdo con una primera forma de realización de la presente invención.
La figura 7A es un diagrama que ilustra un primer esquema de exploración para bloques de acuerdo con una realización de la presente invención.
La figura 7B es un diagrama que ilustra un segundo esquema de exploración para bloques de acuerdo con una forma de realización de la presente invención.
La figura 7C es un diagrama que ilustra un tercer esquema de exploración para bloques de acuerdo con una forma de realización de la presente invención.
La figura 8A ilustra una estructura de un flujo de bits que incluye un ID de exploración en cada sector.
La figura 8B ilustra una estructura de un flujo de bits que incluye, para cada macrobloque, un ID de exploración de bloques.
La figura 8C ilustra una estructura de un flujo de bits que incluye, para cada macrobloque, un ID de exploración de un macrobloque y un ID de exploración de bloques.
La figura 9 es un diagrama que ilustra un ejemplo de un orden de exploración de macrobloques en una trama. La figura 10A es un diagrama que ilustra un primer conjunto de direcciones de predicción para determinar valores de predicción de píxeles en bloques.
La figura 10B es un diagrama que ilustra un segundo conjunto de direcciones de predicción para determinar valores de predicción de píxeles en bloques.
La figura 10C es un diagrama que ilustra un tercer conjunto de direcciones de predicción para determinar valores de predicción de píxeles en bloques.
La figura 10D es un diagrama que ilustra un cuarto conjunto de direcciones de predicción para determinar valores de predicción de píxeles en bloques.
La figura 10E es un diagrama que ilustra un quinto conjunto de direcciones de predicción para determinar valores de predicción de píxeles en bloques.
La figura 10F es un diagrama que ilustra un sexto conjunto de direcciones de predicción para determinar valores de predicción de píxeles en bloques.
La figura 10G es un diagrama que ilustra un séptimo conjunto de direcciones de predicción para determinar valores de predicción de píxeles en bloques.
La figura 10H es un diagrama que ilustra un octavo conjunto de direcciones de predicción para determinar valores de predicción de píxeles en bloques.
La figura 11 es un diagrama de flujo que ilustra operaciones de un aparato de codificación.
La figura 12 es un diagrama de bloques que ilustra una estructura de un aparato de descodificación de imágenes en movimiento de acuerdo con la primera forma de realización de la presente invención.
La figura 13 es un diagrama de flujo que ilustra operaciones de un aparato de descodificación.
La figura 14A es un diagrama de bloques que ilustra una estructura de un aparato de codificación de imágenes en movimiento de acuerdo con una segunda forma de realización de la presente invención.
La figura 14B es un diagrama de bloques que ilustra una variación del aparato de codificación de imágenes en movimiento de acuerdo con la segunda forma de realización de la presente invención.
La figura 15A es un diagrama que ilustra operaciones del aparato de codificación.
La figura 15B es un diagrama de flujo que ilustra operaciones del aparato de codificación.
La figura 16 es un diagrama de bloques que ilustra una estructura de un aparato de descodificación de imágenes en movimiento de acuerdo con la segunda forma de realización de la presente invención.
La figura 17A es un diagrama que ilustra operaciones del aparato de descodificación.
La figura 17B es un diagrama de flujo que ilustra operaciones del aparato de descodificación.
1 Aparato de codificación de imágenes en movimiento
Aparato de descodificación
Sumador
Filtro de desagrupamiento de bloques
Memoria de tramas
9 Unidad de detección de dirección de borde
10 Unidad de selección de esquemas de exploración
11 Restador
12 Unidad de transformada y de cuantificación
13 Unidad de cuantificación inversa y de transformada inversa
14 Memoria
15 Unidad de predicción de intra trama
16 Unidad de predicción de compensación de movimiento
17 Unidad de estimación de movimiento
18 Conmutador intra / inter
19 Unidad de codificación por entropía
20 Unidad de selección de esquemas de exploración
21 Unidad de descodificación por entropía
22 Unidad de cuantificación inversa y de transformada inversa
23 Sumador
24 Filtro de desagrupamiento de bloques
25 Memoria
26 Unidad de predicción de intra trama
27 Unidad de predicción de compensación de movimiento
29 Unidad de detección de dirección de borde
700 Flujo de bits
710 Identificador de esquema de codificación
720 Información de división
730 Datos de bloque
740 Encabezamiento de macrobloque
A continuación, la primera realización es una realización de la presente invención, mientras que la segunda realización define una realización ejemplar.
(Primera forma de realización)
Una característica de la presente invención es la selección de un esquema de exploración con el fin de hacer que se encuentren disponibles más imágenes de referencia, o imágenes de referencia diferentes, disponibles en la predicción de intra trama. Por lo tanto, el procedimiento de codificación de imágenes en movimiento de acuerdo con la presente invención es un procedimiento de codificación de imágenes en movimiento para codificar una imagen en movimiento que incluye imágenes, incluyendo el procedimiento: dividir una imagen en bloques cada uno de los cuales incluye píxeles; seleccionar un esquema de exploración de entre una pluralidad de esquemas de exploración; explorar los bloques de acuerdo con el esquema de exploración seleccionado; y codificar los bloques en un orden en el que se exploran los bloques.
Con esto, con un aparato de codificación, se hace que estén disponibles más imágenes de referencia, o imágenes de referencia diferentes, en la predicción de intra trama, y se mejoran la eficiencia de codificación y la precisión de predicción espacial. En el presente caso, el esquema de exploración se puede seleccionar de entre una pluralidad de esquemas de exploración previamente definidos. El esquema de exploración seleccionado se puede señalizar a un aparato de descodificación. Además, el bloque que se ha mencionado en lo que antecede es uno de, o ambos de, un macrobloque y un bloque en el que se divide un macrobloque.
Por lo tanto, el aparato de codificación puede seleccionar un esquema de exploración que no sea el esquema de exploración de la técnica anterior.
La figura 6 es un diagrama de bloques que ilustra una estructura de un aparato de codificación de imágenes en movimiento de acuerdo con la primera forma de realización de la presente invención. En la figura, un aparato de codificación de imágenes en movimiento 1 incluye una unidad de selección de esquemas de exploración 10, un restador 11, una unidad de transformada y de cuantificación 12, una unidad de cuantificación inversa y de transformada inversa 13, un sumador 5, un filtro de desagrupamiento de bloques 7, una memoria 14, una unidad de predicción de intra trama 15, una unidad de predicción de compensación de movimiento 16, una unidad de estimación de movimiento 17, un conmutador intra / inter 18 y una unidad de codificación por entropía 19.
La unidad de selección de esquemas de exploración 10 selecciona un esquema de exploración para macrobloques, un esquema de exploración para bloques, y un conjunto de modos de predicción. Un macrobloque actual que se va a codificar se explora de acuerdo con el esquema de exploración seleccionado para macrobloques, y un bloque actual que se va a codificar se explora de acuerdo con el esquema de exploración seleccionado para bloques.
El restador 11 calcula una diferencia entre un bloque actual que se va a codificar y una señal de predicción que se basa en un bloque codificado que se almacena en la memoria 14. La unidad de transformada y de cuantificación 12 transforma un error de predicción que se obtiene a partir del restador 11 del dominio espacial al dominio de la frecuencia y cuantifica los coeficientes de transformada obtenidos. La unidad de codificación por entropía 19 codifica por entropía los coeficientes de transformada cuantificados.
De acuerdo con la norma H.264 / AVC, la imagen de entrada se divide en macrobloques que se dividen adicionalmente en bloques. El aparato de codificación de imágenes en movimiento 1 solo transmite las diferencias entre bloques de una secuencia de imágenes en movimiento de entrada y sus predicciones sobre la base de bloques previamente codificados (“la imagen descodificada de forma local”). Estas diferencias se determinan en el restador 11, que recibe los bloques que se van a codificar con el fin de restar de los mismos la señal de predicción.
La imagen descodificada de forma local se proporciona por medio de una unidad de descodificación local (la unidad de cuantificación inversa y de transformada inversa 13, el sumador 5 y el filtro de desagrupamiento de bloques 7) que se incorporan en el aparato de codificación de imágenes en movimiento 1. La unidad de descodificación local realiza las etapas de codificación de forma inversa. La unidad de cuantificación inversa y de transformada inversa 13 descuantifica los coeficientes cuantificados y aplica una transformada inversa a los coeficientes descuantificados. En el sumador 5, las diferencias que se obtienen por medio de la transformada inversa se añaden a la señal de predicción para formar la imagen descodificada de forma local. Además, el filtro de desagrupamiento de bloques 7 reduce el ruido de bloque en la imagen descodificada.
El tipo de predicción que es empleado por el aparato de codificación de imágenes en movimiento 1 depende de si los macrobloques se codifican en un modo “ Intra” o “ Inter”. En un modo “Intra”, se usa un esquema de predicción sobre la base de bloques ya codificados de la misma imagen con el fin de predecir los macrobloques subsiguientes. Este esquema de predicción emplea un conjunto de modos de predicción que es seleccionado por la unidad de selección de esquemas de exploración 10. En un modo “ Inter”, se emplea una compensación / predicción de movimiento entre bloques correspondientes de varias tramas consecutivas.
Una conmutación entre un modo Intra, es decir, el procesamiento que es realizado por la unidad de predicción de intra trama 15, y un modo Inter, es decir, el procesamiento que es realizado por la unidad de predicción de compensación de movimiento 16, se controla por medio del conmutador intra / inter 18.
En un modo “ Inter”, un macrobloque se predice a partir de bloques de tramas previas mediante el empleo de una compensación de movimiento. La predicción de movimiento se logra por medio de la unidad de estimación de movimiento 17 que recibe la señal de entrada actual y la imagen descodificada de forma local. La estimación de movimiento produce unos vectores de movimiento bidimensionales que representan un movimiento de píxel entre el bloque actual y el bloque correspondiente en tramas previas. Sobre la base del movimiento estimado, la unidad de predicción de compensación de movimiento 16 proporciona una señal de predicción.
Para los modos de codificación tanto “ Intra” como “ Inter”, las diferencias entre la señal actual y la señal predicha se transforman en coeficientes de transformada por medio de la unidad de transformada y de cuantificación 12. En general, se emplea una transformada ortogonal tal como una transformada discreta del coseno (DCT, Discrete Cosine Transform) bidimensional o una versión entera de la misma.
Los coeficientes de transformada se cuantifican con el fin de reducir la cantidad de datos que se han de codificar. La etapa de cuantificación se controla por medio de unas tablas de cuantificación que especifican la precisión y el número de bits que se usan para codificar cada coeficiente de frecuencia. Por lo general, las componentes de frecuencia inferior son más importantes para la calidad de imagen que los detalles finos de tal modo que se gastan más bits para codificar las componentes de baja frecuencia que para las componentes de frecuencia superior.
Para reconstruir las imágenes codificadas por medio del aparato de descodificación, el proceso de codificación se aplica de forma inversa.
A continuación, lo siguiente describirá un esquema de exploración para macrobloques, un esquema de exploración para bloques y un conjunto de modos de predicción que son seleccionados por la unidad de selección de esquemas de exploración 10.
Un esquema de exploración para macrobloques es seleccionado por la unidad de selección de esquemas de exploración 10 de entre los siguientes esquemas (i) a (v), por ejemplo.
(i) Esquema de exploración de exploración de izquierda a derecha
(ii) Esquema de exploración de exploración de derecha a izquierda
(iii) Esquema de exploración de exploración hacia abajo
(iv) Esquema de exploración de exploración hacia arriba
(v) Esquema de exploración en el que los anteriores (i) a (iv) se mezclan en una imagen (véase la figura 9)
Obsérvese que la unidad de selección de esquemas de exploración 10 puede seleccionar uno de los anteriores (i) a (v) como un esquema de exploración fijo, o seleccionar uno de al menos dos de los anteriores (i) a (v).
Principalmente hay dos casos para la exploración de bloques, es decir, (a) exploración en un único macrobloque, y (b) exploración más allá de una frontera de dos o más macrobloques que son adyacentes en la misma dirección. La determinación de un esquema de exploración para bloques depende de una combinación de: (a) o (b); unos de los puntos (i) a (iv) que se han descrito en lo que antecede; y un bloque de punto de partida. Los candidatos para un esquema de exploración para bloques que se van a seleccionar incluyen lo siguiente. Obsérvese que las letras en los siguientes paréntesis indican uno de (a) y (b), unos de los puntos (i) a (iv) que se han descrito en lo que antecede, y una posición de bloque que sirve como un punto de partida (u, d, I y r indican puntos de partida: superior (upper), inferior (lower), izquierda (left) y derecha (right), de forma respectiva).
(a-i-u) Esquema de exploración de exploración de izquierda a derecha, comenzando a partir de un bloque superior izquierdo en un macrobloque (véase la figura 7A)
(a-i-d) Esquema de exploración de exploración de izquierda a derecha, comenzando a partir de un bloque inferior izquierdo en un macrobloque.
(a-ii-u) Esquema de exploración de exploración de derecha a izquierda, comenzando a partir de un bloque superior derecho en un macrobloque.
(a-ii-d) Esquema de exploración de exploración de derecha a izquierda, comenzando a partir de un bloque inferior derecho en un macrobloque.
(a-iii-I) Esquema de exploración de exploración hacia abajo, comenzando a partir de un bloque superior izquierdo en un macrobloque.
(a-iii-r) Esquema de exploración de exploración hacia abajo, comenzando a partir de un bloque superior derecho en un macrobloque.
(a-iv-I) Esquema de exploración de exploración hacia arriba, comenzando a partir de un bloque inferior izquierdo en un macrobloque.
(a-iv-r) Esquema de exploración de exploración hacia arriba, comenzando a partir de un bloque inferior derecho en un macrobloque.
(b-i-u) Esquema de exploración de exploración de izquierda a derecha, comenzando a partir de un bloque superior izquierdo en dos o más macrobloques adyacentes en sentido horizontal.
(b-i-d) Esquema de exploración de exploración de izquierda a derecha, comenzando a partir de un bloque inferior izquierdo en dos o más macrobloques adyacentes en sentido horizontal.
(b-ii-u) Esquema de exploración de exploración de derecha a izquierda, comenzando a partir de un bloque superior derecho en dos o más macrobloques adyacentes en sentido horizontal.
(b-ii-d) Esquema de exploración de exploración de derecha a izquierda, comenzando a partir de un bloque inferior derecho en un macrobloque en dos o más macrobloques adyacentes en sentido horizontal.
(b-iii-I) Esquema de exploración de exploración hacia abajo, comenzando a partir de un bloque superior izquierdo en un macrobloque en dos o más macrobloques adyacentes en sentido vertical.
(b-iii-r) Esquema de exploración de exploración hacia abajo, comenzando a partir de un bloque superior derecho en un macrobloque en dos o más macrobloques adyacentes en sentido vertical.
(b-iv-I) Esquema de exploración de exploración hacia arriba, comenzando a partir de un bloque inferior izquierdo en dos o más macrobloques adyacentes en sentido vertical.
(b-iv-r) Esquema de exploración de exploración hacia arriba, comenzando a partir de un bloque inferior derecho en dos o más macrobloques adyacentes en sentido vertical. Obsérvese que la unidad de selección de esquemas de exploración 10 puede seleccionar uno de al menos dos esquemas de exploración de entre los anteriores (a-i-d) a (b-iv-r).
Los conjuntos de modos de predicción incluyen los siguientes (1) a (8), y se selecciona un conjunto óptimo que se corresponde con un esquema de exploración para macrobloques o bloques.
(1) El conjunto de modos de predicción que se ilustra en la figura 10A, que se corresponde con el esquema de exploración de exploración hacia abajo a partir de un bloque superior izquierdo (los anteriores (a-iii-I) y (b-iii-I). (2) El conjunto de modos de predicción que se ilustra en la figura 10B, que se corresponde con el esquema de exploración de exploración hacia abajo a partir de un bloque superior derecho (los anteriores (a-iii-r) y (b-iii-r). (3) El conjunto de modos de predicción que se ilustra en la figura 10C, que se corresponde con el esquema de exploración de exploración de derecha a izquierda a partir de un bloque superior derecho (los anteriores (a-ii-u) y (b-ii-u).
(4) El conjunto de modos de predicción que se ilustra en la figura 10D, que se corresponde con el esquema de exploración de exploración de derecha a izquierda a partir de un bloque inferior derecho (los anteriores (a-ii-d) y (b-ii-d).
(5) El conjunto de modos de predicción que se ilustra en la figura 10E, que se corresponde con el esquema de exploración de exploración hacia arriba a partir de un bloque inferior izquierdo (los anteriores (a-iv-I) y (b-iv-I). (6) El conjunto de modos de predicción que se ilustra en la figura 10F, que se corresponde con el esquema de exploración de exploración hacia arriba a partir de un bloque inferior derecho (los anteriores (a-iv-r) y (b-iv-r). (7) El conjunto de modos de predicción que se ilustra en la figura 10G, que se corresponde con el esquema de exploración de exploración de izquierda a derecha a partir de un bloque inferior izquierdo (los anteriores (a-i-d) y (b-i-d).
(8) El conjunto de modos de predicción que se ilustra en la figura 10H, que se corresponde con el esquema de exploración de exploración de izquierda a derecha a partir de un bloque superior izquierdo (los anteriores (a-i-u) y (b-i-u).
Obsérvese que el área sombreada en las figuras 10A a 10H representa bloques previamente codificados, mientras que un área no sombreada representa unos bloques que aún se han de codificar. Para cada conjunto de modos de predicción, se encuentran disponibles un único modo de DC y ocho modos de predicción que indican ocho direcciones de predicción diferentes (las flechas en las figuras). Además, la figura 10H ilustra el mismo conjunto de modos de predicción que en la figura 4B.
Las figuras 7A a 7C ilustran un esquema de exploración mejorado (600) en el que se proporcionan más píxeles de referencia para una intra predicción.
La figura 7A ilustra un esquema de exploración (600), en el que una fila de macrobloques (610, 611, 612) se explora mediante la exploración de los bloques 615 de cada macrobloque por fila de bloques. Después de explorar los bloques de un primer macrobloque (610), la exploración salta al bloque superior izquierdo del siguiente macrobloque (611), y así sucesivamente.
En consecuencia, se eliminan los casos en los que los píxeles de referencia están ausentes debido al orden de exploración convencional tal como se muestran en la figura 5A. Esto conduce a una predicción más precisa de los datos de imágenes en movimiento a partir de bloques previamente codificados y, por lo tanto, a una eficiencia de codificación mejorada.
La figura 7B ilustra la exploración de una fila de macrobloques que incluye dos I4MB (620 y 621) seguidos por un I16MB (622). Los bloques a partir de macrobloques con la misma división, es decir, bloques del mismo tamaño, se exploran por fila de bloques, con independencia de las fronteras de macrobloque. La exploración se detiene y salta a la siguiente fila, cuando se alcanza un macrobloque (622) con una división diferente. Tan pronto como se han explorado todos los bloques del mismo tamaño, se exploran los bloques del siguiente macrobloque (622).
En consecuencia, se eliminan los casos en los que los píxeles de referencia están ausentes debido al orden de exploración convencional tal como se muestran en la figura 5A. Además, se reducen los casos en los que los píxeles de referencia están ausentes debido a los límites de macrobloque (véase la figura 5B). Esto conduce a una predicción más precisa de los datos de imágenes en movimiento a partir de bloques previamente codificados y, por lo tanto, a una eficiencia de codificación mejorada.
El orden de exploración de bloques de divisiones de macrobloque diferentes es un poco diferente. Para ilustrar esto, se muestra en la figura 7C un ejemplo para el orden de exploración de bloques en macrobloques con divisiones diferentes. Si la exploración alcanza la frontera de macrobloque y el bloque adyacente del siguiente macrobloque es más pequeño o igual que el tamaño del bloque actual, entonces el bloque adyacente es el siguiente bloque en el orden de exploración. Si el bloque adyacente del siguiente macrobloque es mayor que el bloque actual, entonces es necesario que se explore la siguiente fila de bloques del macrobloque. Dicho de otra forma, si no se han codificado aún los píxeles de referencia para el siguiente bloque del siguiente macrobloque, explorar la siguiente fila.
En consecuencia, se eliminan los casos en los que los píxeles de referencia están ausentes debido al orden de exploración convencional tal como se muestran en la figura 5A. Además, se reducen los casos en los que los píxeles de referencia están ausentes debido a los límites de macrobloque (véase la figura 5B). Esto conduce a una predicción más precisa de los datos de imágenes en movimiento a partir de bloques previamente codificados y, por lo tanto, a una eficiencia de codificación mejorada.
A pesar de que el orden de exploración en los ejemplos anteriores es de izquierda a derecha en horizontal, la presente invención no está limitada a este respecto. En su lugar, la presente invención también se puede llevar a cabo con el orden de exploración siendo invertido, especularmente simétrico o rotado.
Los esquemas de exploración que se han descrito en lo que antecede son ejemplos para unos esquemas de exploración mejorados que pueden ser seleccionados por el aparato de codificación de acuerdo con la presente invención. No obstante, cualquiera de estos esquemas de exploración podría también ser empleado por un aparato de codificación mejorado sin una etapa de selección explícita.
La norma H.264 / AVC se basa en dividir los bloques en macrobloques. En la norma H.264 / AVC, cada macrobloque se puede dividir adicionalmente en bloques de acuerdo con una de entre tres divisiones de macrobloque posibles. La presente invención, no obstante, no se limita a una estructura de macrobloques. En su lugar, la presente invención se puede aplicar a divisiones diferentes e incluso a divisiones con formas y tamaños de bloque variables.
Para descodificar los datos de imágenes en movimiento codificados, el aparato de descodificación necesita información acerca de la secuencia en la que los bloques han sido codificados por el aparato de codificación. Por lo tanto, el esquema de codificación que es empleado por el aparato de codificación se ha de señalizar al aparato de descodificación. De acuerdo con otro aspecto de la presente invención, la señalización al aparato de descodificación se logra mediante la inserción de un identificador de esquema de codificación en los datos de imágenes en movimiento codificados. El identificador de esquema de codificación identifica la exploración que es aplicada por el aparato de codificación. El aparato de descodificación detecta el identificador de esquema de codificación a partir de los datos de imágenes en movimiento codificados y, por lo tanto, puede realizar la exploración inversa de los bloques descodificados.
Las figuras 8A a 8C ilustran la estructura de un flujo de bits que representa los datos de imágenes en movimiento codificados. En la figura 8A, un flujo de bits 700 incluye una información 720 acerca de la división de macrobloque de todos los macrobloques del presente sector. Esta información define la división de los datos de imágenes en movimiento en una pluralidad de bloques. Esta información va seguida por un identificador de esquema de codificación 710 que identifica el esquema de codificación que es aplicado por el aparato de codificación para explorarla pluralidad de bloques. De acuerdo con este esquema de exploración, el identificador de esquema de codificación 710 va seguido por los datos de bloque 730.
En el ejemplo anterior, el esquema de exploración se selecciona y se señaliza a nivel de sector. La presente invención, no obstante, no está limitada a este respecto. El esquema de exploración se puede seleccionar y señalizar a nivel de perfil, de nivel, de trama, de campo o incluso de macrobloque.
La figura 8B ilustra la señalización del esquema de exploración a nivel de macrobloque. Un flujo de bits 700 incluye un identificador de esquema de codificación 710 que identifica el esquema de codificación que se emplea para todos los macrobloques consecutivos hasta que se inserta otro identificador de esquema de codificación en el flujo de bits. El identificador de esquema de codificación 710 va seguido por una pluralidad de elementos de datos de macrobloque que incluyen, cada uno, un encabezamiento de macrobloque 740 y los elementos de datos de bloque 730 correspondientes. El encabezamiento de macrobloque 740 incluye, por ejemplo, información acerca de la división de macrobloque.
Con el fin de identificar el esquema de exploración, el identificador de esquema de codificación puede incluir una referencia a uno de una pluralidad de esquemas de exploración previamente definidos. Como alternativa, el identificador de esquema de codificación incluye, de forma explícita, información acerca de la secuencia en la que se han explorado los bloques. En este caso, el aparato de codificación es completamente libre de seleccionar el esquema de exploración. Es decir, el conjunto de esquemas de exploración previamente definidos incluye todos los órdenes de exploración posibles.
El esquema de exploración también se puede definir de forma jerárquica de acuerdo con la estructura de macrobloques / bloques. En una primera etapa, se define el orden de exploración de los macrobloques. El orden de exploración de los bloques dentro de cada macrobloque se define entonces en una segunda etapa.
La figura 8C ilustra la señalización del esquema de exploración jerárquico en dos etapas. Un flujo de bits 700 incluye un primer identificador de esquema de codificación 710a que identifica el orden de exploración de los macrobloques. Esta etapa de señalización puede tener lugar, por ejemplo, al nivel de la trama actual o el sector actual. Habiendo por lo tanto definido el orden en el que se tratan los macrobloques, el esquema de exploración para los bloques dentro de cada macrobloque se señaliza por medio de un segundo identificador de esquema de codificación 710b. Este identificador de esquema de codificación puede ser, de forma explícita, parte de cada elemento de datos de macrobloque, tal como se muestran en la ilustración, o se puede insertar en el flujo de bits solo tras un cambio del esquema de exploración para bloques dentro de un macrobloque.
En lugar de señalizar el esquema de exploración para bloques dentro de un macrobloque de forma explícita, el esquema de exploración también se puede obtener de forma implícita a partir del orden de exploración de macrobloques.
La figura 9 es un diagrama que ilustra un ejemplo de un orden de exploración de macrobloques. La figura muestra una trama de imagen en movimiento (800) dividida en 8 x 4 macrobloques (810). Los números indican el orden de exploración de los macrobloques, y las flechas indican la dirección de exploración de los bloques dentro de cada macrobloque. Por lo tanto, si los macrobloques se exploran de izquierda a derecha, los bloques dentro de cada macrobloque también se exploran de izquierda a derecha con el fin de proporcionar más píxeles de referencia para una intra predicción. Una regla análoga es cierta para otras direcciones de exploración. En este escenario, no es necesario señalizar el esquema de exploración para bloques dentro de un macrobloque de forma explícita. Basta con señalizar, por ejemplo, la dirección de exploración inicial de los macrobloques dentro de cada sector y el número de macrobloques que se exploran en la misma dirección. De esta forma, se puede mejorar adicionalmente la eficiencia de codificación.
A pesar de que el ejemplo anterior se refiere a la exploración horizontal, el presente enfoque no está limitado a este respecto. La presente invención también se puede aplicar a otras direcciones de exploración, así como a otros puntos de partida de la exploración.
La dirección en la que se exploran los bloques afecta a los píxeles de referencia que se encuentran disponibles para una intra predicción. Por lo tanto, de acuerdo con otro aspecto de la presente invención, el conjunto de modos de predicción que se puede emplear para predecir un bloque de imagen en movimiento se puede adaptar a la dirección de exploración.
Las figuras 10Aa 10H que se han descrito en lo que antecede ilustran conjuntos de modos de predicción dependiendo de la dirección de exploración de los bloques.
El conjunto de direcciones que se encuentra disponible para una dirección de exploración dada depende de los píxeles de referencia que se encuentran disponibles a partir de bloques previamente explorados (el área sombreada) y, por lo tanto, de la dirección de exploración.
De esta forma, no hay necesidad alguna de proporcionar una palabra de código para cada una de las 16 direcciones de predicción posibles. Por lo tanto, la dirección de predicción se puede codificar con menos bits y se puede mejorar la eficiencia de codificación.
Por otro lado, los píxeles de referencia que se emplean para la predicción se pueden controlar por medio de la dirección de exploración. Dependiendo del contenido de imagen, la precisión de la predicción depende de la dirección de predicción. Por ejemplo, un bloque de datos de imagen se puede predecir de forma más precisa, si sus píxeles se extrapolan de derecha a izquierda en lugar de en el sentido opuesto. Por lo tanto, el aparato de codificación puede adaptar el esquema de exploración al contenido de imagen mediante la inversión de la dirección de exploración convencional. De esta forma, los píxeles de referencia a la derecha del bloque actual pasan a estar disponibles para una intra predicción. Por lo tanto, la precisión de predicción y la eficiencia de codificación se pueden mejorar mediante el empleo del modo de predicción “de derecha a izquierda”.
Adaptar el esquema de exploración al contenido de imagen es particularmente importante para una codificación de múltiples pasadas, en la que el aparato de codificación analiza el contenido de imagen en una primera pasada para adaptar el esquema de exploración en una segunda pasada. Como alternativa, el aparato de codificación puede codificar los datos de imágenes en movimiento a modo de prueba con varios esquemas de exploración diferentes y seleccionar el esquema de codificación que proporciona los mejores resultados con respecto a la eficiencia de codificación, por ejemplo.
La figura 11 es un diagrama de flujo que ilustra operaciones del aparato de codificación de acuerdo con la presente invención. En la etapa S10, una imagen de entrada tal como un campo o trama de imagen en movimiento o un subconjunto de la misma, se divide en una pluralidad de bloques. Entonces, se comprimen y se codifican los datos de cada uno de estos bloques. En la etapa S20, la unidad de selección de esquemas de exploración 10 selecciona un esquema de exploración para macrobloques, un esquema de exploración para bloques, y un conjunto de modos de predicción. Por ejemplo, la unidad de selección de esquemas de exploración 10 indica a la unidad de predicción de intra trama 15 que someta a prueba una intra predicción con varias combinaciones de un esquema de exploración para macrobloques, un esquema de exploración para bloques, y un conjunto de modos de predicción, y selecciona la combinación que proporciona el error de predicción mínimo. El orden mediante el cual se codifican los bloques se define por medio del esquema de exploración que se selecciona en la etapa S20. Con el fin de permitir que el aparato de descodificación reconstruya la imagen, un identificador de esquema de codificación que identifica el esquema de exploración seleccionado se inserta en los datos de imágenes en movimiento codificados. En la etapa S30, los bloques se exploran de acuerdo con el esquema de exploración seleccionado. En la etapa S40, se selecciona un modo de predicción para cada bloque para predecir el bloque a partir de bloques previamente explorados. En la etapa S50, por último, cada bloque se codifica de acuerdo con el modo de predicción seleccionado.
La figura 12 es un diagrama de bloques que ilustra una estructura del aparato de descodificación de imágenes en movimiento de acuerdo con la primera forma de realización de la presente invención. Un aparato de descodificación de imágenes en movimiento 2 en la figura incluye una unidad de selección de esquemas de exploración 20, una unidad de descodificación por entropía 21, una unidad de cuantificación inversa y de transformada inversa 22, un sumador 23, un filtro de desagrupamiento de bloques 24, una memoria 25, una unidad de predicción de intra trama 26 y una unidad de predicción de compensación de movimiento 27.
Para la descodificación por entropía por medio de la unidad de descodificación por entropía 21, se invierte la codificación por entropía de los coeficientes de transformada y los datos de movimiento por medio de la unidad de codificación por entropía 19. Entonces, el bloque descodificado por entropía se remite a la unidad de cuantificación inversa y de transformada inversa 22, los datos de movimiento descodificados por entropía se envían a la unidad de predicción de compensación de movimiento 27 y el identificador de esquema de codificación descodificado por entropía se envía a la unidad de selección de esquemas de exploración 20.
La unidad de selección de esquemas de exploración 20 selecciona un esquema de exploración para macrobloques, un esquema de exploración para bloques, y un conjunto de modos de predicción de acuerdo con el identificador de esquema de codificación y así sucesivamente.
Los errores de predicción son añadidos por el sumador 23 a la señal de predicción que proviene de la unidad de predicción de compensación de movimiento 27 en un modo Inter o que proviene de la unidad de predicción de intra trama 26 en un modo Intra. La imagen reconstruida se pasa a través del filtro de desagrupamiento de bloques 24 y se almacena en la memoria 25 para aplicarse a la unidad de predicción de intra trama 26 y la unidad de predicción de compensación de movimiento 27.
En ese instante, el macrobloque actual que se va a descodificar se explora de acuerdo con el esquema de exploración seleccionado para macrobloques y el esquema de exploración para bloques, y se intra descodifica de acuerdo con el conjunto de modos de predicción.
La figura 13 es un diagrama de flujo que ilustra operaciones del aparato de descodificación de acuerdo con la presente invención. En la etapa S110, una división en bloques dentro de una imagen se detecta a partir de los datos de imágenes en movimiento codificados. Esto permite que el aparato de descodificación reconstruya cómo el aparato de codificación ha dividido la imagen en bloques, es decir, el número, el tamaño y la ubicación de los bloques. En la etapa S120, el identificador de esquema de codificación se detecta a partir de los datos de imágenes en movimiento codificados. Este identificador define el esquema de codificación que es empleado por el aparato de codificación, es decir, el orden en el que se han codificado los bloques. En la etapa S130 se reciben, para cada bloque, los datos de imágenes en movimiento codificados y el modo de predicción correspondiente, que se descodifican entonces en la etapa S140 de acuerdo con el modo de predicción detectado y el esquema de exploración detectado. Por último, en la etapa S150, la imagen se puede volver a ensamblar a partir de los bloques descodificados.
Tal como se ha descrito en lo que antecede, de acuerdo con el aparato de codificación de imágenes en movimiento y el aparato de descodificación de imágenes en movimiento en la presente forma de realización, la precisión de la predicción de intra trama se mejora al seleccionar de forma adaptativa el orden en el que se codificarán los bloques, es decir, el esquema de exploración, con el fin de proporcionar más píxeles de referencia o unos píxeles de referencia que son más adecuados para predecir el bloque actual. Debido a la precisión de predicción mejorada, la cantidad de datos de imagen residual se reduce y la eficiencia de codificación mejora.
Adicionalmente, la eficiencia de codificación se mejora adicionalmente mediante la adaptación de los conjuntos de modos de predicción disponibles al esquema de exploración. El orden de exploración se señaliza al aparato de descodificación que, por lo tanto, puede descodificar cada bloque y reconstruir los datos de imágenes en movimiento.
(Segunda forma de realización)
En la primera forma de realización, es necesario que el aparato de codificación de imágenes en movimiento envíe un identificador de esquema de codificación al aparato de descodificación de imágenes en movimiento. En una segunda forma de realización, se describirán estructuras de un aparato de codificación de imágenes en movimiento y un aparato de descodificación de imágenes en movimiento que no es preciso que obren de este modo. El aparato de codificación de imágenes en movimiento de acuerdo con la presente forma de realización detecta una dirección de un borde de imagen que está incluido en una porción previamente determinada de la imagen, y determina de forma adaptativa un esquema de exploración de entre la pluralidad de esquemas de exploración sobre la base de la dirección de borde detectado. De forma similar, el aparato de descodificación de imágenes en movimiento detecta una dirección de un borde de imagen que está incluido en una porción previamente determinada de la imagen, y selecciona un esquema de exploración de entre la pluralidad de esquemas de exploración sobre la base de la dirección de borde detectado. Para el algoritmo para detectar la dirección de un borde en la porción previamente determinada y el algoritmo para seleccionar un esquema de exploración, el aparato de codificación de imágenes en movimiento y el aparato de descodificación de imágenes en movimiento emplean el mismo procesamiento. Con esto, deja de ser necesario incluir un identificador de esquema de codificación en el flujo de bits y, por lo tanto, la eficiencia de codificación se puede mejorar adicionalmente.
La figura 14A es un diagrama de bloques que ilustra una estructura de un aparato de codificación de imágenes en movimiento de acuerdo con una segunda forma de realización de la presente invención. Un aparato de codificación de imágenes en movimiento 1a en la figura es diferente del aparato de codificación de imágenes en movimiento en la figura 6 en que se añade una unidad de detección de dirección de borde 9. Asimismo, las operaciones de la unidad de selección de esquemas de exploración 10 son ligeramente diferentes. Se omiten los mismos aspectos de la siguiente descripción, y principalmente se describirán diferentes aspectos.
La unidad de detección de dirección de borde 9 detecta la dirección de un borde de imagen que está incluido en una porción previamente determinada de una imagen que está contenida en la memoria 14. Para ser más específico, la unidad de detección de dirección de borde 9 detecta en qué dirección de la porción previamente determinada se incluyen muchos bordes. En la presente forma de realización, se supone que la porción previamente determinada es una fila de macrobloques inicial dentro de una imagen. Además, la unidad de detección de dirección de borde 9 también detecta la dirección de los bordes en cada fila de macrobloques que no sea la fila de macrobloques inicial.
La unidad de selección de esquemas de exploración 10 es similar a la de la primera forma de realización en que la misma selecciona un esquema de exploración para macrobloques, un esquema de exploración para bloques, y un conjunto de modos de predicción. No obstante, el siguiente punto es diferente. Es decir, la unidad de selección de esquemas de exploración 10 selecciona un esquema de exploración y un conjunto de modos de predicción por defecto para codificar la porción previamente determinada, y selecciona un esquema de exploración que es óptimo para la dirección de borde detectado para codificar las otras porciones.
La figura 15A es un diagrama que ilustra operaciones del aparato de codificación. La figura ilustra el caso en el que la porción previamente determinada que se ha mencionado en lo que antecede es la fila de macrobloques inicial. Tal como ilustra la figura, la unidad de selección de esquemas de exploración 10 selecciona el mismo esquema de exploración y el mismo conjunto de modos de predicción por defecto que los de un aparato de descodificación de imágenes en movimiento, para codificar la fila de macrobloques inicial dentro de una imagen (S151). La unidad de predicción de intra trama 15 aplica una intra predicción sobre la fila de macrobloques inicial de acuerdo con el esquema de exploración y el conjunto de modos de predicción por defecto. Como resultado, la fila de macrobloques inicial se codifica usando el esquema de exploración y el conjunto de modos de predicción por defecto (S152).
Entonces, la unidad de detección de dirección de borde 9 detecta los bordes en la imagen de la fila de macrobloques codificada de manera inmediatamente anterior, y detecta en qué dirección se incluyen muchos bordes (S153). La unidad de selección de esquemas de exploración 10 selecciona un esquema de exploración y un conjunto de modos de predicción que son óptimos para la dirección de borde detectado (S154). Una fila de macrobloques se codifica de acuerdo con el esquema de exploración y el conjunto de modos de predicción seleccionados (S155).
La segunda fila de macrobloques y las filas de macrobloques subsiguientes se codifican de forma secuencial de acuerdo con las etapas S153 a S155 que se han descrito en lo que antecede.
La figura 15B es un diagrama de flujo detallado que ilustra un ejemplo de operaciones del aparato de codificación. Tal como ilustra la figura, la unidad de selección de esquemas de exploración 10 selecciona el mismo esquema de exploración y el mismo conjunto de modos de predicción por defecto que los del aparato de descodificación de imágenes en movimiento, para codificar la fila de macrobloques inicial dentro de una imagen (S210). La unidad de predicción de intra trama 15 aplica una intra predicción sobre la fila de macrobloques inicial de acuerdo con el esquema de exploración y el conjunto de modos de predicción por defecto. Como resultado, la fila de macrobloques inicial se codifica usando el esquema de exploración y el conjunto de modos de predicción por defecto (S212).
Además, la unidad de detección de dirección de borde 9 establece un primer contador y un segundo contador a 0. Entonces, la unidad de detección de dirección de borde 9 detecta los bordes que están incluidos en una imagen de la fila de macrobloques codificada de manera inmediatamente anterior (S214), e incrementa el primer contador en 1 cuando el borde detectado se encuentra en la dirección hacia abajo y a la derecha en sentido diagonal (S216, S218), e incrementa el segundo contador en 1 cuando el borde detectado se encuentra en la dirección hacia abajo y a la izquierda en sentido diagonal (S220, S222). La unidad de detección de dirección de borde 9 repite tal recuento ascendente hasta el último borde que se detecta (S224). Como resultado, el valor de recuento del primer contador representa el número de bordes en la dirección hacia abajo y a la derecha en sentido diagonal, y el valor de recuento del segundo contador representa el número de bordes en la dirección hacia abajo y a la izquierda en sentido diagonal.
A continuación, la unidad de selección de esquemas de exploración 10 compara el valor de recuento del primer contador y el valor de recuento del segundo contador. Más en concreto, la unidad de selección de esquemas de exploración 10 evalúa qué bordes, es decir, o bien los bordes en la dirección hacia abajo y a la derecha en sentido diagonal o bien los bordes en la dirección hacia abajo y a la izquierda en sentido diagonal, se encuentran en un número más grande (S226). Cuando los bordes en la dirección hacia abajo y a la derecha en sentido diagonal se encuentran en un número más grande, la unidad de selección de esquemas de exploración 10 selecciona un esquema de exploración de exploración de izquierda a derecha. Por ejemplo, se seleccionan el esquema de exploración de (a-i-u) que se ha descrito en lo que antecede y un conjunto de modos de predicción correspondiente (S228). Cuando los bordes en la dirección hacia abajo y a la izquierda en sentido diagonal se encuentran en un número más grande, la unidad de selección de esquemas de exploración 10 selecciona un esquema de exploración de exploración de derecha a izquierda. Por ejemplo, se seleccionan el esquema de exploración de (a-ii-u) que se ha descrito en lo que antecede y un conjunto de modos de predicción correspondiente.
La siguiente fila de macrobloques se codifica de acuerdo con el esquema de exploración y el conjunto de modos de predicción seleccionados (S232).
Las etapas S214 a S232 que se han descrito en lo que antecede se llevan a cabo para cada fila de macrobloques excepto por la fila de macrobloques inicial.
Con esto, para codificar la segunda fila de macrobloques y las filas de macrobloques subsiguientes, se seleccionan un esquema de exploración y un conjunto de modos de predicción que son óptimos para la dirección del borde que está incluido en la imagen de la fila de macrobloques inmediatamente anterior.
La figura 16 es un diagrama de bloques que ilustra una estructura de un aparato de descodificación de imágenes en movimiento de acuerdo con la segunda forma de realización de la presente invención. Un aparato de codificación de imágenes en movimiento 2a en la figura es diferente del aparato de descodificación de imágenes en movimiento en la figura 12 en que se añade una unidad de detección de dirección de borde 29. Asimismo, las operaciones de la unidad de selección de esquemas de exploración 20 son ligeramente diferentes. Se omiten los mismos aspectos de la siguiente descripción, y principalmente se describirán diferentes aspectos.
La unidad de detección de dirección de borde 29 y la unidad de selección de esquemas de exploración 20 realizan su procesamiento respectivo usando los mismos algoritmos de la unidad de detección de dirección de borde 9 y la unidad de selección de esquemas de exploración 10, de forma respectiva, del aparato de codificación de imágenes en movimiento de la presente forma de realización. En consecuencia, no es necesario que un flujo de bits incluya una información que indique un identificador de esquema de codificación de macrobloques y bloques y un conjunto de modos de predicción.
La unidad de detección de dirección de borde 29 detecta la dirección de un borde de imagen que está incluido en una porción previamente determinada dentro de una imagen, como con la unidad de detección de dirección de borde 9 del aparato de codificación de imágenes en movimiento de la presente forma de realización. Para ser más específico, la unidad de detección de dirección de borde 29 detecta en qué dirección de la porción previamente determinada se incluyen muchos bordes. Se supone que la porción previamente determinada es una fila de macrobloques inicial dentro de una imagen, y esta es una suposición habitual con el aparato de codificación de imágenes en movimiento. Además, la unidad de detección de dirección de borde 29 también detecta la dirección de los bordes en cada fila de macrobloques que no sea la fila de macrobloques inicial.
La unidad de selección de esquemas de exploración 20 no necesita información alguna que indique identificadores de esquema de codificación y conjuntos de modos de predicción, y selecciona un esquema de exploración y un conjunto de modos de predicción sobre la base de su propio criterio. La unidad de selección de esquemas de exploración 20 es similar a la unidad de selección de esquemas de exploración 10 del aparato de codificación de imágenes en movimiento de la presente forma de realización y a la unidad de selección de esquemas de exploración de la primera forma de realización en que la misma selecciona un esquema de exploración para macrobloques, un esquema de exploración para bloques, y un conjunto de modos de predicción. No obstante, el siguiente punto es diferente. Es decir, la unidad de selección de esquemas de exploración 20 selecciona un esquema de exploración y un conjunto de modos de predicción por defecto para codificar la porción previamente determinada, y selecciona un esquema de exploración que es óptimo para la dirección de borde detectado para codificar las otras porciones.
La figura 17A es un diagrama de flujo detallado que ilustra un ejemplo de operaciones del aparato de descodificación de imágenes en movimiento 2a. La figura 17A es diferente de la figura 15A en que se realiza una “descodificación” en lugar de una “codificación”. Para la detección de las direcciones de borde y la selección de un esquema de exploración y un conjunto de modos de predicción, se realiza el mismo procesamiento. Esto permite que el aparato de descodificación de imágenes en movimiento 2a seleccione el mismo esquema de exploración y el mismo conjunto de modos de predicción que los que son seleccionados por el aparato de codificación de imágenes en movimiento 1a o 1b, cuando se descodifican los flujos de bits que son codificados por el aparato de codificación de imágenes en movimiento 1a o 1b.
La figura 17B es un diagrama de flujo que ilustra operaciones del aparato de descodificación. La figura 17B es diferente de la figura 15B en que se realiza una “descodificación” en lugar de una “codificación”. Para la detección de las direcciones de borde y la selección de un esquema de exploración y un conjunto de modos de predicción, se realiza el mismo procesamiento. En consecuencia, no es necesario incluir, en un flujo de bits, información alguna que indique un identificador de esquema de codificación de macrobloques y bloques y un conjunto de modos de predicción.
Tal como se ha descrito en lo que antecede, de acuerdo con el aparato de codificación de imágenes en movimiento y el aparato de descodificación de imágenes en movimiento en la presente forma de realización, no resulta necesario añadir, a un flujo de bits, datos que indiquen un esquema de exploración para macrobloques, un esquema de exploración para bloques y un conjunto de modos de predicción. Con esto, es posible mejorar adicionalmente la eficiencia de codificación.
Obsérvese que en la figura 15A, la figura 15B, la figura 17A y la figura 17B, el esquema de exploración y el conjunto de modos de predicción que se seleccionan para codificar la segunda fila de macrobloques se pueden usar para codificar la tercera fila de macrobloques y las filas de macrobloques subsiguientes. En un caso de este tipo, las unidades de detección de dirección de borde 9 y 29 y las unidades de selección de esquemas de exploración 10 y 20 necesitan realizar el procesamiento solo sobre la fila de macrobloques inicial y, por lo tanto, es posible reducir la carga de procesamiento.
Además, las unidades de detección de dirección de borde 9 y 29 y las unidades de selección de esquemas de exploración 10 y 20 pueden realizar el procesamiento solo sobre las filas de macrobloques de cantidad impar o sobre una fila de macrobloques de inicio de cada N-ésima fila, y para codificar las otras filas de macrobloques, usar el mismo esquema de exploración y el mismo conjunto de modos de predicción que los que son usados para la fila de macrobloques inmediatamente anterior.
Además, la porción previamente determinada que se ha mencionado en lo que antecede dentro de una imagen no se limita a la fila de macrobloques inicial, y puede haber m filas de macrobloques adyacentes que se establecen habitualmente entre el aparato de codificación de imágenes en movimiento y el aparato de descodificación de imágenes en movimiento.
Además, el esquema de exploración para bloques de la fila de macrobloques inicial se puede seleccionar como en la primera forma de realización, en lugar de ser por defecto.
En la presente forma de realización, se ha proporcionado la descripción acerca del caso a modo de ejemplo en el que se detectan las direcciones hacia abajo y a la izquierda en sentido diagonal y hacia abajo y a la derecha en sentido diagonal de los bordes de imagen. Obsérvese, no obstante, que se pueden detectar otras direcciones tales como direcciones horizontal y vertical y se pueden seleccionar un esquema de exploración y un conjunto de modos de predicción que son óptimos para la dirección detectada.
Además, en la presente forma de realización, se selecciona un esquema de exploración para cada fila de macrobloques, no obstante, se puede seleccionar un esquema de exploración para cada varias filas de macrobloques.
En la primera forma de realización, se ha proporcionado la descripción del caso a modo de ejemplo en el que la unidad de selección de esquemas de exploración 10 indica a la unidad de predicción de intra trama 15 que someta a prueba una intra predicción con varias combinaciones de un esquema de exploración para macrobloques, un esquema de exploración para bloques, y un conjunto de modos de predicción, y selecciona la combinación que proporciona el error de predicción mínimo (la etapa S20 en la figura 11). Obsérvese, no obstante, que la unidad de selección de esquemas de exploración 10 puede seleccionar una combinación de acuerdo con el contenido de la imagen usando la unidad de detección de dirección de borde 9. La figura 14B ilustra una variación del aparato de codificación de imágenes en movimiento de la primera forma de realización en un caso de este tipo. El aparato de codificación de imágenes en movimiento 1b en la figura 14B es diferente del aparato de codificación de imágenes en movimiento en la figura 14A en que: se añade una memoria de tramas 8; la unidad de detección de dirección de borde 9 se refiere a la memoria de tramas 8 en lugar de a la memoria 14; y la unidad de selección de esquemas de exploración 10 selecciona un esquema de exploración para macrobloques, un esquema de exploración para bloques, y un conjunto de modos de predicción de acuerdo con una dirección de borde detectado. Con esta estructura, la unidad de selección de esquemas de exploración 10 puede seleccionar un esquema de exploración para macrobloques, un esquema de exploración para bloques, y un conjunto de modos de predicción que son adecuados para la dirección de borde detectado.
Obsérvese que, por lo general, cada bloque funcional de los diagramas de bloques y cada módulo de los diagramas de flujo en las formas de realización que se han descrito en lo que antecede se logran en la forma de un circuito de LSI, es decir, un dispositivo de circuito integrado. Cada una de estas partes se puede encontrar en una pluralidad de circuitos de LSI de una única función, o también se puede encontrar en un circuito de LSI integrado (por ejemplo, los bloques funcionales que no sean la memoria se pueden encontrar en un circuito de LSI integrado). El nombre que se usa en el presente caso es LSI, pero el mismo también se puede denominar CI, LSI de sistema, súper LSI o ultra LSI, dependiendo del grado de integración.
Las formas de lograr la integración no se limitan a la LSI, y un circuito especial o un procesador de propósito general, y así sucesivamente, también pueden lograr la integración. Para el mismo fin se pueden usar las disposiciones de puertas programables en campo (FPGA, Field Prngrammable Gate Array) que se pueden programar después de la fabricación de un circuito de LSI o un procesador reconfigurable que permita la reconfiguración de la conexión o la configuración de las células de circuito dentro de un circuito de LSI.
En el futuro, con el avance en la tecnología de semiconductores, una tecnología completamente nueva puede sustituir a la LSI. La integración se puede llevar a cabo por medio de esa tecnología. Una posibilidad de este tipo es la aplicación de biotecnología.
Además, de entre los bloques funcionales, la unidad para almacenar datos se puede estructurar por separado como un soporte de registro o una DRAM, sin encontrarse en un circuito de LSI integrado.
Obsérvese que las partes principales de los diagramas de flujo que se ilustran en las formas de realización que se han descrito en lo que antecede también se pueden lograr a través de un procesador y un programa.
Tal como se describe, el procedimiento de codificación de imágenes en movimiento y el procedimiento de descodificación de imágenes en movimiento que se ilustran en las formas de realización anteriores se pueden usar para uno cualquiera de los aparatos y sistemas que se han mencionado en lo que antecede, y obrar de este modo permite que se obtengan las ventajas que se han descrito en lo que antecede.
Además, la presente invención no se limita a las formas de realización que se han descrito en lo que antecede, y es posible realizar diversos cambios o modificaciones sin apartarse del ámbito de la presente invención.
Por ejemplo, de acuerdo con una realización ejemplar particular, un aparato de decodificación de imágenes en movimiento que decodifica una imagen en movimiento codificada que incluye imágenes se proporciona. El aparato de decodificación de imágenes en movimiento comprende una unidad de detección operable para detectar, desde la imagen en movimiento codificada, una división de bloque en la que se divide una imagen, incluyendo la imagen bloques, cada uno de los cuales incluye píxeles; una unidad de determinación operable para determinar un esquema de escaneo de entre varios esquemas de escaneo, indicando cada uno un orden de bloques dentro de una imagen; una unidad de obtención operable para obtener, a partir de la imagen en movimiento codificada, un bloque codificado que incluye píxeles; una unidad de decodificación operable para decodificar el bloque codificado; y una unidad de disposición operable para disponer el bloque decodificado en la imagen de acuerdo con la división de bloque detectada y el esquema de escaneo determinado.
La presente invención es aplicable a aparatos de codificación que codifican imágenes y aparatos de descodificación que descodifican imágenes, y es aplicable a servidores web que distribuyen imágenes en movimiento, terminales de red que reciben las imágenes en movimiento, cámaras digitales capaces de registrar y reproducir imágenes en movimiento, teléfonos móviles equipados con cámara, grabadoras / reproductores de DVD, PDA, ordenadores personales y similares.

Claims (2)

REIVINDICACIONES
1. Un procedimiento de decodificación de imágenes en movimiento para decodificar una imagen en movimiento codificada que incluye imágenes, que comprende:
detectar (S110), a partir de la imagen en movimiento codificada, una división de bloque en filas y columnas de macrobloques cada uno de los cuales se divide en bloques, en el que cada bloque incluye píxeles y tiene un tamaño de 4 x 4 píxeles u 8 x 8 píxeles, y cada macrobloque tiene un tamaño de 16 x 16 píxeles;
determinar (S120) una combinación de un esquema de exploración para los macrobloques y un esquema de exploración para los bloques de un macrobloque de entre una pluralidad de combinaciones de un esquema de exploración para los macrobloques y un esquema de exploración para los bloques de un macrobloque de acuerdo con un identificador de esquema de escaneo incluido en la imagen en movimiento codificada, en el que el esquema de exploración para los macrobloques define un orden de exploración de los macrobloques y el esquema de exploración para los bloques de un macrobloque define un orden de exploración para los bloques de un macrobloque;
obtener (S130) a partir de la imagen en movimiento codificada, un bloque codificado que incluye píxeles y un conjunto de modos de intra predicción para los macrobloques; y
decodificar (S140), de acuerdo con el conjunto de modos de intra predicción, los bloques de un macrobloque en un orden en el que se exploran los bloques;caracterizado porque
la pluralidad de combinaciones incluye una combinación que explora una fila de bloques de un macrobloque que es adyacente en sentido horizontal con respecto a un macrobloque actual y que sigue al macrobloque actual con respecto al esquema de exploración determinada para los macrobloques antes de explorar una fila siguiente de bloques del macrobloque actual.
2. Un aparato de decodificación de imágenes en movimiento que decodifica una imagen en movimiento que incluye imágenes, comprendiendo dicho aparato:
una unidad de detección operable para detectar, de la imagen en movimiento codificada, una partición de bloque en filas y columnas de macrobloques cada uno de los cuales se divide en bloques, en el que cada bloque incluye píxeles y tiene un tamaño de 4 x 4 píxeles u 8 x 8 píxeles, y cada macrobloque una unidad de determinación operable para determinar una combinación de un esquema de exploración para los macrobloques y un esquema de exploración para los bloques de un macrobloque de entre una pluralidad de combinaciones de un esquema de exploración para los macrobloques y un esquema de exploración para los bloques de un macrobloque de acuerdo con un identificador de esquema de escaneo incluido en la imagen en movimiento codificada, en el que el esquema de exploración para los macrobloques define un orden de exploración de los macrobloques y el esquema de exploración para los bloques de un macrobloque define un orden de exploración para los bloques de un macrobloque;
una unidad de obtención operable para obtener, a partir de la imagen en movimiento codificada, un bloque codificado que incluye píxeles y un conjunto de modos de intrapredicción para los macrobloques; y modos de intrapredicción para los macrobloques; y
una unidad de decodificación operable para decodificar, de acuerdo con el conjunto de modos de intrapredicción, los bloques de un macrobloque en un orden en el que los bloques se escanean;
caracterizado porque
la pluralidad de combinaciones incluye una combinación que explora una fila de bloques de un macrobloque que es adyacente en sentido horizontal con respecto a un macrobloque actual y que sigue al macrobloque actual con respecto al esquema de exploración determinado para los macrobloques antes de explorar una fila siguiente de bloques del macrobloque actual.
ES17203000T 2005-11-08 2006-11-02 Procedimiento de codificación de imágenes en movimiento, procedimiento de descodificación de imágenes en movimiento y aparatos de los mismos Active ES2755882T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP05024329 2005-11-08

Publications (1)

Publication Number Publication Date
ES2755882T3 true ES2755882T3 (es) 2020-04-24

Family

ID=36118127

Family Applications (2)

Application Number Title Priority Date Filing Date
ES17203000T Active ES2755882T3 (es) 2005-11-08 2006-11-02 Procedimiento de codificación de imágenes en movimiento, procedimiento de descodificación de imágenes en movimiento y aparatos de los mismos
ES06822938.4T Active ES2660663T3 (es) 2005-11-08 2006-11-02 Procedimiento de codificación de imágenes en movimiento, procedimiento de descodificación de imágenes en movimiento y aparatos de los mismos

Family Applications After (1)

Application Number Title Priority Date Filing Date
ES06822938.4T Active ES2660663T3 (es) 2005-11-08 2006-11-02 Procedimiento de codificación de imágenes en movimiento, procedimiento de descodificación de imágenes en movimiento y aparatos de los mismos

Country Status (7)

Country Link
US (4) US8295351B2 (es)
EP (2) EP1956847B1 (es)
JP (1) JP4927753B2 (es)
CN (1) CN101292537B (es)
ES (2) ES2755882T3 (es)
PL (2) PL3306923T3 (es)
WO (1) WO2007055158A1 (es)

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9330060B1 (en) 2003-04-15 2016-05-03 Nvidia Corporation Method and device for encoding and decoding video image data
US8660182B2 (en) 2003-06-09 2014-02-25 Nvidia Corporation MPEG motion estimation based on dual start points
US8731071B1 (en) 2005-12-15 2014-05-20 Nvidia Corporation System for performing finite input response (FIR) filtering in motion estimation
US8724702B1 (en) 2006-03-29 2014-05-13 Nvidia Corporation Methods and systems for motion estimation used in video coding
EP1873055A1 (en) * 2006-06-30 2008-01-02 Technische Universiteit Delft Ship with bow control surface
US8660380B2 (en) 2006-08-25 2014-02-25 Nvidia Corporation Method and system for performing two-dimensional transform on data value array with reduced power consumption
US8756482B2 (en) 2007-05-25 2014-06-17 Nvidia Corporation Efficient encoding/decoding of a sequence of data frames
US9118927B2 (en) 2007-06-13 2015-08-25 Nvidia Corporation Sub-pixel interpolation and its application in motion compensated encoding of a video signal
EP3410706B1 (en) * 2007-06-29 2021-12-01 Velos Media International Limited Image encoding device and image decoding device
US9648325B2 (en) 2007-06-30 2017-05-09 Microsoft Technology Licensing, Llc Video decoding implementations for a graphics processing unit
US8873625B2 (en) * 2007-07-18 2014-10-28 Nvidia Corporation Enhanced compression in representing non-frame-edge blocks of image frames
JP2009094828A (ja) 2007-10-10 2009-04-30 Hitachi Ltd 画像符号化装置及び画像符号化方法、画像復号化装置及び画像復号化方法
JP4892450B2 (ja) * 2007-10-17 2012-03-07 パナソニック株式会社 画像符号化装置および画像符号化方法
EP2081386A1 (en) * 2008-01-18 2009-07-22 Panasonic Corporation High precision edge prediction for intracoding
KR101608426B1 (ko) * 2008-03-28 2016-04-04 삼성전자주식회사 영상의 인트라 예측 부호화/복호화 방법 및 그 장치
WO2010029850A1 (ja) * 2008-09-09 2010-03-18 日本電気株式会社 画像符号化装置、画像復号化装置、画像符号化方法、画像復号化方法、及びそのプログラム
US8666181B2 (en) 2008-12-10 2014-03-04 Nvidia Corporation Adaptive multiple engine image motion detection system and method
EP2211552A1 (en) * 2009-01-22 2010-07-28 Thomson Licensing Method and device for video coding using macroblock groups
WO2010086544A1 (fr) * 2009-01-28 2010-08-05 France Telecom Procede et dispositif de codage d'une image utilisant un masque de prediction, procede et dispositif de decodage, signal et programmes d'ordinateur correspondants
WO2010086548A1 (fr) * 2009-01-28 2010-08-05 France Telecom Procede et dispositif de codage d'une image, procede et dispositif de decodage, et programmes d'ordinateur correspondants
EP2216998A1 (en) * 2009-02-10 2010-08-11 Panasonic Corporation Hierarchical coding for intra
EP2299717A1 (en) * 2009-09-10 2011-03-23 Thomson Licensing Method and apparatus for image encoding using Hold-MBs, and method and apparatus for image decoding using Hold-MBs
NO331356B1 (no) * 2009-10-16 2011-12-12 Cisco Systems Int Sarl Fremgangsmater, dataprogrammer og anordninger for koding og dekoding av video
WO2011089798A1 (ja) 2010-01-19 2011-07-28 ルネサスエレクトロニクス株式会社 動画像符号化方法、動画像復号化方法、動画像符号化装置および動画像復号化装置
KR101449692B1 (ko) * 2010-02-26 2014-10-13 에스케이 텔레콤주식회사 영상 부호화 장치 및 그 방법, 및 영상 복호화 장치 및 그 방법
US8644375B2 (en) 2010-04-09 2014-02-04 Sharp Laboratories Of America, Inc. Methods and systems for intra prediction
US8619857B2 (en) 2010-04-09 2013-12-31 Sharp Laboratories Of America, Inc. Methods and systems for intra prediction
US20110249741A1 (en) * 2010-04-09 2011-10-13 Jie Zhao Methods and Systems for Intra Prediction
US8787443B2 (en) * 2010-10-05 2014-07-22 Microsoft Corporation Content adaptive deblocking during video encoding and decoding
JP5645589B2 (ja) * 2010-10-18 2014-12-24 三菱電機株式会社 動画像符号化装置
US9288496B2 (en) * 2010-12-03 2016-03-15 Qualcomm Incorporated Video coding using function-based scan order for transform coefficients
US9706214B2 (en) 2010-12-24 2017-07-11 Microsoft Technology Licensing, Llc Image and video decoding implementations
US10992958B2 (en) 2010-12-29 2021-04-27 Qualcomm Incorporated Video coding using mapped transforms and scanning modes
JP5781313B2 (ja) * 2011-01-12 2015-09-16 株式会社Nttドコモ 画像予測符号化方法、画像予測符号化装置、画像予測符号化プログラム、画像予測復号方法、画像予測復号装置及び画像予測復号プログラム
US9380319B2 (en) * 2011-02-04 2016-06-28 Google Technology Holdings LLC Implicit transform unit representation
US20120230418A1 (en) 2011-03-08 2012-09-13 Qualcomm Incorporated Coding of transform coefficients for video coding
US9756360B2 (en) * 2011-07-19 2017-09-05 Qualcomm Incorporated Coefficient scanning in video coding
CN107580223B (zh) * 2011-11-08 2020-12-08 株式会社Kt 利用解码装置对视频信号进行解码的方法
WO2013067942A1 (zh) * 2011-11-08 2013-05-16 华为技术有限公司 一种帧内预测方法和装置
US9819949B2 (en) 2011-12-16 2017-11-14 Microsoft Technology Licensing, Llc Hardware-accelerated decoding of scalable video bitstreams
CN103220507B (zh) * 2012-01-19 2018-04-20 中兴通讯股份有限公司 一种视频编解码方法及系统
WO2014003421A1 (ko) * 2012-06-25 2014-01-03 한양대학교 산학협력단 비디오 부호화 및 복호화를 위한 방법
US9497465B2 (en) * 2012-06-29 2016-11-15 Electronics And Telecommunications Research Institute Method and device for encoding/decoding images
US9544597B1 (en) 2013-02-11 2017-01-10 Google Inc. Hybrid transform in video encoding and decoding
US9967559B1 (en) 2013-02-11 2018-05-08 Google Llc Motion vector dependent spatial transformation in video coding
US9674530B1 (en) 2013-04-30 2017-06-06 Google Inc. Hybrid transforms in video coding
US10283091B2 (en) * 2014-10-13 2019-05-07 Microsoft Technology Licensing, Llc Buffer optimization
US9565451B1 (en) 2014-10-31 2017-02-07 Google Inc. Prediction dependent transform coding
US9769499B2 (en) 2015-08-11 2017-09-19 Google Inc. Super-transform video coding
US10277905B2 (en) 2015-09-14 2019-04-30 Google Llc Transform selection for non-baseband signal coding
US9807423B1 (en) 2015-11-24 2017-10-31 Google Inc. Hybrid transform scheme for video coding
KR102445668B1 (ko) * 2016-06-01 2022-09-21 삼성전자주식회사 부호화 순서 부호화 방법 및 그 장치, 복호화 방법 및 그 장치
US10880548B2 (en) 2016-06-01 2020-12-29 Samsung Electronics Co., Ltd. Methods and apparatuses for encoding and decoding video according to coding order
KR102484387B1 (ko) 2017-07-19 2023-01-03 삼성전자주식회사 부호화 방법 및 그 장치, 복호화 방법 및 그 장치
WO2020073228A1 (zh) * 2018-10-10 2020-04-16 富士通株式会社 一种对编码单元进行编码或解码的方法、装置和电子设备
US11122297B2 (en) 2019-05-03 2021-09-14 Google Llc Using border-aligned block functions for image compression

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62145988A (ja) * 1985-12-20 1987-06-30 Fujitsu Ltd 適応的走査線変換画像伝送方式
JP3686695B2 (ja) * 1994-10-20 2005-08-24 オリンパス株式会社 画像処理装置
KR0178198B1 (ko) * 1995-03-28 1999-05-01 배순훈 영상 신호 부호화 장치
US6426975B1 (en) * 1997-07-25 2002-07-30 Matsushita Electric Industrial Co., Ltd. Image processing method, image processing apparatus and data recording medium
WO2002078355A1 (en) * 2001-03-23 2002-10-03 Nokia Corporation Variable length coding
DE10158658A1 (de) * 2001-11-30 2003-06-12 Bosch Gmbh Robert Verfahren zur gerichteten Prädiktion eines Bildblockes
KR100468844B1 (ko) * 2002-01-07 2005-01-29 삼성전자주식회사 정지영상 및 동영상을 부호화/복호화하기 위한변환계수들의 최적주사방법
JP2004253826A (ja) * 2002-10-03 2004-09-09 Matsushita Electric Ind Co Ltd ビデオ及び画像圧縮のための適応マクロブロックスキャン方法
KR101014660B1 (ko) 2003-10-24 2011-02-16 삼성전자주식회사 인트라 예측 방법 및 장치
US7369707B2 (en) 2003-10-28 2008-05-06 Matsushita Electric Industrial Co., Ltd. Intra-picture prediction coding method
JP4515886B2 (ja) * 2003-10-28 2010-08-04 パナソニック株式会社 面内予測符号化方法
JP4577048B2 (ja) * 2004-03-11 2010-11-10 パナソニック株式会社 画像符号化方法、画像符号化装置および画像符号化プログラム
CN1589023A (zh) * 2004-08-06 2005-03-02 联合信源数字音视频技术(北京)有限公司 一种基于上下文的多码表变长编解码方法及编解码装置
JP4877449B2 (ja) * 2004-11-04 2012-02-15 カシオ計算機株式会社 動画像符号化装置および動画像符号化処理プログラム
KR100727970B1 (ko) * 2005-08-30 2007-06-13 삼성전자주식회사 영상의 부호화 및 복호화 장치와, 그 방법, 및 이를수행하기 위한 프로그램이 기록된 기록 매체

Also Published As

Publication number Publication date
US20120307896A1 (en) 2012-12-06
PL3306923T3 (pl) 2020-04-30
US10375401B2 (en) 2019-08-06
WO2007055158A1 (ja) 2007-05-18
US9137538B2 (en) 2015-09-15
US10104381B2 (en) 2018-10-16
EP1956847A4 (en) 2014-05-14
PL1956847T3 (pl) 2018-06-29
JPWO2007055158A1 (ja) 2009-04-30
CN101292537A (zh) 2008-10-22
EP3306923B1 (en) 2019-09-18
US20190014328A1 (en) 2019-01-10
JP4927753B2 (ja) 2012-05-09
ES2660663T3 (es) 2018-03-23
US20090122864A1 (en) 2009-05-14
EP3306923A1 (en) 2018-04-11
US8295351B2 (en) 2012-10-23
EP1956847B1 (en) 2018-01-03
US20150350651A1 (en) 2015-12-03
CN101292537B (zh) 2010-10-20
EP1956847A1 (en) 2008-08-13

Similar Documents

Publication Publication Date Title
ES2755882T3 (es) Procedimiento de codificación de imágenes en movimiento, procedimiento de descodificación de imágenes en movimiento y aparatos de los mismos
US7346111B2 (en) Co-located motion vector storage
US11109050B2 (en) Video encoding and decoding
ES2927641T3 (es) Fusionar filtros para múltiples clases de bloques para codificación de video
US20090196350A1 (en) Methods and devices of intra prediction encoding and decoding
TW201637446A (zh) 用於預測剩餘之增強型多重轉變
US11825082B2 (en) Coding and decoding methods, coding and decoding device
BR122019025427B1 (pt) 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
CN110798683B (zh) 数据解码方法、装置和数据编码方法、装置
US7499493B2 (en) Dual block motion vector storage in compressed form
US20150110191A1 (en) Video encoding method and apparatus, and video decoding method and apparatus performing motion compensation
US8831099B2 (en) Selecting a macroblock encoding mode by using raw data to compute intra cost
CN111669579B (zh) 进行编码和解码的方法、编码端、解码端和系统
US20240040133A1 (en) Video coding using multi-model linear model
US20230345021A1 (en) Efficient storage of data for a multi-stage two-dimensional transform
Sampaio Energy-efficient memory architecture design and management for parallel video coding
CN116320401A (zh) 视频编解码方法及相关装置
US20160366434A1 (en) Motion estimation apparatus and method
Choi et al. Efficient test bitstream generation with an N-way covering algorithm for configurations of high-level syntax elements in video decoders