ES2299787T3 - Codificacion de video mejorada usando codificacion adaptativa de parametros de bloque para bloques codificados/sin codificar. - Google Patents

Codificacion de video mejorada usando codificacion adaptativa de parametros de bloque para bloques codificados/sin codificar. Download PDF

Info

Publication number
ES2299787T3
ES2299787T3 ES04028880T ES04028880T ES2299787T3 ES 2299787 T3 ES2299787 T3 ES 2299787T3 ES 04028880 T ES04028880 T ES 04028880T ES 04028880 T ES04028880 T ES 04028880T ES 2299787 T3 ES2299787 T3 ES 2299787T3
Authority
ES
Spain
Prior art keywords
macroblock
plural
video
macroblocks
frame
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
ES04028880T
Other languages
English (en)
Inventor
Ming-Chieh Lee
Wei-Ge Chen
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.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Application granted granted Critical
Publication of ES2299787T3 publication Critical patent/ES2299787T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/186Methods 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 colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

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

Abstract

Un procedimiento implementado por ordenador de descodificación de tramas plurales de vídeo en una secuencia de vídeo, en la que cada una de las tramas plurales de vídeo incluye macrobloques plurales, comprendiendo el procedimiento: la recepción de los datos de vídeo comprimido en un flujo binario, teniendo el flujo binario una sintaxis de codificación con niveles plurales de sintaxis, los niveles plurales de sintaxis incluyendo nivel de trama y nivel de macrobloque; y la descompresión de una trama de vídeo prevista de las tramas plurales de vídeo usando descompresión inter-trama, en la que la descompresión usando descompresión inter-trama incluye: la recuperación de información a nivel de trama para indicar si la sintaxis del macrobloque incluye bits indicadores plurales para los macrobloques plurales de la trama de vídeo prevista para indicar, para cada uno de los macrobloques, si el macrobloque va a ser omitido. si los bits indicadores plurales están presentes en el flujo binario para los macrobloques plurales de la trama de vídeo prevista, para cada macrobloque de los macrobloques plurales de la trama de vídeo prevista, recuperar a nivel de macrobloque para el macrobloque un único bit indicador de los bits indicadores plurales; en base al bit indicador único recuperado, determinar si el macrobloque está omitido o no está omitido, y si el macrobloque no está omitido, recuperar a nivel de macrobloque la información de movimiento de macrobloque y la información de patrón de bloque codificadas para el macrobloque; y si los bits indicadores plurales no están presentes en el flujo binario, para cada uno de los macrobloques plurales de la trama de vídeo prevista: recuperar a nivel de macrobloque la información de movimiento de macrobloque y la información de patrón de bloque codificadas.

Description

Codificación de vídeo mejorada usando codificación adaptativa de parámetros de bloque para bloques codificados/sin codificar.
Campo de la invención
\global\parskip0.900000\baselineskip
La invención se refiere a la codificación de vídeo, y de manera específica, a un procedimiento de codificación de vídeo mejorado usado en codificadores y en descodificadores de vídeo.
Antecedentes de la invención
Las reproducciones de vídeo con movimiento completo basadas en señales de vídeo analógicas se han encontrado disponibles durante un largo tiempo en el formato de televisión. Con los recientes avances en las capacidades y en las posibilidades de procesado por ordenador, las reproducciones de vídeo con movimiento completo basadas en señales de vídeo digitales han pasado a convertirse en disponibles comercialmente. Los sistemas de vídeo digitales pueden proporcionar mejoras significativas sobre los sistemas de vídeo analógicos convencionales para la creación, modificación, transmisión, almacenamiento y reproducción de secuencias de vídeo con movimiento completo.
Las exhibiciones de vídeo digital incluyen un gran número de tramas de imagen que son reproducidas o extraídas de manera sucesiva a frecuencias entre 30 y 75 Hz. Cada trama de imagen es una imagen fija formada a partir de una matriz de píxeles basada en la resolución de la pantalla de un sistema en particular. Como ejemplos, los sistemas basados en VHS tienen resoluciones de pantalla de 320 x 480 píxeles, los sistemas basados en NTSC tienen resoluciones de pantalla de 720 x 486 píxeles, y los sistemas de televisión de alta definición (HDTV) bajo desarrollo tienen resoluciones de pantalla de 1360 x 1024 píxeles.
Las cantidades de información digital en bruto incluida en las secuencias de vídeo son masivas. El almacenamiento y la transmisión de estas cantidades de información de vídeo es inviable con un equipo de ordenador personal convencional. Considérese, por ejemplo, un formato digitalizado de un formato de imagen VHS de relativamente baja resolución que tenga una resolución de 320 x 480 píxeles. Una imagen en movimiento de longitud completa de dos horas de duración a esta resolución corresponde a 100 gigabytes de información de vídeo digital. Mediante comparación, los discos ópticos compactos convencionales tienen capacidades aproximadamente de 0,6 gigabytes, los discos duros magnéticos tienen capacidades de 1 a 2 gigabytes, y los discos ópticos compactos bajo desarrollo tienen unas capacidades de hasta 8 gigabytes.
Para tratar las limitaciones en el almacenamiento o en la transmisión de dichas cantidades masivas de información de vídeo digital, se han establecido varias normas y procesos de compresión de vídeo, incluyendo MPEG-1, MPEG2 y H.26X. Estas técnicas de compresión de vídeo utilizan similitudes entre las tramas sucesivas de imágenes, a las que se hace referencia como correlación temporal o inter-trama, para proporcionar la compresión inter-trama en la que los datos de movimiento y las señales de error se usan para codificar los cambios entre tramas.
Además, las técnicas de compresión de vídeo convencionales utilizan similitudes dentro de las tramas de la imagen, a las que se hace referencia como correlación espacial o intra-trama, para proporcionar la compresión intra-trama en la que se comprimen las muestras de la imagen que estén dentro de una trama de imagen. La compresión intra-trama se basa en procesos convencionales para comprimir las imágenes fijas, tales como la codificación de la transformada coseno discreta (DTC). A veces se hace referencia a este tipo de codificación como codificación de "textura" o de "transformada". Una "textura" por lo general se refiere a una matriz de dos dimensiones de valores de muestras de imagen, tal como una matriz de valores de crominancia y de luminancia o una matriz de valores alfa (opacidad). El término "transformada" en este contexto hace referencia a cómo se transforman las muestras de la imagen en las componentes espaciales de frecuencia durante el proceso de la codificación. Este uso del término "transformada" se debería distinguir de una transformada geométrica usada para estimar cambios de escena en algunos procedimientos de compresión inter-trama.
La compresión inter-trama de manera típica utiliza una estimación del movimiento y compensación del mismo para codificar los cambios de escena entre tramas. La estimación del movimiento es un proceso para estimar el movimiento de las muestras de imagen (por ejemplo, los píxeles) entre tramas. Usando la estimación de movimiento, el codificador intenta comparar bloques de píxeles de una trama con los píxeles correspondientes de otra trama. Después de que el bloque más similar sea encontrado en un área de búsqueda dada, el cambio en la posición de las localizaciones de píxel de los píxeles correspondientes es aproximado y se representa como datos de movimiento, tales como un vector de movimiento. La compensación de movimiento es un procedimiento para determinar una imagen prevista y calcular el error entre la imagen prevista y la imagen original. Usando la compensación de movimiento, el codificador aplica los datos de movimiento a una imagen y calcula una imagen prevista. La diferencia entre la imagen prevista y la imagen de entrada se denomina la señal de error. Como la señal de error es una matriz de valores que representan la diferencia entre los valores de muestra de imagen, se puede comprimir usando el mismo procedimiento de codificación de textura que el usado para la codificación intra-trama de las muestras de imagen.
Aunque difieren en las implementaciones específicas, las normas de compresión de vídeo MPEG-1, MPEG-2 y H.26X son similares en varios sentidos. La siguiente descripción de la norma de compresión de vídeo MPEG-2 es aplicable por lo general a las otras.
\global\parskip1.000000\baselineskip
MPEG-2 proporciona compresión inter-trama y compresión intra-trama en base a bloques cuadrados de matrices de píxeles en las imágenes de vídeo. Una imagen de vídeo está dividida en bloques de muestra de imagen denominados macrobloques que tienen unas dimensiones de 16 x 16 píxeles. En MPEG-2, un macrobloque comprende cuatro bloques de luminancia (cada bloque es de 8 x 8 muestras de luminancia (Y)) y dos bloques de crominancia (un bloque de muestra de 8 x 8 cada uno para Cb y Cr).
En MPEG-2, la codificación inter-trama se realiza sobre los macrobloques. Un codificador MPEG-2 realiza la estimación y la compensación del movimiento para calcular los vectores de movimiento y las señales de error de bloque. Para cada bloque M_{N} en una trama de imagen N, se realiza una búsqueda por toda la imagen de una trama N+1 de vídeo siguiente sucesiva o de una trama de imagen inmediatamente precedente N-1 (es decir, de forma bidireccional) para identificar los respectivos bloques más similares, M_{N+1}, o M_{N-1}. La localización del bloque más similar con relación al bloque M_{N} se codifica con un vector de movimiento (DX, DY). El vector de movimiento se usa después para calcular un bloque de valores de muestras predichos. Los valores de muestras predichos se comparan con el bloque M_{N} para determinar la señal de error de bloque. La señal de error se comprime usando un procedimiento de codificación de textura tal como una codificación de transformada de coseno discreta (DCT).
Se han propuesto las técnicas de codificación de vídeo basadas en objetos como una mejora a las normas de codificación convencionales basadas en tramas. En la codificación basada en objetos, las características de la imagen con forma arbitraria son separadas de las tramas de la secuencia de vídeo usando un procedimiento denominado "segmentación". Los objetos de vídeo o "segmentos" se codifican de manera independiente. La codificación basada en objetos puede mejorar la velocidad de compresión porque aumenta la correlación inter-trama entre los objetos de vídeo en las sucesivas tramas. También es ventajosa para una variedad de aplicaciones que requieran el acceso a objetos y el seguimiento de los mismos en una secuencia de vídeo.
En los procedimientos de codificación de vídeo basados en objetos propuestos para la norma MPEG-4, la forma, el movimiento y la textura de los objetos de vídeo se codifican de manera independiente. La forma de un objeto se representa por medio de una máscara binaria o alfa que define los límites del objeto con forma arbitraria en una trama de vídeo. El movimiento de un objeto es similar a los datos de movimiento de MPEG-2, excepto que se aplica a una imagen con una forma arbitraria del objeto que se haya segmentado a partir de una forma rectangular. La estimación del movimiento y la compensación del mismo se realizan sobre bloques de un "plano de objeto de vídeo" en lugar de sobre toda la trama. El plano de objeto de vídeo es el nombre para la imagen con forma de un objeto de una única trama.
La textura de un objeto de vídeo es la información de la muestra de la imagen en un plano de objeto de vídeo que caiga dentro de la forma del objeto. La codificación de la textura de muestras de imagen de un objeto y las señales de error se realiza usando procedimientos de codificación de la textura similares como en la codificación basada en trama. Por ejemplo, una imagen segmentada se puede ajustar dentro de un rectángulo limitador formado por macrobloques. La imagen rectangular formada por el rectángulo limitador se puede comprimir justo como una trama rectangular, excepto que los macrobloques transparentes no necesitan ser codificados. Los bloques parcialmente transparentes son codificados después de rellenar las porciones del bloque que caigan fuera del límite de la forma del objeto con valores de muestra en una técnica denominada "relleno".
Las técnicas de codificación basadas en tramas tales como MPEG-2 y H.26X y las técnicas de codificación basadas en objetos propuestas para MPEG-4 son similares en que realizan la codificación intra-trama e inter-trama sobre los macrobloques. El formato de codificación inter-trama para estás técnicas usa un bit especial para indicar si el macrobloque de inter-trama está codificado. A este bit especial a veces se le denomina el bit COD o el bit "no codificado". Para ser consecuentes, nos referiremos a este tipo de parámetro como un bit COD o parámetro COD. El bit COD indica si el macrobloque codificado incluye o no datos de movimiento y datos de error codificados de textura. En los casos en los que los datos de movimiento y los datos de señal de error sean cero, el bit COD reduce la información necesaria para codificar el macrobloque porque solamente se envía un bit en lugar de bits adicionales que indiquen que los datos de vector de movimiento y los datos de textura no están codificados.
Además del bit COD, la sintaxis de codificación para los macrobloques incluye parámetros de bloque codificados (CBP) que indican si se transmiten los coeficientes de la transformada codificados para la crominancia y para la luminancia para el macrobloque. Si los coeficientes de la transformada son todos ellos cero para un bloque, no hay necesidad de enviar datos de textura para el bloque. Los parámetros de bloque codificados para la crominancia (CBCP) son dos bits que indican si se transmiten o no los datos de textura codificados para cada uno de los dos bloques de crominancia. El patrón de bloque codificado para la luminancia (CBPY) son cuatro bits que indican si se transmiten o no los datos de textura codificados para cada uno de los cuatro bloques de luminancia.
Los bits CBPC se codifican junto con otro indicador que proporciona información acerca del tipo de cuantificación para el macrobloque. Estos indicadores se combinan para formar un parámetro denominado MCBPC, y MCBPC es la entropía codificada usando un procedimiento de codificación de la entropía tal como una codificación de Huffman o una codificación aritmética. Los indicadores CBPY también se codifican como la entropía usando una codificación de Huffman o una codificación aritmética.
Mientras que el bit COD tiene ventajas en la codificación de escenas con muy poco movimiento, es ineficiente para escenas que cambien de manera frecuente y que tengan muy pocos macrobloques con vectores de movimiento cero (es decir, vectores de movimiento que indiquen el movimiento cero). De esta manera, existe una necesidad de una aplicación más eficiente para el bit COD para estos tipos de escenas.
El código de longitud variable para CBPY se basa en la suposición de que los macrobloques de intra-trama incluyen más bloques de luminancia codificados que bloques no codificados, mientras que para los macrobloques inter-trama es cierto lo contrario. Esta suposición se viola en algunos casos, y de esta forma, conduce a una codificación ineficiente de los indicadores CBPY.
En la Recomendación UIT-T H.262, UIT-T, ISO/IEC 13818 - 2 titulada "Tecnología de la Información - Código genérico de Imágenes en movimiento e Información de Audio asociado: Vídeo", julio de 1995, XP000198491, se describe un proceso de codificación y descodificación para los datos de vídeo. El algoritmo de codificación es un híbrido de predicción compensada de movimiento y DCT, en el que los macrobloques omitidos (es decir, los macrobloques para los que no se han codificado datos) están identificados por medio de la diferencia en la dirección del macrobloque actual y la dirección del macrobloque anterior.
Sumario de la invención
La invención, como se declara en las reivindicaciones anejas, proporciona un procedimiento mejorado de codificación de parámetros de bloque para secuencias de vídeo que se codifican usando estimación y compensación del movimiento.
En un primer aspecto, la presente invención proporciona un procedimiento implementado por ordenador para descodificar tramas plurales de vídeo en una secuencia de vídeo, en la que cada una de las tramas plurales de vídeo incluye macrobloques plurales, comprendiendo el procedimiento: la recepción de datos de vídeo comprimido en un flujo binario, teniendo el flujo binario una sintaxis de codificación con niveles plurales de sintaxis, los niveles plurales de sintaxis incluyendo un nivel de trama y un nivel de macrobloque; y la descompresión de una trama de vídeo prevista de las tramas plurales de vídeo usando descompresión inter-trama. La descompresión usando descompresión inter-trama incluye: la recuperación de la información al nivel de trama para la trama de vídeo prevista; a partir de la información recuperada, la determinación de si los bits indicadores plurales se encuentran presentes en el flujo binario para los macrobloques plurales de la trama de vídeo prevista; y si los bits indicadores plurales están presentes en el flujo binario para los macrobloques plurales de la trama de vídeo prevista, para cada uno de los macrobloques de los macrobloques plurales de la trama de vídeo prevista: recuperación al nivel de macrobloque para el macrobloque de un bit indicador único de los bits indicadores plurales; en base al bit indicador único recuperado, determinar si el macrobloque es omitido o no es omitido; si el macrobloque no es omitido, recuperar a nivel del macrobloque la información de movimiento de macrobloque y la información del patrón de bloque codificado para el macrobloque.
En un segundo aspecto, la presente invención proporciona un procedimiento implementado por ordenador para codificar tramas plurales de vídeo en una secuencia de vídeo, en el que cada una de las tramas plurales de vídeo incluye macrobloques plurales, comprendiendo el procedimiento: la compresión de los datos de vídeo en un flujo binario, teniendo el flujo binario una sintaxis de codificación con niveles plurales de sintaxis, los niveles plurales de sintaxis incluyendo un nivel de trama y un nivel de macrobloque, en el que los datos de compresión de vídeo en el flujo binario incluyen la compresión de una trama de vídeo prevista de las tramas plurales de vídeo usando compresión inter-trama. La compresión usando compresión inter-trama incluye: extraer la información al nivel de trama para la trama de vídeo prevista, indicando la información de salida al nivel de trama si hay presentes bits indicadores plurales en el flujo binario para los macrobloques plurales de la trama de vídeo prevista; y si los bits indicadores plurales se encuentran presentes en el flujo binario para los macrobloques plurales de la trama de vídeo prevista, para cada macrobloque de los macrobloques plurales de la trama de vídeo prevista: extraer a nivel de macrobloque para el macrobloque, un bit indicador único de los bits indicadores plurales, indicando el bit indicador único si el macrobloque está omitido o no está omitido; y si el macrobloque no está omitido, extraer a nivel de macrobloque la información de movimiento del macrobloque y la información de patrón de bloque codificada para el macrobloque.
Un procedimiento como se describe para la codificación adaptativa de un parámetro COD que indica si los datos de textura y de movimiento están codificados para los macrobloques inter-trama. Se describe otro procedimiento para seleccionar de manera adaptativa un modo de codificación de la entropía para los parámetros de bloque codificados para la luminancia en base a los parámetros de bloque codificados para la crominancia. Ambas características se aplican a la codificación de vídeo basada en objetos y a la codificación de vídeo basada en tramas.
La codificación adaptativa del parámetro COD mejora la eficiencia de la codificación para un número de aplicaciones de codificación de vídeo, y en particular, para escenas con pocos macrobloques con movimiento cero. La codificación adaptativa para el parámetro COD se refiere a un procedimiento para inhabilitar de manera selectiva el parámetro COD en base al número de macrobloques no codificados en una imagen de vídeo. La codificación adaptativa del parámetro COD se implementa en el codificador mediante la determinación del número de macrobloques en una imagen con textura y movimiento cero ("macrobloques omitidos"). El parámetro COD es después inhabilitado para los macrobloques inter-trama en la imagen cuando el número de macrobloques omitidos sea menor que un valor umbral.
El número umbral se deriva a partir del número total de macrobloques en la imagen y del número de bits necesarios para codificar el movimiento y la textura en un macrobloque de inter-trama en el que los datos de textura y de movimiento sean todos ellos cero. En el punto umbral, necesita menos bits para codificar todos los macrobloques sin el parámetro COD porque existen más bits COD que el número de bits necesarios para codificar los datos de movimiento y de la textura para los bloques inter-trama para los que los datos de la textura y del movimiento sean cero. Por ejemplo, si se requieren cinco bits para codificar el movimiento y la textura cero para un macrobloque, entonces el número umbral es un quinto del número total de macrobloques para la imagen.
La inhabilitación adaptativa del parámetro COD se representa usando un indicador de inhabilitación COD que se proporciona con cada una de las imágenes inter-trama. El indicador indica si el parámetro COD esté incluido con cada uno de los macrobloques de la imagen. El codificador determina el valor de este indicador después de realizar la estimación del movimiento, compensación del movimiento y codificación de la textura para la imagen porque estos procesos indican cuántos bloques tienen macrobloques con datos de textura y de movimiento cero. El descodificador usa el indicador de inhabilitación COD para determinar si descodificar el parámetro COD para cada macrobloque.
La codificación eficiente se puede realizar además mediante la selección adaptativa del modo de codificación de la entropía para el patrón de bloque codificado para la luminancia (CBPY) en base al patrón de bloques codificado para la crominancia (CBPC). Este procedimiento de codificación mejorado selecciona la codificación de la entropía para CBPY en los macrobloques inter-trama en base a si los bits CBPC están activados para el macrobloque. Cuando los bits CBPC están activados ("11") en un macrobloque de inter-trama, es más probable que los bloques de luminancia tengan coeficientes de transformada distintos de cero. Como tales, se selecciona la codificación de la entropía de forma que se usen menos bits para codificar CBPY para los bloques de luminancia codificados. A la inversa, cuando uno de los bits CBPC no esté activado, se selecciona la codificación de la entropía de forma que se usen menos bits para codificar CBPY para los bloques de luminancia no codificados.
Los procedimientos resumidos con anterioridad mejoran la eficiencia de la codificación para los macrobloques inter-trama en escenas de vídeo con pocos macrobloques que tengan movimiento cero y cambios frecuentes de una trama a otra. La inhabilitación adaptativa del parámetro COD puede ahorrar del 2 al 3% de la velocidad binaria total para aplicaciones de baja velocidad binaria. La selección adaptativa del modo de codificación CBPY para los bloques inter-trama se ha demostrado que reduce el número de bits necesarios para codificar CBPY en un 25%. Estos procedimientos mejoran la eficiencia de la codificación sin aumentar la complejidad de un codificador y el diseño de un descodificador o creando problemas de compatibilidad.
Características y ventajas adicionales de la invención serán más aparentes a partir de la siguiente descripción detallada y de los dibujos que la acompañan de una implementación de la invención.
Breve descripción de los dibujos
La figura 1 es un diagrama de bloques de un codificador de vídeo.
La figura 2 es un diagrama de bloques de un descodificador de vídeo.
La figura 3 es un diagrama de flujo que ilustra un proceso de codificación para inhabilitar de manera adaptativa el parámetro COD para macrobloques inter-trama.
La figura 4 es un diagrama de flujo que ilustra cómo interpreta un descodificador los macrobloques para los que el parámetro COD está habilitado e inhabilitado.
La figura 5 es un diagrama de flujo que ilustra cómo un codificador gestiona la codificación de la entropía de parámetros CBPY en base a los valores de los parámetros CBPC.
La figura 6 es un diagrama de bloques que ilustra cómo un descodificador interpreta los parámetros CBPY de los macrobloques de inter-trama en base a los valores de los parámetros CBPC.
Descripción detallada Introducción
La primera sección a continuación proporciona una descripción de un codificador y de un descodificador de vídeo. Las posteriores secciones describen cómo mejorar la codificación por medio de: 1) la habilitación adaptativa de un parámetro de bloque que indique si están codificados el movimiento y la textura para un bloque, y 2) la mejora de la codificación de la entropía de los parámetros de bloque indicando si los bloques de luminancia están codificados para un macrobloque.
La invención se aplica tanto para la codificación basada en tramas como para la codificación basada en objetos. La invención mejora la codificación de secuencias de imagen, si las imágenes representan planos de objetos de vídeo derivados a partir de una secuencia de tramas o de la totalidad de las tramas. La codificación basada en objetos incluye componentes similares de codificación de movimiento y de textura usados en la codificación basada en tramas así como la codificación de la forma. La sintaxis pertinente de bloque para la invención es similar tanto en la codificación basada en tramas como en la codificación basada en objetos. De esta manera, mientras que el codificador y el descodificador descritos en la siguiente sección se basan en objetos, proporcionan una base suficiente para explicar cómo implementar la invención tanto en esquemas de codificación basados en tramas como en esquemas de codificación basados en objetos.
Descripción de un codificador y un descodificador de ejemplo
La figura 1 es un diagrama de bloques que ilustra una implementación de un codificador de vídeo basado en objetos. La entrada 30 al codificador incluye una serie de objetos, su información de forma y sus rectángulos delimitadores. La información de forma, por lo tanto, se encuentra disponible antes de que el codificador codifique los datos de textura y de movimiento. La codificación basada en tramas se diferencia en que la totalidad de la trama se codifica sin información de la forma.
El módulo de codificación de la forma 32 recibe la definición de un objeto incluyendo su rectángulo delimitador y amplía el rectángulo delimitador a múltiplos enteros de los macrobloques. La información de la forma para un objeto comprende una máscara de "plano alfa". El módulo de codificación de la forma 32 lee esta máscara y la comprime, usando por ejemplo, un procedimiento de codificación de cadena convencional para codificar el contorno del objeto.
El módulo de estimación del movimiento 34 lee un objeto incluyendo su rectángulo delimitador y una imagen previamente reconstruida 1636 y calcula los datos de la estimación del movimiento usados para predecir el movimiento de un objeto desde una trama a otra. El módulo de estimación del movimiento 1634 busca el macrobloque que sea el más similar de todos en la imagen reconstruida para cada macrobloque en la imagen actual para calcular los datos de movimiento para cada macrobloque. El formato específico de los datos de movimiento provenientes del módulo de estimación de movimiento 1634 pueden variar dependiendo del procedimiento de estimación del movimiento utilizado. Por ejemplo, los datos de movimiento pueden incluir vectores de movimiento o coeficientes de transformada geométrica tales como los coeficientes de la transformada afín usado para predecir el movimiento del macrobloque. En la codificación estándar del movimiento, los datos de movimiento incluyen un vector de movimiento para cada macrobloque, o cuatro vectores de movimiento, correspondientes a los cuatro bloques de luminancia en el macrobloque.
El módulo de compensación de movimiento 38 lee los datos de movimiento calculados por el módulo de estimación de movimiento y la imagen previamente reconstruida 36 y calcula una imagen prevista para la trama actual. El codificador encuentra la diferencia entre los valores de muestra de la imagen en el bloque de imagen de entrada, como se especifica en la entrada 30 y los correspondientes valores de muestra en el bloque de imagen predicho como se calcularon en el módulo de compensación del movimiento 38 para determinar la señal de error para el macrobloque.
El módulo de codificación de la textura 40 comprime esta señal de error para los objetos codificados inter-trama y comprime los valores de muestra de imagen para el objeto a partir del flujo de datos de entrada 30 para los objetos codificados intra-trama. El camino de realimentación 42 desde el módulo de codificación de la textura 40 representa la señal de error. El codificador usa los bloques de la señal de error junto con los bloques de imagen predichos provenientes del módulo de compensación del movimiento para calcular la imagen previamente reconstruida 36.
El módulo de codificación de la textura 40 codifica los datos intra-trama y los datos de la señal de error para un objeto usando cualquiera de una variedad de técnicas de compresión de imagen fija. Técnicas de compresión de ejemplo incluyen DCT, tren de ondas, así como otros procedimientos de compresión de imagen convencionales.
El flujo binario de la secuencia de vídeo comprimido incluye la información codificada de la forma, del movimiento y de la textura proveniente de la codificación de la forma, la estimación del movimiento y los módulos de codificación de la textura. El multiplexor 44 combina y da formato a estos datos con la sintaxis apropiada y los saca a la memoria de almacenamiento temporal 46.
Mientras que el codificador se puede implementar en hardware o en software, con más probabilidad se implementará en software. En una implementación software, los módulos del codificador representan rutinas software que se ejecutan en la memoria de un ordenador y la memoria usada para almacenar los datos de vídeo. Un codificador software se puede almacenar y distribuir sobre una variedad de medios convencionales legibles por un ordenador. En implementaciones hardware, los módulos de codificador son implementados en lógica digital, de manera preferible en un circuito integrado. Algunas de las funciones del codificador se pueden optimizar en dispositivos lógicos digitales de propósito especial en un periférico de ordenador para descargar la carga de procesado proveniente de un ordenador servidor.
La figura 2 es un diagrama de bloques que ilustra un descodificador para un procedimiento de codificación de vídeo basado en objetos. Un demultiplexor 60 recibe un flujo binario que representa una secuencia de vídeo comprimida y datos codificados independientes de las formas, del movimiento y de la textura sobre una base de objeto por objeto. El módulo de descodificación de la forma 64 descodifica la forma o el contorno para el objeto actual que se esté procesando. Para llevar a cabo esto, emplea un descodificador de la forma que implementa el procedimiento inverso al procedimiento de codificación de la forma usado en el codificador de la figura 2. Los datos de forma resultantes son una máscara, tal como un plano alfa binario o un plano alfa de escala de grises que representa la forma del
objeto.
El módulo de descodificación del movimiento 66 descodifica la información del movimiento en el flujo binario. La información de movimiento descodificada incluye datos de movimiento como vectores de movimiento para los bloques de macrobloques o coeficientes de transformada geométrica, dependiendo del tipo del procedimiento de estimación usado en el codificador. El módulo de descodificación de movimiento 66 proporciona esta información de movimiento al módulo de compensación de movimiento 68, y el módulo de compensación de movimiento 68 aplica los datos de movimiento a los datos 70 de objeto previamente reconstruido.
El módulo de descodificación de la textura 74 descodifica las señales de error para los datos de textura codificados inter-trama y una matriz de valores de color para los datos de textura intra-trama y pasa esta información a un módulo 72 para calcular y acumular la imagen reconstruida. Para los objetos codificados inter-trama, este módulo 72 aplica los datos de la señal de error a la salida de imagen prevista proveniente del módulo de compensación de movimiento para calcular el objeto reconstruido para la trama actual. Para los objetos codificados intra-trama, el módulo de descodificación de la textura 74 descodifica los valores de muestra de la imagen para el objeto y coloca el objeto reconstruido en el módulo de objeto reconstruido 72. Los objetos reconstruidos previamente, son temporalmente almacenados en memoria de objeto 70 y son usados para construir el objeto para otras tramas.
Como el codificador, el descodificador se puede implementar en hardware o en software o en una combinación de ambos. En las implementaciones software, los módulos del descodificador son rutinas software que se ejecutan en la memoria de un ordenador y la memoria usada para almacenar los datos de vídeo. Un descodificador software se puede almacenar y distribuir sobre una variedad de medios convencionales legibles por un ordenador. En las implementaciones hardware, los módulos de descodificador se implementan en lógica digital, de manera preferible en un circuito integrado. Algunas de las funciones de descodificador se pueden optimizar en dispositivos lógicos digitales de propósito especial en un periférico de ordenador para descargar la carga de procesado proveniente de un ordenador servidor.
Codificación mejorada de parámetros COD
En las normas de codificación de vídeo actuales y en las propuestas, el parámetro COD se usa para indicar si el movimiento y la textura están codificados para un macrobloque de inter-trama. El uso del bit COD se optimiza para la codificación de muy baja velocidad binaria o escenas con un bajo movimiento. Para muchas aplicaciones, y en particular para las aplicaciones de Internet, este uso del bit COD puede ser ineficiente. Por ejemplo, en estas aplicaciones:
\bullet
La velocidad binaria disponible para el vídeo es de manera típica 10+ kilobits por segundo (kbps);
\bullet
el tamaño de la imagen es de manera típica QCIF (QCIF es un tamaño de trama estándar que tiene 99 macrobloques);
\bullet
la velocidad de trama es de manera típica 5+ por segundo; y
\bullet
el cambio de escena es frecuente, y el movimiento entre tramas es mayoritariamente distinto de cero.
Bajo estas condiciones, la mayoría de los datos de textura para los macrobloques/bloques tienen coeficientes distintos de cero. El bit COD no es efectivo en estas circunstancias porque aunque la codificación se omite para pocos macrobloques, aún se envía el parámetro COD para todos los macrobloques inter-trama ya se omitan estos macrobloques o no. La velocidad binaria para el parámetro COD es aproximadamente 0,5 kbps. El procedimiento detallado a continuación inhabilita de manera adaptativa el bit COD y ahora de manera potencial del 2 al 3% de la velocidad binaria total.
Para mejorar la eficiencia del parámetro COD, el codificador de manera adaptativa inhabilita este parámetro para las imágenes codificadas inter-trama en las que el número de macrobloques no codificados sobrepasa un valor umbral. En la codificación basada en objetos, el codificador añade un indicador a la sintaxis de codificación al nivel de plano de objeto de vídeo para indicar si el parámetro COD está inhabilitado para todos los macrobloques inter-trama en el plano de objeto de vídeo. El plano de objeto de vídeo es una imagen que representa un objeto en una trama.
En la codificación basada en tramas, el codificador añade un indicador a la sintaxis de codificación al nivel de trama para indicar si el parámetro COD está inhabilitado para todos los macrobloques de la trama. Nótese que tanto en la aproximación basada en objetos como en la aproximación basada en tramas, el parámetro COD está inhabilitado para los macrobloques inter-trama.
El codificador de vídeo de la figura 1 codifica una imagen de vídeo en dos etapas primarias. La primera etapa realiza una estimación y una compensación del movimiento, y la segunda etapa construye el flujo binario con la sintaxis de codificación apropiada. De esta forma, el número de macrobloques para los que los vectores de movimiento y los datos de textura son todos ellos cero viene determinado en la primera etapa. En base al número de estos macrobloques, la segunda etapa determina si inhabilitar el parámetro COD para todos los macrobloques en la imagen de vídeo.
La figura 3 es un diagrama de flujo que ilustra un proceso para inhabilitar de manera adaptativa el parámetro COD a la vez se codifica una imagen de vídeo. El codificador realiza la estimación y la compensación del movimiento (100, 102) y nota si los vectores de movimiento son cero. Mientras realiza la codificación transformada para cada macrobloque inter-trama y el bloque (104), el codificador también nota si los coeficientes de transformada DCT para el macrobloque son todos ellos cero. Esto puede ocurrir en los casos en los que los valores de error para todas las muestras de la imagen de un macrobloque sean cero o sean aproximadamente cero.
Cuando se completa la codificación del movimiento y de la textura para la imagen, la segunda etapa del codificador determina el número de bloques para los que los vectores de movimiento y los coeficientes de transformada son todos ellos cero (106). Se hace a veces referencia a estos bloques como bloques omitidos porque la codificación de los vectores de movimiento y de los coeficientes de transformada se omite para estos macrobloques. Si el número de macrobloques omitidos sobrepasa un valor umbral, entonces es eficiente el uso del parámetro COD para cada macrobloque, indicando si el macrobloque está codificado. En este caso, se habilita el parámetro COD mediante el borrado del indicador de inhabilitación COD para la imagen (110). En cualquier otro caso, el indicador de inhabilitación de COD se activa para la imagen.
La sintaxis de codificación para la imagen incluye el indicador de inhabilitación COD para indicar si la sintaxis del macrobloque incluye el parámetro COD. El parámetro COD se fija a uno si los coeficientes de la transformada para un macrobloque inter-tramas son todos ellos cero, y en cualquier otro caso, se fija a cero.
La siguiente tabla ayudará a ilustrar cómo el indicador de inhabilitación COD mejora la eficiencia de la codificación para una imagen. La sintaxis para un macrobloque inter-trama es de la siguiente manera.
1
Si el bit COD está activado, entonces MCBPC, CBPY, MVD (datos de vector de movimiento), y el bloque DCT no son enviados para el bloque. A esto se hace referencia como un macrobloque omitido. A la inversa, cuando el bit COD no está activado en las normas de codificación convencionales, el macrobloque incluye bits codificados de entropía para MCBPC y CBPY, un vector de movimiento codificado o vectores de movimiento codificados (MVD) y al menos un bloque DCT. Los vectores de movimiento están codificados de manera típica como vectores diferenciales de movimiento. Un vector diferencial de movimiento es una cantidad vectorial (por ejemplo, tiene una componente vertical y una componente horizontal) que representa la diferencial entre dos vectores de movimiento, tal como la diferencial entre los vectores de movimiento para el macrobloque actual y el macrobloque anterior.
En escenas que tengan pocos macrobloques con movimiento cero y frecuentes cambios de una trama a otra, probablemente hay muy pocos macrobloques omitidos. Bajo estas circunstancias, el bit COD es ineficiente porque añade un bit extra al macrobloque. Si el parámetro COD está inhabilitado, cada uno de los macrobloques codificados tiene un bit menos con relación al caso en el que el COD está habilitado. Suponiendo que, por ejemplo, se use codificación de Huffman para codificar el MCBPC y el CBPY, cada uno de los macrobloques con datos de movimiento o de textura cero tienen bits extras para el MCBPC (1 bit), CBPY (2 bits) y MVD (2 ó más bits). El movimiento y la textura para este tipo de macrobloque requiere al menos 5 bits para codificar (MCBPC + CBPY + MVD > 5). De esta forma, mediante la inhabilitación del parámetro COD, este macrobloque requiere al menos 5 bits para codificar, en lugar de sólo un bit en el caso en el que el COD esté habilitado.
El número umbral de macrobloques omitidos se puede evaluar de manera analítica en base al número total de macrobloques en la imagen y los bits requeridos para codificar un macrobloque con datos de movimiento y de textura cero y sin parámetro COD. La siguiente expresión da un ejemplo de un valor de umbral:
ejemplo de un valor de umbral:
(1/x) MB_{total} > MB_{omitidos}
donde MB_{omitidos} es el número de macrobloques omitidos, MB_{total} es el número total de macrobloques en la imagen, y x es el número de bits necesarios para codificar un macrobloque cuando los datos de movimiento y de textura son todos ellos cero. El número umbral es:
(1/x) M_{total}.
Es importante hacer énfasis en que este valor umbral solamente es un ejemplo. El número de bits que se necesitan para codificar un macrobloque con datos de movimiento y de textura cero puede variar dependiendo de los procedimientos específicos de codificación. Por ejemplo, en los casos en los que se use la codificación de Huffman, es más fácil estimar el número de bits necesarios para codificar el MCBPC y el CBPY como se ilustra en el ejemplo anterior. En los casos en los que se use la codificación aritmética, es más difícil calcular el número de bits necesarios para codificar un macrobloque con datos de movimiento y de textura cero. Sin embargo, una aproximación similar como la que se muestra anteriormente se puede usar en el caso de codificación aritmética mediante el uso de una estimación conservadora del número de bits necesarios para codificar los parámetros en un macrobloque con datos de movimiento y de textura cero.
Existe una variedad de procedimientos heurísticos y analíticos para seleccionar un valor umbral. Una manera es calcular un promedio del número de bits necesarios para codificar macrobloques con datos de movimiento y de textura cero para una trama y después usar una fórmula similar a la que se ha mostrado anteriormente, (por ejemplo, (1/x_{promedio}) MB_{total}) para calcular un valor umbral para la trama. Otra manera es comparar sobre una base de trama a trama, el número de bits necesarios para codificar la trama con y sin el parámetro COD y después seleccionar la aproximación que use menos bits.
El descodificador tiene que ser modificado para soportar la habilitación y la inhabilitación adaptativas del parámetro COD. La figura 4 es un diagrama de flujo que ilustra cómo interpreta un descodificador macrobloques para los que el parámetro COD está habilitado e inhabilitado. En una aproximación basada en trama, el indicador de inhabilitación COD se codifica a nivel de trama, a saber, existe un único indicador para cada trama. En una aproximación basada en objeto, el indicador de inhabilitación COD se codifica de manera preferible a nivel de plano de objeto de vídeo. En otras palabras, cada uno de los objetos codificados inter-trama tiene un indicador de inhabilitación COD para cada trama. Cuando el descodificador descodifica los parámetros a nivel de trama o los parámetros a nivel de objeto, descodifica el indicador de inhabilitación COD (120) y determina si el parámetro COD está habilitado o inhabilitado (122).
Si el parámetro COD está habilitado, los parámetros a nivel de macrobloque son interpretados como que tienen un parámetro COD para cada macrobloque en la imagen (124). En este caso, el descodificador, de manera selectiva, descodifica el vector de movimiento y los parámetros de bloque codificados para cada macrobloque para los que el parámetro COD esté activado.
Si el parámetro COD está inhabilitado, los parámetros a nivel de macrobloque se interpretan como que no tienen un parámetro COD para cada macrobloque (128). Como tal, el descodificador descodifica los datos de vector de movimiento y del parámetro de bloque codificado para cada macrobloque.
Codificación adaptativa para CBPY
La eficiencia de la codificación para escenas que tengan pocos macrobloques con movimiento cero se puede mejorar mediante la selección adaptativa de un modo de codificación de la entropía para estos bits CBPY en base a los bits CBPC. La figura 5 es un diagrama de flujo que ilustra cómo un proceso de codificador gestiona la codificación de la entropía de CBPY en base a los valores CBPC.
El codificador evalúa los bits SBPC para cada uno de los macrobloques (130). Existen dos bits, uno para cada bloque de crominancia. Si ambos bits están activados, significando que ambos bloques de crominancia tienen coeficientes de transformada distintos de cero, entonces es probable que al menos uno de los cuatro bloques de crominancia tendrá coeficientes de transformada distintos de cero también. El codificador selecciona de manera adaptativa un código de entropía para CBPY en base al valor de los parámetros CBPC. Si los bits CBPC están activados, el codificador selecciona un modo de codificación de la entropía que asigne una probabilidad más alta a los bloques de luminancia codificados (134). A la inversa, si al menos uno de los bits CBPC no está activado, el codificador selecciona un modo de codificación de la entropía que asigna una probabilidad más alta a bloques de luminancia no codificados (136). Esta aproximación se implementa mediante la selección adaptativa entre dos tablas de codificación de la entropía para macrobloques inter-trama en base a los bits CBPC.
La aproximación convencional en las normas propuestas tales como H263, es usar una primera tabla de codificación de la entropía (por ejemplo, una tabla de Huffman) para crear un código de entropía para todos los macrobloques intra-trama, y una segunda tabla de codificación de la entropía para crear un código de entropía para todos los macrobloques inter-trama. La siguiente tabla muestra un ejemplo de tablas de codificación de la entropía que se usan para calcular un código de longitud variable (VLC). La tabla 1 es la tabla VLC convencional para macrobloques intra-tipo, y la tabla 2 es la tabla VLC convencional para macrobloques inter-tipo. Los bits CBPY indican un uno (1) para un bloque codificado, y un cero (0) para un bloque no codificado. Nótese que los bloques no codificados son considerados como los más probables para los inter-macrobloques, y de esta forma, se codifican con un código de longitud más corta que para los bloques codificados. A la inversa, los bloques codificados son considerados como los más probables para los intra-macrobloques, y de esta forma, son codificados con un código de una longitud más corta que para los bloques codificados.
2
\newpage
Un procedimiento mejorado de codificación CBPY es seleccionar la tabla 1 para los macrobloques inter-trama cuando los bloques CBPC estén ambos codificados, y seleccionar la tabla 2 para los macrobloques inter-trama cuando al menos uno de los bloques CBPC no esté codificado. Los experimentos han mostrado que la selección adaptativa de las tablas 1 y 2 para los macrobloques inter-trama reduce el número de bits necesarios para codificar CBPY para las secuencias de vídeo de prueba estándar desde aproximadamente un poco en tanto por ciento a más de un 26%. En el caso de prueba Akiyo en el que existe poco cambio de una trama a otra, la selección adaptativa de las tablas CBPC produjo un ligero aumento en el número de bits para CBPY (menos del 0,1%). Las ventajas de esta codificación mejorada de CBPY son más significativas para los tamaños de paso de cuantificación menores y las escenas más complejas.
Es importante hacer notar que la anterior descripción de codificación adaptativa CBPY solamente es una posible implementación. Nótese que existen tres posibles estados para los bits CBPC en el contexto de la codificación adaptativa de CBPY: (1) ambos activados (CBPC = 11); (2) ambos desactivados (CBPC = 00); y (3) un bit activado - un bit desactivado (CBPC = 01 ó 10). En la anterior implementación, se usa un modo de codificación de la entropía para el estado (1) y un segundo modo de codificación de la entropía se usa para los estados (2) y (3). En algunas aplicaciones, es ventajoso agrupar el estado (2) con el modo de codificación de la entropía para el estado (1). Son posibles una variedad de diferentes combinaciones de modos de codificación de la entropía y estados CBPC, y se podrían usar también más de dos modos de codificación de la entropía. Por ejemplo, se podrían usar tres modos diferentes de codificación para los tres estados diferentes de CBPC.
La codificación adaptativa de COD y de CBPC se pueden usar juntas. Como la codificación de CBPY se basa en los bits CBPC que ya están en el formato de macrobloque, no es necesario añadir un indicador adicional que indique si esta característica está habilitada. Sin embargo, la codificación adaptativa de CBPY se puede activar y desactivar mediante el uso de un indicador de codificación adaptativa CBPY. Una manera de implementar este indicador sería combinarlo con el indicador de inhabilitación COD. En este caso, la codificación adaptativa de COD y de CBPY se podrían habilitar e inhabilitar juntas.
La codificación adaptativa de CBPY se puede implementar en el descodificador mediante la selección de la tabla usada para descodificar CBPY en base a los bits CBPC. La figura 6 es un diagrama de flujo que ilustra cómo interpreta un descodificador los parámetros CBPY de los macrobloques inter-trama en base a los valores de los parámetros CBPC. En funcionamiento de descodificación típico, el descodificador descodifica los bits CBPC para un macrobloque (140). Después determina si CBPC = 11 (142). De ser así, el descodificador descodifica el VLC para CBPY usando la tabla 1. Si no fuese así, el descodificador descodifica CBPY usando la tabla 2.
Cuando se implemente de la manera descrita con anterioridad, la codificación mejorada de CBPY no aumenta la complejidad del codificador o del descodificador y no provoca preocupaciones de emulaciones de código de inicio. "Emulación de código de inicio" hace referencia a un problema de compatibilidad provocado por la utilización de un formato de codificación que se puede confundir con un código usado para la sincronización denominado un "código de inicio".

Claims (6)

1. Un procedimiento implementado por ordenador de descodificación de tramas plurales de vídeo en una secuencia de vídeo, en la que cada una de las tramas plurales de vídeo incluye macrobloques plurales, comprendiendo el procedimiento:
la recepción de los datos de vídeo comprimido en un flujo binario, teniendo el flujo binario una sintaxis de codificación con niveles plurales de sintaxis, los niveles plurales de sintaxis incluyendo nivel de trama y nivel de macrobloque; y
la descompresión de una trama de vídeo prevista de las tramas plurales de vídeo usando descompresión inter-trama, en la que la descompresión usando descompresión inter-trama incluye:
la recuperación de información a nivel de trama para indicar si la sintaxis del macrobloque incluye bits indicadores plurales para los macrobloques plurales de la trama de vídeo prevista para indicar, para cada uno de los macrobloques, si el macrobloque va a ser omitido.
si los bits indicadores plurales están presentes en el flujo binario para los macrobloques plurales de la trama de vídeo prevista, para cada macrobloque de los macrobloques plurales de la trama de vídeo prevista,
recuperar a nivel de macrobloque para el macrobloque un único bit indicador de los bits indicadores plurales;
en base al bit indicador único recuperado, determinar si el macrobloque está omitido o no está omitido, y
si el macrobloque no está omitido, recuperar a nivel de macrobloque la información de movimiento de macrobloque y la información de patrón de bloque codificadas para el macrobloque; y
si los bits indicadores plurales no están presentes en el flujo binario, para cada uno de los macrobloques plurales de la trama de vídeo prevista:
recuperar a nivel de macrobloque la información de movimiento de macrobloque y la información de patrón de bloque codificadas.
2. El procedimiento de la reivindicación 1, en el que la información recuperada a nivel de trama es un único bit.
3. Un procedimiento implementado por ordenador para descodificar tramas plurales de vídeo en una secuencia de vídeo, en el que cada una de las tramas plurales de vídeo incluye macrobloques plurales, comprendiendo el procedimiento:
la compresión de datos de vídeo en un flujo binario, teniendo el flujo binario una sintaxis de codificación con niveles plurales de sintaxis, los niveles plurales de sintaxis incluyendo nivel de trama y nivel de macrobloque, en la que la compresión de los datos de vídeo en el flujo binario incluye la compresión de una trama de vídeo prevista de las tramas plurales de vídeo usando compresión inter-trama, y en la que la compresión usando compresión inter-trama incluye:
emitir información a nivel de trama para indicar si la sintaxis del macrobloque incluye bits indicadores plurales para los macrobloques plurales de la trama de vídeo prevista para indicar, para cada uno de los macrobloques, si el macrobloque va a ser omitido.
si los bits indicadores plurales están presentes en el flujo binario para los macrobloques plurales de la trama de vídeo prevista, para cada macrobloque de los macrobloques plurales de la trama de vídeo prevista,
emitir a nivel de macrobloque para el macrobloque un único bit indicador de los bits indicadores plurales, el bit indicador único indicando si el macrobloque está omitido o si no está omitido, y
si el macrobloque no está omitido, emitir a nivel de macrobloque la información de movimiento de macrobloque y la información de patrón de bloque codificadas para el macrobloque; y
si los bits indicadores plurales no están presentes en el flujo binario, para cada uno de los macrobloques plurales de la trama de vídeo prevista:
\newpage
emitir a nivel de macrobloque la información de movimiento de macrobloque y la información de patrón de bloque codificadas e inhabilitar el bit indicador para el macrobloque.
4. El procedimiento de la reivindicación 3, en el que la información de salida a nivel de trama es un único bit.
5. El procedimiento de una cualquiera de las reivindicaciones anteriores en el que cada uno de los macrobloques plurales incluye cuatro bloques de píxeles de luminancia de 8 x 8 y dos bloques de píxeles de crominancia de 8 x 8.
6. Un medio legible por ordenador que tiene almacenadas en el mismo instrucciones ejecutables por ordenador para provocar que el sistema de ordenador realice el procedimiento de una cualquiera de las reivindicaciones anteriores.
ES04028880T 1997-12-31 1998-09-30 Codificacion de video mejorada usando codificacion adaptativa de parametros de bloque para bloques codificados/sin codificar. Expired - Lifetime ES2299787T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US1573 1997-12-31
US09/001,573 US5946043A (en) 1997-12-31 1997-12-31 Video coding using adaptive coding of block parameters for coded/uncoded blocks

Publications (1)

Publication Number Publication Date
ES2299787T3 true ES2299787T3 (es) 2008-06-01

Family

ID=21696758

Family Applications (1)

Application Number Title Priority Date Filing Date
ES04028880T Expired - Lifetime ES2299787T3 (es) 1997-12-31 1998-09-30 Codificacion de video mejorada usando codificacion adaptativa de parametros de bloque para bloques codificados/sin codificar.

Country Status (10)

Country Link
US (1) US5946043A (es)
EP (3) EP1156680A3 (es)
JP (1) JP3689334B2 (es)
AT (2) ATE216824T1 (es)
CA (1) CA2316848C (es)
DE (2) DE69805099T2 (es)
DK (1) DK1528813T3 (es)
ES (1) ES2299787T3 (es)
PT (1) PT1528813E (es)
WO (1) WO1999034603A1 (es)

Families Citing this family (114)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6215910B1 (en) * 1996-03-28 2001-04-10 Microsoft Corporation Table-based compression with embedded coding
US6571016B1 (en) * 1997-05-05 2003-05-27 Microsoft Corporation Intra compression of pixel blocks using predicted mean
EP2352297B1 (en) * 1997-02-13 2016-04-13 Mitsubishi Denki Kabushiki Kaisha Moving picture decoding apparatus
US7177355B1 (en) * 1997-12-01 2007-02-13 Samsung Electronics Co., Ltd. Method for representing encoding upon coding information
US6816618B1 (en) * 1998-03-03 2004-11-09 Minolta Co., Ltd. Adaptive variable length image coding apparatus
KR100281464B1 (ko) * 1998-03-14 2001-02-01 전주범 물체 기반 부호화 시스템의 보조 정보 부호화 장치
US6400831B2 (en) 1998-04-02 2002-06-04 Microsoft Corporation Semantic video object segmentation and tracking
US6904174B1 (en) * 1998-12-11 2005-06-07 Intel Corporation Simplified predictive video encoder
GB2336058B (en) * 1998-04-02 2002-03-27 Daewoo Electronics Co Ltd Apparatus and method for adaptively coding an image signal
US7046734B2 (en) * 1998-04-02 2006-05-16 Intel Corporation Method and apparatus for performing real-time data encoding
US6408029B1 (en) 1998-04-02 2002-06-18 Intel Corporation Method and apparatus for simplifying real-time data encoding
US6031872A (en) * 1998-06-16 2000-02-29 Daewoo Electronics Co., Ltd. Method and apparatus for encoding a video signal
US6711278B1 (en) * 1998-09-10 2004-03-23 Microsoft Corporation Tracking semantic objects in vector image sequences
JP2000102007A (ja) * 1998-09-28 2000-04-07 Matsushita Electric Ind Co Ltd マルチメディア情報合成装置、及び圧縮映像信号生成装置
US6563953B2 (en) * 1998-11-30 2003-05-13 Microsoft Corporation Predictive image compression using a single variable length code for both the luminance and chrominance blocks for each macroblock
US6983018B1 (en) 1998-11-30 2006-01-03 Microsoft Corporation Efficient motion vector coding for video compression
US6404931B1 (en) 1998-12-14 2002-06-11 Microsoft Corporation Code book construction for variable to variable length entropy encoding
US6223162B1 (en) 1998-12-14 2001-04-24 Microsoft Corporation Multi-level run length coding for frequency-domain audio coding
US6300888B1 (en) 1998-12-14 2001-10-09 Microsoft Corporation Entrophy code mode switching for frequency-domain audio coding
US6499060B1 (en) * 1999-03-12 2002-12-24 Microsoft Corporation Media coding for loss recovery with remotely predicted data units
US6476805B1 (en) 1999-12-23 2002-11-05 Microsoft Corporation Techniques for spatial displacement estimation and multi-resolution operations on light fields
US6502097B1 (en) * 1999-12-23 2002-12-31 Microsoft Corporation Data structure for efficient access to variable-size data objects
US6738424B1 (en) 1999-12-27 2004-05-18 Objectvideo, Inc. Scene model generation from video for use in video processing
WO2001049028A1 (en) * 1999-12-27 2001-07-05 Diamondback Vision, Inc. Scene model generation from video for use in video processing
KR100683380B1 (ko) * 2000-02-21 2007-02-15 주식회사 팬택앤큐리텔 영상 압축 부호화를 위한 변환 및 역변환 방법 및 장치
US6356213B1 (en) * 2000-05-31 2002-03-12 Lucent Technologies Inc. System and method for prediction-based lossless encoding
GB2365240B (en) * 2000-07-19 2002-09-25 Motorola Inc Apparatus and method for image transmission
FR2813001B1 (fr) * 2000-08-11 2002-12-20 Thomson Multimedia Sa Procede de conversion de format couleur d'une sequence d'images
EP2364025B1 (en) * 2000-08-15 2015-09-16 Microsoft Technology Licensing, LLC Methods, systems and data structures for timecoding media samples
FR2813484A1 (fr) * 2000-08-31 2002-03-01 Koninkl Philips Electronics Nv Traitement de donnees en une serie temporelle d'etapes
US20020089602A1 (en) 2000-10-18 2002-07-11 Sullivan Gary J. Compressed timing indicators for media samples
JP2004512785A (ja) * 2000-10-24 2004-04-22 アイボール ネットワークス インコーポレイテッド Dctに基づくスケーラブルなビデオ圧縮
US6677868B2 (en) 2001-03-16 2004-01-13 Sharp Laboratories Of America, Inc. Entropy coding with adaptive syntax to replace high probability symbols with lower probabilities symbols
FR2824988B1 (fr) * 2001-05-21 2003-08-01 Thomson Licensing Sa Procede et dispositif de codage video utilisant la norme mpeg4
US7773670B1 (en) 2001-06-05 2010-08-10 At+T Intellectual Property Ii, L.P. Method of content adaptive video encoding
US6810086B1 (en) * 2001-06-05 2004-10-26 At&T Corp. System and method of filtering noise
US6909745B1 (en) * 2001-06-05 2005-06-21 At&T Corp. Content adaptive video encoder
US6970513B1 (en) 2001-06-05 2005-11-29 At&T Corp. System for content adaptive video decoding
US6968006B1 (en) 2001-06-05 2005-11-22 At&T Corp. Method of content adaptive video decoding
JP3778913B2 (ja) * 2001-11-16 2006-05-24 株式会社エヌ・ティ・ティ・ドコモ 画像符号化方法、画像復号方法、画像符号化装置、画像復号装置、及びプログラム
CN101448162B (zh) 2001-12-17 2013-01-02 微软公司 处理视频图像的方法
KR100925968B1 (ko) 2001-12-17 2009-11-09 마이크로소프트 코포레이션 컴퓨터 시스템에서 비디오 시퀀스의 복수의 비디오 화상을 처리하는 방법, 시스템 및 컴퓨터 판독가능 매체
FR2834162A1 (fr) * 2001-12-20 2003-06-27 Koninkl Philips Electronics Nv Systeme de communication de donnees selon un principe de commutation par paquets
US6925125B2 (en) * 2002-01-09 2005-08-02 Hiroshi Akimoto Enhanced aperture problem solving method using displaced center quadtree adaptive partitioning
US7149247B2 (en) 2002-01-22 2006-12-12 Microsoft Corporation Methods and systems for encoding and decoding video data to enable random access and splicing
JP4703114B2 (ja) * 2002-01-22 2011-06-15 マイクロソフト コーポレーション 開始符号エミュレーションの防止およびデータ充填のための方法およびシステム
KR100895932B1 (ko) * 2002-04-19 2009-05-07 마이크로소프트 코포레이션 비-바이트 정렬되거나 비트 시프팅된 위치를 포함하는위치에서 시작 코드 에뮬레이션을 방지하기 위한 방법 및시스템
US7016547B1 (en) * 2002-06-28 2006-03-21 Microsoft Corporation Adaptive entropy encoding/decoding for screen capture content
KR100523052B1 (ko) * 2002-08-30 2005-10-24 한국전자통신연구원 다중 디스플레이 방식을 지원하는 다시점 동영상의 객체 기반 부호화 장치 및 그 방법과 그를 이용한 객체 기반 송수신 시스템 및 그 방법
US7433824B2 (en) * 2002-09-04 2008-10-07 Microsoft Corporation Entropy coding by adapting coding between level and run-length/level modes
ES2334934T3 (es) 2002-09-04 2010-03-17 Microsoft Corporation Codificacion de entropia por adaptacion de codificacion entre modalidades de nivel y de longitud de sucesion y nivel.
US7095786B1 (en) 2003-01-11 2006-08-22 Neo Magic Corp. Object tracking using adaptive block-size matching along object boundary and frame-skipping when object motion is low
US7424493B2 (en) * 2003-04-21 2008-09-09 Microsoft Corporation Replication-based propagation mechanism for pipelines
US7830963B2 (en) * 2003-07-18 2010-11-09 Microsoft Corporation Decoding jointly coded transform type and subblock pattern information
US20050013498A1 (en) 2003-07-18 2005-01-20 Microsoft Corporation Coding of motion vector information
US10554985B2 (en) 2003-07-18 2020-02-04 Microsoft Technology Licensing, Llc DC coefficient signaling at small quantization step sizes
US7426308B2 (en) * 2003-07-18 2008-09-16 Microsoft Corporation Intraframe and interframe interlace coding and decoding
US7738554B2 (en) 2003-07-18 2010-06-15 Microsoft Corporation DC coefficient signaling at small quantization step sizes
US7269288B2 (en) * 2003-07-30 2007-09-11 Mediatek Inc. Apparatus for parallel calculation of prediction bits in a spatially predicted coded block pattern and method thereof
US7724827B2 (en) * 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
US8085844B2 (en) * 2003-09-07 2011-12-27 Microsoft Corporation Signaling reference frame distances
US7961786B2 (en) * 2003-09-07 2011-06-14 Microsoft Corporation Signaling field type information
US7852919B2 (en) * 2003-09-07 2010-12-14 Microsoft Corporation Field start code for entry point frames with predicted first field
US7577198B2 (en) * 2003-09-07 2009-08-18 Microsoft Corporation Number of reference fields for an interlaced forward-predicted field
US7577200B2 (en) 2003-09-07 2009-08-18 Microsoft Corporation Extended range variable length coding/decoding of differential motion vector information
US8107531B2 (en) * 2003-09-07 2012-01-31 Microsoft Corporation Signaling and repeat padding for skip frames
US7782954B2 (en) * 2003-09-07 2010-08-24 Microsoft Corporation Scan patterns for progressive video content
US8064520B2 (en) 2003-09-07 2011-11-22 Microsoft Corporation Advanced bi-directional predictive coding of interlaced video
US8213779B2 (en) * 2003-09-07 2012-07-03 Microsoft Corporation Trick mode elementary stream and receiver system
US7688894B2 (en) * 2003-09-07 2010-03-30 Microsoft Corporation Scan patterns for interlaced video content
US7092576B2 (en) * 2003-09-07 2006-08-15 Microsoft Corporation Bitplane coding for macroblock field/frame coding type information
US7839930B2 (en) * 2003-11-13 2010-11-23 Microsoft Corporation Signaling valid entry points in a video stream
US7317839B2 (en) 2003-09-07 2008-01-08 Microsoft Corporation Chroma motion vector derivation for interlaced forward-predicted fields
US7609762B2 (en) * 2003-09-07 2009-10-27 Microsoft Corporation Signaling for entry point frames with predicted first field
US7924921B2 (en) * 2003-09-07 2011-04-12 Microsoft Corporation Signaling coding and display options in entry point headers
US7606308B2 (en) * 2003-09-07 2009-10-20 Microsoft Corporation Signaling macroblock mode information for macroblocks of interlaced forward-predicted fields
US7567617B2 (en) 2003-09-07 2009-07-28 Microsoft Corporation Predicting motion vectors for fields of forward-predicted interlaced video frames
US20050120340A1 (en) * 2003-12-01 2005-06-02 Skazinski Joseph G. Apparatus, system, and method for automated generation of embedded systems software
US7580461B2 (en) * 2004-02-27 2009-08-25 Microsoft Corporation Barbell lifting for wavelet coding
US7627037B2 (en) * 2004-02-27 2009-12-01 Microsoft Corporation Barbell lifting for multi-layer wavelet coding
US20080089413A1 (en) * 2004-06-28 2008-04-17 Canon Kabushiki Kaisha Moving Image Encoding Apparatus And Moving Image Encoding Method
US7697610B2 (en) * 2004-09-13 2010-04-13 Microsoft Corporation Variable block size early termination for video coding
KR100681242B1 (ko) * 2004-12-16 2007-02-09 삼성전자주식회사 동영상 복호화 방법, 동영상 복호화 장치 및 이를 가지는시스템 온 칩 시스템
US8634413B2 (en) 2004-12-30 2014-01-21 Microsoft Corporation Use of frame caching to improve packet loss recovery
TWI266541B (en) * 2005-06-08 2006-11-11 Via Tech Inc Computing method of motion vector
KR101261525B1 (ko) 2005-07-15 2013-05-06 삼성전자주식회사 영상 부호화 및 복호화 방법과 장치
US7599840B2 (en) * 2005-07-15 2009-10-06 Microsoft Corporation Selectively using multiple entropy models in adaptive coding and decoding
US7684981B2 (en) * 2005-07-15 2010-03-23 Microsoft Corporation Prediction of spectral coefficients in waveform coding and decoding
US7693709B2 (en) * 2005-07-15 2010-04-06 Microsoft Corporation Reordering coefficients for waveform coding or decoding
US8599925B2 (en) * 2005-08-12 2013-12-03 Microsoft Corporation Efficient coding and decoding of transform blocks
US9077960B2 (en) * 2005-08-12 2015-07-07 Microsoft Corporation Non-zero coefficient block pattern coding
US7933337B2 (en) * 2005-08-12 2011-04-26 Microsoft Corporation Prediction of transform coefficients for image compression
US7565018B2 (en) * 2005-08-12 2009-07-21 Microsoft Corporation Adaptive coding and decoding of wide-range coefficients
US8780997B2 (en) * 2005-11-18 2014-07-15 Apple Inc. Regulation of decode-side processing based on perceptual masking
US8233535B2 (en) 2005-11-18 2012-07-31 Apple Inc. Region-based processing of predicted pixels
US8031777B2 (en) * 2005-11-18 2011-10-04 Apple Inc. Multipass video encoding and rate control using subsampling of frames
US20070116117A1 (en) * 2005-11-18 2007-05-24 Apple Computer, Inc. Controlling buffer states in video compression coding to enable editing and distributed encoding
US8295343B2 (en) 2005-11-18 2012-10-23 Apple Inc. Video bit rate control method
US8848789B2 (en) * 2006-03-27 2014-09-30 Qualcomm Incorporated Method and system for coding and decoding information associated with video compression
US8184710B2 (en) * 2007-02-21 2012-05-22 Microsoft Corporation Adaptive truncation of transform coefficient data in a transform-based digital media codec
US7774205B2 (en) * 2007-06-15 2010-08-10 Microsoft Corporation Coding of sparse digital media spectral data
US8254455B2 (en) 2007-06-30 2012-08-28 Microsoft Corporation Computing collocated macroblock information for direct mode macroblocks
US8179974B2 (en) 2008-05-02 2012-05-15 Microsoft Corporation Multi-level representation of reordered transform coefficients
US8406307B2 (en) 2008-08-22 2013-03-26 Microsoft Corporation Entropy coding/decoding of hierarchically organized data
US8189666B2 (en) 2009-02-02 2012-05-29 Microsoft Corporation Local picture identifier and computation of co-located information
US9082278B2 (en) * 2010-03-19 2015-07-14 University-Industry Cooperation Group Of Kyung Hee University Surveillance system
US8356114B2 (en) 2010-04-15 2013-01-15 Canon Kabushiki Kaisha Region of interest-based image transfer
RU2538284C2 (ru) * 2010-04-22 2015-01-10 Медиатэк, Инк. Способ предсказания движения
US8755441B2 (en) 2010-05-10 2014-06-17 Canon Kabushiki Kaisha Region of interest-based video transfer
TWI595776B (zh) * 2012-06-27 2017-08-11 Sony Corp Image processing device and method
CN104244004B (zh) * 2014-09-30 2017-10-10 华为技术有限公司 低功耗编码方法及装置
US10271069B2 (en) 2016-08-31 2019-04-23 Microsoft Technology Licensing, Llc Selective use of start code emulation prevention
JP6849508B2 (ja) * 2017-04-03 2021-03-24 日本特殊陶業株式会社 保持装置の製造方法
KR20240023238A (ko) 2018-03-29 2024-02-20 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 변환 계수 블록 코딩

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5351086A (en) * 1991-12-31 1994-09-27 Daewoo Electronics Co., Ltd. Low-bit rate interframe video encoder with adaptive transformation block selection
JPH06153180A (ja) * 1992-09-16 1994-05-31 Fujitsu Ltd 画像データ符号化方法及び装置
US5448297A (en) * 1993-06-16 1995-09-05 Intel Corporation Method and system for encoding images using skip blocks
US5465118A (en) * 1993-12-17 1995-11-07 International Business Machines Corporation Luminance transition coding method for software motion video compression/decompression
JP3474005B2 (ja) * 1994-10-13 2003-12-08 沖電気工業株式会社 動画像符号化方法及び動画像復号方法
US5552832A (en) * 1994-10-26 1996-09-03 Intel Corporation Run-length encoding sequence for video signals
KR100211917B1 (ko) * 1995-10-26 1999-08-02 김영환 물체 모양정보 부호화 방법
EP0786907A3 (en) * 1997-01-24 2001-06-13 Texas Instruments Incorporated Video encoder
US5870148A (en) * 1997-06-17 1999-02-09 Intel Corporation Method and apparatus for adaptively enabling and disabling PB frames in an H.263 video coder
US5880784A (en) * 1997-06-17 1999-03-09 Intel Corporation Method and apparatus for adaptively switching on and off advanced prediction mode in an H.263 video coder

Also Published As

Publication number Publication date
DE69839100D1 (de) 2008-03-20
DE69805099D1 (de) 2002-05-29
EP1044566B1 (en) 2002-04-24
EP1528813B1 (en) 2008-02-06
JP2002500483A (ja) 2002-01-08
WO1999034603A1 (en) 1999-07-08
EP1156680A2 (en) 2001-11-21
ATE385652T1 (de) 2008-02-15
ATE216824T1 (de) 2002-05-15
EP1044566A1 (en) 2000-10-18
US5946043A (en) 1999-08-31
JP3689334B2 (ja) 2005-08-31
PT1528813E (pt) 2008-04-11
DE69839100T2 (de) 2009-01-29
DK1528813T3 (da) 2008-05-19
DE69805099T2 (de) 2002-11-28
CA2316848A1 (en) 1999-07-08
CA2316848C (en) 2004-06-01
EP1528813A1 (en) 2005-05-04
EP1156680A3 (en) 2004-05-26

Similar Documents

Publication Publication Date Title
ES2299787T3 (es) Codificacion de video mejorada usando codificacion adaptativa de parametros de bloque para bloques codificados/sin codificar.
ES2296415T3 (es) Codificacion eficaz de cabecero de macrobloque para video compresion.
US6633678B2 (en) Image predictive decoding method, image predictive decoding apparatus, image predictive coding method, image predictive coding apparatus, and data storage media
US7408990B2 (en) Efficient motion vector coding for video compression
US5694173A (en) Video data arranging method and video data encoding/decoding apparatus
JP3464660B2 (ja) 画像符号化方法および画像符号化装置並びに画像復号化方法および画像復号化装置
MXPA98002826A (es) Metodo de decodificacion predictiva de imagenes,aparato para la decodificacion predictiva de imagenes, metodo de decodificacion predictiva de imagenes, aparato para la codificacion predictiva de imagenes y medios para almacenar datos
JP2001069509A (ja) 画像処理装置及びその方法