MXPA06002496A - Codificacion y descodificacion de plano de bit para estado de prediccion ac e informacion de tipo de codificacion de campo/marco de macrobloque. - Google Patents

Codificacion y descodificacion de plano de bit para estado de prediccion ac e informacion de tipo de codificacion de campo/marco de macrobloque.

Info

Publication number
MXPA06002496A
MXPA06002496A MXPA06002496A MXPA06002496A MXPA06002496A MX PA06002496 A MXPA06002496 A MX PA06002496A MX PA06002496 A MXPA06002496 A MX PA06002496A MX PA06002496 A MXPA06002496 A MX PA06002496A MX PA06002496 A MXPA06002496 A MX PA06002496A
Authority
MX
Mexico
Prior art keywords
frame
macroblock
macroblocks
interlaced
bit
Prior art date
Application number
MXPA06002496A
Other languages
English (en)
Inventor
Chih-Lung Lin
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
Publication of MXPA06002496A publication Critical patent/MXPA06002496A/es

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/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/137Motion inside a coding unit, e.g. average field, frame or block difference
    • 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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/16Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter for a given display mode, e.g. for interlaced or progressive display mode
    • 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
    • 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/112Selection of coding mode or of prediction mode according to a given display mode, e.g. for interlaced or progressive display mode
    • 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/46Embedding additional information in the video signal during the compression process
    • 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/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

Abstract

En un aspecto, un codificador/descodificador selecciona un modo de plano de bit de un grupo de modos de plano de bit disponibles plurales, y procesa un plano de bit de acuerdo con el mod de plano de bit seleccionado, en donde el plano de bit indica informacion de estado de prediccion AC para macrobloques plurales de una imagen de video. En otro aspecto, para un primera marco de video entrelazado en una secuencia de video, un descodificador descodifica un plano de bit senalado en la capa de marco para el primer marco de video entrelazado. El plano de bit representa tipos de transformacion de campo/marco para macrobloques plurales del primer marco de video entrelazado. Para un segundo marco de video entrelazado en la secuencia de video, para cada uno de al menos uno pero no todos los macrobloques plurales del segundo marco de video entrelazado, el descodificador procesa un bit de tipo de transformacion de campo/marco por macrobloque senalado en la capa de macrobloque.

Description

CODIFICACION Y DESCODI FIC ACION DE PLANO DE BIT PARA ESTADO DE PREDICCION AC E INFORMACION DE TIPO DE CODIFICACION DE CAMPO/MARCO DE MACROBLOQUE AUTORIZACION DE DERECHOS DE AUTOR Una porción de la descripción de este documento de patente contiene material que es sujeto a protección de derechos de autor. El propietario de derecho de autor no tiene objeción para la reproducción por facsímile por cualquiera de la descripción de la patente, mientras aparezca en los archivos o registros de patente de la Oficina de Patentes y Marcas, pero de otra forma se reserva todos los derechos de autor de cuálquier forma.
CAMPO TECNICO Se describen técnicas y herramientas para codificación y descodificación de video. Por ejemplo, un plano de bit de codificador codifica información de estado de predicción AC. Como otro ejemplo, un campo/marco de señales de codificador trasforma el tipo para los macrobloques en una imagen codificada de marco entrelazado. Un descodificador realiza la descodificación correspondiente.
ANTECEDENTES El vídeo digital consume grandes cantidades de almacenamiento y capacidad de transmisión. Una secuencia de vídeo digital incompleta típica incluye 15 o 30 imágenes por segundo. Cada imagen puede incluir decenas o cientos de miles de píxeles (también llamados pels). Cada píxel representa un elemento pequeño de la imagen. En una forma incompleta, una computadora comúnmente representa un píxel con 24 o más bits. De esa forma, el número de bits por segundo, o tasa de bit, de una secuencia de vídeo digital incompleta típica pueden ser 5 millones de bits/segundo o más. La mayoría de las computadoras y redes de computadora carecen de los recursos para procesar vídeo digital incompleto. Por esta razón los ingenieros utilizan la compresión (también llamada codificación o descodificación) para reducir la tasa de bits de vídeo digital. La compresión puede ser sin pérdida, en la cual la calidad del vídeo no sufre pero las disminuciones en la tasa de bit están limitadas por la complejidad del vídeo. O, la compresión puede ser con pérdida, en la cual la calidad del vídeo sufre pero las disminuciones en la tasa de bit son más dramáticas. La descompresión revierte la compresión. En general, las técnicas de compresión de vídeo incluyen compresión "interna" y "intermedia" o compresión de predicción. Para los marcos de vídeo, las técnicas de compresión internas comprenden marcos individuales, típicamente llamados l-marcos o marcos clave. Las técnicas de compresión intermedio comprenden marcos con referencia a marcos precedentes y/o siguientes, y marcos comprimidos Intermedios son típicamente llamados marcos predichos, P-marcos, o B-marcos.
I. Compresión Intermedia o Interna en Vídeo de Medios de Windos, Versiones 8 y 9 El Vídeo de Medios de Windows de Microsoft Corporation, Versión 8 ["WMV8"] incluye un codificador de vídeo y un descodificador de vídeo. El codificador WMV8 utiliza compresión interna e intermedia, y el descodificador WMV8 utiliza descompresión interna e intermedia. El Vídeo de Medios de Windows, Versión 9 ["WMV9"] utiliza una arquitectura similar para muchas operaciones.
A. Compresión Interna La Figura 1A ¡lustra compresión interna a base de bloque 100 de un bloque 105 de píxeles en un marco clave en el codificador WMV8. Un bloque es un grupo de píxeles, por ejemplo, un orden de 8x8 de píxeles. El codificador WMV8 divide un marco de video clave en bloques de 8x8 de píxeles y aplica una Transformación de Coseno separada 8x8 ["DCT"] 110 a bloques individuales tal como el bloque 105. Una DCT es un tipo de transformación de secuencia que convierte el bloque 8x8 de píxeles (información espacial) en un bloque 8x8 de coeficientes de DCT 115, que es información de frecuencia. La misma operación de DCT es sin pérdida o casi sin pérdida. Comparados con los valores de píxel originales, sin embargo, los coeficientes de DCT son más eficientes para el codificador para comprimir la mayoría de información importante que está concentrada en coeficientes de frecuencia baja (convencionalmente, el superior izquierdo del bloque 115) y muchos de los coeficientes de frecuencia alta (convencionalmente, el inferior derecho del bloque 115) tienen valores de cero o casi el cero. El codificador después cuantifica 120 de los coeficientes de DCT, que resultan en un bloque 8x8 de coeficientes de DCT cuantificados 125. Por ejemplo, el codificador aplica un tamaño de paso de cuantificación uniforme, en escala para cada coeficiente. La •cuantificación es con pérdida. Ya que los coeficientes de DCT de frecuencia baja tienden a tener valores superiores, los resultados de cuantificación en la pérdida y precisión no completan la pérdida de información para los coeficientes. Por otro lado, ya que los coeficientes de DCT de frecuencia alta tienden a tener resultados de cero o casi de cero, la cuantificación de los coeficientes de frecuencia alta típicamente resulta en regiones contiguas de valores de cero. Además, en algunos casos los coeficientes de DCT de frecuencia alta son cuantificados más toscamente que los coeficientes de DCT de frecuencia baja, resultando en mayor pérdida de precisión/información para los coeficientes de DCT de frecuencia.
El codificador después prepara del bloque de 8x8 de coeficientes de DCT cuantificados 125 para codificación de entropía, que es una forma de compresión sin pérdida. El tipo exacto de codificación de entropía puede variar dependiendo en si un coeficiente es un coeficiente de DC (frecuencia más baja), un coeficiente AC (otras frecuencias) en la fila superior o columna izquierda, u otro coeficiente AC. El codificador codifica el coeficiente DC 126 como una diferencial del coeficiente DC 136 de un bloque 8x8 vecino, que es un vecino previamente codificado (por ejemplo, superior o izquierdo) del bloque siendo codificado. (La Figura 1A muestra un bloque vecino 135 que está situado a la izquierda del bloque siendo codificado en el marco). La entropía de codificador codifica 140 en diferencias. El codificador de entropía puede codificar la columna izquierda o fila superior de coeficientes AC como una diferencia de una columna izquierda o fila superior correspondientes del bloque 8x8 vecino. Este es un ejemplo de predicción de coeficientes AC. La Figura 1A muestra la columna izquierda 127 de coeficientes AC codificados como un diferencial 147 de la columna izquierda 137 del bloque vecino 135 (en realidad, a la izquierda). La codificación diferencial aumenta la posibilidad que los coeficientes diferenciales tengan valores de cero. Los coeficientes AC restantes son del bloque 125 de coeficientes DCT cuantificados. La Figura 1B muestra candidatos de predicción AC para un bloque 8x8 en una l-marco. Para la predicción superior, la fila superior 177 de coeficientes AC en los bloques vecinos superiores 175 es utilizada como el pronosticador para la fila superior 129 de coeficientes AC en el bloque 125 de coeficientes DCT cuantificados. Para la predicción izquierda, la columna más a la izquierda 137 de coeficientes AC en el bloque vecino izquierdo 137 es utilizada como el pronosticador para la columna más a la izquierda de coeficientes AC en el bloque 125. En algunos modos, los predoctores de coeficientes AC son clasificados o de otra forma procesados antes del cálculo de o combinación con valores diferenciales. Si un bloque vecino no existe en la dirección de predicción especificada, los valores previstos para todos los 7 coeficientes AC en la columna más a la izquierda o fila superior son establecidos a cero. Por ejemplo, si la dirección de predicción es hacia arriba y el bloque actual está en la fila superior, cada uno de los coeficientes AC predichos en la fila superior del bloque actual son establecidos a cero debido a que no hay un bloque adyacente en la dirección superior. Los coeficientes AC en la fila o columna predicha son agregados a los coeficientes AC descodificados correspondientes (que son valores diferenciales) en el bloque actual para producir el bloque de coeficiente de transformación cuantificado reconstruido completamente. El codificador verifica 150 el bloque 8x8 145 de coeficientes DCT AC en un orden de una dimensión 155 y después la entropía codifica los coeficientes AC verificados utilizando una variación de codificación de longitud de funcionamiento 160. El codificador selecciona un código de entropía de una o más tablas de funcionamiento/nivel/último 165 y produce el código de entropía.
B. Compresión Intermedia La compresión intermedia en el codificador WMV8 utiliza movimiento a base de bloque compensado con codificación de predicción seguido por la codificación de transformación del error residual. Las Figuras 2 y 3 ilustran la compresión intermedia a base de bloque para un marco predicho en el codificador de WMV8. En particular, la Figura 2 ilustra estimación de movimiento para un marco pronosticado 210 y la Figura 3 ilustra la compresión de un residuo de predicción para un bloque compensado de movimiento de un marco pronosticado. Por ejemplo, en la Figura 2, el codificador W V8 calcula un vector de movimiento para un macrobioque 215 en el marco predicho 210. Para calcular el valor de movimiento, el codificador busca en un área de búsqueda 235 de un marco de referencia 230. Dentro del área de búsqueda 235, el codificador compara el macrobioque 215 del marco predicho 210 con varios macrobloques candidatos con el fin de encontrar un macrobioque candidato que sea una buena coincidencia. El codificador produce información que especifica el vector de movimiento (codificado por entropía) para el macrobioque de coincidencia. El vector de movimiento es diferencialmente codificado con respecto a un pronosticador de vector de movimiento. Después de reconstruir el vector de movimiento al agregar el diferencial al pronosticador de valor de movimiento, un descodificar utiliza el vector de movimiento para calcular un macrobloque de predicción para el macrobloque 215 que utiliza información de marco de referencia 230, que es un marco previamente reconstruido disponible en el codificador y el descodificador. La predicción es raramente perfecta, así el codificador usualmente codifica bloques de diferencias de píxel (también llamadas el error o bloques residuales) entre el macrobloque de predicción y el mismo macrobloq ue 215. La Figura 3 ilustra un ejemplo de cálculo y codificación de un bloque de error 335 en el codificador WMV8. El bloque de error 335 es la diferencia en el bloque predicho 315 y el bloque actual original 325. El codificador aplica una DCT 340 al bloque de error 335, resultando en un bloque 8x8 345 de coeficientes. Después el codificador cuantifica 350 los coeficientes de DCT, resultando en un bloque 8x8 de coeficientes DCT cuantificado 355. El codificador revisa 360 el bloque 8x8 355 en un orden de una dimensión 365 para que los coeficientes estén generalmente ordenados de la frecuencia más baja a la frecuencia más alta. La entropía de codificador codifica los coeficientes revisados utilizando una variación de codificación de longitud de funcionamiento 370. El codificador selecciona un código de entropía de una o más tablas de funcionamiento/nivel/última 375 y genera el código de entropía. La Figura 4 muestra un ejemplo de un procedimiento de descodificación correspondiente 400 para un bloque codificado intermedio. En resumen de la Figura 4, un descodificador descodifica (410, 420) información codificada por entropía que representa un residual de predicción que utiliza descodificación de longitud variable 410 con una o más tablas de funcionamiento/nivel/última 415 y descodificación de longitud de funcionamiento 420. La inversa del descodificador revisa 430 un orden de una dimensión 425 que almacena la información descodificada por entropía en un bloque bidimensional 435. La inversa de descodificador cuantifica e invierte DCTs (juntos, 440) los datos, resultando en un bloque de error reconstruido 445. En una ruta de compensación de movimiento separado, el descodificar calcula un bloque predicho 465 utilizando la información de vector de movimiento 455 para el desplazamiento de un marco de referencia. El descodificador combina 470 el bloque predicho 465 con el bloque de error reconstruido 445 para formar el bloque reconstruido 475. En el software para un codificador de WMV previo y software para un descodificador de WMV previo, la información de predicción AC es señalada en una base de un bit por macrobloque en el nivel de macrobloque en la corriente bit. El campo de ACPRED es un elemento de corriente de bit de nivel de macrobloque de un bit que especifica si la predicción AC es utilizada para descodificar los coeficientes AC para todos los bloque en un macrobloque. El ACPRED está presente en l-marcos y en macrobloques internos 1 MV en marcos predichos. El ACPRED = 0 generalmente indica que la predicción AC no es utilizada en el macrobloque, y ACPRED = 1 generalmente indica que la predicción AC es utilizable en el macrobloque. El bloque pronosticador ya sea es el bloque inmediatamente arriba o a la izquierda del bloque actual. Sin embargo, en un marco predicho (por ejemplo, un P marco o B marco), si el bloque pronosticador superior y el bloque pronosticador izquierdo no están codificados en el interior, la predicción AC no es utilizada incluso si ACPRED = 1. El codificador y descodificador también utilizan señalamiento de predicción AC para marcos entrelazados. La bandera de ACPREDMB es un valor de un bit presente en el nivel de macrobloque para macrobloques codificados por marco que especifican si la predicción AC es utilizada para todos los bloques en el macrobloque. Las banderas de ACPREDTFIELD y ACPREDBFIELD son valores de un bit presentes en el nivel de macrobloque para macrobloques codificados por campo que especifican si la predicción AC es utilizada para bloques en el campo superior e inferior de un macrobloque actual, respectivamente.
II. Video Entrelazado y Vídeo Progresivo Un marco de vídeo contiene líneas de información espacial de una señal de vídeo. Para vídeo progresivo, estas líneas contienen muestras que inician de un instante de tiempo y continúan a través de líneas sucesivas hacia la parte inferior del marco. Un l-marco progresivo es un marco de vídeo progresivo codificado por dentro. Un P-marco progresivo es un marco de vídeo progresivo codificado utilizando predicción hacia delante, y un B-marco progresivo es un marco de vídeo progresivo codificado utilizando predicción bidireccional. Un marco de vídeo entrelazado típico consiste de dos campos revisados iniciando en diferentes tiempos. Por ejemplo, haciendo referencia a la Figura 5, un marco de vídeo entrelazado 500 incluye campo superior 510 y campo inferior 520. Típicamente, las líneas incluso numeradas (campo superior) son revisadas iniciando en un tiempo (por ejemplo, tiempo t) y las líneas numeradas por probabilidad (líneas inferiores) son revisadas iniciando un tiempo diferente (típicamente más tarde) (por ejemplo, tiempo t+1). Este tiempo puede crear características como dentadas en regiones de un marco de vídeo entrelazado en donde el movimiento está presente cuando los dos campos son revisados iniciando en tiempos diferentes. Por esta razón, los marcos de vídeo entrelazados pueden ser reordenados de acuerdo con una estructura de campo, con las líneas de probabilidad agrupadas juntas en un campo, e incluso las líneas agrupadas en otro campo. Este orden, conocido como codificación de campo, es útil en películas de movimiento alto para reducción de tales artefactos de borde dentado. Por otro lado, en regiones estacionarias, el detalla de Imagen en el marco de vídeo entrelazado puede ser más eficientemente preservado sin tal reordenamiento. Por consiguiente, la codificación de marco frecuentemente es utilizada en marcos de vídeo entrelazados estacionarios o de movimiento bajo, en los que se preserva el orden de línea de campo alternante original.
El software para un codificador de WMV y software para un descodificador previo utilizan macrobloques que están ordenados de acuerdo con una estructura de campo (macrobloques codificados por campo) o una estructura de marco (macrobloques codificados por marco) en marcos de vídeo entrelazados. La Figura 6 muestra una estructura para macrobloques codificados por campo en el codificador y descodificador. Un macrobloque entrelazado 610 es cambiado para que todas las líneas de campo superiores (por ejemplo, incluso líneas numeradas 0, 2, ..14) son colocadas a la mitad superior del macrobloque codificado por archivo 620 y todas las líneas de campo inferiores (por ejemplo, líneas numeradas de probabilidad 1, 3, ... 15) son colocadas en la mitad inferior del macrobloque codificado por campo. Para un macrobloque codificado por marco, las líneas de campo superiores y líneas de campo inferiores alternan a través del macrobloque, como en un macrobloque entrelazado 610. El codificador y descodificador previo utilizan un formato de macrobloque 4:1:1 en marcos entrelazados. Un macrobloque 4:1:1 está compuesto de cuatro bloque de luminiscencia 8x8 y dos bloques 4x8 de cada canal de crominancia. En un macrobloque 4:1:1 codificado por campo, el macrobloque cambiado está subdividido para que los dos bloques de luminancia 8x8 superiores y el bloque de crominancia 4x8 superior en cada canal de crominancia contengan solo líneas de campo superiores, mientras los dos bloques de luminiscencia 8x8 inferiores y el bloque de crominancia 4x8 inferior en cada canal de crominancia contienen solo línea de campo inferiores. Un marco de vídeo progresivo típica consiste de un marco de contenido con líneas no alternantes. En contraste con el vídeo entrelazado, el vídeo progresivo no divide marcos de vídeo en campos separados, y un marco completo es revisado de izquierda a derecha, de parte superior a inferior iniciando en un tiempo individual. lll. Modo de Marco/Campo de Señal para Macrobloques Entrelazados El software para un codificador y descod ificador de WMV previos, el campo de INTRLCF es un elemento de capa de un bit de marco utilizado para señalar si los macrobloques están codificados solo en modo de marco, o en modo de campo o marco. Si el INTRLCF = 0, todos los macrobloques en el marco están codificados en modo de marco. Si el INTRLCF = 1, los macrobloques en el marco pueden estar codificados en modo de campo o marco, y el campo de INTRLCMB sigue en la corriente de bit para indicar el estado de codificación de marco/campo para cada macrobioque. El INTRLCMB es un plano de bit presente en l-marcos progresivos, l-marcos entrelazados, P-marcos entrelazados y B-marcos entrelazados. El plano de bit de INTRLCMB descodificado representa el estado entrelazado para cada macrobioque como un campo de valores de un bit en orden de revisión cuadrado del izquierdo superior al derecho inferior. Un valor de 0 indica que el macrobloque correspondiente está codificado en modo de marco. Un valor 1 indica que el macrobloque correspondiente está codificado en modo de campo. El modo de codificación de campo/marco es señalado para cada macrobloque en l-marcos progresivos, y marcos entrelazados, P-marcos entrelazados y B-marcos entrelazados, y el modo de codificación de campo/marco está señalado solo en el nivel de marco por un plano de bit. Ninguna opción de señalamiento de capa de macrobloque está disponible para el modo de codificación de campo/marco de señal, que limita la flexibilidad del señalamiento.
IV. Codificación de Plano de Bit en Software para un Codificador y Descod if icador de WMV Previo En software para un codificador y descodificador de WMV previo, cierta información binaria de macrobloques en un marco está codificada como un orden de dos dimensiones en uno de siete modos de codificación de plano de bit, y transmitidos en un encabezado de marco. El codificador y descodificador utilizan codificación de plano de bit para señalar cuatro tipos diferentes de información binaria en el nivel de marco para macrobloques en un marco: (1) macrobloques saltados/no saltados, (2) modo de codificación de campo o marco en imágenes entrelazadas, (3) un vector de movimiento ["1 MV"] o cuatro modos de codificación de vector de movimiento ["4 MV"]; y (4) modo de predicción directo/no directo en de marcos. Los siguientes elementos de sintaxis son utilizados en el esquema de codificación de planto de bit. INVERTIR El campo de INVERTIR es un código de un bit que indica si el plano de bit tiene más bits iguales a 0 o más bits iguales a 1. Dependiendo en INVERTIR y el modo de codificación de plano de bit, el descodificador puede invertir el plano de bit descodificado para recrear el original.
¡MODO El campo de I ODO es un código de longitud variable ["VLC"] que representa el modo de codificación de plano de bit. En general, los códigos más cortos son utilizados para codificar modos de codificación que ocurren más frecuentemente.
BITS DE DATOS El campo de BITS DE DATOS es una corriente codificada de entropía de símbolos basada en el modo de codificación señalado en el campo de IMODO. El tamaño de cada orden de dos dimensiones es fila MB por col MB, en done fila MB y col MB es el número de filas y columnas de macrobloque, respectivamente, en la estructura. Dentro de la corriente de bit, cada orden está codificado como un grupo de bits consecutivos en uno de siete modos de codificación de plano de bit. Los siete modos de codificación de plano de bit son descritos más adelante. 1. Modo Incompleto En'el modo incompleto, el plano de bit es codificado como un bit por píxel revisado en el orden de revisión natural. Los BITS DE DATOS son fila MB x bits de coIMB en longitud. 2. Modo de Salto de Fila En el modo de salto de fila, el campo de SALTO DE FILA indica si el campo de BITS DE FILA está presente para cada fila en el plano de bit. Si una fila completa de valores en el plaño de bit es cero, SALTO DE FILA = 0 y BITS DE FILA es saltado. Si al menos un valor en la fila no es cero, SALTAR FILA = 1 y BITS DE FILA contiene un bit para cada valor en la fila. Las filas son revisadas desde la parte superior hasta el inferior del marco. 3. Modo de Salto de Columna En el modo de salto de columna, el campo de SALTO DE COLUMNA indica si el campo de BITS DE COLUMNA está presente para cada columna en el plano de bit. Si una columna completa de valores en el plano de bits es cero, SALTAR COLUMNA = 0 y BITS DE COLUMNA es saltado. Si al menos un valor en la columna no es cero, SALTAR COLUMNA = 1 y BITS DE COLUMNA contiene un bit para cada valor en la columna. Las columnas son revisadas desde la izquierda hacia la derecha del marco. 4. Modo Normal 2 En el modo normal 2, si fila MB x colMB es probable, el primer símbolo es simplemente representado con un bit que coincide con su valor, y los símbolos subsecuentes son codificados en pares en el orden de revisión natural utilizando una tabla de VLC binario. 5. Modo Normal 6 En el modo normal 6, el plano de bit es codificado en grupos de seis píxeles. Estos píxeles están agrupados ya sea en tejas de 2x3 o 3x2. El plano de bit es tejado máximamente utilizando un grupo de reglas de teja, y los píxeles restantes son codificados utilizando una variante de los modos de saltar fila y saltar columna. Las tejas "verticales" 3 x 2 son utilizadas si y solo si fila MB es múltiplo de 3 y colMB no lo es. De otra forma, la tejas "horizontales" 2x3 son utilizadas. Las tejas del elemento seis son codificadas primero, seguido por las tejas lineales codificadas de saltar columna y saltar fila. Si el tamaño de orden es un múltiplo de 3x2 o de 2x3, las tejas lineales posteriores no existen y el plano de bit es tejado con solo tejas rectangulares del elemento seis. 6. 7. Modos de Dif-2 y Dif-6 Si se utiliza cualquier modo diferencial (Dif-2 o Dif-6), un plano de bit de "bits diferenciales" es descodificando utilizando los modos normales correspondientes (normal 2 o normal 6, respectivamente).
Los bits diferenciales son utilizados para regenerar el plano de bit original. Para más información en codificación de plano de bit, ver la solicitud de patente de E. U. A. No. 10/321,415, titulada "Codificación de Macrobloque de Sa<lto", archivada el 16 de diciembre, 2002.
V. Estándares de Compresión y Descompresión de Vídeo Varios estándares internacionales se refieren a compresión y descompresión de vídeo. Estos estándares incluyen los estándares del Grupo de Expertos de Imagen de Movimiento ["MPEG"] 1,2 y 4 y los estándares H.261, H.262 (otro teja para MPEG-2), H.263 y H.264 (también llamado JVT/AVC) de la Unión de Telecomunicación Internacional [??? ]· Estos estándares especifican aspectos de descodificadores de vídeo y formatos para información de vídeo comprimida. Directamente o por implicación, también especifican ciertos detalles de descod if icador, pero no especifican otros detalles de codificador. Estos estándares utilizan (o soportan el uso de) combinaciones diferentes descompresión y compresión de marco interior y marco intermedio.
A. Macrobioques de Campo o Codificados por Marco de Señalamiento en los Estándares Algunos estándares internacionales describen el señalamiento de codificación de campo o codificación de marco para macrobioques en imágenes entrelazadas. El estándar de JVT-d157 de borrador del JVT/AVC describe el elemento de sintaxis de mb_campo_descodificación_bandera, que es utilizado para señalar si un par de macrobloques es descodificado en el modo de marco o el modo de campo en P-marcos entrelazados. La sección 7.3.4 describe una sintaxis de corriente de bit en donde mb_campo_de codificación_bandera es enviado como un elemento de datos divididos en casos en donde un parámetro de secuencia (mb_marco_campo_adaptivo_bandera) indica el cambio entre descodificación de marco y de campo en macrobloques y un elemento de encabezado de pedazo (img_estructura) identifica la estructura de imagen como una imagen de marco entrelazada. E! 28 de mayo de 1998 es el borrador del comité de PEG-4 describe el elemento de sintaxis de tipo de DCT, que es utilizado para señalar si un macrobloque es codificado por DCT de marco o codificado por DCT de campo. De acuerdo con las secciones 6.2.7.3 y 6.3.7.3, el dct_Jipo es un elemento de capa de macrobloque que solo está presente en la corriente de bit de PEG-2 en el contenido entrelazado en donde el macrobloque tiene un patrón de bloque codificado de no cero o está codificado en el interior. En ei MPEG-4, el elemento de dct_tipo también es un elemento de capa de macrobloque que indica si un macrobloque está codificado por DCT de marco o codificado por DCT de campo. Ei MPEG-4 también describe un marco_pred_marco_dct de elemento de extensión de codificación de imagen. Cuando el marco_pred_marco_dct es establecido a "1", solo la codificación de DCT de marco es utilizada en marcos entrelazados. La condición dct_tipo = 0 es "derivada" cuando marco_pred_marco_dct = 1 y el elemento de dct_tipo no está presente en la corriente de bit.
B. Señalamiento de Predicción de Coeficiente AC en los estándares Algunos estándares internacionales describen el señalamiento de diferentes nodos de predicción de coeficiente AC espaciales para macrobloques. El 28 de mayo de 1998 el borrador del comité de MPEG-4 describe el elemento de sintaxis ac_pred_bandera, que es una bandera de un bit para señalar si los coeficientes AC en la primera fila o columna de un macrobloque interno son codificados diferencialmente. En la corriente de bit de MPEG-4, ac_pred_bandera es enviado en una base de un bit por macrobloque en una estructura de datos de dirección de datos de un plano de objeto de vídeo (por ejemplo, datos_divididos_l_VOP(), datos_divididos_P_VOP()) o en una estructura de datos de diseño de macrobloque (macrobloque()). En el estándar H.263, el Anexo 1 describe un modo de codificación interno avanzado que opcionalmente utiliza la predicción AC. El elemento de capa de macrobloque MODO_INTERNO del elemento de capa de macrobloque es un código de longitud variable que señala si un macrobloque está codificado en un modo que utiliza predicción AC.
C. Limitaciones de los Estándares Estos estándares internacionales están limitados en diferentes formar importantes. Por ejemplo, aunque los estándares proporcionan el señalamiento de información de tipo de campo/marco y predicción AC, el señalamiento es realizado típicamente en una base de un bit por macrobloque. Dada la importancia crítica de la compresión y descompresión de vídeo para el vídeo digital, no es sorprendente que la compresión y descrompresión de vídeo son campos ricamente desarrollados. Sin embargo los beneficios de las técnicas de compresión y descompresión de vídeo previas, no tienen las ventajas de las siguientes técnicas y herramientas.
COMPENDIO DE LA INVENCION En resumen, la descripción detallada está dirigida a varias técnicas y herramientas para codificación y descodificación de vídeo. Por ejemplo, un plano de bit de codificador codifica información de estado de predicción AC. Como otro ejemplo, un codificador señala el tipo de transformación de campo/marco para macrobloques en una imagen codificada de marco entrelazado. Un descodificadote realiza descodificación correspondiente. Las modalidades descritas implementan una o más de las técnicas descritas y herramientas incluyendo, pero no limitándose a lo siguiente: En un aspecto, un codificador/descodificador selecciona un modo de plano de bit de un grupo de modos de plano de bit disponibles plurales, y procesa un plano de bit de acuerdo con el modo de plano de bit seleccionado, en donde el plano de bit indica la información de estado de predicción AC para macrobloques plurales de una imagen de vídeo. En otro aspecto, un codificador codifica un plano de bit que indica la información de estado de predicción AC para macrobloques plurales de una imagen de vídeo y señala el plano de bit codificado. En otro aspecto, un descod ificador recibe un plano de bit codificado y descodifica el plano de bit, en donde el plano de bit indica la información de estado de predicción AC para macrobloques plurales de una imagen de vídeo. En otro aspecto, para un primer marco de vídeo entrelazado en una secuencia de vídeo, un descodificador descodifica un plano de bit señalado en la capa de ma'rco para el primer marco de vídeo entrelazado. El plano de bit representa tipos de transformación de campo/marco para macrobloques plurales del primer marco de vídeo entrelazado. Para un segundo marco de vídeo entrelazado en la secuencia de vídeo, para cada uno de al menos uno pero no todos los macrobloques plurales del segundo marco de vídeo entrelazado, el descodificador procesa un bit de tipo de transformación de campo/marco por macrobloque señalado en la capa de macrobloque.
En otro aspecto, para un primer marco de vídeo entrelazado en una secuencia de vídeo, un codificador codifica un plano de bit y señala el plano de bit en la capa de marco para el primer marco de vídeo entrelazado. El plano de bit representa tipos de transformación de campo/marco para macrobloques plurales del primer marco de vídeo entrelazado. Para un segundo marco de vídeo entrelazado en la secuencia de vídeo, para cada uno de al menos uno pero no todos los macrobloques plurales del segundo marco de vídeo entrelazado, el codificador señala un bit de tipo de transformación de campo/marco por macrobloque en la capa de macrobloque. En otro aspecto, un descodificador comprende medios para descodificar planos de bits señalados en la capa de marco, en donde los planos de bit incluyen el primer plano de bit para un primer marco de vídeo entrelazado, y en donde el primer plano de bit representa tipos de transformación de campo/marco para macrobloques plurales del primer marco de vídeo entrelazado, y medios para procesar bits de tipo de transformación de campo/marco por bloque señalados en la capa de macrobloque, en donde los bits de tipo de transformación de campo/marco por macrobloque incluyen un bit de tipo de transformación de campo/marco por macrobloque para cada uno o más puede no todos los macrobloques plurales de un segundo marco de vídeo entrelazado. Las varias técnicas y herramientas pueden ser utilizadas en combinación o independientemente. Las características y ventajas adicionales serán más evidentes a partir de la siguiente descripción detallada de modalidades diferentes que procede con referencia a los dibujos acompañantes.
BREVE DESCRIPCION DE LOS DIBUJOS La Figura 1A es un diagrama que muestra compresión de marco interior a base de bloque de un bloque de 8x8 de píxeles de acuerdo con la técnica anterior. La Figura 1B muestra candidatos de predicción AC para un bloque de 8x8 de píxeles de acuerdo con la técnica anterior. La Figura 2 es un diagrama que muestra estimación de movimiento en un codificador de vídeo de acuerdo con la técnica anterior. La Figura 3 es un diagrama que muestra compresión a base de bloque para un bloque 8x8 de residuales de predicción en un codificador de vídeo de acuerdo con la técnica anterior. La Figura 4 es un diagrama que muestra descompresión a base de bloque para un bloque 8x8 de residuales de predicción en un codificador de vídeo de acuerdo con la técnica anterior. La Figura 5 es un diagrama que muestra un marco entrelazado de acuerdo con la técnica anterior. La Figura 6 es un diagrama que muestra codificación de campo de macrobloques entrelazados de acuerdo con la técnica anterior. La Figura 7 es un diagrama de bloque de un ambiente de cómputo adecuado en conjunto con el que las diferentes modalidades descritas pueden ser implementadas. La Figura 8 es un diagrama de bloque de un sistema de codificador de vídeo generalizado en conjunto con el cual diferentes modalidades descritas pueden ser implementadas. La Figura 9 es un diagrama de bloque de un sistema de descodificador de vídeo generalizado en conjunto con el cual diferentes modalidades descritas pueden ser implementadas. La Figura 10 es un diagrama de un formato de macrobloque utilizado en diferentes modalidades descritas. La Figura 11A es un diagrama de parte de un marco de vídeo entrelazado, que muestra líneas alternantes de un campo superior y un campo inferior. La Figura 11 B es un diagrama del marco de vídeo entrelazado organizado para codificar/descodificar como un marco, y la Figura 11C es un diagrama del marco de vídeo entrelazado organizado para codificación/descodificación como campos. La Figura 12 es un cuadro de flujo que muestra una técnica para señalar información de tipo de campo/marco para macrobloques que utilizan ya sea codificación de plano de bit de nivel de marco o codificación de nivel de macrobloque. La Figura 13 es un cuadro de flujo que muestra una técnica para codificación de plano de bit de información de predicción AC. La Figura 14 es un diagrama que muestra una sintaxis de corriente de bit de capa de marco para l-marcos progresivos en una implementación combinada. La Figura 15 es un diagrama que muestra una sintaxis de corriente de bit de capa de macrobloque para l-marcos progresivos en una implementación combinada. La Figura 16 es un diagrama que muestra una sintaxis de corriente de bit de capa de marco para l-campos entrelazados o de Bl-campos en una implementación combinada. La Figura 17 es un diagrama que muestra una sintaxis de corriente de bit de capa de campo para l-campos entrelazados en una implementación combinada. La Figura 18 es un diagrama que muestra una sintaxis de corriente de bit de capa de marco para l-marcos entrelazados en una implementación combinada. La Figura 19 es un diagrama que muestra una sintaxis de corriente de bit de capa de marco para P-marcos entrelazados en una implementación combinada. La Figura 20 es un diagrama que muestra una sintaxis de corriente de bits de capa de marco para B-marcos entrelazados en una implementación combinada. La Figura 21 es un diagrama que muestra una sintaxis de corriente de bit de capa de macrobloque para macrobloques de I-marcos entrelazados en una implementación combinada. La Figura 22 es un diagrama que muestra una sintaxis de corriente de bit de capa de macrobloque para macrobloques de P-marcos entrelazados en una implementación combinada. La Figura 23 es un diagrama que muestra una sintaxis de corriente de bit de capa de macrobloque para macrobloques de B-marcos entrelazados en una implementación combinada. Las Figuras 24A-24C son diagramas que muestran tejas para modos de codificación normales 6 y de plano de bit diferencial 6 de acuerdo con la técnica anterior.
DESCRIPCION DETALLADA La presente aplicación se refiere a técnicas y herramientas para la compresión eficiente y descompresión de vídeo progresivo entrelazado. En varias modalidades descritas un codificador de vídeo y descodificador Incorporan técnicas para codificar y descodificar vídeo progresivo y entrelazado, y técnicas de señalamiento correspondientes para utilizarse con un formato de corriente de bit o sintaxis que comprende diferentes capas o niveles (por ejemplo, nivel de secuencia, nivel de marco, nivel de campo, nivel de macrobloque, y/o nivel de bloque). Varias alternativas para las implementaciones aquí descritas son posibles. Por ejemplo, las técnicas descritas con referencia a diagramas de cuado de flujos pueden ser alteradas al cambiar el orden de etapas mostradas en los cuadros de flujo, al repetir u omitir ciertas etapas, etc. Como otro ejemplo, aunque algunas implementaciones son descritas con referencia a formatos de macrobloque específico, también se pueden utilizar otros formatos. Además, las técnicas y herramientas descritas con referencia a la predicción también pueden ser aplicables a otros tipos de predicción.
Las varias técnicas y herramientas pueden ser utilizadas en combinación o independientemente. Diferentes modalidades implementan una o más de las técnicas y herramientas descritas.
Algunas técnicas y herramientas aquí descritas pueden ser utilizadas en un codificador y descodificador de vídeo, o en algún otro sistema no específicamente limitado a codificación o descodificación de vídeos.
I. Ambiente de Cómputo La Figura 7 ilustra un ejemplo generalizado de un ambiente de cómputo adecuado 700 en el cual diferentes de las modalidades descritas pueden ser implementadas. El ambiente de cómputo 700 no pretende sugerir ninguna limitación al alcance de uso o funcionalidad, mientras las técnicas y herramientas pueden ser implementadas en diversos ambientes de cómputo de propósito general o propósito especial. Con referencia a la Figura 7, el ambiente de cómputo 700 incluye al menos una unidad de procesamiento 710 y memoria 720. En la Figura 7, esta configuración más básica 730 está incluida dentro de una línea punteada. La unidad de procesamiento 710 ejecuta instrucciones ejecutables por computadora dentro de una línea punteada. La unidad de procesamiento 710 ejecuta instrucciones ejecutables por computadora y puede ser un procesador real o uno virtual. En un sistema de multiprocesamiento, múltiples unidades de procesamiento ejecutan instrucciones ejecutables por computadora para aumentar la energía de procesamiento. La memoria 720 puede ser memoria volátil (por ejemplo, registradoras, memoria caché (RAM), memoria no volátil (por ejemplo, ROM, EEPROM, memoria instantánea, etc.), o alguna combinación de las dos. La memoria 720 almacena software 780 que implementa un codificador o descodificador de vídeo con una o más de las técnicas y herramientas descritas. Un ambiente de cómputo puede tener características adicionales. Por ejemplo el ambiente de cómputo 700 incluye almacenamiento 740, uno o más dispositivos de entrada 750, uno o más dispositivos de salida 760, y una o más conexiones de comunicación 770. Un mecanismo de interconexión (no mostrado) tal como un conductor común, controlador, o red interconecta los componentes del ambiente de cómputo 700. Típicamente, el software de sistema operativo (no mostrado) proporciona un ambiente operativo ara otro software que se ejecuta en el ambiente de cómputo 700, y coordina actividades de los componentes de cómputo 700. El almacenamiento 740 puede ser removible o no removible, e incluye discos magnéticos, cintas magnéticas o casetes, CD-ROMs. DVDs, o cualquier otro medio que puede ser utilizado para almacenar información y que puede ser accedido dentro del ambiente de cómputo 700. El almacenamiento 740 almacena instrucciones para el software 780 que implementa el codificador o descodificador de vídeo. El dispositivo(s) de entrada 750 puede ser un dispositivo de entrada sensible al tacto tal como un teclado, ratón, pluma, o seguibola, un dispositivo de entrada por voz, un dispositivo de revisión, u otro dispositivo que proporciona entrada al ambiente de cómputo 700. Para la codificación de audio o vídeo, el dispositivo(s) de entrada 750 puede ser una tarjeta de sonido, tarjeta de vídeo, tarjeta de sintonizador de TV, o dispositivo similar que acepta entradas de vídeo o audio en forma análoga o digital, o un CD-ROM o CD-RW que lee muestras de audio o vídeo en el ambiente de cómputo 700. El d ispositivo(s) de salida 760 puede ser una presentación, impresora, bocinas, escritor de CD, u otro dispositivo que proporciona salida al ambiente de cómputo 700. La conexión(es) de comunicación 770 permite la comunicación en un medio de comunicación a otra entidad de cómputo. El medio de comunicación transporta información tal como instrucciones ejecutables por computadora, entrada o salida de audio o vídeo, u otros datos en una señal de datos modulada. Una señal de datos modulada es una señal que tiene una o más de sus características establecidas o cambiadas de tal forma para codificar información en la señal. A manera de ejemplo, y no de limitación, los medios de comunicación incluyen técnicas mediante cables o inalámbricas ¡mplementadas con un transportador eléctrico, óptico, de RF, infrarrojo, acústico u otro transportador. Las técnicas y herramientas pueden ser descritas en el contexto general de medios legibles por computadora. Los medios legibles por computadora son cualquier medio disponible que puede ser accedido dentro de un ambiente de cómputo. A manera de ejemplo, y no de limitación, con el ambiente de cómputo 700, el medio legible por computadora incluye memoria 720, almacenamiento 740, medios de comunicación, y combinaciones de cualquiera de los anteriores. Las técnicas y herramientas pueden ser descritas en el contexto general de instrucciones ejecutables por computadora, tal como aquellas incluidas en los módulos de programa, siendo ejecutadas en un ambiente de cómputo en un procesador real de objetivo o virtual. Generalmente, los módulos de programa incluyen rutinas, programas, bibliotecas, objetos, clases, componentes, estructuras de datos, etc., que realizar tareas particulares o implementas tipos de datos abstractos particulares. La funcionalidad de los módulos de programa puede ser combinada o dividida entre módulos de programa como se desee en varias modalidades. Las instrucciones ejecutables por computadora para módulos de programa pueden ser ejecutadas dentro de un ambiente de cómputo local o distribuido. Para la búsqueda de presentación, la descripción detallada utiliza términos como "estimar", "compensar", "predecir", y "aplicar" para describir operaciones de computadora en un ambiente cómputo. Estos términos son abstracciones de nivel alto para operaciones realizadas por una computadora, y no deben ser confundidas con actos realizados por un ser humano. Las operaciones de computadora reales que corresponden a estos términos varía dependiendo en la implementación.
II. Codificador y Descodificador de Vídeo Generalizado La Figura 8 es un diagrama de bloque de un codificador de vídeo generalizado 800 en conjunto con el cual algunas modalidades descritas pueden ser implementadas. La Figura 9 es un diagrama de bloque de un descodificador de vídeo generalizado 900 en conjunto con el cual algunas modalidades descritas pueden ser implementadas. Las relaciones mostradas entre módulos dentro del codificador 800 y descodificador 900 indican flujos generales de información en el codificador y descodificador; otras relaciones no son mostradas la búsqueda de simplicidad. En particular, las Figuras 8 y 9 usualmente no muestran información lateral que indica los establecimientos, modos, tablas de codificador, etc., utilizadas para una secuencia de vídeo, imagen, macrobloque, bloque, etc. Tal información lateral es enviada en la corriente de bit de salida, típicamente después de la codificación de entropía de la información lateral. El formato de la corriente de bit de salida puede ser un formato de versión 9 de Vídeo de Medios de Windows u otro formato. El codificador 800 y descodificador 900 procesan imágenes de vídeo, que pueden ser marcos de vídeo, campos de vídeo o combinaciones de marcos y campos. La sintaxis y semánticas de corriente de bit en los niveles de imagen y macrobloques pueden depender en si los marcos o campos son utilizados. Pueden haber cambios a la organización de macrobloque y también en el tiempo total. El codificador 800 y descodificador 900 están basados en bloque utilizan un formato de macrobloque 4:2:0 para marcos, con cada macrobloque incluyendo cuatro bloques de luminiscencia 8x8 (en tiempo tratados como un macrobloque 16x16) y dos bloques de crominancia 8x8. Para los campos, se puede utilizar la misma o diferente organización de macrobloque y el formato. Los bloques 8x8 además pueden estar subdivididos en diferentes estas, por ejemplo, en la transformación de frecuencia y etapas de codificación de entropía. Más adelante se describen en más detalle las organizaciones de marco de vídeo ilustrativas. Dependiendo en la implementación y el tipo de compresión deseada, los módulos del codificador o descod ificador pueden ser agregados, omitidos, divididos en múltiples módulos, combinados con otros módulos y/o reemplazados con módulos similares. En modalidades alternativas, los codificadores o descodificadores con módulo diferente y/o otras configuraciones de módulos realizan una o más de las técnicas descritas.
A. Organizaciones de Marco de vídeo En algunas implementaciones, el codificador 800 y descodificador 900 procesa marcos de vídeo organizados como siguen. Un marco contiene líneas de información espacial de una señal de vídeo. Para el vídeo progresivo, estas líneas contienen muestras que inician de un instante de tiempo y continúa a través de líneas sucesivas a la parte inferior del marco. Un marco de vídeo progresivo está dividido en macrobloques tal como el macrobloque 1000 mostrado en la Figura 10. El macrobloque 1000 incluye cuatro bloques de luminiscencia 8x8 (Y1 a Y4) y dos bloques de crominancia 8x8 que están co-localízados con los cuatro bloques de luminiscencia pero la mitad de la resolución horizontal y verticalmente, siguiendo el formato de macrobloque convencional 4:2:0. Los bloques 8x8 además pueden estar subdivididos en diferentes etapas, por ejemplo, en la transformación de frecuencia (por ejemplo 8x4, 4x8 o 4x4 DCTs) y etapas de codificación de entropía. Un l-marco progresivo es un marco de vídeo progresivo codificado interior. Un P-marco progresivo es un marco de vídeo progresivo codificado utilizando la predicción hacia delante, y un B-marco progresivo es un marco de vídeo progresivo codificado utilizando predicción bidireccional. Los P- y B-marco progresivos pueden incluir macrobloques codificados interiores así como diferentes tipos de macrobloques predichos. Un marco de vídeo entrelazado consiste de dos revisiones de un marco, una comprendiendo incluso las líneas del marco (el caso superior) y el otro comprendiendo las líneas de probabilidad del marco (el campo inferior). Los dos campos pueden representar dos periodos de tiempo diferentes o pueden ser del mismo periodo de tiempo. La Figura 11A muestran parte de un marco de vídeo entrelazado 1100, incluye las líneas alternantes del campo superior y el campo inferior en parte izquierda superior del marco de vídeo entrelazado 1100. La Figura 11B muestra el marco de vídeo entrelazado 1100 de la Figura 11A organizado para codificación/descodificación como un marco 1130. El marco de vídeo entrelazado 1100 ha sido dividido en macrobloques tal como los marco-bloques 1131 y 1132, que utilizan un formato 4:2:0 como se muestra en la Figura 10. En el plano de luminiscencia, cada marco-bloque 1131, 1132 incluye 8 líneas del campo superior alternante con 8 líneas del campo inferior para 16 líneas totales, y cada línea es de 16 píxeles de largo. (La organización y colocación real de los bloques de luminiscencia y bloques de crominancia dentro de los macrobloques 1131, 1132 no son mostrados, y de hecho pueden variar para diferentes decisiones de codificación. Dentro de un macrobloque dado, la información del campo superior e información de campo inferior pueden ser codificadas conjuntamente o separadamente en cualquier de varias partes. Un l-marco entrelazado son dos campos codificados internos de un marco de vídeo entrelazado, en donde un marco incluye información para los dos campos. Un P-marco entrelazado son dos campos de un marco de vídeo entrelazado codificado utilizando predicción hacia delante, y un B-marco entrelazado son los campos de un marco de vídeo entrelazado codificado utilizando predicción bidireccional en donde un macrobloque incluye información para los dos campos. Los P- y B-marcos entrelazados pueden incluir macrobloques codificados internos así como diferentes tipos de macrobloques predichos. Los Bl-marcos entrelazados son un híbrido de l-marcos entrelazados y B-marcos entrelazados; son codificados interiores, pero no son utilizados como ancla para otros marcos.
La Figura 11C muestra el marco de vídeo entrelazado 1100 de la Figura 11A organizado para codificación/descodificación como campos 1160. Cada uno de los dos campos del marco de vídeo entrelazado 1100 está dividido en macrobloques. El campo superior está dividido en macrobloques tal como el macrobloque 1161, y el campo inferior está dividido en macrobloque tal como el marco-bloque 1162. (De nuevo, los macrobloques utilizan un formato 4:2:0 como se muestra en la Figura 10, y la organización y colocación de los bloques de luminiscencia y bloques de crominancia dentro de los macrobloques no es mostrada). En el plano de luminiscencia, el macrobloque 1161 incluye 16 líneas del campo superior y el macrobloque 1162 incluye 16 líneas del campo inferior, y cada línea es de 16 píxeles de largo. Un l-marco entrelazado es un campo individual representado de forma separada de un marco de vídeo entrelazado. Un P-campo entrelazado es un campo individual representado de forma separada de el marco de vídeo entrelazado codificado utilizando la predicción hacia delante, y un B-campo entrelazado es un campo individual, representado de forma separada de un marco de vídeo entrelazado utilizando predicción bidireccional. Los P- y B-campos entrelazados pueden incluir macrobloques codificados interiores así como diferentes tipos de macrobloques predichos. Los Bl-campos entrelazados con un híbrido de l-campos entrelazados y B-campos entrelazados; son codificados internos, pero no son utilizados como anclas para otros campos. Los marcos de vídeo entrelazados organizados para codificar/descodificarse como campos pueden incluir varias combinaciones de diferentes tipos de campo. Por ejemplo, tal marco puede tener el mismo de tipo de campo tanto en los campos superiores e inferiores o diferentes tipos de campo en cada campo. En una impiementación, las combinaciones posibles de tipos de campo incluyen l/l, l/P, P/l, P/P, B/B, B/BI, Bl/B, y BI/BI. El término imagen generalmente se refiere a datos de imagen de fuente, codificados o reconstruidos. Para el vídeo progresivo, una imagen es un marco de vídeo progresivo. Para el vídeo entrelazado, una imagen puede referirse a un marco de vídeo entrelazado, el campo superior del marco, o el campo inferior del marco, dependiendo del contexto. Alternativamente, el codificador 800 y descodificador 900 están basados en objeto, utilizan un macrobloque diferente o formato de bloque, o realizan operaciones en grupos de píxeles de diferente tamaño o configuración que ios bloques 8x8 y macrobloques 16x16.
B. Codificador de Vídeo La Figura 8 es un diagrama de bloque de un sistema de codificador de vídeo generalizado 800. El sistema de codificador 800 recibe una secuencia de imágenes de vídeo incluyendo una imagen actual 805 (por ejemplo, marco de vídeo progresivo, marco de vídeo entrelazado, o campo de un marco de vídeo entrelazado), y produce información de vídeo comprimida 895 como salida. Las modalidades particulares de los codificadores de vídeo típicamente utilizan una variación o versión suplementada de codificador generalizado 800. El sistema de codificador 800 comprime imágenes predichas e imágenes clave. Para la búsqueda de presentación, la Figura 8 muestra una ruta para Imágenes clave a través del sistema de codificador 800 y una ruta para imágenes predichas. Muchos de los componentes del sistema de codificador 800 son utilizados para comprimir tanto imágenes como imágenes predichas. Las operaciones exactas realizadas por esos componentes pueden variar en el tipo de Información siendo comprimida. Una imagen predicha (por ejemplo, P-marco o B-marco progresivo, P-campo o B-campo entrelazado, o P-marco o B-marco entrelazado es representado en términos de predicción (o diferencia) de una o más otras imágenes (que típicamente son denominadas como imágenes de referencia o anclas). Un residual de predicción es la diferencia entre lo que se predijo y la imagen original. En contraste, una imagen clave (por ejemplo, l-marco progresivo, I-campo entrelazado, o l-marco entrelazado) es comprimida sin referencia a otras imágenes. Si la imagen actual 805 es una imagen predicha hacia delante, un estimador de movimiento 810 estima el movimiento de macrobloques u otros grupos de píxeles de la imagen actual 805 con respecto a una o más imágenes de referencia, por ejemplo, la imagen reconstruida previa 825 amortiguada en el almacenamiento de imagen 820. Si la imagen actual 805 es una imagen predicha bidireccional, un estimador de movimiento 810 estima el movimiento en imagen actual 805 con respecto hacia la parte superior de 4 imágenes de referencia reconstruida (para un B-campo entrelazado, por ejemplo). Típicamente, un estimador de movimiento estima el movimiento en una B-imagen con respecto a una o más imágenes de referencia temporalmente previas y una o más imágenes de referencia temporalmente futuras. Por consiguiente, el sistema codificador 800 puede utilizar los almacenamientos separados 820 y 822 para múltiples imágenes de referencia. Para más información en B-marcos progresivos y B-marcos y B-campos entrelazados de la Solicitud de Patente de E. U. A. en serie No. 10/622,378, titulada, "Codificación de Predicción Bidireccional Avanzada de Marcos de Vídeo", archiva el 18 de julio, 2003, y la Solicitud de Patente de E. U. A. en serie No. 10/882,135, titulada "Codificación de Predicción Bidireccional Avanzada de Vídeo Entrelazado", archivada el 29 de junio, 2004, que es incorporada aquí por referencia. El estimador de movimiento 810 puede estimar movimiento por píxel, Vi píxel, ¼ píxel, u otros aumentos, y puede cambiar la precisión de la estimación de movimiento en una base de imagen por imagen u otra base. El estimador de movimiento 810 (y compensador 830) también puede cambiar entre tipos de interpolación de píxel de imagen de referencia (por ejemplo, entre bicúbico y bilineal) en una base por marco u otra base. La precisión de la estimación de movimiento puede ser la misma o diferente horizontal o verticalmente. El estimador de movimiento 810 genera como información lateral información de movimiento 815 tal como información de vector de movimiento diferencial. El compensador de movimiento 830 aplica los vectores de movimiento a la imagen(es) reconstruida 825 para formar una imagen actual compensada por movimiento 835. La predicción es raramente perfecta, sin embargo, y las diferencias entre la imagen actual compensada de movimiento 835 y la imagen actual original 805 son los residuales de predicción 845. Durante la última reconstrucción de la imagen los residuales de predicción 845 son agregados a la imagen actual compensada por movimiento 835 para obtener una imagen reconstruida que está más cerca de la imagen actual original 805. En la compresión con pérdida, sin embargo, alguna información aún es perdida de la imagen actual original 805. Alternativamente, un estimador de movimiento y compensador de movimiento aplica otro tipo de estimación/compensación de movimiento. Un transformación de frecuencia 860 convierte la información de vídeo de dominio espacial en datos de dominio de frecuencia (es decir, espectral). Para las imágenes de vídeo a base de bloque, el transformador de frecuencia 860 aplica un DCT, variante de DCT, u otra transformación de bloque para bloques de los datos de píxel o datos residuales de predicción, produciendo bloques de coeficientes de transformación de frecuencia. Alternativamente, el transformador de frecuencia 860 aplica otra transformación de frecuencia convencional tal como transformación Fourier o utiliza análisis de pequeña ola marina o sub-banda. Ese transformador de frecuencia 860 puede aplicar una transformación de frecuencia de tamaño de 8x8, 8x4, 4x8, 4x4 u otra. Un cuantificador 870 después cuantifica los bloques de coeficientes de datos espectrales. El cuantificador aplica cuantif icación uniforme, en escala a los datos espectrales con un tamaño de paso que varía en una base de imagen por imagen u otra base. Alternativamente, el cuantificador aplica otro tipo de cuantificación a los coeficientes de datos espectrales, por ejemplo, una cuantificación no uniforme, de vector, o no adaptiva, o directamente cuantifica datos de dominio espaciales en un sistema de codificador que utiliza transformaciones de frecuencia. Además de la cuantificación adaptativa, el codificador 800 puede utilizar liberación de marco, filtrado adaptativo, u otras técnicas para control de tasa. El codificador 800 puede utilizar señalamiento especial para un macrobloque saltado, que es un macrobloque que no tiene información de ciertos tipos. Cuando una imagen actual reconstruida es necesaria para la estimación/compensación de movimiento, ún cuantificador inverso 876 realiza cuantificación inversa en los coeficientes de datos espectrales cuantificados. Un transformador de frecuencia inverso 866 después realiza la inversa de las operaciones del transformador de frecuencia 860, produciendo un residual de predicción reconstruido (para una imagen predicha) o una imagen clave reconstruida. Si la imagen actual 805 tiene una imagen clave, la imagen clave reconstruida es tomada como la imagen actual reconstruida (no mostrada). Si la imagen actual 805 tiene una imagen predicha, el residual de predicción reconstruido es agregado a la imagen "actual compensada por movimiento 835 para formar la imagen actual reconstruida. Uno o ambos de los almacenamientos de imagen 820, 822 guarda en memoria caché la imagen actual reconstruida para utilizarse en la predicción compensada de movimiento. En algunas modalidades, el codificador aplica un filtro de desbloqueo al marco reconstruido para suavizar adoptivamente las discontinuidades y otros artefactos en la imagen. El codificador de entropía 880 comprime la salida del cuantificador 870 así como cierta información lateral (por ejemplo, información de movimiento 815, tamaño de paso de cuantificación). Las técnicas de codificación de entropía típicas incluyen codificación aritmética, codificación diferencial, codificación Huffman, codificación de longitud de funcionamiento, codificación LZ, codificación de diccionario, y combinaciones de las anteriores. El codificador de entropía 880 típicamente utiliza diferentes técnicas de codificación para diferentes tipos de información (por ejemplo, coeficientes DC, coeficientes AC, diferentes tipos de información lateral), y pueden elegir de entre múltiples tablas de código dentro de una técnica de codificación particular. El codificador de entropía 880 proporciona información de vídeo comprimida 895 al multiplexer ["MUX"] 890. El MUX 890 puede incluir una memoria intermedia, y un indicador de nivel de memoria intermedia puede ser retroalimentado a módulos adoptivos de tasa de control de tasa. Antes o después del MUX 890, la información de vídeo comprimida 895 puede ser el canal codificado para la transmisión en la red. La codificación de canal puede aplicar detección de error y datos de corrección a la información de vídeo comprimida 895.
C. Descodif icador de Vídeo La Figura 9 es un diagrama de bloque de un sistema de codificador de vídeo general 900. El sistema de codificador 900 recibe información 995 para una secuencia comprimida de imágenes de vídeo y produce salida incluyendo una imagen reconstruida 905 (por ejemplo, marco de vídeo progresivo) marco de vídeo entrelazado, o campo de un marco de vídeo entrelazado). Las modalidades particulares de los descodificadores de vídeo típicamente utilizan una variación o versión suplementada del descodificador generalizado 900. El sistema descodificador 900 descomprime las imágenes predichas e imágenes clave. Para la búsqueda de presentación, la Figura 9 muestra una ruta para imágenes clave a través del sistema descodificador 900 y una ruta para imágenes predichas hacia delante. Muchos de los componentes del sistema descodificador 900 son utilizados para descomprimir tanto imágenes clave como imágenes predichas. Las operaciones exactas realizadas por esos componentes pueden variar dependiendo del tipo de información siendo descomprimida.
Un DEMUX 990 recibe la información 995 para la secuencia de vídeo comprimida y hacia la información recibida disponible para el descodificador de entropía 980. El DEMUX 990 puede incluir una memoria intermedia que actúa nerviosamente y también otras memorias intermedias. Antes o después del DEMUX 990, la información de vídeo comprimida puede ser una canal descodificado y procesado para detección y corrección de error. La entropía del descodificador de entropía 980 descodifica datos cuantificados codificados por entropía así como información lateral codificada por entropía (por ejemplo, información de movimiento 915, tamaño de paso de cuantif icación), típicamente aplicando la inversa de la codificación de entropía realizada en el codificador. Las técnicas de descodificación de entropía incluyen descodificación aritmética, descodifícación diferencial, descodifícación de Huffman, descodificación de longitud de funcionamiento, descodificación LZ, descodificación de diccionario, y combinaciones de las anteriores. El descodificador de entropía 980 típicamente utiliza diferentes técnicas de descodificación para diferentes tipos de información (por ejemplo, coeficientes DC, coeficientes AC, diferentes tipos de información lateral), y puede elegir de entre múltiples tablas de código dentro de una técnica de descodificación particular. El descodificador 900 descodifica la información de movimiento 915, por ejemplo, al calcular uno o más predoctores para vectores de movimiento, entropía que descodífica vectores de movimiento diferenciales, y que combina vectores de movimiento diferenciales descodificados con predictores para reconstruir vectores de movimiento. Un compensador de movimiento 930 aplica información de movimiento 915 a una o más imágenes de referencia 925 para formar una predicción 935 de la imagen 905 siendo reconstruida. Por ejemplo, el compensador de movimiento 930 utiliza uno o más vectores de movimiento de macrobloque para encontrar macrobloque(s) en la imagen(es) de referencia 925. Uno o más almacenamiento de imagen (por ejemplo, almacenamiento de imagen 920, 922) almacenan imágenes previas reconstruidas para utilizarse como imágenes de referencia. Típicamente, B-imágenes tienen más de imagen de referencia (por ejemplo, en al menos una imagen de referencia temporalmente previa y al menos una imagen de referencia temporalmente futura). Por consiguiente, el sistema descodificador 900 puede utilizar almacenamientos de imagen separados 920 y 922 para múltiples imágenes de referencia. El compensador de movimiento 930 puede compensar el movimiento en el píxel, ½ píxel, ¼ píxel, u otros incrementos, y puede cambiar la precisión de la compensación en una base de imagen por imagen u otra base. El compensador de movimiento 930 también puede cambiar entre tipos de interpolación de píxel de imagen de referencia (por ejemplo, entre bicúbico y bilinear) en una base por marco u otra. La precisión de la compensación del movimiento puede ser la misma o diferente horizontal y verticalmente. Alternativamente, un compensador de movimiento aplica otro tipo de compensación de movimiento. La predicción por el compensador de movimiento es raramente perfecta, así el descodificador 900 también reconstruye residuales de predicción. Un cuantif icador inverso 970 cuantifica de forma inversa datos descodificados por entropía. En general, el cuantificador inverso aplica cuantificacion uniforme, inversa en escala a los datos de codificación de entropía con un tamaño de paso que varía en una base de imagen por imagen u otra base. Alternativamente, el cuantificador inverso aplica otro tipo de cuantificacion inversa a los datos, por ejemplo, para reconstruirse después de una cuantificacion no uniforme, de vector, o no adaptiva, o directamente cuantifica de forma inversa los datos de dominio espaciales en un sistema descodificador que no utiliza transformaciones de frecuencia inversa. Un trasformador de frecuencia inversa 960 convierte los datos de dominio cuantificados de frecuencia en información de vídeo de dominio espacial. Paras las imágenes de vídeo a base de bloque, el transformador de frecuencia inverso 960 aplica un DCT inverso ["DCT"], variante de IDCT, u otra transformación de bloque inversa para los bloques de los coeficientes de transformación de frecuencia, produciendo datos de píxel o datos residuales de predicción para imágenes clave o imágenes predichas, respectivamente. Alternativamente, el transformador de frecuencia inverso 960 aplica otra transformación de frecuencia inversa convencional tal como una transformación Fourier jnversa o utiliza síntesis de ola marina pequeña o sub-banda. El transformador de frecuencia inverso 960 puede aplicar una transformación de frecuencia inversa de tamaño 8x8, 8x4, 4x8, 4x4 u otra. Para una imagen predic a, el descodificador 900 combina el residual de predicción reconstruido 945 con la predicción compensada de movimiento 935 para formar la imagen reconstruida 905. Cuando el descodificador necesita una imagen reconstruida 905 para compensación de movimiento subsecuente, uno o ambos de los almacenamientos de los almacenamientos de imagen (por ejemplo, almacenamiento de imagen 920) amortiguan la imagen reconstruida 905 para utilizarse al predecir la siguiente imagen. En algunas modalidades, el descodificador 900 aplica un filtro de desbloqueo a la imagen reconstruida para suavizar adoptivamente discontinuidades u otros artefactos en la imagen.
III. Codificación de Plano de Bit En algunas implementaciones, la información binaria específica de macrobloque puede ser codificada para un plano de bit y transmitida en un nivel más alto que el nivel de macrobloque en una corriente de bit (por ejemplo, nivel de marco, nivel de campo, o algún otro nivel). Un codificador puede seleccionar de entre varios modos de codificación, basándose, por ejemplo, en la eficiencia relativa de los diferentes modos de codificación para codificar ciertos tipos de datos. Las técnicas de codificación de plano de bit toman ventaja de la correlación espacial de ciertos tipos de información binaria entre macrobioques en un marco o campo. Cuando se combina con ei señalamiento de nivel de macrobioque, las técnicas descritas y herramientas proporcionan señalamiento flexible y eficiente de información específica de macrobioque. En algunas implementaciones, un codificador utiliza los elementos de sintaxis de INVERTIR, IMODO y BITS DE DATOS para codificación de plano de bit, como se describe más adelante. El elemento de Invertir es un código de un bit que indica si el plano de bit tiene más bits iguales a 0 o más bits iguales a 1. Dependiendo en INVERITIR y el modo de codificación de plano de bit, el descodificador puede invertir el plano de bit descodificado para recrear el original. El elemento de IMODO es un VLC que representa el modo de codificación de plano de bit. En general, los códigos más cortos son utilizados para codificar más frecuentemente modos de codificación ocurrentes. El elemento de BITS DE DATOS es una corriente codificada por entropía de símbolos basados en el modo de codificación señalado en el elemento de IMODO. Por ejemplo, la información binaria para macrobioques en un marco o campo puede ser codificada como órdenes de dos invenciones y transmitida en un encabeza de marco o campo. El tamaño de cada orden es fila MB x colMB, en donde fila MB y colMB son el número de filas y columnas de macrobioque, respectivamente, en el marco o campo. En algunas modalidades, cada orden está codificado como un grupo de bits consecutivo (por ejemplo, representando macrobioques en orden de revisión de cuadro) en uno de siete modos de codificación de plano de bit. Los siete modos de codificación de plano de bit son descritos más adelante.
Modo de Salto de Fila En el modo de salto de fila, el elemento de SALTO DE FILA indica si el elemento de BITS DE FILA está presente para cada fila en el plano de bit. Si una fila completa de de valores en el plano de bit es cero, SALTAR FILA = 0 y BITS DE FILA es saltado. Si al menos un valor en la fila no es cero, SALTAR FILA - 1 y BITS DE FILA contiene un bit para valor en la fila.
Modo de Saltar Columna En el modo de saltar columna, el elemento de SALTAR COLUMNA indica si el elemento de bits de columna está presente para columna en el plano de bit. Sin una columna de valores en el plano de bit es cero, SALTAR COLUMNA = 0 y BITS DE COLUMNA es saltado. Si al menos un valor en la columna no es cero, SALTAR COLUMNA = 1 y BITS DE COLUMNA contiene un bit para cada valor en la columna.
Modo Normal 2 En el modo normal 2, si fila MB x colMB es probable, el primer símbolo es representado con un bit que coincide con el valor del primer símbolo y los símbolos subsecuentes son codificados en pares utilizando una tabla de VLC.
Modo Normal 6 En el modo normal 6, el plano de bit es codificado en grupo de 6 píxeles en tejas de 2x3 o 3x2. El plano de bit es agrupado en tejas de 2x3 y 3x2 utilizando un grupo de reglas de tejas, y los píxeles restantes (si hay alguno) son codificados utilizando una variante de los modos de saltar fila y saltar columna. Si el tamaño de orden es un múltiple de 3 x 2 o de 2 x 3, el plano de bit es entejado con solo 6 tejas rectangulares de 6 elementos. Las tejas "verticales" 3x2 son utilizadas y solo si fila MB es múltiplo de 3 y colMB no lo es. De otra forma, se utilizan las tejas "horizontales" de 2x3. Las tejas rectangulares de 6 elementos son codificadas utilizando una combinación de códigos de longitud variable y longitud fija.
Modos de Dif-2 y Dif-6 Si se utiliza cualquier modo diferencial (Dif-2 o Dif-6), un plano de bit de "bits diferenciales" es descodiflcado utilizando el modo normal correspondiente (Normal 2 o Normal 6, respectivamente). Los bits diferenciales son utilizados para regenerar el plano de bit original. El procedimiento de regeneración es un DPCM 2-D en un alfabeto binario. Con el fin de regenerar el bit en la ubicación (i,j), el pronostlcador bp(i,j) es generado como sigue (de bits b(i,j) en posiciones (i,j)): ? b{i - 1, j) Para el modo de codificación diferencial, el procedimiento de inversión de bit basado en INVERTIR no es realizado. Sin embargo, la bandera de INVERTIR es utilizada en una capacidad diferente para indicar el valor del símbolo A para la derivación del pronosticador mostrado anteriormente. Más específicamente, A = 0 si INVERTIR = 0 y A = 1 si INVERTIR = 1. El valor real del plano de bit es obtenido al poner en xor el pronosticador con el valor de bit diferencial descodificado. En la ecuación anterior, b(i,j) es el bit en la posición i,j después de la descodificación final (es decir, después de hacer el normal 2/normal S, seguido por el xor diferencial con su pronosticador).
Modo Incompleto El modo incompleto codifica la información binaria específica de macrobloque con un bit por símbolo binario. Aunque los bits de modo incompleto pueden ser codificados en nivel de marco o campo en un plano de bit no comprimido, los bits de modo incompleto también pueden ser codificador uno a la vez para cada macrobloque en la misma capa en la corriente de bit como el resto de la información de nivel de macrobloque para el macrobloque. Otros modos codifican planos de bit en el nivel de marco o campo y utilizan un segundo pase a través del marco o campo durante la codificación. Por ejemplo, el codificador recolecta la información binaria para cada macrobloque (por ejemplo, estado de predicción AC) en el nivel de macrobloque en el primer pase, y codifica la información específica de macrobloque en el nivel de marco o campo en el segundo pase. Sin embargo, en las situaciones de latencia baja, evitar el segundo pase puede ser benéfico. De esa forma la habilidad de cambiar la codificación de información binaria del nivel de marco o campo para el nivel de macrobloque proporciona flexibilidad adicional. En algunas implementaciones, un codificador utiliza el modo incompleto para marcos codificados por pedazos. Un pedazo representa una o más filas contiguas de macrobloques. Con respecto a la predicción espacial, la primera fila de macrobloques en el pedazo es generalmente tratada como la primera fila de macrobloques en una imagen. Cuando se utilizan los pedazos, la información que es representada usualmente en un plano de bit en la capa de imagen es señalada en el modo incompleto en la capa de macrobloque, para que cada macrobloque lo transporte a su propia información local. Además de los modos de codificación de plano de bit descritos anteriormente, se pueden utilizar otros modos de codificación de plano de bit. Por ejemplo, un codificador puede codificar un plano de bit en grupos con tamaño arbitrario de píxeles. En una variación del modo normal 6, un codificador puede emplear un modo de "rectángulos más grandes", tal como cuando la información binaria está ordenada en un patrón predecible. El codificador puede agrupar el plano de bit en tejas de tamaño arbitrario utilizando un grupo diferente de reglas en tejas. Las tejas después pueden ser codificadas utilizando una combinación de códigos de longitud variable o longitud fija, o algún otro orden de codificación. Para más información en codificación de plano de bit en algunas implementaciones, ver Secciones IV, V y VI, más adelante.
IV. Innovaciones en Señalamiento de Tipo de Campo/Marco para Imágenes Codificadas por Marco Entrelazadas Las modalidades descritas incluyen técnicas y herramientas para señalamiento de información de tipo de campo/marco en imágenes codificadas por marco entrelazadas (por ejemplo, l-marcos entrelazados, P-marcos entrelazados, B-marcos entrelazados, etc.). Por ejemplo, las técnicas y herramientas descritas incluyen un codificador capaz de utilizar ya sea codificación de plano de nivel de marco o codificación de nivel de macrobloque para codificar información de tipo de campo/marco. Un descodificador realiza descodificación correspondiente. Las técnicas y herramientas descritas pueden ser utilizadas en combinación una con otra o con otras técnicas y herramientas, o pueden ser utilizadas independientemente. En general, los macrobloques codificados por campo son más eficientes cuando está presente el movimiento de campo intermedio alto, y los marcos bloques codificados por marco son más eficientes cuando está presente el movimiento más bajo. Un codificador puede elegir un tipo de campo/marco para un macrobloque dado e indica si está codificado por marco o codificado por campo en la corriente de bit. El tipo de campo/marco de un macrobloque indica la organización interna de un macrobloque. Haciendo referencia de nuevo a la Figura 6, en la codificación de campo, un macrobloque entrelazado 610 es cambiado para que todas las líneas de campo superiores (por ejemplo, incluso las líneas numeradas 0, 2, ... 14) en los bloques de luminiscencia se han colocado en la mitad superior del macrobloque codificado por campo 620, y todas las líneas de campo inferiores (por ejemplo, líneas numeradas posibles 1, 3, ... 15) en los bloques luminiscencia sean colocadas en la mitad inferior del macrobloque codificado por campo. Para un macrobloque codificado por marco, las líneas de campo superiores y las líneas de campo inferiores alternan a través del macrobloque, como en el macrobloque entrelazado 610. Los bloques de crominancia permanecen entrelazados tanto para macrobloques codificados por campo como para macrobloques codificados por marco. Por consiguiente, en algunas implementaciones un codificador selecciona un bit por modo de bloque de entre diferentes modos de codificación y envía un bit individual (por ejemplo, la bandera de CAMPO DE DTX) en el nivel de macrobloque en cada macrobloque en un marco para el cual se hace la decisión de modo para informar explícitamente al descodificador si el macrobloque está codificado por campo o codificado por marco. La habilidad de seleccionar ya sea un nivel de macrobloque, un bit por modo de macrobloque o un nivel de marco, el modo de plano de bit comprimido proporciona flexibilidad adicional al codificar tal información. En particular, el señalamiento de nivel de macrobloque puede ser eficiente cuando un campo/marco que codifica bit de decisión de modo es señalado para alguno, si no es que todos, los macrobloques de un marco. Por ejemplo, en un P-marco entrelazado, el bit de decisión de campo/marco es señalado para macrobloques internos pero no para macrobloques intermedios (para los cuales el bit de decisión de campo/marco es señalado de otra forma). La codificación de plano de bit en tal contexto resulta en el señalamiento de información extraña. Por otro lado en algunos marcos, cada macrobloque tiene un bit de decisión de campo/marco. Agrupar los bits de tipo de campo/marco y codificarlos en un aplano de bit de nivel de marco puede dar ventaja de correlaciones espacial en tiempo de campo/marco que puede existir entre los macrobloques en el marco.- Por ejemplo, la Figura 12 muestra una técnica 1200 para señalar información de tipo de campo/marco para macrobloques que utilizan ya sea la codificación de plano de bit o codificación de nivel de macrobloque. Un codificador selecciona un modo de codificación en 1210. En 1220, si el modo de codificación es un modo de codificación de plano de bit, el codificador señala información de tipo de campo/marco como un plano de bit en 1230. De otra forma, el codificador determina en 1240 si envía un bit individual (en 1250) para indicar una decisión de campo/marco para el macrobioque. En 1260, si no hay más macrobloques para los cuales se haga una decisión de señalamiento, el codificador determina si envía bits de señal para aquellos macrobloques. Un descodificador realiza descodificación correspondiente. Por ejemplo, en una implementación, CAMPO TX es un elemento de sintaxis de un bit presente en todos los macrobloques de l-marco entrelazado y macrobloques de Bl-marco entrelazados y el macrobioque es codificado interno en P- y B-marcos entrelazados. El CAMPO TX = 1 indica que el macrobioque es codificado por campo, y CAMPO TX = 0 indica que el macrobioque es codificado por marco. Los bits CAMPO TX pueden ser plano de bit codificado en nivel de marco en la corriente de bit, o señalado en nivel de macrobioque en una base de un bit por macrobioque para alguno o todos los macrobloques. Por ejemplo, en l-marcos entrelazados y Bl-marcos entrelazados, los bits de CAMPO TX son codificados por plano de bit en nivel de marco en la corriente de bit, en nivel de macrobioque en una base de un bit por macrobioque. En P-marcos entrelazados y B-marcos entrelazados, los bits de CAMPO TX son enviados para macrobloques internos en el nivel de macrobioque en una base de un bit por macrobioque. Alternativamente, el tipo de campo/marco es señalado de forma diferente. Por ejemplo, el tipo de campo/marco puede ser señalado (por ejemplo, en nivel de macrobioque) con elementos de corriente de bit de diferentes tamaños u órdenes. Como otra alternativa, el tipo de campo/marco puede ser señalado en un nivel bajo el nivel de marco diferente al nivel de macrobloque (por ejemplo, nivel de pedazo o algún otro nivel). Como otra alternativa, el tipo de campo/marco puede ser señalado selectivamente en el nivel de macrobloque (o algún otro nivel) para menos de todos los macrobloques en un marco codificado interno.
V. Innovaciones en Señalamiento de Predicción AC para Imágenes Progresivas y Entrelazadas Las modalidades descritas incluyen técnicas y herramientas para señalar información de predicción AC en imágenes progresivas y entrelazadas (por ejemplo, l-marcos progresivos, l-marcos entrelazados, etc.). Por ejemplo, las técnicas descritas y herramientas incluyen técnicas y herramientas para señalar el uso de predicción AC en macrobloques en un marco o campo que utiliza codificación de plano de bit. Las técnicas y herramientas descritas pueden ser utilizadas en combinación una con otra o con otras técnicas y herramientas, o pueden ser utilizadas independientemente. Por ejemplo, un codificador/descodificador predice coeficientes AC antes de la codificación de entropía. El codificador sustrae los valores de coeficiente AC en el bloque actual de los valores de coeficiente AC correspondientes en un bloque pronosticador vecino para obtener diferenciales de coeficiente AC. Los diferenciales después son codificados por entropía. Dependiendo en la dirección de predicción el bloque pronosticador ya sea es el bloque inmediatamente arriba o el bloque a la izquierda del bloque actual. Haciendo referencia de nuevo a la Figura 1B, para la predicción superior la fila superior 177 de coeficientes AC en el bloque 175 inmediatamente arriba del bloque actual es utilizada como el pronosticador para la fila superior 129 de coeficientes AC en el bloque actual 125. Para la predicción izquierda, la columna más a la izquierda 137 de los coeficientes AC en el bloque 135 a la izquierda inmediata del bloque actual son utilizados como el pronosticador de la columna más a la izquierda de coeficiente AC en el bloque actual 125. En una implementación, una dirección de predicción elegida para predicción de coeficiente DC es utilizada como la dirección de predicción para la predicción de coeficiente AC. Alternativamente, una dirección de predicción AC también es señalada. Las mecánicas precisas de la predicción AC pueden ser diferentes para tipos de imagen diferentes. En su forma más simple, la predicción AC involucra utilizar simplemente la fila superior o columna izquierda de coeficientes AC de un bloque vecino como predictores de coeficiente. En la predicción AC más compleja, los predictores de coeficiente son clasificados por un factor que se relaciona a niveles de cuantificación en bloque actual y bloque vecino. Alternativamente, el codificador y descodificador utilizan predicción AC con otras mecánicas. Si un bloque no existe en la dirección de predicción específica, los valores predichos para todos los siete coeficientes AC en la columna más a la izquierda o fila superior son establecidos a cero. Por ejemplo, si la dirección de predicción está arriba y el bloque actual está en la fila superior, cada uno de los coeficientes AC predic o en la fila superior del bloque actual son establecidos a cero debido a que no hay un bloque adyacente en la dirección superior. Los coeficientes AC en la fila y columna predichos son agregados a los coeficientes AC de codificados correspondientes (que son diferenciales) en el bloque actual para producir el bloque de coeficiente de transformación cuantificado completamente reconstruido. Realizando la predicción de coeficiente AC para todos los macrobloques en un marco o campo puede ser ineficiente; la predicción será inefectiva en algunos macrobloques. Así, el codificador/descodificador utiliza señalamiento para indicar si la predicción AC está permitida o deshabilitada para macrobloques individuales en un marco o campo. Un bit individual de información puede ser enviado para cada macrobloque en el nivel de macrobloque para informar explícitamente al descodificador si la predicción AC es utilizada en el macrobloque. Sin embargo, un codificador/descodificador que señala la predicción AC solo al enviar un bit por macrobloque no puede tomar ventaja de correlación espacial posible en el estado de predicción AC para los macrobloques en el campo o marco. Por consiguiente, en algunas implementaciones un codificador/descodificador explota tal correlación potencial en un marco o campo al agrupar la información de predicción AC para macrobloques individuales junto y codificar la información como un plano de bit (por ejemplo, en nivel de marco, nivel de campo, o algún otro nivel arriba del nivel de macrobloque). En una implementacion, el plano de bit es el ACPRED de plano de bit de nivel de marco/nivel de campo. El plano de bit de ACPRED es descrito en más detalle en la sección Vil, más adelante. La Figura 13 muestra una técnica 1300 para codificación de plano de bit o descodificación de información de predicción AC. En 1310, un codificador/descodificador selecciona un modo de codificación de un grupo de modo de codificación plural disponibles. En 1320, el codificador/descodificador procesa un plano de bit de acuerdo con el modo de codificación seleccionado, el plano de bit que comprende información binaria que señala si los macrobloques en un marco de vídeo son codificados utilizando predicción AC. Las técnicas de codificación de plano de bit descritas también pueden ser utilizadas en combinación con nivel de macrobloque, codificación de un bit por macrobloque, por ejemplo, en una implementacion el elemento de sintaxis ACPRED cuando es señalado en una capa de macrobloque indica si la predicción AC es utilizada para los bloques en ese macrobloque. Cuando ACPRED = 1, los coeficientes AC en bloques descodificados del macrobloque son tratados como valores diferenciales basándose en los coeficientes en un bloque pronosticados El elemento de corriente de bit de ACPRED de nivel de macrobloque es descrito en mayor detalle en la sección VII, más adelante. Alternativamente, la información de predicción AC es señalada de forma diferente. Por ejemplo, la información de predicción AC puede ser señalada con elementos de corriente de bit de tamaños diferentes u órdenes. Como otra alternativa, la información de predicción AC puede ser codificada en un plano de bit en un nivel superior al nivel de macrobloque diferente al nivel de marco o nivel de campo (por ejemplo, nivel de pedazo o algún otro nivel). Como otra alternativa, la información de predicción AC puede ser selectivamente señalada en el nivel de macrobloque (o algún otro nivel) para menos de todos macrobloques en un marco codificado interno, con codificación de plano de bit (o alguna otra técnica de codificación) potencialmente utilizado en el nivel de marco (o algún otro nivel) para señalar el tipo de campo/marco para macrobloques no señalados en el nivel de macrobloque.
VI. Implementaciones Combinadas Una implementación combinada detalla para una sintaxis de corriente de bit, semánticas, y descodificador ahora serán descritos, además de una implementación combinada alternativa con menos diferencia de la implementación combinada principal.
A. Sintaxis de Corriente Bit En varias implementaciones combinadas, los datos están presentes en la forma de una corriente de bit que tiene capas plurales (por ejemplo, secuencia, punto de entrada, marco, campo, pedazo, macrobloque, bloque y/o capas de sub-bloque). En los diagramas de sintaxis, las rutas de flechas muestran los flujos posibles de elementos de sintaxis. Los elementos de sintaxis mostrados con límites bordeados cuadrados indican elementos de sintaxis de longitud fija; aquellos con límites redondeados indican elementos de sintaxis de longitud variable y aquellos con un límite redondeado dentro de un límite redondeado exterior indicando un elemento.de sintaxis (por ejemplo, un plano de bit) constituido de elementos de sintaxis más simples. Un elemento de sintaxis de longitud fija es definido para hacer un elemento de sintaxis para el cual la longitud del elemento de sintaxis no es dependiente en los datos del mismo elemento de sintaxis; la longitud de un elemento de sintaxis de longitud fija ya sea es constante o determinado por los datos anteriores en el flujo de sintaxis. Un diseño inferior en un diagrama de capa (por ejemplo, una capa de macrobloque en un diagrama de capa de marco) es indicado por un rectángulo dentro de un rectángulo. Los elementos de nivel de secuencia son utilizados para descodificar una secuencia de imágenes de vídeo comprimidas. Los datos de nivel de secuencia pueden afectar la interpretación o presencia de elementos en otros niveles (por ejemplo, niveles de punto de entrada, nivel de marco, nivel de macrobloque, etc.). En general, un punto de entrada marca una posición en una corriente de bit (por ejemplo, un l-marco u otro marco clave) en el cual un descodificador puede comenzar la descodificación. En otras palabras, ningunas de las imágenes antes del punto de entrada en la corriente de bit son necesarias para descodificar imágenes después del punto de entrada. Un encabezado de punto de entrada puede ser utilizado para señalar cambios en los parámetros de control de codificación (por ejemplo, habilitando o deshabilitando las herramientas de compresión para marcos que siguen un punto de entrada). Para los elementos de corriente de bit l-marcos, nivel de marco progresivos son mostrados en la Figura 14, (elementos de corriente de bit de nivel de marco para BI de marcos progresivos son idénticos a aquellos para l-marcos progresivos). Los datos para cada marco consisten de un encabezado de marco seguido por datos para la capa de macrobloque (para macrobloques internos). Los elementos de corriente de bit de nivel de macrobloque para l-marcos progresivos son mostrados en la Figura 15. Para marcos de vídeo entrelazados con l-campos y/o Bl-campos entrelazados, los elementos de corriente de bit de nivel de marco son mostrados en la Figura 16. Los datos de cada marco consisten de un encabezado de marco seguido por datos para las capas de campo (mostradas como el elemento "Capa PIC de Campo" repetido por campo). Los elementos de corriente de bit que conformar los encabezados de campo para l-campos entrelazados son mostrados en la Figura 17. (Los elementos de corriente de bit de elemento de campo para Bl-campos entrelazados son idénticos a aquellos para I- campos entrelazados). Los elementos de corriente de bit que conformán la capa de macrobloque para l-campos entrelazados y BI-campos entrelazados son idénticos a aquellos macrobloques en I-marcos progresivos). Para l-marcos, P-marcos, y B-marcos entrelazados, los elementos de corriente de bit de nivel de marco son mostrados en las Figuras 18, 19 y 20, respectivamente. (Los elementos de corriente de bit de nivel de marco para Bl-marcos entrelazados son idénticos para aquellos de l-marcos entrelazados). En los l-marcos, P-marcos y B-marcos entrelazados, los datos para marco consisten de un encabezado de marco seguido por datos para la capa de macrobloque (ya sea para macrobloques de tipo interno o varios macrobloques de tipo intermedio). Los elementos de corriente de bit que conforman la capa de macrobloque para l-marcos, P-marcos, y B-marcos entrelazados son mostrados en las Figuras 21, 22 y 23, respectivamente. (Los elementos de corriente de bit para macrobloques en Bl-marcos entrelazados son idénticos para aquellos macrobloques en l-marcos entrelazados). Las siguientes secciones describen elementos de corriente de bit seleccionado en capas de marco, campo, y macrobloque. Aunque los elementos de corriente de bit seleccionados son descritos en el contexto de una capa particular, algunos elementos de corriente de bit pueden ser utilizados en más de una capa. 1. Elementos de Capa de Campo y Marco Seleccionados Las Figuras 14, 16, 18, 19 y 20 son diagramas que muestran la sintaxis de corriente de bit de nivel de marco para l-marcos progresivos/BI-marcos progresivos, marcos que tienen l-campos o Bl-campos entrelazados, l-marcos entrelazados/BI-marcos entrelazados, P-marcos entrelazados, y B-marcos entrelazados, respectivamente. La Figura 17 es un diagrama que muestra una sintaxis de corriente de bit de nivel de campo para l-campos entrelazados. Algunos elementos (por ejemplo, el plano de bit de ACPRED) también están presentes en una sintaxis de corriente de bit de nivel de campo para Bl-campos entrelazados, y potencialmente en sintaxis para otros tipos de imagen. Los elementos de corriente de bit específicos son descritos más adelante.
Modo de Codificación de Marco (FCM) (Tamaño Variable) El FCM es una palabra de código de longitud variable ["VLC"] utilizada para indicar el tipo de codificación de imagen. El FCM toma valores para modos de codificación de marco como se muestra en el Cuadro 1 más adelante: CUADRO 1 VLC de Modo de Codificación de Marco Tipo de Imagen de Campo (TIPO FP) (3 bits) TIPO FP es un elemento de sintaxis de 3 bits presentes en el encabezado de marco para un marco incluyendo l-marcos entrelazados y/o Bl marcos entrelazados y potencialmente otras clases de marcos. El TIPO de FP toma valores para combinaciones diferentes de tipos de campo en marco de vídeo entrelazado, de acuerdo con el Cuadro 2 más adelante.
CUADRO 2 FLC de Tipo de Imagen de Campo FLC de Tipo de FP Primer Tipo de Segundo Tipo de Campo Campo 000 I I 001 I P 010 P I 011 P P 100 B B 101 B Bl 0 Bl B 111 Bl Bl Tipo de Imagen (PTIPO) (Tamaño Variable) PTIPO es un elemento de sintaxis de tamaño variable presente en el encabezado de marco para P-marcos entrelazados y B-marcos entrelazados (u otros tipos de marcos entrelazados tal como I-marcos entrelazados). PTIPO toma valores para tipos de marco diferentes de acuerdo con El Cuadro 3 más adelante.
CUADRO 3 VLC de Tipo de Imagen Si el PTIPO indica que el marco es saltado entonces el marco es tratado como un P-marco que es idéntico a su marco de referencia. La reconstrucción del marco saltado es equivalente conceptualmente a copiar el marco de referencia. Un marco saltado significa que ningún otro dato es transmitido para este marco.
Plano de Bit de Transformación de Campo (CAMPOTX) (Tamaño Variable) En el nivel de marco o nivel de campo, el CAMPOTX es un plano de bit que indica si los macrobloques en un l-marco entrelazado son codificados por marco o codificados por campo. El CAMPOTX es explicado en detalle más adelante y en la sección IV, anteriormente.
Plano de Bit de Predicción AC (ACPRED) (Tamaño Variable) Para ios l-marcos y Bl-marcos progresivos y para l-marcos y Bl- marcos entrelazados, los elementos de sintaxis de ACPRED de 1 bit que deberían estar presentes en todos lo macrobloques son conjuntamente codificados utilizando un elemento de sintaxis codificado por plano de bit que indica el estado de predicción AC para cada macrobioque en el marco. El plano de bit descodificado representa el estado de predicción AC para cada macrobioque como valores de un bit. El plano de bit de ACPRED es descrito en mayor detalle más adelante y en la sección V, anteriormente. 3. Elementos de Capa de Macrobloques Seleccionados Las Figuras 15, 21, 22 y 23 son diagramas que muestran sintaxis de corriente de bit de nivel de macrobioque para macrobloques en l-marcos progresivos/l-campos entrelazados/Bl-campos entrelazados, y marcos entrelazados/BI-marcos entrelazados, P-marcos entrelazados y B-marcos entrelazados, respectivamente, en la implementación combinada. Los elementos de corriente bit específicos son descritos más adelante. Los datos para un macrobioque consisten de un encabezado de macrobioque seguido por datos de capa de bloque. Los elementos de corriente de bit en la capa de macrobioque (por ejemplo, ACPRED, CAMPOTC, etc.) también pueden estar presentes para macrobloques para otros tipos de imagen.
Bandera de Predicción AC (ACPRED) (1 bit) En la implementación combinada, el elemento de sintaxis de ACPRED está presente en todos los macrobloques de l-marco progresivo, l-marco entrelazado, Bl-entrelazado, l-campo entrelazado, y Bl-campo entrelazado, y macrobloques internos en P-campos entrelazados, B-campos entrelazados, P-marcos entrelazados, y B-marcos entrelazados. La ACPRED también está presente en macrobloques en P-marcos y B-marcos progresivos. En el nivel de macrobioque, el ACPRED es un elemento de sintaxis de 1 bit que especifica si los bloques en el macrobioque fueron codificados utilizando predicción AC. El ACPRED = 0 indica que la predicción AC no es utilizada. ACPRED = 1 indica que la predicción AC es utilizada. La ACPRED también puede ser codificada como plano de bit de nivel de marco, como se explicó en más detalle en la sección V, anteriormente.
Bandera de Transformación de Campo (CAMPOTC) (1 bit) El CAMPOTX es una sintaxis de 1 bit presente en macrobloques codificados internos en l-marcos entrelazados, Bl-marcos entrelazados, P-marcos entrelazados, y B-marcos entrelazados. Este elemento de sintaxis indica que un macrobioque está codificado por marco o por campo (básicamente, la organización interna del macrobioque). CAMPOTX = 1 indica que el macrobioque está codificado por campo. De otra forma, el macrobioque está codificado por marco. En los macrobloques codificados intermedios, este elemento de sintaxis puede ser inferido del MBMODO de elemento de corriente de bit de nivel de macrobioque. El CAMPOTX también puede ser codificado como un plano de bit de nivel de marco, como se explicó en más detalle en la sección IV, anteriormente.
B. Codificación de Plano de Bit La información binaria especificada en macrobioque tal como saltar bits puede ser codificada en un símbolo binario por macrobioque. Por ejemplo, si el macrobioque es o no saltado puede ser señalado con un bit. En estos casos, el estado para todos los macrobloques en un campo o marco puede ser codificado como un plano de bit y transmitido en el encabezado de campo o marco. Una excepción para esta regla es si el modo de codificación de plano de bit es establecido a Modo Incompleto, en cuyo caso el estado para cada macrobioque es codificado como un bit por símbolo y transmitido junto con otros elementos de sintaxis de nivel de macrobloque en el nivel de macrobloque. La codificación de plano de bit de nivel de campo/marco es utilizada para codificar órdenes binarios de dos dimensiones. El tamaño de cada orden es fila MB x col MB, en donde fila MB y col MB son el número de filas y columnas de macrobloque, respectivamente, en el campo o marco en cuestión. Dentro de la corriente de bit, cada orden es codificado como un grupo de bits consecutivos. Uno de siete modos es utilizado para codificar cada orden. Los siete modos son: 1. modo incompleto, información codificada como un bit por símbolo y transmitida como parte de sintaxis de nivel de MB; 2. modo normal 2, dos símbolos codificados conjuntamente; 3. modo diferencial 2, codificación diferencial del plano de bit, seguido para codificar dos símbolos residuales conjuntamente; 4. modo normal 6, seis símbolos codificados conjuntamente; 5. modo diferencial 6, codificación diferencial del plano de bit, seguida al codificar seis símbolos residuales conjuntamente; 6. modo de salto de fila, un bit salta a filas de señal sin bits establecidos; y 7. modo de salto de columna, un bit salta a columnas de señal sin ningún bit establecido. Los elementos de sintaxis para un plano de bit en el nivel de campo o marco están en la siguiente secuencia: INVERTIR, IMODO, y BISTS DE DATOS.
Invertir Bandera (INVERTIR) El elemento de sintaxis INVERTIR es un valor de 1 bit, que si es establecido indica que el plano de bit tiene más bits establecidos que cero bits. Dependiendo en INVERTIR y en modo, el descodíficador debe invertir el plano de bit interpretado para recrear el original. Se debe notar que el valor de este bit debe ser ignorado cuando se utiliza el modo incompleto. La descripción de cómo se utiliza el valor INVERTIR en la descodificación del plan de bit es proporcionada más adelante.
Modo de codificación (IMODO) El elemento de sintaxis de IMODO es un valor de longitud variable que indica el modo de codificación utilizado para codificar el plano de bit. El Cuadro 4 muestra el cuadro de código utilizado para codificar el elemento de sintaxis de IMODO. La descripción de cómo se utiliza el valor de IMODO en la descodificación del plano de bit es proporcionada más adelante.
CUADRO 4 Tabla de Código de VLC IMODO Bits de Codificación de Plano de Bis (BITS de DATOS) El elemento de sintaxis de BITS de DATOS es un elemento de sintaxis con tamaño variable que codifica la corriente de símbolos para el plano de bit. El método utilizado para codificar el plano de bit es determinado por el valor de IMODO. Los siete modos de codificación son descritos en las siguientes secciones.
Modo Incompleto En este modo, el plano de bit es codificado como un bit por símbolo (por ejemplo, en orden de revisión de cuadro), y enviado como parte de la capa de macrobloque. Alternativamente, la información es codificada en el modo incompleto en el nivel de campo o marco y los BIST de DATOS es fila MB x col MB bits en longitud.
Modo Normal 2 Si fila MB x col MB es posibilidad, el primer símbolo codificado incompleto. Los símbolos subsecuentes son codificados la par, en orden de revisión natural. La tabla de VLC binaria en Cuadro 5 es utilizada para codificar pares de símbolo.
CUADRO 5 Tabla de Código Normal 2/Diferencial 2 Modo Diferencial 2 El método normal 2 es utilizado para producir el plano de bit como se describió anteriormente, y después la operación Dif es aplicada al plano de bit como se describe más adelante.
Modo Normal 6 En los modos normal 6 y 'Diferencia! 6, el plano de bit es codificado en grupos de 6 píxeles. Estos píxeles son agrupados ya sea en tejas de 2x3 o 3x2. El plano de bit es el tejado máximamente utilizando un grupo de reglas, y los píxeles restantes son codificados utilizando una variante de modo de saltar fila y saltar columna. Las tejas "verticales" 2x3 son utilizadas si y solo si fila MB es un múltiplo de 3 y col MB no lo es: De otra forma, las tejas "horizontales" de 3x2 son utilizadas. La Figura 24A muestra un ejemplo simplificado de tejas "verticales" de 2x3. Las Figuras 24B y 24C muestran ejemplos simplificados de tejas "horizontales" de 3x2 para los cuales los rectángulos oscuros alargados son de un píxel de amplio y codificados utilizando codificación de salto de fila y salto de columna. Para un plano entejado como se muestra en la Figura 24C, con tejas lineales a lo largo de los bordes superior e izquierdo de la imagen, el orden de codificación de las tejas sigue el siguiente patrón. Las tejas de elemento 6 son codificadas primero, seguidas por las tejas lineales codificadas por salto de columna y salto de fila. Si el tamaño de orden es un múltiplo de 2x3 o de 3x2, las últimas tejas lineales no existen y el plano de bit es perfectamente entejado.
Las tejas rectangulares de 6 elementos son codificadas utilizando una combinación de códigos de longitud variable y longitud fija. Permitamos a N ser el número de bits establecido en la teja, es decir 0 <N<6. Para N<3, un VLC es utilizado para codificar la teja. Para N = 3, un código de escape de longitud fija es seguido por un código de longitud fija de 5 bits. Para N>3, otro código de escape de longitud fija es seguido por un VLC. Para N>3, el VLC que sigue el código de escape es idéntico al VLC utilizado para el código del completo de esta teja para el caso N<3. El escape de longitud fija utilizado para el caso de N>3 es diferente del código de escape de longitud fija para el caso N = 3. La teja rectangular contiene 6 bits de información. Permitamos a k ser el código asociado con la teja, en donde k=? b¡2J, b¡ es el valor binario de el bit i el orden de revisión ¡ natural dentro de la teja. De ahí, 0 k <64. Una combinación de VLCs y códigos de escape más valores de longitud fija es utilizado para señalar k.
Modo Diferencial 6 El método normal 6 es utilizado para producir el plano de bit como se describió anteriormente, y después la operación Dif1 es aplicada al plano de bit como se describe más adelante.
Modo de Salto de Fila En el modo de codificación de salto de fila, todas las filas de cero son saltadas con un bit superior. La sintaxis es como sigue: para cada fila, un bit SALTAR FILA individual indica si la fila es saltada; si la fila es saltada, el bit de SALTAR FILA para la siguiente fila es el siguiente; de otra forma (la fila no es saltada), los bits de BITS DE FILA (un bit para cada macrobloque en la fila) son los siguientes. De esa forma, si la fila completa el cero, un bit de cero es enviado como el símbolo de SALTAR FILA, y los BITS DE FILA son saltados. Si existe un bit establecido en la fila, SALTAR FILA es establecida a 1, y la fila completa es enviada incompleta (bits de fila). Las filas son revisadas desde la parte superior hasta la inferior del campo o marco.
Modo de Salto de Columna Saltar columna es el transporte de saltar fila. Las columnas son revisadas de izquierda a derecha del campo o marco.
Dif1 :: descodificación diferencial inversa Si cualquier modo diferencial (Dif-2 o Dif-6) es utilizado, un plano de bit de "bits diferenciales" es primero descodificado utilizando los modos normales correspondientes (normal 2 o normal 6, respectivamente). Los bits diferenciales son utilizados para regenerar el plano de bit original. El procedimiento de regeneración es un DPCM 2-D en un alfabeto binario. Con el fin de regenerar el bit en la ubicación (i,j), el pronosticador bp(i,j) es generado como sigue (de bits b(i,j) en posiciones (i,j)): ? b i - 1, j) Para el modo de codificación diferencial, el procedimiento de inversión de bit basado en INVERTIR no es realizado. Sin embargo, la bandera de INVERTIR es utilizada en una capacidad diferente para indicar el valor del símbolo A para la derivación del pronosticador mostrado anteriormente. Más específicamente A=0 si INVERTIR = 0 y A=1 si INVERTIR = 1. El valor real del plano de bit es obtenido al poner en xor el pronosticador con el valor de bit diferencial descodificado. En la ecuación anterior, b(i,j) es el bit en la posición i,j después de la descodificación final (es decir, después de hacer normal 2/normal 6, seguido por xor diferencial con su pronosíicador) .
Habiendo descrito e ¡lustrado los principios de nuestra invención con referencia a varias modalidades, se reconocerá que las varias modalidades pueden ser modificadas en orden y detalle sin apartarse de sus principios. Se debe entender que los programas, procedimientos, o métodos aquí descritos no están relacionados o limitados a ningún tipo particular de ambiente de cómputo, a menos que se indique de otra forma. Varios tipos de ambientes de cómputo de propósito general o especializado pueden ser utilizados con o realizar operaciones de acuerdo con las enseñanzas aquí descritas. Los elementos de las modalidades mostradas en software pueden ser implementados en hardware y viceversa. En vista de las muchas modalidades posibles para los cuales los principios de nuestra invención pueden ser aplicados, reclamamos como nuestra invención todas tales modalidades que pueden venir dentro del alcance y espíritu de las siguientes reivindicaciones y equivalentes a estas.

Claims (39)

  1. REIVINDICACIONES 1. - Un método que comprende: para un primer marco de vídeo entrelazado en una secuencia de vídeo, descodificar un plano de bit señalado en capa de marco para el primer marco de vídeo entrelazado, en donde el plano de bit representa tipos de transformación de campo/marco para macrobloques plurales del primer marco de vídeo entrelazado; y para un segundo marco de vídeo entrelazado en la secuencia de vídeo, para cada uno de al menos uno pero no todos los macrobloques plurales del segundo marco de vídeo entrelazado, procesar el bit de tipo de transformación de campo/marco por macrobloque señalado en la capa de macrobloque. 2. - El método de acuerdo con la reivindicación 1, en donde un segundo marco de vídeo entrelazado incluye uno o más macrobloques internos y uno o más macrobloques intermedios, y en donde el bit de tipo de transformación de campo/marco por macrobloque es señalado para cada uno de uno o más macrobloques internos pero ninguno de uno o más macrobloques intermedios. 3.- El método de acuerdo con la reivindicación 2, en donde un elemento de corriente de bit diferente representa tipo de transformación de campo/marco para cada uno de uno o más macrobloques intermedios. 4.- El método de acuerdo con la reivindicación 1, en donde el primer marco de vídeo entrelazado es un l-marco entrelazado y el segundo marco de vídeo entrelazado es un P-marco entrelazado. 5. - El método de acuerdo con la reivindicación 1, en donde la descodificación del plano de bit incluye seleccionar un modo de descodificación de entre modos de descodificación disponibles plurales. 6. - El método de acuerdo con la reivindicación 5, en donde los modos de descodificación disponibles plurales incluyen salto de fila, salto de columna, VLC de par, VLC de grupo de 6, y uno o más modos diferenciales. 7.- El método de acuerdo con la reivindicación 1, que además comprende: para el primer marco de vídeo entrelazado, después de descodificar el plano de bit, para cada uno de los macrobloques plurales del primer marco de vídeo entrelazado, procesar información de capa de macrobloque para el macrobloque basándose al menos en parte'en el tipo de transformación de campo/marco señalado para el macrobloque en el plano de bit. 8. - Un medio legible por computadora que tiene almacenados en él instrucciones ejecutables por computadora para causar que un sistema de computadora programado realice con ello el método de la reivindicación 1. 9. - Un método que comprende: para un primer marco de vídeo entrelazado en una secuencia de vídeo, codificar un plano de bit y señalar el plano de bit en la capa de marco para el primer marco de vídeo entrelazado, en donde el plano de bit representa tipos de transformación de campo/marco para macrobloques plurales del primer marco de vídeo entrelazado; y para un segundo marco de vídeo entrelazado en la secuencia de vídeo, para cada uno de al menos uno pero no todos los macrobloques plurales del segundo marco de vídeo entrelazado, señalar un bit de tipo de transformación de campo/marco por macrobloque en la capa de macrobloque. 10. - El método de acuerdo con la reivindicación 9, en donde un segundo marco de vídeo entrelazado incluye uno o más macrobloques internos y uno o más macrobloques intermedios, y en donde el bit de tipo de transformación de campo/marco por macrobloque es señalado para cada uno de uno o más macrobloques internos pero ninguno de uno o más macrobloques intermedios. 11. - El método de acuerdo con la reivindicación 10, en donde un elemento de corriente de bit diferente representa tipo de transformación de campo/marco para cada uno de uno o más macrobloques intermedios. 12. - El método de acuerdo con la reivindicación 9, en donde el primer marco de vídeo entrelazado es un l-marco entrelazado y el segundo marco de vídeo entrelazado es un P-marco entrelazado. 13. - El método de acuerdo con la reivindicación 9, en donde la descodificación del plano de bit incluye seleccionar un modo de codificación de entre modos de codificación disponibles plurales. 14. - El método de acuerdo con la reivindicación 13, en donde los modos de codificación disponibles plurales incluyen salto de fila, salto de columna, VLC de par, VLC de grupo de 6, y uno o más modos diferenciales. 15. - Un medio legible por computadora que tiene almacenados en él instrucciones ejecutables por computadora para causar que un sistema de computadora programado realice con ello el método de la reivindicación 9. 16. - Un descodificador que comprende: medios para descodificar planos de bit señalados en la capa de marco, en donde los planos de bit incluyen un primer plano de bit para un primer marco de vídeo entrelazado, y en donde el primer plano de bit representa tipos de transformación de campo/marco para macrobloques plurales del primer marco de vídeo entrelazado; y medios para procesar bits de tipo de transformación de campo/marco por macrobloque señalados en la capa de macrobloque, en donde los bits de tipo de transformación de campo/marco por macrobloque incluyen un bit de tipo de transformación de campo/marco por macrobloque para cada uno de al menos uno pero no todos los macrobloques plurales del segundo marco de vídeo entrelazado. 17.- El descodificador de acuerdo con la reivindicación 16, en donde el segundo marco de vídeo entrelazado es un marco compensado por movimiento, y en donde los medios para procesar bits de tipo de transformación de campo/marco por macrobloque procesa bits de tipo de transformación de campo/marco de macrobloque para macrobloques internos pero no para macrobloques intermedios del segundo marco de vídeo entrelazado. 18. - El descodificador de acuerdo con la reivindicación 16, en donde el primer marco de vídeo entrelazado es un l-marco entrelazado y el segundo marco de vídeo entrelazado es un P-marco entrelazado. 19. - El descodificador de acuerdo con la reivindicación 16, que además comprende: medios para seleccionar un modo de descodificación de plano de bit de entre modos de descodificación de plano de bit disponibles plurales. 20. - El descodificador de acuerdo con la reivindicación 19, en donde los modos de codificación disponibles plurales incluyen salto de fila, salto de columna, VLC de par, VLC de grupo de 6, y uno o más modos diferenciales. 21.- Un método que comprende: seleccionar un modo de plano de bit de un grupo de modos de plano de bit disponibles plurales; y procesar un plano de bit de acuerdo con el modo de plano de bit seleccionado, en donde el plano de bit indica información de estado de predicción AC para macrobloques plurales de una imagen de vídeo. 22.- El método de acuerdo con la reivindicación 21, en donde la información de estado de predicción AC indica para cada uno de los macrobloques plurales si el macrobloque es o no codificado utilizando predicción AC. 23. - El método de acuerdo con la reivindicación 21, en donde la imagen de vídeo es un marco interno progresivo, un marco interno entrelazado, o un campo interno entrelazado. 24. - El método de acuerdo con la reivindicación 21, que además comprende: para una segunda imagen de vídeo, para cada uno de al menos uno pero no todos lo macrobloques plurales de la segunda imagen de vídeo, procesar un bit de estado de predicción AC señalado en la capa de macrobloque. 25.- El método de acuerdo con la reivindicación 21, en donde la segunda imagen de vídeo incluye uno o más macrobloques internos y uno o más macrobloques intermedios, y en donde un bit de estado de predicción AC por macrobloque es señalado para cada uno de uno o más macrobloques internos pero no para ninguno de uno o más macrobloques intermedios. 26.- El método de acuerdo con la reivindicación 21, en donde los modos de codificación/descodificación de plano de bit disponibles plurales incluyen salto de fila, salto de columna, VLC de par, VLC de grupo de 6, y uno o más modos diferenciales. 27.- El método de acuerdo con la reivindicación 21, en donde el procesamiento comprende codificación. 28. - El método de acuerdo con la reivindicación 21, en donde el procesamiento comprende descodificación. 29. - Un medio legible por computadora que tiene almacenadas en él instrucciones ejecutables por computadora para causar que un sistema de computadora programado realice el método de la reivindicación 21. 30. - Un método que comprende: codificar un plano de bit que indica información de estado de predicción AC para macrobloques plurales de una imagen de vídeo; y señalar el plano de bit codificado. 31. - El método de acuerdo con la reivindicación 30, en donde el plano de bit incluye un bit de estado de predicción AC para cada uno de los macrobloques plurales para indicar si el macrobloque es o no codificado utilizando predicción AC. 32. - El método de acuerdo con la reivindicación 30, en donde el plano de bit codificado es señalado en el campo o capa de marco en una corriente de bit. 33. - El método de acuerdo con la reivindicación 30, que además comprende: para cada uno de uno o más macrobloques internos de una segunda imagen de vídeo, señalar un bit de estado de predicción AC por macrobloque en la capa de macrobloque. 34. - El método de acuerdo con la reivindicación 33, en donde la segunda imagen de vídeo es una imagen compensada por movimiento. 35. - El método de acuerdo con la reivindicación 33, en donde la segunda imagen de vídeo es una imagen codificada interna. 36. - Un medio legible por computadora que tiene almacenadas en él instrucciones ejecutables por computadora para causar que un sistema de computadora programado realice el método de la reivindicación 30. 37. - Un método que comprende: recibir un plano de bit codificado; y descodificar el plano de bit, en donde el plano de bit indica información de estado de predicción AC para macrobioques plurales de una imagen de vídeo. 38. - El método de acuerdo con la reivindicación 37, en donde el plano de bit incluye un bit de estado de predicción AC para cada uno de los macrobioques plurales para indicar si el macrobloque es o no codificado utilizando predicción AC. 39. - El método de acuerdo con la reivindicación 37, en donde el plano de bit codificado es señalado en el campo o capa de marco en una corriente de bit. 40.- El método de acuerdo con la reivindicación 37, que además comprende: para cada uno de uno o más macrobioques internos de una segunda imagen de vídeo, recibir un bit de estado de predicción AC por macrobloque en la capa de macrobloque. 41.- El método de acuerdo con la reivindicación 40, en donde la segunda imagen de vídeo es una imagen compensada por movimiento. 42.- El método de acuerdo con la reivindicación 40, en donde la segunda -imagen de vídeo es una imagen codificada interna. 43.- Un medio legible por computadora que tiene almacenadas en él instrucciones ejecutables por computadora para causar que un sistema de computadora programado realice el método de la reivindicación 37.
MXPA06002496A 2003-09-07 2004-09-03 Codificacion y descodificacion de plano de bit para estado de prediccion ac e informacion de tipo de codificacion de campo/marco de macrobloque. MXPA06002496A (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US50108103P 2003-09-07 2003-09-07
US10/933,959 US7092576B2 (en) 2003-09-07 2004-09-02 Bitplane coding for macroblock field/frame coding type information
PCT/US2004/029032 WO2005027494A2 (en) 2003-09-07 2004-09-03 Bitplane coding and decoding for ac prediction status and macroblock field/frame coding type information

Publications (1)

Publication Number Publication Date
MXPA06002496A true MXPA06002496A (es) 2006-06-20

Family

ID=34228805

Family Applications (1)

Application Number Title Priority Date Filing Date
MXPA06002496A MXPA06002496A (es) 2003-09-07 2004-09-03 Codificacion y descodificacion de plano de bit para estado de prediccion ac e informacion de tipo de codificacion de campo/marco de macrobloque.

Country Status (8)

Country Link
US (1) US7092576B2 (es)
EP (1) EP1665761B1 (es)
JP (2) JP5049009B2 (es)
KR (1) KR101087400B1 (es)
ES (1) ES2767932T3 (es)
HK (1) HK1119336A1 (es)
MX (1) MXPA06002496A (es)
WO (1) WO2005027494A2 (es)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003053066A1 (en) 2001-12-17 2003-06-26 Microsoft Corporation Skip macroblock coding
US7003035B2 (en) 2002-01-25 2006-02-21 Microsoft Corporation Video coding methods and apparatuses
US20040001546A1 (en) 2002-06-03 2004-01-01 Alexandros Tourapis Spatiotemporal prediction for bidirectionally predictive (B) pictures and motion vector prediction for multi-picture reference motion compensation
US7154952B2 (en) 2002-07-19 2006-12-26 Microsoft Corporation Timestamp-independent motion vector prediction for predictive (P) and bidirectionally predictive (B) pictures
US8064520B2 (en) 2003-09-07 2011-11-22 Microsoft Corporation Advanced bi-directional predictive coding of interlaced video
US7286710B2 (en) * 2003-10-01 2007-10-23 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Coding of a syntax element contained in a pre-coded video signal
US7379608B2 (en) * 2003-12-04 2008-05-27 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung, E.V. Arithmetic coding for transforming video and picture data units
US7599435B2 (en) 2004-01-30 2009-10-06 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Video frame encoding and decoding
US7586924B2 (en) 2004-02-27 2009-09-08 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Apparatus and method for coding an information signal into a data stream, converting the data stream and decoding the data stream
US7554602B2 (en) * 2004-07-12 2009-06-30 Canon Kabushiki Kaisha Processing interlaced video in a frame based rendering system
KR101116965B1 (ko) * 2004-08-31 2012-03-14 파나소닉 주식회사 동화상 부호화 방법 및 장치
US7574060B2 (en) * 2004-11-22 2009-08-11 Broadcom Corporation Deblocker for postprocess deblocking
KR100703745B1 (ko) * 2005-01-21 2007-04-05 삼성전자주식회사 비동기 프레임을 효율적으로 예측하는 비디오 코딩 방법 및장치
US20060215754A1 (en) * 2005-03-24 2006-09-28 Intel Corporation Method and apparatus for performing video decoding in a multi-thread environment
KR100723411B1 (ko) * 2005-09-08 2007-05-30 삼성전자주식회사 멀티 코덱용 변환 장치 및 방법과 멀티 코덱용 역변환 장치및 방법
US20070094035A1 (en) * 2005-10-21 2007-04-26 Nokia Corporation Audio coding
GB2435140B (en) * 2006-02-13 2011-04-06 Snell & Wilcox Ltd Sport action coding
JP2008048240A (ja) * 2006-08-18 2008-02-28 Nec Electronics Corp ビットプレーン復号装置およびビットプレーン復号方法
TW200814785A (en) * 2006-09-13 2008-03-16 Sunplus Technology Co Ltd Coding method and system with an adaptive bitplane coding mode
EP2096439A4 (en) * 2006-12-21 2011-01-05 Ajinomoto Kk METHOD, APPARATUS, METHOD, SYSTEM AND SOFTWARE FOR EVALUATING COLORECTAL CANCER, AND RECORDING MEDIUM
US9003488B2 (en) * 2007-06-06 2015-04-07 Datavalet Technologies System and method for remote device recognition at public hotspots
US20140355592A1 (en) 2012-11-01 2014-12-04 Datavalet Technologies System and method for wireless device detection, recognition and visit profiling
US8254455B2 (en) 2007-06-30 2012-08-28 Microsoft Corporation Computing collocated macroblock information for direct mode macroblocks
TW201016017A (en) * 2008-10-08 2010-04-16 Univ Nat Taiwan Memory management method and system of video encoder
EP2392144A1 (en) * 2009-01-29 2011-12-07 Dolby Laboratories Licensing Corporation Methods and devices for sub-sampling and interleaving multiple images, eg stereoscopic
US8189666B2 (en) 2009-02-02 2012-05-29 Microsoft Corporation Local picture identifier and computation of co-located information
JP5020391B2 (ja) * 2010-02-22 2012-09-05 パナソニック株式会社 復号化装置及び復号化方法
KR102355509B1 (ko) 2011-02-09 2022-02-08 엘지전자 주식회사 영상 부호화 및 복호화 방법과 이를 이용한 장치
US9025665B2 (en) * 2011-07-01 2015-05-05 Cavium, Inc. Video encoder bit estimator for macroblock encoding
KR101718953B1 (ko) 2011-10-17 2017-03-22 주식회사 케이티 영상 부호화/복호화 방법 및 그 장치
EP2866439B1 (en) 2012-06-26 2020-11-04 LG Electronics Inc. Video decoding method and video encoding method
KR102215433B1 (ko) 2012-07-02 2021-02-15 엘지전자 주식회사 영상 정보 코딩 방법 및 이를 이용하는 장치
CN103634606B (zh) * 2012-08-21 2015-04-08 腾讯科技(深圳)有限公司 视频编码方法和装置
US9210434B2 (en) 2013-06-12 2015-12-08 Microsoft Technology Licensing, Llc Screen map and standards-based progressive codec for screen content coding
US10200716B2 (en) * 2015-06-25 2019-02-05 Sony Interactive Entertainment Inc. Parallel intra-prediction encoding/decoding process utilizing PIPCM and/or PIDC for selected sections
US20170034538A1 (en) * 2015-07-27 2017-02-02 Sony Computer Entertainment Inc. Encode/Decode Strategy for Mitigating Irregular Stream Decoding Time
AU2017201760B2 (en) * 2017-03-15 2023-03-09 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding video data
US10931963B2 (en) 2017-12-07 2021-02-23 Tencent America LLC Method and apparatus for video coding

Family Cites Families (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS56128070A (en) 1980-03-13 1981-10-07 Fuji Photo Film Co Ltd Band compressing equipment of variable density picture
JPS61205086A (ja) 1985-03-08 1986-09-11 Mitsubishi Electric Corp 画像符号化復号化装置
DE3684047D1 (de) 1985-07-02 1992-04-09 Matsushita Electric Ind Co Ltd Vorrichtung zur blockkodierung.
FR2599577B1 (fr) 1986-05-29 1988-08-05 Guichard Jacques Procede de codage par transformation pour la transmission de signaux d'image.
US4800432A (en) 1986-10-24 1989-01-24 The Grass Valley Group, Inc. Video Difference key generator
DE3704777C1 (de) 1987-02-16 1988-04-07 Ant Nachrichtentech Verfahren zum UEbertragen und zum Wiedergeben von Fernsehbildsequenzen
NL8700565A (nl) 1987-03-10 1988-10-03 Philips Nv Televisiesysteem waarin aan een transformatiekodering onderworpen gedigitaliseerde beeldsignalen worden overgebracht van een kodeerstation naar een dekodeerstation.
EP0290085B1 (de) 1987-05-06 1996-03-20 Philips Patentverwaltung GmbH System zur Übertragung von Videobildern
US5033105A (en) 1987-08-11 1991-07-16 Apple Computer Video compression algorithm
JPH07109990B2 (ja) 1989-04-27 1995-11-22 日本ビクター株式会社 適応型フレーム間予測符号化方法及び復号方法
JP2562499B2 (ja) 1989-05-29 1996-12-11 日本電信電話株式会社 高能率画像符号化装置およびその復号化装置
EP0424026B1 (en) 1989-10-14 1997-07-23 Sony Corporation Video signal transmitting system and method
JPH03265290A (ja) 1990-03-14 1991-11-26 Toshiba Corp テレビジョン信号走査線変換器
US5091782A (en) 1990-04-09 1992-02-25 General Instrument Corporation Apparatus and method for adaptively compressing successive blocks of digital video
US5068724A (en) 1990-06-15 1991-11-26 General Instrument Corporation Adaptive motion compensation for digital television
DE4113505A1 (de) 1991-04-25 1992-10-29 Thomson Brandt Gmbh Verfahren zur bildsignalcodierung
JPH04334188A (ja) 1991-05-08 1992-11-20 Nec Corp 動画像信号の符号化方式
US5539466A (en) 1991-07-30 1996-07-23 Sony Corporation Efficient coding apparatus for picture signal and decoding apparatus therefor
JP2962012B2 (ja) 1991-11-08 1999-10-12 日本ビクター株式会社 動画像符号化装置及びその復号装置
US5510840A (en) 1991-12-27 1996-04-23 Sony Corporation Methods and devices for encoding and decoding frame signals and recording medium therefor
JP2524044B2 (ja) 1992-01-22 1996-08-14 松下電器産業株式会社 画像符号化方法及び画像符号化装置
KR0166716B1 (ko) 1992-06-18 1999-03-20 강진구 블럭 dpcm을 이용한 부호화/복호화방법 및 장치
US6101313A (en) 1992-06-29 2000-08-08 Sony Corporation High efficiency encoding and decoding of picture signals and recording medium containing same
US6226327B1 (en) 1992-06-29 2001-05-01 Sony Corporation Video coding method and apparatus which select between frame-based and field-based predictive modes
JP2510456B2 (ja) 1992-08-27 1996-06-26 三菱電機株式会社 画像符号化装置
US5982437A (en) 1992-10-26 1999-11-09 Sony Corporation Coding method and system, and decoding method and system
KR0166722B1 (ko) 1992-11-30 1999-03-20 윤종용 부호화 및 복호화방법 및 그 장치
US5544286A (en) 1993-01-29 1996-08-06 Microsoft Corporation Digital video data compression technique
WO1994022269A1 (en) 1993-03-24 1994-09-29 Sony Corporation Method and apparatus for coding/decoding motion vector, and method and apparatus for coding/decoding image signal
US5448297A (en) 1993-06-16 1995-09-05 Intel Corporation Method and system for encoding images using skip blocks
US5796438A (en) 1994-07-05 1998-08-18 Sony Corporation Methods and apparatus for interpolating picture information
US5552832A (en) 1994-10-26 1996-09-03 Intel Corporation Run-length encoding sequence for video signals
EP0710033A3 (en) 1994-10-28 1999-06-09 Matsushita Electric Industrial Co., Ltd. MPEG video decoder having a high bandwidth memory
JP2951861B2 (ja) 1994-12-28 1999-09-20 シャープ株式会社 画像符号化装置及び画像復号装置
US5864711A (en) 1995-07-05 1999-01-26 Microsoft Corporation System for determining more accurate translation between first and second translator, and providing translated data to second computer if first translator is more accurate
US6208761B1 (en) 1995-07-11 2001-03-27 Telefonaktiebolaget Lm Ericsson (Publ) Video coding
US5764807A (en) 1995-09-14 1998-06-09 Primacomp, Inc. Data compression using set partitioning in hierarchical trees
US5883678A (en) 1995-09-29 1999-03-16 Kabushiki Kaisha Toshiba Video coding and video decoding apparatus for reducing an alpha-map signal at a controlled reduction ratio
US6307967B1 (en) 1995-09-29 2001-10-23 Kabushiki Kaisha Toshiba Video coding and video decoding apparatus
US5825929A (en) 1995-10-05 1998-10-20 Microsoft Corporation Transformation block optimization method
US5764814A (en) 1996-03-22 1998-06-09 Microsoft Corporation Representation and encoding of general arbitrary shapes
DE19637522A1 (de) 1996-09-13 1998-03-19 Bosch Gmbh Robert Verfahren zur Reduzierung von Daten in Videosignalen
US5748789A (en) 1996-10-31 1998-05-05 Microsoft Corporation Transparent block skipping in object-based video coding systems
EP1809044B1 (en) 1997-02-14 2008-10-01 Nippon Telegraph and Telephone Corporation Predictive decoding method of video data
US5974184A (en) 1997-03-07 1999-10-26 General Instrument Corporation Intra-macroblock DC and AC coefficient prediction for interlaced digital video
US6259810B1 (en) 1997-04-15 2001-07-10 Microsoft Corporation Method and system of decoding compressed image data
US6064771A (en) * 1997-06-23 2000-05-16 Real-Time Geometry Corp. System and method for asynchronous, adaptive moving picture compression, and decompression
JP3662129B2 (ja) 1997-11-11 2005-06-22 松下電器産業株式会社 マルチメディア情報編集装置
KR100252108B1 (ko) 1997-12-20 2000-04-15 윤종용 Mpeg 압축부호화 및 복호화기를 채용한 디지털 기록 재생장치 및 그 방법
US5946043A (en) 1997-12-31 1999-08-31 Microsoft Corporation Video coding using adaptive coding of block parameters for coded/uncoded blocks
JP3888597B2 (ja) 1998-06-24 2007-03-07 日本ビクター株式会社 動き補償符号化装置、及び動き補償符号化復号化方法
US6275531B1 (en) 1998-07-23 2001-08-14 Optivision, Inc. Scalable video coding method and apparatus
US6573905B1 (en) 1999-11-09 2003-06-03 Broadcom Corporation Video and graphics system with parallel processing of graphics windows
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
JP2000278692A (ja) 1999-03-25 2000-10-06 Victor Co Of Japan Ltd 圧縮データ処理方法及び処理装置並びに記録再生システム
US20020114388A1 (en) 2000-04-14 2002-08-22 Mamoru Ueda Decoder and decoding method, recorded medium, and program
US6819714B2 (en) 2000-04-20 2004-11-16 Matsushita Electric Industrial Co., Ltd. Video encoding apparatus that adjusts code amount by skipping encoding of image data
JP3669281B2 (ja) * 2000-04-27 2005-07-06 三菱電機株式会社 符号化装置および符号化方法
CN1322759C (zh) 2000-04-27 2007-06-20 三菱电机株式会社 编码装置和编码方法
US6614442B1 (en) 2000-06-26 2003-09-02 S3 Graphics Co., Ltd. Macroblock tiling format for motion compensation
KR100353851B1 (ko) 2000-07-07 2002-09-28 한국전자통신연구원 파문 스캔 장치 및 그 방법과 그를 이용한 영상코딩/디코딩 장치 및 그 방법
US20020168066A1 (en) 2001-01-22 2002-11-14 Weiping Li Video encoding and decoding techniques and apparatus
JP2004531925A (ja) 2001-03-05 2004-10-14 インタービデオインコーポレイテッド 圧縮されたビデオビットストリームにおける冗長な動きベクトルを符号化し復号するシステム及び方法
WO2003053066A1 (en) 2001-12-17 2003-06-26 Microsoft Corporation Skip macroblock coding
US7003035B2 (en) 2002-01-25 2006-02-21 Microsoft Corporation Video coding methods and apparatuses
US6798364B2 (en) 2002-02-05 2004-09-28 Intel Corporation Method and apparatus for variable length coding
US7072394B2 (en) 2002-08-27 2006-07-04 National Chiao Tung University Architecture and method for fine granularity scalable video coding
WO2004038921A2 (en) 2002-10-23 2004-05-06 Divxnetworks, Inc. Method and system for supercompression of compressed digital video
JP4093405B2 (ja) 2002-10-25 2008-06-04 株式会社リコー 画像処理装置、プログラム及び記憶媒体
US7724827B2 (en) * 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding

Also Published As

Publication number Publication date
EP1665761A4 (en) 2011-10-05
JP2011139547A (ja) 2011-07-14
WO2005027494A3 (en) 2006-04-13
EP1665761A2 (en) 2006-06-07
JP5049009B2 (ja) 2012-10-17
KR101087400B1 (ko) 2011-11-25
KR20060131720A (ko) 2006-12-20
US7092576B2 (en) 2006-08-15
WO2005027494A2 (en) 2005-03-24
JP2007504759A (ja) 2007-03-01
HK1119336A1 (en) 2009-02-27
US20050053296A1 (en) 2005-03-10
EP1665761B1 (en) 2019-11-27
ES2767932T3 (es) 2020-06-19
JP5048146B2 (ja) 2012-10-17

Similar Documents

Publication Publication Date Title
MXPA06002496A (es) Codificacion y descodificacion de plano de bit para estado de prediccion ac e informacion de tipo de codificacion de campo/marco de macrobloque.
US7099515B2 (en) Bitplane coding and decoding for AC prediction status information
EP1457056B1 (en) Skip macroblock coding
JP4921971B2 (ja) インターレース・ビデオおよびプログレッシブ・ビデオのマクロブロックおよび動き情報の符号化および復号における新機軸
US7602851B2 (en) Intelligent differential quantization of video coding
KR100813963B1 (ko) 동영상의 무손실 부호화, 복호화 방법 및 장치
KR100809301B1 (ko) 엔트로피 부호화/복호화 방법 및 장치
JP2015039231A (ja) 映像を符号化する装置及び方法
JP2007516640A (ja) インターレース・ビデオの符号化および復号
CN111684810A (zh) 数据编码和解码
EP1841235A1 (en) Video compression by adaptive 2D transformation in spatial and temporal direction
KR20150105347A (ko) 잔차 변환을 이용한 인트라 예측 방법 및 장치
US20130089264A1 (en) Apparatus and method for encoding images, and apparatus and method for decoding images
KR20080013843A (ko) 동영상의 무손실 부호화, 복호화 방법 및 장치
KR20140129418A (ko) 잔차 변환을 이용한 인트라 예측 방법 및 장치
KR20140129420A (ko) 잔차 변환을 이용한 인트라 예측 방법 및 장치
KR20140129419A (ko) 잔차 변환을 이용한 인트라 예측 방법 및 장치

Legal Events

Date Code Title Description
FG Grant or registration