ES2664270T3 - Codificación por omisión de macrobloques - Google Patents

Codificación por omisión de macrobloques Download PDF

Info

Publication number
ES2664270T3
ES2664270T3 ES10010110.4T ES10010110T ES2664270T3 ES 2664270 T3 ES2664270 T3 ES 2664270T3 ES 10010110 T ES10010110 T ES 10010110T ES 2664270 T3 ES2664270 T3 ES 2664270T3
Authority
ES
Spain
Prior art keywords
macroblock
macroblocks
information
frame
coding
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
ES10010110.4T
Other languages
English (en)
Inventor
Sridhar Srinivasan
Pohsiang Hsu
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Application granted granted Critical
Publication of ES2664270T3 publication Critical patent/ES2664270T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/146Data rate or code amount at the encoder output
    • 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/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • 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/172Methods 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 picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/507Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction using conditional replenishment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/523Motion estimation or motion compensation with sub-pixel accuracy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/527Global motion vector estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/587Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal sub-sampling or interpolation, e.g. decimation or subsequent interpolation of pictures in a video sequence
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness

Landscapes

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

Abstract

Un método implementado por ordenador de descodificación de video de uno o más fotogramas de video, comprendiendo el método: recibir información de video comprimida en una corriente de bits, en el que la información de video comprimida incluye un elemento de sintaxis de selección de modo de codificación; y descodificar un fotograma de video predicho, fotograma P, e información binaria que utiliza la información de video comprimida, en el que el fotograma P incluye varios macrobloques, siendo los varios macrobloques todos los macrobloques del fotograma P, y en el que la información binaria representa características de los varios macrobloques, en el que la información binaria es información de macrobloques omitidos para los varios macrobloques, en el que la información de macrobloques omitidos indica si los varios macrobloques han sido omitidos o no han sido omitidos durante la codificación del uno o más fotogramas de video, y en el que cualquier macrobloque de los varios macrobloques del fotograma P que ha sido omitido de acuerdo con la información de macrobloques omitidos es un macrobloque que (a) utiliza movimiento predicho basado en el movimiento de uno o más de otros macrobloques alrededor de dicho macrobloque en el fotograma P y (b) carece de información residual, y en el que la descodificación incluye: basado en el elemento de sintaxis de selección de modo de codificación, seleccionar (1110) un modo de codificación a partir de entre varios modos de codificación disponibles que han sido utilizados para codificar la información de macrobloques omitidos de todos los macrobloques del fotograma P; y si el modo de codificación seleccionado es un primer modo de codificación de los varios modos de codificación disponibles, para cada uno de los varios macrobloques, utilizar (1120) un elemento de sintaxis por macrobloque para determinar la información de macrobloques omitidos para ese macrobloque; de otro modo, determinar (1120) la información de macrobloques omitidos para los varios macrobloques de acuerdo con uno de una pluralidad de segundos modos de codificación de los varios modos de codificación disponible seleccionados basados en el elemento de sintaxis de selección del modo de codificación, en el que cada uno de los segundos modos de codificación codifica la información de macrobloques omitidos para todos los macrobloques del fotograma P en símbolos, en el que uno dado de los símbolos indica la información de macrobloques omitidos para dos o más de los varios macrobloques

Description

5
10
15
20
25
30
35
40
45
50
DESCRIPCION
Codificación por omisión de macrobloques Campo técnico
Hay descritas técnicas y herramientas para codificar/descodificar información binaria en aplicaciones de codificación/descodificación de vídeo. Por ejemplo, un codificador de vídeo codifica la información de macrobloques omitidos.
Antecedentes
El vídeo digital consume grandes cantidades de capacidad de almacenamiento y de transmisión. Una secuencia de vídeo digital en bruto típica incluye 15 o 30 fotogramas por segundo. Cada fotograma puede incluir decenas o cientos de millares de píxeles (también llamados pels). Cada pixel representa un elemento diminuto de la imagen. En forma en bruto, un ordenador representa comúnmente un pixel con 24 bits. Así, el número de bits por segundo, o tasa de bits, de una secuencia de vídeo digital en bruto típica puede ser de 5 millones de bits/segundo o más.
La mayoría de los ordenadores y redes informáticas carecen de recursos para procesar y video digital en bruto. Por esta razón, los ingenieros utilizan la compresión (también llamado codificación o descodificación) para reducir la tasa de bits del video digital. La compresión puede ser sin pérdidas, en la que la calidad del video no sufre pero las disminuciones en tasa de bits están limitadas por la complejidad del video. O, la compresión puede ser con pérdidas, en la que la calidad del video sufre pero las disminuciones en tasa de bits son más dramáticas. La descompresión invierte la compresión.
En general, las técnicas de compresión de video incluyen compresión dentro de fotogramas y compresión entre fotogramas. Las técnicas de compresión dentro de fotogramas comprimen fotogramas individuales, típicamente llamados I- fotogramas, o fotogramas clave. Las técnicas de compresión entre fotogramas comprimen fotogramas con referencia a fotogramas precedentes y/o siguientes, y son llamados típicamente fotogramas predichos, P-fotogramas o B-fotogramas.
El Windows Media Video de la Corporación Microsoft, Versión 7 [“WMV7”] incluye un codificador de video y un descodificador de video. El codificador WMV7 utiliza compresión dentro de fotogramas y entre fotogramas, y el descodificador WMV7 utiliza descompresión dentro de fotogramas y entre fotogramas.
A. Compresión dentro de fotogramas en WMV7
La Figura 1 ilustra la compresión (100) dentro de fotogramas a base de bloques de un bloque (105) de píxeles en un fotograma clave en el codificador WMV7. Un bloque es un conjunto de píxeles, por ejemplo, una disposición de píxeles de 8x8. El codificador WMV7 divide un fotograma de video clave en bloques de píxeles de 8x8 y aplica una Transformación de Coseno Discreta [“DCT”] (110) de 8x8 a bloques individuales tales como el bloque (105). Una DCT es un tipo de transformación de frecuencia que convierte el bloque de píxeles de 8x8 (información espacial) en un bloque de coeficientes DCT (115) de 8x8, que son información de frecuencia. La propia operación DCT no tiene pérdidas o casi no tiene pérdidas. Comparado con los valores de píxel originales, sin embargo, los coeficientes de DCT son más eficientes para que el codificador comprima ya que la mayoría de la información significativa está concentrada en coeficientes de baja frecuencia (convencionalmente, la parte superior izquierda del bloque (115)) y muchos de los coeficientes de alta frecuencia (convencionalmente, la parte inferior derecha del bloque (115)) tienen valores de cero o próximos a cero.
El codificador cuantifica a continuación (120) los coeficientes DCT, dando como resultado un bloque de coeficientes DCT cuantificados (125) de 8x8. Por ejemplo, el codificador aplica un tamaño de paso de cuantificación escalar, uniforme a cada coeficiente, que es análogo a dividir cada coeficiente por el mismo valor y redondear. Por ejemplo, si un valor de coeficiente DCT es 163 y el tamaño de paso es 10, el valor de coeficiente DCT cuantificado es 16. La cuantificación es con pérdidas. El valor de coeficiente DCT reconstruido será 160, no 163. Como los coeficientes DCT de baja frecuencia tienden a tener valores más elevados, la cuantificación da como resultado pérdidas de precisión pero no pérdidas completas de información para los coeficientes. Por el otro lado, mientras los coeficientes DCT de alta frecuencia tienden a tener valores de cero o próximos a cero, la cuantificación de los coeficientes de alta frecuencia da como resultado típicamente en regiones contiguas de valores de cero. Además, en algunos casos los coeficientes DCT de alta frecuencia son cuantificados de forma más aproximada que los coeficientes DCT de baja frecuencia, dando como resultado mayores pérdidas de precisión/información para los coeficientes DCT de alta frecuencia.
El codificador prepara a continuación el bloque de coeficientes DCT cuantificados (125) de 8x8 para codificación de entropía, que es una forma de compresión sin pérdidas. El tipo exacto de codificación de entropía puede variar dependiendo de si un coeficiente es un coeficiente 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 un diferencial del coeficiente DC (136) de un bloque de 8x8 vecino, que es un vecino previamente codificado (por ejemplo parte superior o izquierda) del bloque que está siendo codificado. (La Figura 1 muestra un bloque vecino (135) que está situado a la izquierda del bloque que está siendo codificado en el fotograma). La entropía de codificador codifica (140) el diferencial.
5
10
15
20
25
30
35
40
45
50
55
El codificador de entropía puede codificar la columna izquierda o la fila superior de los coeficientes AC como un diferencial de una columna o fila correspondiente del bloque de 8x8 vecino. La Figura 1 muestra la columna izquierda (127) de coeficientes AC codificados como un diferencial (147) desde la columna izquierda (137) del bloque (135) vecino (a la izquierda). La codificación diferencial aumenta la posibilidad de que los coeficientes de diferencial tengan valores cero. Los coeficientes AC restantes son del bloque (125) de los coeficientes DCT cuantificados.
El codificador analiza (150) el bloque de 8x8 (145) de coeficientes DCT AC cuantificados, predichos en una agrupación unidimensional (155) y a continuación la entropía codifica los coeficientes AC analizados utilizando una variación de codificación de longitud de recorrido (160). El codificador selecciona un código de entropía de una o más tablas de recorrido/nivel/último (165) y emite el código de entropía.
Un fotograma clave contribuye mucho más a la tasa de bits que un fotograma predicho. En aplicaciones de tasa de bits media o baja, los fotogramas clave son a menudo cuellos de botella críticos para el rendimiento, así que la compresión eficiente de los fotogramas clave es crítica.
La Figura 2 ilustra una desventaja de compresión dentro de fotogramas tal como se ha mostrado en la Figura 1. En particular, la explotación de redundancia entre bloques del fotograma clave está limitada a la predicción de un subconjunto de coeficientes de frecuencia (por ejemplo, el coeficiente DC y la columna izquierda (o fila superior) de coeficientes AC) desde el bloque vecino de la izquierda (220) o de la parte superior (230) de un bloque (210). El coeficiente DC representa la media del bloque, la columna izquierda de coeficientes AC representa los promedios de las filas de un bloque, y la fila superior representa los promedios de las columnas. En efecto, la predicción de coeficientes DC y AC como en WMV7 limita la extrapolación a las señales promedio del modo fila (o de modo columna) del bloque vecino izquierdo (o superior). Para una fila particular (221) en el bloque izquierdo (220), los coeficientes AC en la columna de coeficiente DCT izquierda para el bloque izquierdo (220) son utilizados para predecir la fila correspondiente (211) completa del bloque (210).
B. Compresión Entre Fotogramas en WMV7
La compresión entre fotogramas en el codificador WMV7 utiliza la codificación de predicción compensada de movimiento basado en bloques seguida por codificación de transformación del error residual. Las Figuras 3 y 4 ilustran la compresión entre fotogramas basada en bloques para un fotograma predicho en el codificador WMV7. En particular, la Figura 3 ilustra la estimación de movimiento para un fotograma predicho (310) y la Figura 4 ilustra la compresión de una predicción residual para un bloque de movimiento estimado de un fotograma predicho.
El codificador WMV7 divide un fotograma predicho en bloques de píxeles de 8x8. Grupos de 4 bloques de 8x8 forman macrobloques. Para cada macrobloque, se realiza un proceso de estimación de movimiento. La estimación de movimiento aproxima el movimiento del macrobloque de píxeles con relación a un fotograma de referencia, por ejemplo, un fotograma precedente, previamente codificado. En la FIGURA 3, el codificador WMV7 calcula un vector de movimiento para un macrobloque (315) en el fotograma predicho (310). Para calcular el vector de movimiento, el codificador busca en un área de búsqueda (335) de un fotograma de referencia (330). Dentro del área de búsqueda (335), el codificador compara el macrobloque (315) procedente del fotograma predicho (310) con distintos macrobloques candidatos con el fin de encontrar que un macrobloque candidato es una buena coincidencia. El codificador puede comprobar macrobloques candidatos cada píxel o cada 1/2 píxel en el área de búsqueda (335), dependiendo de la resolución de estimación de movimiento deseada para el codificador. Otros codificadores de video comprueban en otros incrementos, por ejemplo, cada 1/4 de píxel. Para un macrobloque candidato, el codificador comprueba la diferencia entre el macrobloque (315) del fotograma predicho (310) y el macrobloque candidato y el coste de codificar el vector de movimiento para ese macrobloque. Después de que el codificador encuentra un macrobloque de buena coincidencia, el proceso de coincidencia de bloques termina. El codificador emite el vector de movimiento (codificado de entropía) para el macrobloque coincidente así el descodificador puede encontrar el macrobloque coincidente durante la descodificación. Cuando se descodifica el fotograma predicho (310), un descodificador utiliza el vector de movimiento para calcular un macrobloque predicho para el macrobloque (315) utilizando información procedente del fotograma de referencia (330). La predicción para el macrobloque (315) es raramente perfecta, así el codificador codifica normalmente bloques de 8x8 de diferencias de píxeles (también llamado los bloques de error o residuales) entre el macrobloque predicho y el propio macrobloque (315).
La Figura 4 ilustra el cálculo y codificación de un bloque de error (435) para un bloque de movimiento estimado en el codificador WMV7. El bloque de error (435) es la diferencia entre el bloque predicho (415) y el bloque actual original (425). El codificador aplica una DCT (440) al bloque de error (435), que da como resultado el bloque (445) de 8x8 de coeficientes. Aún más de lo que estaba en el caso con coeficientes DCT para valores de píxel, la información significativa para el bloque de error (435) está concentrada en coeficientes de baja frecuencia (convencionalmente, la parte superior izquierda del bloque (445)) y muchos de los coeficientes de alta frecuencia tienen valores de cero o próximos a cero (convencionalmente, la parte inferior derecha del bloque (445)).
El codificador cuantifica a continuación (450) los coeficientes DCT, que dan como resultado un bloque de coeficientes DCT cuantificados (455) de 8x8. El tamaño del paso de cuantificación es ajustable. Otra vez, como los coeficientes DCT de baja frecuencia tienden a tener valores más elevados, la cuantificación da como resultado pérdida de precisión, pero no pérdida completa de información para los coeficientes. Por otro lado, como los coeficientes DCT de alta frecuencia
5
10
15
20
25
30
35
40
45
50
55
tienden a tener valores de cero o próximos a cero, la cuantificación de los coeficientes de alta frecuencia da como resultado regiones contiguas de valores de cero. Además, en algunos casos los coeficientes DCT de alta frecuencia son cuantificados de manera más aproximada que los coeficientes DCT de baja frecuencia, lo que da como resultado una mayor pérdida de precisión/información para los coeficientes DCT de alta frecuencia.
El codificador prepara a continuación el bloque (455) de coeficientes DCT de 8x8 cuantificados para codificación de entropía. El codificador analiza (460) el bloque (455) de 8x8 en una agrupación unidimensional (465) con 64 elementos, de tal manera que los coeficientes son generalmente ordenados desde la frecuencia más baja a la frecuencia más elevada, lo cual crea típicamente largos recorridos de valores cero.
La entropía del codificador codifica los coeficientes analizados utilizando una variación de codificación de longitud de recorrido (470). El codificador selecciona un código de entropía a partir de una o más tablas de ejecución/nivel/último (475) y emite el código de entropía.
Cuando el vector de movimiento de un macrobloque es cero (es decir, no hay movimiento) y no es transmitida la información de bloque residual para el macrobloque, el codificador utiliza un indicador de macrobloque omitido de 1 bit para el macrobloque. Para muchos tipos de contenido de video (por ejemplo, video de movimiento lento y/o de baja tasa de bits), esto reduce la tasa de bits evitando la trasmisión del vector de movimiento y la información del bloque residual. El codificador pone el indicador de omisión de macrobloque para un macrobloque en la capa de macrobloques en la corriente de bits de salida, junto con otra información para el macrobloque.
La Figura 5 muestra el proceso de descodificación (500) para un bloque inter-codificado. Debido a la cuantificación de los coeficientes DCT, el bloque reconstruido (575) no es idéntico al bloque original correspondiente. La compresión es con pérdidas.
En resumen de la Figura 5, un descodificador descodifica (510, 520) la información codificada de entropía que representa una predicción residual utilizando descodificación de longitud variable y una o más tablas de ejecución/nivel/último (515). El descodificador inverso escanea (530) una agrupación unidimensional (525) que almacena la información descodificada de entropía en un bloque bidimensional (535). El descodificador inverso cuantifica y transforma el coseno discreto inverso (conjuntamente, 540) los datos, resultantes en un bloque de error reconstruido (545). En un trayecto separado, el descodificador calcula un bloque predicho (565) utilizando información del vector de movimiento (555) para el desplazamiento a partir de un fotograma de referencia. El descodificador combina (570) el bloque predicho (555) con el bloque de error reconstruido (545) para formar el bloque reconstruido (575).
Cuando el descodificador recibe un indicador de omisión de macrobloque para un macrobloque, el descodificador omite calcular una predicción y descodificación de una información de bloque residual para el macrobloque. En su lugar, el descodificador utiliza datos de píxel correspondientes procedentes de la ubicación del macrobloque en el fotograma de referencia.
La cantidad de cambio entre el fotograma original y reconstruido se denomina la distorsión y el número de bits requeridos para codificar el fotograma se denomina la tasa. La cantidad de distorsión es aproximadamente inversamente proporcional a la tasa. En otras palabras, codificar un fotograma con pocos bits (mayor compresión) dará como resultado una mayor distorsión y viceversa. Uno de los objetivos de un esquema de compresión de video es intentar mejorar la distorsión de tasa - en otras palabras intentar conseguir la misma distorsión utilizando menor número de bits (o los mismos bits y menor distorsión).
Aunque el uso de los indicadores de omisión de macrobloques en WMV7 reduce típicamente la tasa de bits para muchos tipos de contenido de video, es menos que óptimo en algunas circunstancias. En muchos casos, se produce un error al explotar la redundancia de indicadores de omisión de macrobloques de macrobloque a macrobloque, por ejemplo, cuando los macrobloques omitidos ocurren en racimos en una imagen. También, WMV7 ignora la predicción de movimiento para macrobloques en fotogramas predichos cuando los macrobloques son omitidos, lo que perjudica la eficiencia de compresión de los fotogramas predichos en algunos casos.
C. Normas para Compresión y Descompresión de Video
Aparte de WMV7, varias normas internacionales se refieren a compresión y descompresión de video. Estas normas incluyen las normas 1, 2, y 4 del Grupo de Expertos de Imagen en Movimiento [“MPEG”] y las normas H.261, H.262 y H.263 de la Unión de Telecomunicación Internacional [“ITU”]. Como WMV7, estas normas utilizan una combinación de compresión dentro de fotogramas y entre fotogramas, aunque las normas difieren típicamente del WMV7 en los detalles de las técnicas de compresión utilizadas.
Algunas normas internacionales reconocen la codificación de omisión de macrobloques como una herramienta para ser utilizada en compresión y descompresión de video. Para más detalles acerca de la codificación por omisión de macrobloques en las normas, véanse las propias especificaciones de las normas.
La codificación de macrobloques omitidos en las normas anteriores reduce típicamente la tasa de bits para muchos tipos de contenidos de video, pero es menos óptimo en algunas circunstancias. En muchos casos, no logra reducir la redundancia en indicadores por omisión de macrobloques de macrobloque a macrobloque, por ejemplo, cuando los
5
10
15
20
25
30
35
40
45
50
55
macrobloques omitidos ocurren en racimos en una imagen. También, ignora la predicción de movimiento para macrobloques en macrobloques/imágenes predichos cuando los macrobloques son omitidos, lo que perjudica la eficiencia de compresión de macrobloques/imágenes predichos en algunos casos.
Dada la importancia crítica de compresión y descompresión a video digital, no es sorprendente que la compresión y descompresión de video sean campos ampliamente desarrollados. Cualquiera que sea el beneficio de las técnicas de compresión y descompresión de video previas, sin embargo, no tienen las ventajas de las siguientes técnicas y herramientas.
LOUIS KEROFSKY Y COL. ("Adaptive Syntax for MTYPE" (Sintaxis adaptativa para MTYPE), ITU STUDY GROUP 16 - VIDEO CODING EXPERTS GROUP (Grupo 16 de Estudio de la ITU - Grupo de Expertos de Codificación de Video), n° VCEG-M14, 28 de Marzo de 2001, XP030003196) trata sobre la mejora de la eficiencia de la codificación de los símbolos de tipos de macrobloque cuando la distribución de probabilidad de este símbolo no sigue el modelo de codificación UVLC. Una codificación adaptativa de MBtype es propuesta en este documento basado en la clasificación del fotograma determinada a partir del fotograma anterior. Los fotogramas son clasificados en tres categorías (movimiento normal, alto, o bajo).y la información de categoría es enviada al descodificador como una señal que sigue el encabezamiento de la imagen. La codificación del MBtype depende de la categoría del fotograma. En particular, para fotogramas de movimiento bajo que tienen una elevada probabilidad de símbolos 'omitidos', los símbolos 'omitidos' son codificados utilizando la palabra de código '1' de 1 bit para señalar el 'Omitido' seguida por un código para la longitud del recorrido de símbolos 'omitidos'. La codificación de longitud de recorrido utiliza una codificación UVLC. Los indicios de mejora son también proporcionados considerando la clasificación de fotogramas, o considerando la codificación de longitud de recorrido, utilizando otras codificaciones en lugar de UVLC, o acoplando la codificación a la resolución de imagen.
GARY SULLIVAN Y COL. ("Meeting report of the thirteenth meeting of the ITU-T Q.6/16 Video Coding Experts Group (VCEG) (Informe de reunión de la decimotercera reunión del ITU-T Q.6/16 Grupo de Expertos de Codificación de Video) - Austin, Texas, 2-4 Abril, 2001") informa de las discusiones y decisiones del ITU-T Video Coding Experts Group considerando esencialmente el proyecto de codec H.26L durante la decimotercera reunión del ITU-T Video Coding Experts Group. Una sección trata las contribuciones relativas a perfeccionamientos de la sintaxis adaptativa MTYPE e identificación de macrobloque codificado. En particular, se establece en él la adopción de una codificación de longitud de recorrido de omisión, que indica una omisión directa.
LAINEMA ("Skip mode motion compensation" (Compensación de movimiento de modo de omisión), 3. JVT MEETING, 60. MPEG MEETING; - ; FAIRFAXES; n° JVT-C027, XP030005133), se refiere a una propuesta de modificar un movimiento de modo de omisión existente, que permite al modo de omisión utilizar un vector de movimiento predicho espacialmente en compensación de movimiento. Dicho vector de movimiento predicho es generado similarmente al vector de movimiento de predicción de un modo de movimiento de 16x16. El método propuesto proporciona ahorros de hasta un 20% de bits.
Compendio
Es el objeto del invento tener una mejor compresión de imágenes de video. Este objeto es resuelto por el invento como se ha reivindicado en las reivindicaciones independientes. Las realizaciones preferidas son definidas por las reivindicaciones dependientes.
En algunas realizaciones, el codificador y descodificador conmutan modos de codificación. Por ejemplo, el codificador y descodificador usan modo normal, de omisión de fila, o de omisión de columna. Los diferentes modos permiten al codificador y descodificador explotar la redundancia en la información binaria. Alternativamente, el codificador y descodificador utilizan otros modos y/o modos adicionales tales como modos diferenciales. Para aumentar la eficiencia, el codificador y descodificador puede utilizar una técnica de inversión de plano de bits en algunos modos.
En algunas realizaciones, el codificador y descodificador definen un macrobloque omitido como un macrobloque predicho cuyo movimiento es igual a su movimiento causalmente predicho y que tiene error residual cero. Alternativamente, el codificador y descodificador definen un macrobloque omitido como un macrobloque predicho con movimiento cero y error residual cero.
En algunas realizaciones, el codificador y descodificador utilizan un modo de codificación en bruto para permitir aplicaciones de latencia baja. Por ejemplo, en el modo de codificación en bruto, los macrobloques codificados pueden ser transmitidos al descodificador inmediatamente, sin tener que esperar a que todos los macrobloques en el fotograma/imagen sean codificados. El codificador y descodificador pueden conmutar entre el modo de codificación en bruto y otros modos.
Las distintas técnicas y herramientas pueden ser utilizadas en combinación o independientemente. En particular, la solicitud describe dos implementaciones de codificación y descodificación de macrobloques omitidos, junto con sintaxis de corriente de bits correspondiente. Diferentes realizaciones implementan una o más de las técnicas y herramientas descritas.
Características y ventajas adicionales serán puestas en evidencia a partir de la siguiente descripción detallada de diferentes realizaciones que prosigue con referencia a los dibujos adjuntos.
5
10
15
20
25
30
35
40
45
Breve descripción de los dibujos
La Figura 1 es un diagrama que muestra compresión dentro de fotogramas basado en bloques de un bloque de píxeles de 8x8 de acuerdo con la técnica anterior.
La Figura 2 es un diagrama que muestra la predicción de coeficientes de frecuencia de acuerdo con la técnica anterior.
La Figura 3 es un diagrama que muestra la estimación de movimiento en un codificador de video de acuerdo con la técnica anterior.
La Figura 4 es un diagrama que muestra compresión entre fotogramas basado en bloques para un bloque de 8x8 de predicciones residuales en un codificador de video de acuerdo con la técnica anterior.
La Figura 5 es un diagrama que muestra descompresión dentro de fotogramas basado en bloques para un bloque de 8x8 de predicciones residuales de acuerdo con la técnica anterior.
La Figura 6 es un diagrama de bloques de un entorno de computación adecuado en el cual pueden ser implementadas varias realizaciones descritas.
La Figura 7 es un diagrama de bloques de un sistema codificador de video generalizado utilizados en varias realizaciones descritas.
La Figura 8 es un diagrama de bloques de un sistema descodificador de video generalizado utilizado en varias realizaciones descritas.
La Figura 9 es un gráfico que muestra los elementos de corriente de bits que componen la capa de imagen P de acuerdo con la primera implementación.
La Figura 10 es un diagrama de flujo que muestra una técnica para codificar información de macrobloque omitido en un codificador de video que tiene varios modos de codificación por omisión de macrobloques.
La Figura 11 es un diagrama de flujo que muestra una técnica para descodificar información de macrobloque omitido codificado por un codificador de video que tiene varios modos de codificación por omisión de macrobloque.
La Figura 12 muestra un ejemplo de un fotograma de codificación de macrobloque omitido.
La Figura 13 es un diagrama de flujo que muestra una técnica para codificar en modo de codificación normal por omisión de macrobloque.
La Figura 14 es un diagrama de flujo que muestra una técnica para codificar en un modo de codificación por omisión de macrobloque de predicción de fila.
La Figura 15 es un listado de código que muestra pseudo-código para la descodificación de predicción de fila de información de macrobloque omitido.
La Figura 16 es un diagrama de flujo que muestra una técnica para codificar en un modo de codificación por omisión de macrobloque de predicción de columna.
La Figura 17 es un listado de código que muestra pseudo-código para descodificación de predicción de columna de información de macrobloque omitido.
La Figura 18 es un diagrama de flujo que muestra una técnica para determinar si omitir la codificación de ciertos macrobloques en un codificador de video.
La Figura 19 es un diagrama de flujo que muestra una técnica para codificar información binaria en un plano de bits en un modo de codificación de omisión de fila.
La Figura 20 es un diagrama de flujo que muestra una técnica para codificar información binaria en un plano de bits en un modo de codificación de omisión de columna.
La Figura 21 es un diagrama de flujo que muestra una técnica para codificar información binaria en un plano de bits en un modo de codificación normal 2.
Las Figuras 22, 23 y 24 muestran ejemplos de fotogramas de información binaria en mosaico en modo normal 6.
La Figura 25 es un diagrama de flujo que muestra una técnica para codificar información binaria en un plano de bits en un modo de codificación normal 6.
La Figura 26 es un diagrama de flujo que muestra una técnica para codificar información binaria en un modo de codificación diferencial.
5
10
15
20
25
30
35
40
45
50
La Figura 27 es un diagrama de flujo que muestra una técnica para descodificar información binaria codificada en un modo de codificación diferencial.
La Figura 28 es un diagrama de flujo que muestra una técnica para codificar de manera selectiva información binaria en modo de codificación en bruto para aplicaciones de latencia baja.
Descripción detallada
Las realizaciones descritas se refieren a técnicas y herramientas para codificar y descodificar (por ejemplo, en un codificador/descodificador de video) información binaria. La información binaria puede comprender bits que indican si un codificador o descodificador de video omite ciertos macrobloques en un fotograma de video. O, la información binaria puede comprender bits que indican la resolución del vector de movimiento para macrobloques (por ejemplo 1-MV o 4- MV), modo entrelazado (por ejemplo, campo o fotograma), o alguna otra información. La información binaria puede ser codificada sobre una base fotograma por fotograma o sobre alguna otra base.
En algunas realizaciones, la información binaria está dispuesta en un plano de bits. El plano de bits es codificado en la capa de imagen/fotograma. Alternativamente, la información binaria está dispuesta de algún otro modo y/o codificada en una capa diferente.
En algunas realizaciones, el codificador y descodificador conmutan modos de codificación. Por ejemplo, el codificador y descodificador utilizan modos normal, de omisión de fila, o de omisión de columna. Los diferentes modos permiten al codificador y descodificador explotar la redundancia en la información binaria. Alternativamente, el codificador y descodificador utilizan otros modos y/o modos adicionales.
En algunas realizaciones, el codificador y descodificador definen un macrobloque omitido como un macrobloque predicho cuyo movimiento es igual a su movimiento predicho causalmente y que tiene error residual cero. Alternativamente, el codificador y descodificador definen un macrobloque omitido como un macrobloque predicho con movimiento cero y error residual cero.
En algunas realizaciones, en vez de codificación de fotograma/nivel de imagen eficiente, un modo de codificación en bruto es permitido para permitir aplicaciones de baja latencia. En el modo de codificación en bruto, los macrobloques codificados pueden ser transmitidos al descodificador inmediatamente, sin tener que esperar a que todos los macrobloques en el fotograma/imagen sean codificados.
En algunas realizaciones, el codificador y descodificador procesan los planos de bits de información de nivel de macrobloque. Alternativamente, el codificador y descodificador procesan planos de bits de información de bloque, subbloque, o nivel de píxel.
Las distintas técnicas y herramientas pueden ser utilizadas en combinación o independientemente. En particular, la solicitud describe dos implementaciones de codificación y descodificación de macrobloque omitido, junto con la sintaxis de corriente de bits correspondiente. Diferentes realizaciones implementan una o más de las técnicas y herramientas descritas.
En las realizaciones descritas, el codificador y descodificador de video realizan distintas técnicas. Aunque las operaciones para estas técnicas son descritas típicamente en un orden particular, secuencial por el bien de la presentación, debería entenderse que esta manera de descripción abarca reordenamientos menores en el orden de las operaciones, a no ser que sea requerida una ordenación particular. Por ejemplo, las operaciones descritas secuencialmente pueden en algunos casos ser reordenadas o realizadas concurrentemente. Además, con objeto de simplicidad, los diagramas de flujo típicamente no muestran los distintos modos en los que pueden ser utilizadas las técnicas particulares en unión con otras técnicas.
En las realizaciones descritas, el codificador y descodificador de video utilizan distintos indicadores y señales en una corriente de bits. Aunque se han descrito indicadores y señales específicos, debería entenderse que esta manera de descripción abarca diferentes convenciones (por ejemplo, 0 en vez de 1) para los indicadores y señales.
I. Entorno informático
La Figura 6 ilustra un ejemplo generalizado de un entorno informático (600) en el cual distintas realizaciones descritas pueden ser implementadas. El entorno informático (600) no pretende sugerir ninguna limitación en cuanto al alcance de uso o funcionalidad, ya que las técnicas y herramientas puede ser implementadas en diversos entornos informáticos de propósito general o de propósito especial.
Con referencia a la Figura 6, el entorno informático (600) incluye al menos una unidad de tratamiento (610) y la memoria (620). En la Figura 6, la configuración más básica (630) es incluida dentro de una línea discontinua. La unidad de tratamiento (610) ejecuta instrucciones ejecutables por ordenador y puede ser un procesador real o virtual. En un sistema multitratamiento, múltiples unidades de tratamiento ejecutan instrucciones ejecutables por ordenador para aumentar la potencia del tratamiento. La memoria (620) puede ser memoria volátil (por ejemplo, registros, caché, RAM), memoria no volátil (por ejemplo ROM, EEPROM, memoria flash, etc.) o alguna combinación de las dos. La memoria (620) almacena
5
10
15
20
25
30
35
40
45
50
55
software (680) que implementa un codificador o descodificador, tal como un codificador o descodificador de video.
Un entorno informático puede tener características adicionales. Por ejemplo, el entorno informático (600) incluye almacenamiento (640), uno o más dispositivos de entrada (650), uno o más dispositivos de salida (660), y una o más conexiones de comunicación (670). Un mecanismo de interconexión (no mostrado) tal como un bus, controlador, o red interconecta los componentes del entorno informático (600). Típicamente, el software de sistema operativo (no mostrado) proporciona un entorno informático para otro software que funciona en el entorno informático (600), y coordina actividades de los componentes del entorno informático (600).
El almacenamiento (640) puede ser extraíble o no extraíble, e incluye discos magnéticos, cintas magnéticas o casetes, CD ROM, DVD, o cualquier otro medio que puede ser utilizado para almacenar información y que puede ser accedido dentro del entorno informático (600). El almacenamiento (640) almacena instrucciones para el software (680) que implementa el codificador y descodificador.
El o los dispositivos de entrada (650) puede ser un dispositivo de entrada táctil tal como un teclado, ratón, bolígrafo o "trackball" ("bola de seguimiento"), un dispositivo de entrada de voz, un dispositivo de escaneado, u otro dispositivo que proporciona entrada al entorno informático (600). Para codificación de audio o video, el o los dispositivos (650) puede ser una tarjeta de sonido, una tarjeta de video, una tarjeta sintonizadora de TV, o dispositivo similar que acepta entrada de audio o video en forma analógica o digital, o un CD-ROM o CD-RW que lee muestras de audio o video en el entorno informático (600). El o los dispositivos de salida (660) puede ser una pantalla de presentación, impresora, altavoz, escritor de CD u otro dispositivo que proporciona salida desde el entorno informático (600).
La conexión o conexiones de comunicación (670) habilitan la comunicación sobre un medio de comunicación a otra entidad informática. El medio de comunicación transporta información tal como instrucciones ejecutables por ordenador, entrada o salida de audio o video, 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 adaptadas o cambiadas de tal manera que codifica la información en la señal. A modo de ejemplo, y no de limitación, el medio de comunicación incluye técnicas con cable o inalámbricas implementadas con un portador eléctrico, óptico, de RF, de infrarrojos, acústico, u otro portador.
Las técnicas y herramientas pueden ser descritas en el contexto general de medio legible por ordenador. Medios legibles por ordenador son cualquier medio disponible que puede ser accedido dentro de un entorno informático. A modo de ejemplo, y no de limitación, con el entorno informático (600), el medio legible por ordenador incluye memoria (620), almacenamiento (640), 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 ordenador, tales como las incluidas en módulos de programas, que son ejecutados en un entorno informático sobre un procesador objetivo real o virtual. Generalmente, los módulos de programa incluyen rutinas, programas, bibliotecas, objetos, clases, componentes, estructuras de datos, etc., que realizan tareas particulares o implementan 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 ha descrito en distinta realizaciones. Las instrucciones ejecutables por ordenador para módulos de programa pueden ser ejecutadas dentro de un entorno informático local o distribuido.
Con el propósito de la presentación, la descripción detallada utiliza términos como "determinar", "seleccionar", "reconstruir", e "informar", para describir operaciones de ordenador en un entorno informático. Estos términos son abstracciones de alto nivel para operaciones realizadas por un ordenador, y no deberían ser confundidas con acciones que son realizadas por un ser humano. Las operaciones de ordenador reales correspondientes a estos términos varían dependiendo de la implementación.
II. Codificador y Descodificador de Video Generalizado
La Figura 7 es un diagrama de bloques de un codificador de video generalizado (700) y la Figura 8 es un diagrama de bloques de un descodificador de video generalizado (800).
La relación mostrada entre los módulos dentro del codificador y descodificador indica el flujo principal de información en el codificador y descodificador; otras relaciones no han sido mostradas con objeto de simplicidad. En particular, las Figuras 7 y 8 no muestran normalmente información lateral que indica los conjuntos, modos, tablas, etc., de codificador utilizados para una secuencia, fotograma, macrobloque, bloque, etc., de video. Tal información lateral es enviada en la corriente de bits de salida, típicamente después de codificación de entropía de la información lateral. El formato de la corriente de bits de salida puede ser el formato de Windows Media Video versión 8 u otro formato.
El codificador (700) y el descodificador (800) están basados en bloques y utilizan un formato de macrobloque 4:2:0 con cada macrobloque que incluye 4 bloques de luminancia 8x8 (a veces tratado como un macrobloque de 16x16) y dos bloques de crominancia 8x8. Alternativamente, el codificador (700) y el descodificador (800) están basados en objetos, utilizan un formato de macrobloque o de bloque diferente, o realizan operaciones sobre conjuntos de píxeles de diferente tamaño o configuración que los bloques de 8x8 y los macrobloques de 16x16.
Dependiendo de la implementación y del tipo de compresión deseada, los módulos del codificador o descodificador pueden ser añadidos, omitidos, divididos en múltiples módulos, combinados con otros módulos, y/o reemplazados con
5
10
15
20
25
30
35
40
45
50
55
módulos similares. En realizaciones alternativas, el codificador o descodificador con diferentes módulos y/u otras configuraciones de módulo realizan una o más de las técnicas descritas.
A. Codificador de Video
La Figura 7 es un diagrama de bloques de un sistema codificador (700) de video general. El sistema codificador (700) recibe una secuencia de fotogramas de video que incluyen un fotograma actual (705), y produce información de video comprimida (795) como salida. Las realizaciones particulares de codificadores de video utilizan típicamente una variación o versión complementada del codificador generalizado (700).
El sistema codificador (700) comprime los fotogramas predichos y fotogramas clave. Con el propósito de la presentación, la Figura 7 muestra un trayecto para fotogramas clave a través del sistema codificador (700) y un trayecto para fotogramas predichos progresivos. Muchos de los componentes del sistema codificador (700) son utilizados para comprimir tanto fotogramas clave como fotogramas predichos. Las operaciones exactas realizadas por los componentes pueden variar dependiendo del tipo de información que es comprimida.
Un fotograma predicho [también llamado p-fotograma, b-fotograma para fotograma de predicción o inter-codificado bidireccional] es representado en términos de predicción (o diferencia) de uno o más de los otros fotogramas. Un residuo de predicción es la diferencia entre lo que se ha predicho y el fotograma original. En contraste, un fotograma clave [también llamado fotograma i, fotograma intra-codificado] es comprimido sin referencia a otros fotogramas.
Si el fotograma actual (705) es un fotograma predicho progresivo, un estimador de movimiento (710) estima el movimiento de macrobloques u otros conjuntos de píxeles del fotograma actual (705) con respecto a un fotograma de referencia, que es el fotograma previo reconstruido (725) almacenado temporalmente en el almacenamiento de fotograma (720). En realizaciones alternativas, el fotograma de referencia es un fotograma posterior o el fotograma actual es predicho de manera bidireccional. El estimador de movimiento (710) puede estimar el movimiento por pixel, 1/2 pixel, 1/4 de pixel, u otros incrementos, y puede conmutar la resolución de la estimación de movimiento sobre una base fotograma por fotograma u otra base. La resolución de la estimación de movimiento puede ser la misma o diferente horizontal y verticalmente. El estimador de movimiento (710) emite una información de movimiento de información lateral (715) tal como vectores de movimiento. Un compensador de movimiento (730) aplica la información de movimiento (715) al fotograma previo reconstruido (725) para formar un fotograma actual de movimiento compensado (735). La predicción es raramente perfecta, sin embargo, y la diferencia entre el fotograma actual de movimiento compensado (735) y el fotograma actual original (705) es el residuo de predicción (745). Alternativamente, un estimador de movimiento y compensador de movimiento aplica otro tipo de estimación/compensación de movimiento.
Un transformador de frecuencia (760) convierte la información de video de dominio espacial en datos de dominio de frecuencia (es decir, espectral). Para fotogramas de video basado en bloques, el transformador de frecuencia (760) aplica una transformada de coseno discreta ["DCT"] o variante de DCT para bloques de datos de pixel o datos de residuo de predicción, produciendo bloques de coeficientes DCT. Alternativamente, el transformador de frecuencia (760) aplica otra transformada de frecuencia convencional tal como una transformada de Fourier o utiliza análisis de "ondículas" o de sub-banda. En realizaciones en que el codificador utiliza extrapolación espacial (no mostrado en la Figura 7) para codificar bloques de fotogramas clave, el transformador de frecuencia (760) puede aplicar una transformada de frecuencia reorientada tal como una DCT sesgada para bloques de residuos de predicción para el fotograma clave. En otras realizaciones, el transformador de frecuencia (760) aplica unas transformadas de tamaño de frecuencia de 8x8, 8x4, 4x8 o de otro tamaño (por ejemplo, DCT) para residuos de predicción para fotogramas predichos.
Un cuantificador (770) cuantifica entonces los bloques de coeficientes de datos espectrales. El cuantificador aplica una cuantificación escalar, uniforme a los datos espectrales con un tamaño de paso que varía en una base de fotograma por fotograma o en otra base. Alternativamente, el cuantificador aplica otro tipo de cuantificación a los coeficientes de datos espectrales, por ejemplo, una cuantificación no uniforme, vectorial o no adaptativa, o directamente cuantifica los datos de dominio espacial en un sistema codificador que no utiliza transformadas de frecuencia. Además de la cuantificación adaptable, el codificador (700) puede utilizar disminución de fotograma, filtrado adaptativo, u otras técnicas para el control de tasa.
Si un macrobloque dado en un fotograma predicho no tiene información de ciertos tipos (por ejemplo no tiene información para el macrobloque y e información no residual), el codificador (700) puede codificar el macrobloque como un macrobloque omitido. Si es así, el codificador señala el macrobloque omitido en la corriente de bits de salida de la información de video comprimida (795).
Cuando un fotograma actual reconstruido es necesario para la estimación/compensación del movimiento subsiguiente, un cuantificador inverso (776) realiza una cuantificación inversa sobre los coeficientes de datos espectrales cuantificados. Un transformador de frecuencia inversa (766) realiza entonces la inversa de las operaciones del transformador de frecuencia (760), produciendo un residuo de predicción reconstruido (para un fotograma predicho) o un fotograma clave reconstruido. Si el fotograma actual (705) era un fotograma clave, el fotograma clave reconstruido es tomado como el fotograma actual reconstruido (no mostrado). Si el fotograma actual (705) era un fotograma predicho, el residuo de predicción reconstruido es añadido al fotograma actual de movimiento compensado (735) para formar el fotograma actual reconstruido. El almacenamiento (720) de fotogramas almacena temporalmente el fotograma actual reconstruido
5
10
15
20
25
30
35
40
45
50
55
para utilizar en la predicción del siguiente fotograma. En algunas realizaciones, el codificador aplica un filtro de desbloqueo al fotograma reconstruido para suavizar de forma adaptativa las discontinuidades en los bloques del fotograma.
El codificador (780) de entropía comprime la salida del cuantificador (770) así como cierta información lateral (por ejemplo información de movimiento (715), modos de extrapolación espacial, tamaño del 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 de Huffman, codificación de longitud de recorrido, codificación de LZ, codificación de diccionario, y combinaciones de las anteriores. El codificador (780) de entropía utiliza típicamente diferentes técnicas de codificación para diferentes tipos de información (por ejemplo, coeficientes de DC, coeficientes de AC, diferentes tipos de información lateral), y puede elegir de entre múltiples tablas de códigos dentro de una técnica de codificación particular.
El codificador (780) de entropía pone la información (795) de video comprimida en la memoria tampón (790). Un indicador de nivel de memoria tampón es alimentado positivamente a los módulos adaptables de tasa de bits.
La información (795) de video comprimida es omitida de la memoria tampón (790) a una tasa de bits constante o relativamente constante y almacenada durante la subsiguiente retransmisión a esa tasa de bits. Por ello, el nivel de la memoria tampón (790) es fundamentalmente una función de la entropía de la información de video filtrada, cuantificada, que afecta a la eficiencia de la codificación de entropía. Alternativamente, el sistema codificador (700) retransmite la información de video comprimida inmediatamente después de la compresión, y el nivel de la memoria tampón (790) también depende de la tasa a la que la información es vaciada desde la memoria tampón (790) para su transmisión.
Antes o después de la memoria tampón (790), la información (795) de video comprimida puede ser codificada en canal para transmisión sobre la red. La codificación en canal puede aplicar detección de error y datos de corrección a la información (795) o de video comprimida.
B. Descodificador de video
La Figura 8 es un diagrama de bloques de un sistema descodificador (800) de video general. El sistema descodificador (800) recibe información (895) durante una secuencia comprimida de fotogramas de video y produce una salida que incluye un fotograma reconstruido (805). Realizaciones particulares de descodificadores de video utilizan típicamente una variación o versión complementada del descodificador generalizado (800).
El sistema descodificador (800) descomprime los fotogramas predichos y los fotogramas clave. Con propósito de presentación, la Figura 8 muestra un trayecto para los fotogramas clave a través del sistema descodificador (800) y un trayecto para los fotogramas predichos previamente. Muchos de los componentes del sistema descodificador (800) son utilizados para comprimir tanto fotogramas clave como fotogramas predichos. Las operaciones exactas realizadas por aquellos componentes pueden variar dependiendo del tipo de información que es comprimida.
Una memoria tampón (890) recibe la información (895) para la secuencia de video comprimida y hace que la información recibida esté disponible para el descodificador de entropía (880). La memoria tampón (890) recibe típicamente la información a una tasa que es casi constante a lo largo del tiempo, e incluye una memoria tampón fluctuante para suavizar las variaciones a corto plazo en el ancho de banda o en la transmisión. La memoria tampón (890) puede incluir una memoria tampón de reproducción y otras memorias tampón también. Alternativamente, la memoria tampón (890) recibe información a una tasa variable. Antes o después de la memoria tampón (890), la información de video comprimida puede ser descodificada en canal y procesada para detección de error y corrección.
El descodificador de entropía (880) descodifica la entropía de datos cuantificados codificados de entropía así como la información lateral codificada de entropía (por ejemplo, información de movimiento (815), modos de extrapolación espacial, tamaño del paso de cuantificación), aplicando típicamente 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, descodificación diferencial, descodificación de Huffman, descodificación de longitud de recorrido, descodificación LZ, descodificación de diccionario, y combinaciones de las anteriores. El descodificador de entropía (880) utiliza frecuentemente diferentes técnicas de descodificación para diferentes tipos de información (por ejemplo, coeficientes de DC, coeficientes de AC, diferentes tipos de información lateral), y puede elegir de entre múltiples tablas de códigos dentro de una técnica de descodificación particular.
Si el fotograma (805) que ha de ser reconstruido es un fotograma predicho previamente, un compensador de movimiento (830) aplica información de movimiento (815) a un fotograma de referencia (825) para formar una predicción (835) del fotograma (805) que está siendo reconstruido. Por ejemplo, el compensador de movimiento (830) utiliza un vector de movimiento de macrobloque para encontrar un macrobloque en el fotograma de referencia (825). Una memoria tampón (820) del fotograma almacena fotogramas reconstruidos previos para utilizar como fotogramas de referencia. El compensador de movimiento (830) puede compensar el movimiento en un píxel, 1/2 píxel, 1/4 de píxel, u otros incrementos, y puede conmutar la resolución de la compensación de movimiento sobre una base de fotograma por fotograma o sobre otra base. La resolución de la compensación de 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 (800) también reconstruye residuos de predicción.
5
10
15
20
25
30
35
40
Cuando el descodificador necesita un fotograma reconstruido para la subsiguiente compensación de movimiento, el almacenamiento (820) de fotogramas almacena temporalmente el fotograma reconstruido para utilizar en la predicción del siguiente fotograma. En algunas realizaciones, el codificador aplica un filtro de desbloqueo al fotograma reconstruido para suavizar adaptativamente discontinuidades en los bloques del fotograma.
Un cuantificador inverso (870) cuantifica de manera inversa los datos descodificados de entropía. En general, el cuantificador inverso aplica una cuantificación inversa uniforme, escalar a los datos descodificados de entropía con un tamaño de paso que varía sobre una base de fotograma por fotograma o sobre otra base. Alternativamente, el cuantificador inverso aplica otro tipo de cuantificación inversa a los datos, por ejemplo, una cuantificación no uniforme, vectorial, o no adaptativa, o cuantifica de manera inversa directamente los datos de dominio espacial en un sistema descodificador que no utiliza transformaciones de frecuencia inversas.
Un transformador (860) de frecuencia inversa convierte los datos de dominio de frecuencia cuantificados en información de video de dominio espacial. Para fotogramas de video a base de bloques el transformador (860) de frecuencia inversa aplica una DCT ["IDCT"] o variante de IDCT a los bloques de los coeficientes de DCT, produciendo datos de píxel o datos residuales de predicción para fotogramas clave o fotogramas predichos, respectivamente. Alternativamente, el transformador (860) de frecuencia aplica otra transformada de frecuencia inversa convencional tal como una transformación de Fourier o utiliza síntesis de ondículas o de sub-banda. En realizaciones en las que el descodificador utiliza extrapolación espacial (no mostrada en la Figura 8) para descodificar bloques de fotogramas clave, el transformador (860) de frecuencia inversa puede aplicar una transformación de frecuencia inversa reorientada tal como una IDCT sesgada a bloques de residuos de predicción para el fotograma clave. En otras realizaciones, el transformador (860) de frecuencia inversa aplica una transformada de 8*8, 8*4, 4*8, o transformadas de frecuencia inversa de otros tamaños (por ejemplo IDCT) para residuos de predicción para fotogramas predichos.
Cuando un macrobloque omitido es señalado en la corriente de bits de información (895) para una secuencia comprimida de fotogramas de video, el descodificador (800) reconstruye el macrobloque omitido sin utilizar la información (por ejemplo información de movimiento y/o información residual) normalmente incluida en la corriente de bits para macrobloques no omitidos.
III. Primera implementación
En una primera implementación, un codificador y descodificador de video codifica y descodifica respectivamente, información de macrobloques omitidos con una eficiencia mejorada. La información de macrobloques omitidos es señalada en la capa de imágenes en la corriente de bits de video, lo que permite al codificador explotar la redundancia en la información de macrobloques omitidos. También, el codificador y el descodificador seleccionan entre múltiples modos de codificación para codificar y descodificar la información de macrobloques omitidos.
A. Codificación de Capa de Imágenes de Información de Macrobloques Omitidos
En la primera implementación, una secuencia de video comprimida es construida a partir de datos estructurados en cuatro capas jerárquicas. Desde la superior a la inferior son: 1) capa de secuencia; 2) capa de imágenes; 3) capa de macrobloques; y 4) capa de bloques. En la capa de imágenes, los datos para cada imagen consisten de un encabezamiento de imagen seguido por datos para la capa de macrobloques. (Similarmente, en la capa de macrobloques, los datos para cada macrobloque consisten de un encabezamiento de macrobloque seguido por la capa de bloques). Aunque algunos de los elementos de la corriente de bits para imágenes I e imágenes P son idénticos, otros aparecen solamente en las imágenes P, y viceversa.
La Figura 9 muestra los elementos de corriente de bits que constituyen la capa (900) de imagen P. La Tabla 1 describe brevemente los elementos de corriente de bits de la capa (900) de imagen P.
Tabla 1: elementos de corriente de bits de la capa de imagen P en la primera implementación
Campo
Descripción
PTYPE (910)
Tipo de imagen
PQUANT (912)
Escala cuantificadora de imagen
SMBC (920)
Código de macrobloques omitidos
SMB (930)
Campo de macrobloques omitidos
CPBTAB (940)
Tabla de diseño de bloque codificado
MVRES (942)
Resolución de vector de movimiento
TTMBF (944)
Indicador de tipo de transformada de nivel de macrobloque
TTFRM (946)
Tipo de transformada de nivel de fotograma
5
10
15
20
25
30
35
Campo
Descripción
DCTACMBF (948)
Indicador de ajuste de codificación DCT AC de nivel de macrobloque
DCTACFRM (950)
Índice de ajuste de codificación DCT AC de nivel de fotograma
DCTDCTAB (952)
Tabla de Intra DCT AC
MVTAB (954)
Tabla de vector de movimiento
MB LAYER (960)
Capa de macrobloques
En particular, la capa (900) de imagen P incluye un campo ("SMB") (930) de Macrobloques Omitidos para los macrobloques en la imagen P así como un campo (920) de código de macrobloques omitidos ("SMBC") que señala el modo de codificación para el campo (930) de macrobloques omitidos. El campo (920) SBMC está presente sólo en los encabezamientos de imagen P. El SBMC (920) es un valor de 2 bits que señala uno de cuatro modos utilizados para indicar los macrobloques omitidos en el fotograma. En la primera implementación, los códigos de longitud fija ("FLC") para los modos de codificación de macrobloques omitidos son como sigue:
Tabla 2: Tabla de códigos de modo de codificación de macrobloques en primera implementación
SMBC FLC
Modo de Codificación de Bit Omitido
00
Codificación de bits no omitidos
01
Codificación de bits omitido normal
10
Codificación de bits omitidos Predicción de fila ( u, "omisión de fila")
11
Codificación de bits omitidos de predicción de columna (u, "omisión de columna")
Si el modo de codificación es normal, predicción de fila, o predicción de columna, entonces el siguiente campo en la corriente de bits es el campo SMB (930) que contiene la información de macrobloques omitidos. Así, el campo SMB está presente solamente en los encabezamientos de imagen P y solamente si SMBC señala codificación de macrobloques omitidos normal, de predicción de fila, o de predicción de columna. Si SMBC señala codificación normal, entonces el tamaño del campo SMB es igual al número de macrobloques en el fotograma. Si SMBC señala predicción de fila o predicción de columna, entonces el tamaño del SMB es variable como se ha descrito a continuación.
La información de macrobloques omitidos informa al descodificador en cuanto a qué macrobloques en el fotograma no están presentes en la capa de macrobloques. Para estos macrobloques, el descodificador copiará los datos de píxel de macrobloque correspondientes a partir del fotograma de referencia cuando se reconstruya ese macrobloque.
B. Conmutación de Modos de Codificación para Información de Macrobloques Omitidos
Como se ha descrito anteriormente, el campo (920) SMBC señala el modo de codificación para el campo (930) de macrobloques omitidos. Más generalmente, la Figura 10 muestra una técnica (1000) para codificar información de macrobloques omitidos en un codificador de video que tiene múltiples modos de modificación de macrobloques omitidos. La Figura 11 muestra una técnica correspondiente (1100) para descodificar información de macrobloques omitidos codificada por un codificador de video que tiene varios modos de codificación de macrobloques omitidos.
Con referencia a la Figura 10, el codificador selecciona un modo de codificación por omisión de macrobloques para codificar información (1010) de macrobloques omitidos. Por ejemplo, en la primera implementación, los modos de codificación por omisión de macrobloques incluyen un modo en el que no se han omitido macrobloques, un modo normal, un modo de predicción de fila (u, "omisión de fila"), y un modo de predicción de columna (u "omisión de columna"). Después de que se haya seleccionado el modo de codificación, el codificador codifica la información (1020) de macrobloques omitidos. El codificador selecciona modos de codificación sobre una base de imagen por imagen. Alternativamente, el codificador selecciona modos de codificación en alguna otra base (por ejemplo, a nivel de secuencia). Cuando el codificador ha hecho la codificación de la información (1030) de macrobloques omitidos, la codificación termina.
Con referencia a la Figura 11, el descodificador determina el modo de codificación de macrobloques omitidos utilizado por el codificador para codificar la información (1110) de macrobloques omitidos. El descodificador descodifica entonces la información (1120) de macrobloques omitidos. El descodificador determina modos de codificación sobre una base de imagen por imagen. Alternativamente, el descodificador determina modos de codificación en alguna otra base (por ejemplo, al nivel de secuencia). Cuando el descodificador ha hecho la descodificación de la información (1130) de macrobloques omitidos, la descodificación termina.
C. Modos de Codificación
En la primera implementación, los modos de codificación de macrobloques omitidos incluyen un modo en el que no son
5
10
15
20
25
30
35
40
45
50
omitidos macrobloques. Un modo normal, un modo de predicción de fila (u, "omisión de fila"), y un modo de predicción de columna (u "omisión de columna"). Las siguientes secciones describen como es codificada la información de macrobloques omitidos en cada modo con referencia a la Figura 12, que muestra un ejemplo (1200) de un fotograma de codificación de macrobloques omitidos.
1. Modo de Codificación Normal de Macrobloques Omitidos
En modo normal, el estatus de omitido/no omitido de cada macrobloque está representado con un bit. Por ello, el tamaño del campo SMB en bits es igual al número de macrobloques en el fotograma. La posición de bit dentro del campo SMB corresponde al orden de escaneado de trazo de los macrobloques dentro del fotograma comenzando con el macrobloque superior izquierdo. Un valor de bit de 0 indica que el macrobloque correspondiente no es omitido; un valor de bit de 1 indica que el macrobloque correspondiente es omitido.
La Figura 13 muestra una técnica (1300) para codificar en un modo de codificación normal de macrobloques omitidos. En primer lugar, el codificador comprueba si la codificación de un macrobloque será omitida (1310). Si es así, el codificador añade un valor de bit de 1 al campo SMB para indicar que el macrobloque correspondiente es omitido (1320). En caso contrario, el codificador añade un valor de bit de 0 al campo SMB para indicar que el macrobloque correspondiente no es omitido (1330). Cuando el codificador ha hecho la adición de bits al campo SMB (1340) la codificación de macrobloques omitidos termina.
Como ejemplo, utilizando codificación de modo normal, el campo SMB para el fotograma ejemplar (1200) en la Figura 12 sería codificado como: 010010111111111111010010.
2. Modo de Codificación de Macrobloques Omitidos de Predicción de Fila
En modo de predicción de fila, el estatus de cada fila de macrobloques (desde la parte superior a la inferior) está indicado con un bit. Si el bit es 1, entonces la fila contiene todos los macrobloques omitidos y el estatus para la siguiente fila continúa. Si el bit es igual a 0, entonces el estatus omitido/no omitido para cada macrobloque en esa fila es señalado con un bit. Por ello, un campo de bits es de longitud igual al número de macrobloques en una fila continua. Los bits en el campo de bits representan los macrobloques en orden de izquierda a derecha. De nuevo, un valor de 0 indica que el macrobloque correspondiente no es omitido; un valor de 1 indica que el macrobloque correspondiente es omitido.
La Figura 14 muestra una técnica (1400) para codificar en modo de codificación de macrobloques de predicción de fila (u, "omisión de fila"). En primer lugar, el codificador comprueba si una fila contiene todos los macrobloques omitidos (1410). Si es así, el codificador añade un bit indicador de 1 al campo SMB (1420) y el estatus para la siguiente fila continúa. Si la fila no contiene todos los macrobloques omitidos, el codificador añade un bit indicador de 0 al campo SMB, y el estatus omitido/no omitido para cada macrobloque en esa fila es señalado con un bit (1430). Cuando el codificador lo ha hecho con todas las filas en el fotograma (1440), la codificación de predicción de fila termina.
Como para la descodificación, la Figura 15 muestra un pseudo-código (1500) que ilustra la descodificación de predicción de fila de la información de macrobloques omitidos. En el segundo código (1500), la función get_bits(n) lee n bits de la corriente de bits y devuelve el valor.
Como ejemplo, utilizando la codificación de modo de predicción de fila, el campo SMB para el fotograma ejemplar (1200) en la Figura 12 sería codificado como: 0010010110010010.
3. Modo de Codificación de Macrobloques Omitidos de Predicción de Columna.
En modo de predicción de columna, el estatus de cada columna de macrobloques (de izquierda a derecha) está indicado con un bit. Si el bit es 1, entonces la columna contiene todos los macrobloques omitidos y el estatus para la siguiente columna continúa. Si el bit es igual a 0, entonces el estatus omitido/no omitido para cada macrobloque en esa columna es señalado con un bit. Por ello, un campo de bits de longitud igual al número de macrobloques en esa columna continúa. Los bits en el campo de bits representan los macrobloques en orden de superior a inferior. De nuevo, un valor de 0 indica que el macrobloque correspondiente no es omitido; un valor de 1 indica que el macrobloque correspondiente es omitido.
La Figura 16 muestra una técnica (1600) para codificar en modo de codificación de macrobloques de predicción de columna (u, "omisión de columna"). En primer lugar, el codificador comprueba si la columna contiene todos los macrobloques omitidos (1610). Si es así, el codificador añade un bit indicador de 1 al campo SMB (1620) y el estatus para la siguiente columna continúa. Si la columna no contiene todos los macrobloques omitidos, el codificador añade un bit indicador de 0 al campo SMB, y el estatus omitido/no omitido para cada macrobloque en esa columna es señalado con un bit (1630). Cuando el codificador lo ha hecho con todas las columnas en el fotograma (1640), la codificación de predicción de columna termina.
Como para la descodificación, la Figura 17 muestra un pseudo-código (1700) que ilustra la descodificación de predicción de columna fila de la información de macrobloques omitidos.
Como ejemplo, utilizando la codificación de modo de predicción de columna, el campo SMB para el fotograma ejemplar
5
10
15
20
25
30
35
40
45
50
(1200) en la Figura 12 sería codificado como: 0011010011000110100110.
IV. Segunda Implementación
En una segunda implementación, un codificador y descodificador de video codifica y descodifica respectivamente, información de macrobloques omitidos y/u otros datos binarios de 2D con una eficiencia mejorada. El codificador y descodificador definen un macrobloque omitido como el que tiene un movimiento por defecto (no necesariamente un movimiento cero), que permite que el codificador y el descodificador borren más macrobloques en muchos casos. La codificación eficiente a nivel de fotograma de planos de bits indica la información de macrobloque omitido y/u otros datos binarios de 2D. También, el codificador y descodificador pueden utilizar una opción de codificación en bruto (nivel MB) de macrobloques omitidos para aplicaciones de latencia baja.
A. Definición de Omisión de Bit (Definición de Macrobloque Omitido)
La segunda implementación, incluye una nueva definición del concepto de un macrobloque omitido. "Omitido" se refiere a un estado en una corriente de bits en el que no se necesita que más información sea transmitida a ese nivel de granularidad. Un macrobloque (bloque) omitido es un macrobloque (bloque) que tiene un tipo por defecto, movimiento por defecto, y error residual por defecto. (En comparación, en otras implementaciones y normas, los macrobloques omitidos son macrobloques predichos con movimiento cero y residuos cero).
La nueva definición de macrobloque omitido es un macrobloque predicho cuyo movimiento es igual a su movimiento predicho causalmente, y que tiene un error residual cero. (El punto de diferencia de la otra definición es que el movimiento por defecto es igual al predictor de movimiento, y éste puede no necesariamente ser cero).
Por ejemplo, en algunas realizaciones, los vectores de movimiento predicho para un macrobloque actual son tomados del macrobloque directamente situado por encima o directamente a la izquierda del macrobloque actual. Ahora bien, los componentes horizontal y vertical del predictor son generados a partir de medianas de modo componente horizontal y vertical de los macrobloques a la izquierda, parte superior y parte superior derecha del macrobloque actual.
Los vectores de movimiento de un macrobloque omitido con cuatro vectores de movimiento (4MV) vienen dados por sus predicciones realizadas secuencialmente en el orden de escaneado natural. Como con el caso de vector de un movimiento (1MV), los residuos de error son cero.
La Figura 18 muestra una técnica (1800) para determinar si hay que omitir la codificación de macrobloques particulares en un codificador de video de acuerdo a la nueva definición de macrobloques omitidos. En primer lugar, el codificador comprueba si el fotograma actual es un fotograma I o un fotograma P (1810). Si el fotograma actual es un fotograma I, no hay macrobloques omitidos en el fotograma actual (1820), y la codificación de macrobloque omitido para el fotograma termina.
Por otro lado, si el fotograma actual es un fotograma P, el codificador comprueba los macrobloques en el fotograma corriente que pueden ser omitidos. Para un macrobloque dado, el codificador comprueba si el vector de movimiento para el macrobloque es igual al vector de movimiento predicho causalmente para el macrobloque (por ejemplo, si el vector de movimiento diferencial para el macrobloque es igual a cero) (1830). Si el movimiento para un macrobloque no es igual al movimiento predicho causalmente, el codificador no omite el macrobloque (1840). De otro modo, el codificador comprueba si hay algún residuo que ha de ser codificado para el macrobloque (1850). Si hay un residuo que ha de ser codificado, el codificador no omite el macrobloque (1860). Si no hay residuo para el macrobloque, sin embargo, el codificador omite el macrobloque (1870). El codificador continúa codificando u omitiendo macrobloques hasta que se ha hecho la codificación (1880).
B. Codificación de Plano de Bits
En la segunda implementación, cierta información específica de macrobloque (incluyendo la señalización de macrobloques omitidos) puede ser codificada en un bit por macrobloque. El estatus para todos los macrobloques en un fotograma puede ser codificado conjuntamente como un plano de bits y transmitido en el encabezamiento del fotograma.
En la segunda implementación, el codificador utiliza la codificación en plano de bits en tres casos para señalar la información acerca de los macrobloques en un fotograma. Los tres casos son: 1) señalar macrobloques omitidos, 2) señalar campo o modo de macrobloque de fotograma, y 3) señalar modo de vector de movimiento de 1 MV o de 4 MV para cada macrobloque. Esta sección describe la codificación de plano de bits para cualquiera de los tres casos y la descodificación correspondiente.
La codificación de plano de bits a nivel de fotograma es utilizada para codificar agrupaciones binarias bidimensionales. El tamaño de cada agrupación es rowMB x colMB, donde rowMB y colMB son el número de filas y columnas del macrobloque, respectivamente. Dentro de la corriente de bits, cada agrupación es codificada como un conjunto de bits consecutivos. Uno de los siete modos es utilizado para codificar cada agrupación, como se ha enumerado en la Tabla 3 y descrito a continuación.
5
10
15
20
25
30
35
40
Tabla 3: Modos de codificación en segunda implementación
Modo de Codificación
Descripción
En bruto
Codificado como un bit por símbolo
Normal-2
Dos símbolos codificados conjuntamente
Diff-2
Codificación diferencial de plano de bits, seguido por codificación de dos símbolos residuales conjuntamente
Normal-6
Seis símbolos codificados conjuntamente
Diff-6
Codificación diferencial de plano de bits, seguido por codificación de seis símbolos residuales conjuntamente
Omisión de fila
Omisión de un bit para señalar filas sin bits establecidos
Omisión de columna
Omisión de un bit para señalar columnas sin bits establecidos
En la segunda implementación, el codificador utiliza tres elementos de sintaxis para integrar la información en un plano de bits: MODE, INVERT y DATABITS.
El campo MODE es un código de longitud variable ("VLC") que codifica el modo de codificación para el plano de bits. Por ejemplo, el VLC en el campo MODE representa cualquiera de los siete modos de codificación enumerados en la Tabla 3. Para ahorrar bits, el codificador puede asignar códigos más cortos a los modos de codificación más probables y códigos más largos a los modos de codificación menos probables. Como se ha observado anteriormente, el campo MODE es transmitido en el encabezamiento del fotograma.
El codificador y descodificador conmutarán entre modos de codificación sobre una base de fotograma por fotograma. Por ejemplo, el codificador y el descodificador conmutan entre modos de codificación de modo similar a como el codificador y descodificador de la primera implementación conmutan entre modos de codificación de macrobloque omitido en las Figuras 10 y 11, respectivamente. Alternativamente, el codificador y descodificador conmutan utilizando alguna otra técnica y/o sobre alguna otra base.
Si el modo no es un modo en bruto, el campo INVERT de un bit es enviado. En varios modos de codificación donde la inversión condicional puede ser realizada, el campo INVERT indica si los bits en el plano de bits han de ser invertidos antes de que la codificación tenga lugar en el codificador y si la salida de descodificación en el descodificador ha de ser invertida. El campo INVERT es 1 cuando la mayor parte de los bits en el plano de bits es igual a 1, y 0 cuando la mayor parte de los bits en el plano de bits es igual a 0. El codificador emplea varios modos de codificación (tales como normal 2 y normal 6) que consumen menos bits cuando hay presentes más 0. Si el plano de bits que ha de ser codificado tiene más 1 que 0, el codificador puede invertir el plano de bits para aumentar la proporción de 0 en el plano de bits y aumentar el potencial para ahorrar bits. Otros modos (tales como diff-2 y diff-6) utilizan el valor del INVERt para calcular un plano de bits de predictor. Por ello, en algunos modos de codificación, el plano de bits final reconstruido en el descodificador depende de INVERT.
El campo DATABITS es una corriente codificada de entropía de símbolos VLC que contienen la información necesaria para reconstruir el plano de bits, dados los campos MODE e INVERT.
C. Modos de Codificación
En la segunda implementación, el codificador codifica información binaria (por ejemplo, información de macrobloques omitidos) en cualquiera de siete modos de codificación diferentes: modo de omisión de filas, modo de omisión de columnas, modo normal 2, modo normal 6, modo diff-2, modo diff-6, y modo en bruto. Un descodificador realiza la descodificación correspondiente para cualquiera de los siete modos de codificación. Cada modo que está descrito en detalle a continuación.
Alternativamente, el codificador y el descodificador utilizan otros modos de codificación y/o modos adicionales.
1. Modos de Omisión de fila y de Omisión de columna
El modo de codificación de omisión de fila ahorra bits representando una fila en un plano de bits con un único bit si cada símbolo binario en la fila es de un cierto valor. Por ejemplo, el codificador representa un macrobloque omitido con un 0 en un plano de bits, y utiliza un modo de codificación de omisión de fila que representa una fila de todo 0 con un único bit. El codificador ahorra por ello bits cuando se omiten filas completas de macrobloques. El descodificador realiza la descodificación correspondiente.
En la segunda implementación, las filas con todo ceros son indicadas utilizando un bit establecido a 0. Cuando la fila no es toda de ceros, el indicador de un bit es establecido a 1, y esto va seguido por los bits colMB que contienen la fila de plano de bits en orden. Las filas son escaneadas en el orden natural.
5
10
15
20
25
30
35
40
45
50
De modo similar, para el modo de omisión de columna, si la fila completa es cero, es enviado un bit 0. Si no, es enviado un 1, seguido por los bits rowMB que contienen la columna completa, en orden. Las columnas son escaneadas en el orden natural.
Para la codificación de filas y/o columnas sobrantes en modos diff-6 y normal 6 (descritos a continuación), se aplica la misma lógica. Un indicador de un bit indica si la fila o la columna es de todo ceros. Si no, la fila o columna completa es transmitida utilizando un bit por símbolo.
Cuando el codificador codifica un plano de bits consistente fundamentalmente de 1, la codificación de omisión de fila y de omisión de columna son usualmente menos eficientes, a causa de la menor probabilidad de que las filas/columnas consistan totalmente de 0. Sin embargo, el codificador puede realizar una inversión en el plano de bits en tal situación para aumentar la proporción de 0 y potencialmente aumentar los ahorros de bits. Así, cuando una inversión condicional es indicada a través del bit INVERT, el codificador invierte previamente el plano de bits antes de que el plano de bits sea puesto en mosaico y codificado. En el lado del descodificador, la inversión condicional es implementada tomando la inversa de la salida final. (Esto no es realizado para el modo diff-2 y diff-6).
La Figura 19 muestra una técnica (1900) para codificar información binaria en un plano de bits en un modo de codificación de omisión de fila. El codificador comprueba en primer lugar si es apropiada la inversión del plano de bits, y, si lo es, realiza la inversión (1910). El codificador comprueba entonces una fila en el plano de bits para ver si cada bit en la fila es igual a 0 (1920). Si lo es, el codificador establece el bit indicador para la fila a 0 (1930). Si cualquiera de los bits en la fila no es 0, el codificador establece el bit indicador para la fila a 1 y codifica cada bit en la fila con un bit (1940). Cuando el codificador ha hecho la codificación de todas las filas en el plano de bits (1950), la codificación del plano de bits termina.
Un descodificador realiza la descodificación correspondiente para el modo de codificación de omisión de fila.
La Figura 20 muestra una técnica para codificar información binaria en un modo de codificación de omisión de columna. El codificador comprueba en primer lugar si es apropiada la inversión del plano de bits, y, si lo es, realiza la inversión (2010). El codificador comprueba entonces una columna en el plano de bits para ver si cada bit en la columna es igual a 0 (2020). Si lo es, el codificador establece el bit indicador para la columna a 0 (2030). Sí cualquiera de los bits en la columna no es 0, el codificador establece el bit indicador para la columna en 1 y codifica cada bit en la columna con un bit (1940). Cuando el codificador ha hecho la codificación de todas las columnas en el plano de bits (1950), la codificación del plano de bits termina.
Un descodificador realiza la descodificación correspondiente para el modo de codificación de omisión de columna.
2. Modo Normal 2
El codificador utiliza el modo normal 2 para codificar conjuntamente varios símbolos binarios en un plano de bits (por ejemplo, utilizando un esquema de codificación de Huffman vectorial u otro de longitud variable). El codificador codifica pares de símbolos binarios con códigos de longitud variable. El descodificador realiza la descodificación correspondiente.
Si rowMB x colMB es impar, el primer símbolo es codificado como un solo bit. Los símbolos subsiguientes son codificados en modo de par, en orden de escaneado natural. Una tabla VLC es utilizada para codificar los pares de símbolos para reducir la entropía total.
Cuando la inversión condicional está indicada a través del bit INVERTER, el codificador invierte previamente el plano de bits antes de que el plano de bits sea codificado en modo de par. En el lado del descodificador, la inversión condicional es implementada tomando la inversa de la salida final. (Cuando se utiliza el modo diff-2, la inversión condicional no es realizada en esta operación).
La Figura 21 muestra una técnica (2100) para codificar información binaria en modo normal 2. El codificador realiza una comprobación inicial para determinar si es apropiada la inversión del plano de bits para mejorar la eficiencia de la codificación y, si lo es, realiza la inversión (2110). El codificador determina a continuación si el plano de bits que es codificado tiene un número impar de símbolos binarios (2120). Si es así, el codificador codifica el primer símbolo con un único bit (2130). El codificador codifica entonces pares de símbolos con códigos de longitud variable, utilizando códigos más cortos para representar los pares más probables y códigos más largos para representar los pares menos probables (2140). Cuando la codificación de los pares de símbolos es hecha (2150), la codificación termina.
Un descodificador realiza la descodificación correspondiente para el modo de codificación normal 2.
3. Modo Normal 6
El codificador también utiliza el modo normal 6 para codificar conjuntamente varios símbolos binarios en un plano de bits (por ejemplo, utilizando un esquema de codificación de Huffman vectorial u otro de longitud variable). El codificador pone en mosaico grupos de seis símbolos binarios y representa cada grupo con un código de longitud variable. El descodificador realiza la descodificación correspondiente.
En el modo normal 6 (y en el modo diff-6), el plano de bits es codificado en grupos de seis píxeles. Estos píxeles son
5
10
15
20
25
30
35
40
45
agrupados en mosaicos bien de 2*3 o bien de 3*2. El plano de bits es puesto en mosaico máximamente utilizando un conjunto de reglas, y los píxeles restantes son codificados utilizando variantes de modos de omisión de fila y omisión de columna.
En la segunda implementación, se utilizan mosaicos "verticales" de 3*2 si, y solamente si, rowMB es un múltiplo de 3 y si colMB no es un múltiplo de 3. De otro modo, se utilizan mosaicos "horizontales" de 2*3. Las Figuras 22, 23 y 24 muestran ejemplos de fotogramas en mosaico en el modo de codificación normal 6. La Figura 22 muestra un fotograma (2200) con mosaicos verticales de 3*2 y un resto amplio de 1 símbolo (mostrado como un área sombreada o rayada) para ser codificada en modo de omisión de columna. La Figura 23 muestra un fotograma (2300) con mosaicos horizontales de 2*3 y un resto amplio de 1 símbolo para ser codificado en un modo de omisión de fila. La Figura 24 muestra un fotograma (2400) con mosaicos horizontales de 2*3 y restos amplios de 1 símbolo para ser codificados en modos de omisión de fila y de omisión de columna.
Aunque se han utilizado mosaicos de 3*2 y de 2*3 en este ejemplo, en otras realizaciones, son utilizadas diferentes configuraciones de mosaicos y/o diferentes reglas de formación de mosaicos.
Los mosaicos de 6 elementos son codificados en primer lugar, seguidos por los mosaicos lineales codificados de omisión de columna y de omisión de fila. Si el tamaño de la agrupación es un múltiplo de 3*2 o de 2*3, los últimos mosaicos lineales no existen y el plano de bits está perfectamente compuesto de mosaicos. Los mosaicos rectangulares de elementos 6 son codificados utilizando una tabla VLC.
Cuando la inversión condicional es indicada a través del bit INVERT, el codificador invierte previamente el plano de bits antes de que el plano de bits sea colocado en mosaicos y codificado. En el lado del descodificador, la inversión condicional es implementada tomando la inversa de la salida final. (Cuando se ha utilizado el modo de diff-6, la inversión condicional no es realizada en esta operación).
La Figura 25 muestra una técnica (2500) para codificar información binaria en modo normal 6. El codificador realiza una comprobación inicial para determinar si la inversión del plano de bits es apropiada para mejorar la eficiencia de la codificación y, si lo es, realiza la inversión (2510). El codificador comprueba entonces si el número de filas en el plano de bits es un múltiplo de tres (2520). Si el número de filas no es un múltiplo de tres, el codificador agrupa los símbolos en el plano de bits en mosaicos horizontales de 2*3 (2530).
Si el número de filas es un múltiplo de tres, el codificador comprueba si el número de columnas en el plano de bits es un múltiplo de tres (2540). Si el número de columnas es un múltiplo de tres, el codificador agrupa los símbolos en el plano de bits en mosaicos horizontales de 2*3 (2530). Si el número de columnas no es un múltiplo de tres, el codificador agrupa los símbolos en mosaicos verticales de 3*2 (2550).
Después de agrupar los símbolos en mosaicos de 3*2 o de 2*3, el codificador codifica los grupos de seis símbolos en mosaico utilizando una técnica tal como una técnica de codificación de Huffman vectorial u otra técnica de codificación (2560). El codificador codifica cualesquiera símbolos restantes sin formar mosaicos utilizando las técnicas de codificación de omisión de fila y/o de omisión de columna descritas anteriormente (2570).
Un descodificador realiza una descodificación correspondiente para el modo de codificación normal 6.
En otras realizaciones, un codificador utiliza otras técnicas para codificar los símbolos en mosaico y no en mosaico.
4. Modos de Diff-2 y de Diff-6
Los modos de codificación diferenciales tales como el modo de diff-2 y de diff-6 codifican planos de bits generando en primer lugar un plano de bits de bits diferenciales (o residuales) para el plano de bits que ha de ser codificado, basándose en un predictor para el plano de bits que ha de ser codificado. El plano de bits residual es a continuación codificado utilizando, por ejemplo, el modo de codificación normal 2 o normal 6, sin inversión condicional.
En la segunda implementación, los modos diff-2 y diff-6 emplean codificación diferencial indicada por la operación diff. Si se utiliza cualquier modo diferencial, un plano de bits de bits diferenciales es generado en primer lugar examinando el
predictor b(i, j) del plano de bits b(i, j), que es definido como la operación causal:
{INVERT
b(i, j) = <
b(0, j -1) b(i -1 j)
i = j = 0, ob(i, j -1) * b(i -1, j) i = 0
otro mod o
(1)
En otras palabras, el predictor b(i, j) de un símbolo binario dado b(i, j) será el símbolo binario justo a la izquierda b(i-1,j) excepto en los siguientes casos especiales:
1. si b(i,j) está en la esquina superior izquierda del plano de bits, o si el símbolo binario anterior b(i,j-1) no es igual al
5
10
15
20
25
30
35
40
45
50
símbolo binario a la izquierda b(i-1,j), el predictor b(i, j) es igual al valor de INVERT; o
2. si 1) no se aplica y b(i,j) está en la columna izquierda (i==0), el predictor b(i, j) será el símbolo binario anterior b(ij-1).
En el lado del codificador, la operación diff calcula el plano de bits residual r de acuerdo con:
r(i, j) = b(i, j) ® b(i, j) (2)
donde © es la operación O exclusiva. El plano de bits residual es codificado utilizando los modos normal 2 y normal 6 sin inversión condicional.
En el lado del descodificador, el plano de bits residual es regenerado utilizando el modo normal apropiado. Subsiguientemente, los bits residuales son utilizados para regenerar el plano de bits original como la diferencia binaria 2D.
b(i, j) = r(i, j) © b(i, j) (3)
La Figura 26 muestra una técnica (2600) para codificar información binaria en un modo de codificación diferencial. El codificador calcula un predictor para un plano de bits (2610), por ejemplo, como se ha mostrado en la ecuación 1. El codificador calcula entonces un plano de bits residual, por ejemplo, realizando una operación XOR (O exclusiva) sobre el plano de bits y su predictor (2620). El codificador codifica entonces el plano de bits residual (por ejemplo en modo normal 2 o normal 6) (2630).
La Figura 27 muestra una técnica (2700) para descodificar información binaria codificada en un modo de codificación diferencial. El descodificador descodifica el plano de bits residual (2710) utilizando una técnica de descodificación apropiada, basada en el modo utilizado para codificar el plano de bits residual (por ejemplo modo normal 2 o normal 6). El descodificador calcula también el predictor para el plano de bits (2720), utilizando la misma técnica empleada en el codificador. El descodificador reconstruye entonces el plano de bits original, por ejemplo, realizando una operación XOR (O exclusiva) sobre el plano de bis residual descodificado y el plano de bis de predictor (2730).
5. Modo en Bruto
Todos los modos excepto el modo en bruto codifican un plano de bits al nivel de fotograma, que demanda una segunda pasada a través del fotograma durante la codificación. Sin embargo, para situaciones de latencia baja, la segunda pasada puede añadir un retraso inaceptable (por ejemplo debido a que la transmisión del encabezamiento de fotograma y la información de capa de macrobloques es retrasada hasta que el último macrobloque en el fotograma es alcanzado, debido al tiempo gastado codificando el plano de bits).
El modo en bruto utiliza el método tradicional de codificar el plano de bits en un bit por símbolo binario en la misma ubicación en la corriente de bits que el resto de la información del nivel de macrobloque. Aunque la codificación de símbolos a nivel de macrobloque no es un nuevo concepto en sí misma, la conmutación de la codificación de símbolos desde el nivel de fotograma a nivel de macrobloque proporciona una alternativa de latencia baja para la codificación a nivel de fotograma.
La Figura 28 muestra una técnica (2800) para codificar selectivamente información binaria para un macrobloque en un modo de codificación en bruto para aplicaciones de latencia baja. En primer lugar, el codificador comprueba si ha de utilizar el modo en bruto para codificar la información binaria (2810). Si es así, el codificador codifica un bit a nivel de macrobloque para un macrobloque (2820) y comprobación macrobloque es el último macrobloque en el fotograma (2830). Si el macrobloque no es el último macrobloque en el fotograma, el codificador continúa codificando un bit para el siguiente macrobloque al nivel de macrobloque (2820).
Si el codificador no utiliza el modo de codificación en bruto, el codificador codifica un plano de bits al nivel de fotograma para los macrobloques en el fotograma (2840). Cuando la codificación de los macrobloques en el fotograma se ha hecho (2850), la codificación termina para el fotograma.
Aunque la técnica (2800) nuestra modos de computación sobre una base de fotograma por fotograma, alternativamente el codificador conmuta sobre algunas otras bases.
Habiendo descrito e ilustrado los principios de nuestra invención con referencia a distintas realizaciones, se reconocerá que las distintas realizaciones pueden ser modificadas en disposición y detalle sin salir de tales principios. Debería comprenderse que los programas, procesos, o métodos descritos en este documento no están relacionados o limitados a ningún tipo particular de entorno de cálculo, a menos que se indique de otro modo. Distintos tipos de entornos de cálculo de propósito general o especializados pueden ser utilizados o realizar operaciones de acuerdo con las enseñanzas descritas en este documento. Elementos de realización mostrados en software pueden ser implementados en hardware y viceversa.
5
10
15
20
25
30
35
40
45
50
A la vista de las muchas posibles realizaciones a las que los principios de nuestro invento pueden ser aplicadas, reivindicamos como nuestro invento la totalidad de tales realizaciones ya que pueden quedar dentro del alcance de las siguientes reivindicaciones y de sus equivalencias.
Lo que sigue es una lista de otras realizaciones preferidas que no forman parte del invento:
Realización 1: En un sistema informático, un método implementado en ordenador para procesar una o más imágenes de video, comprendiendo el método: seleccionar un modo de codificación a partir de un grupo de varios modos de codificación disponibles; y procesar un plano de bits de acuerdo con el modo de codificación seleccionado, en el que el plano de bits incluye información binaria para varias unidades de una imagen de video, en el que la información binaria representa características de las varias unidades de la imagen de video, en el que cada una de las varias unidades incluye varios píxeles, y en el que la información binaria incluye un bit para cada una de las varias unidades de la imagen de video.
Realización 2: El método de realización 1 en el que el procesamiento es realizado a nivel de imagen.
Realización 3: El método de la realización 1 en el que el grupo de varios modos de codificación disponibles comprende un modo de codificación de predicción de fila y un modo de codificación de predicción de columna.
Realización 4: El método de la realización 1 en el que el grupo de varios modos de codificación disponibles comprende además uno o más modos de codificación de longitud variable de vector.
Realización 5: El método de la realización 1 en el que el grupo de varios modos de codificación disponibles comprende además uno o más modos de codificación diferencial.
Realización 6: El método de la realización 1 en el que las varias unidades son macrobloques, y en el que la información binaria en el plano de bits comprende información de macrobloques omitidos.
Realización 7: El método de la realización 1 en el que las varias unidades son macrobloques, y en el que la información binaria en el plano de bits comprende información de recuento de vector de movimiento.
Realización 8: El método de la realización 1 en el que las varias unidades son macrobloques, y en el que la información binaria en el plano de bits comprende indicadores de campo/fotograma.
Realización 9: Un medio legible por ordenador que almacena instrucciones ejecutables por ordenador para hacer que el sistema informático realice el método de la realización 1 durante la descodificación de video, en el que el procesamiento comprende descodificación de entropía de acuerdo con el modo de codificación seleccionado.
Realización 10: Un medio legible por ordenador que almacena instrucciones ejecutables por ordenador para hacer que el sistema informático realice el método de la realización 1 durante la codificación de video, en el que el procesamiento comprende codificación de entropía de acuerdo con el modo de codificación seleccionado.
Realización 11: En un sistema informático, un método implementado por ordenador para procesar varias imágenes de video en una secuencia de imágenes de video, comprendiendo el método: seleccionar un modo de codificación a partir de un grupo de varios modos de codificación disponibles; y procesar un plano de bits de acuerdo con el modo de codificación seleccionado, en el que el plano de bits incluye información binaria que significa si los macrobloques en una imagen de video predicha son omitidos o no son omitidos, y en el que un macrobloque en la imagen de video predicha es omitido si el movimiento del macrobloque es igual al movimiento predicho del macrobloque y el macrobloque no tiene error residual.
Realización 12: Un medio legible por ordenador que almacena instrucciones ejecutables por ordenador para hacer que el sistema informático realice el método de la realización 11 durante la codificación de video.
Realización 13: En un sistema informático, un método para procesar varias imágenes de video de una secuencia de video, incluyendo las varias imágenes de video una o más imágenes de video predichas, en el que cada una de las una o más imágenes de video predichas incluye varios macrobloques, comprendiendo el método: procesar uno o más macrobloques omitidos entre los varios macrobloques de al menos una de la una o más imágenes de video predichas, en el que cada una de al menos una de la una o más imágenes de video predichas es predicha a partir de no más de una imagen de video de referencia, en el que cada uno de los uno o más macrobloques omitidos utiliza movimiento predicho para el macrobloque omitido basado en el movimiento de uno o más macrobloques distintos, y en el que cada uno de los uno o más macrobloques omitidos carece de información residual.
Realización 14: Un medio legible por ordenador que almacena instrucciones ejecutables por ordenador para hacer que el sistema informático realice el método de la realización 13 durante la codificación de video.
Realización 15: Un medio legible por ordenador que almacena instrucciones ejecutables por ordenador para hacer que el sistema informático realice el método de la realización 13 durante la descodificación de video.
Realización 16: En un sistema informático, un método para procesar varias imágenes de video de una secuencia de
5
10
15
20
25
30
35
40
45
50
video, incluyendo las varias imágenes de video varios macrobloques predichos, en el que cada uno de los varios macrobloques predichos es predicho a partir de no más de una imagen de video de referencia, comprendiendo el método: procesar uno o más macrobloques omitidos entre los varios macrobloques predichos, en el que cada uno de los uno o más macrobloques omitidos utiliza movimiento predicho para el macrobloque omitido basado en el movimiento de uno o más de macrobloques predichos distintos, y en el que cada uno de los uno o más macrobloques omitidos carece de información residual.
Realización 17: Un medio legible por ordenador que almacena instrucciones ejecutables por ordenador para hacer que el sistema informático realice el método de la realización 16 durante la codificación de video.
Realización 18: Un medio legible por ordenador que almacena instrucciones ejecutables por ordenador para hacer que el sistema informático realice el método de la realización 16 durante la descodificación de video.
Realización 19: En un sistema informático, un método implementado por ordenador para procesar una o más imágenes en una secuencia de imágenes de video, en el que una sintaxis de corriente de bits para la secuencia de imágenes de video incluye varias capas jerárquicas, incluyendo las varias capas jerárquicas al menos una capa de secuencia, una capa de imagen, y una capa de macrobloques, comprendiendo el método: procesar un plano de bits de una capa más alta que la capa de macrobloques en la sintaxis de corriente de bits para la secuencia de imágenes de video, en el que el plano de bits incluye información binaria para varios macrobloques en una imagen en la secuencia de imágenes de video, en el que cada uno de los varios macrobloques incluye varios bloques, en el que cada uno de los varios bloques incluye varios píxeles, y en el que la información binaria incluye un bit para cada uno de los varios macrobloques en la imagen.
Realización 20: El método de la realización 19 en el que la información binaria comprende información de macrobloques omitidos.
Realización 21: El método de la realización 19 en el que la información binaria comprende información de recuento de vector de movimiento.
Realización 22: El método de la realización 19 en el que la información binaria comprende información de modo de interfaz.
Realización 23: El método de la realización 19 en el que la capa más alta es la capa de imagen.
Realización 24: El método de la realización 19 en el que un encabezamiento en la capa más alta incluye el plano de bits durante la transmisión.
Realización 25: Un medio legible por ordenador que almacena instrucciones ejecutables por ordenador para hacer que el sistema informático realice el método de la realización 19 durante la codificación de video.
Realización 26: Un medio legible por ordenador que almacena instrucciones ejecutables por ordenador para hacer que el sistema informático realice el método de la realización 19 durante la descodificación de video.
Realización 27: En un sistema informático, un método implementado por ordenador para procesar una o más imágenes en una secuencia de imágenes de video, en el que una sintaxis de corriente de bits para la secuencia de imágenes de video incluye varias capas jerárquicas, incluyendo las varias capas jerárquicas al menos una capa de imagen, y una capa de macrobloques, comprendiendo el método: procesar información de macrobloques omitidos en una capa más alta que la capa de macrobloques en la sintaxis de corriente de bits para la secuencia de imágenes de video, en el que la información de macrobloques omitidos es para varios macrobloques en una imagen en la secuencia de imágenes de video, en el que cada uno de los varios macrobloques incluye varios bloques, en el que cada uno de los varios bloques incluye varios píxeles.
Realización 28: El método de la realización 27 en el que la capa más alta es la capa de imagen.
Realización 29: El método de la realización 27 en el que un encabezamiento en la capa más alta incluye la información de macrobloques omitidos.
Realización 30: Un medio legible por ordenador que almacena instrucciones ejecutables por ordenador para hacer que el sistema informático realice el método de la realización 27 durante la codificación de video.
Realización 31: Un medio legible por ordenador que almacena instrucciones ejecutables por ordenador para hacer que el sistema informático realice el método de la realización 27 durante la descodificación de video.
Realización 32: En un sistema informático, un método implementado por ordenador para procesar varias imágenes en una secuencia de imágenes de video, en el que una información de macrobloques omitidos es asociada con las varias imágenes, comprendiendo el método: seleccionar un modo de codificación a partir de un grupo de varios modos de codificación disponibles, en el que al menos dos de los modos de codificación disponibles implican reducción de una tasa de bits asociada con la información de macrobloques omitidos; y procesar la información de macrobloques omitidos de acuerdo con el modo de codificación seleccionado.
5
10
15
20
25
30
35
40
45
50
Realización 33: El método de la realización 32 en el que el grupo de varios modos de codificación disponibles comprende un modo de predicción de fila, un modo de predicción de columna, y un modo normal.
Realización 34: El método de la realización 32 en el que el grupo de varios modos de codificación disponibles comprende un modo de omisión de fila, un modo de omisión de columna, un modo diferencial, un modo de codificación de entropía, y un modo en bruto.
Realización 35: El método de la realización 32 en el que el procesamiento es un procesamiento de baja latencia, y en el que el modo de codificación seleccionado es un modo de codificación de nivel de macrobloques de una pasada.
Realización 36: El método de la realización 32, en el que una sintaxis de corriente de bits para la secuencia de imágenes de video incluye varias capas jerárquicas, incluyendo las varias caras jerárquicas al menos una capa de secuencia, una capa de imagen, y una capa de macrobloques, y en el que el procesamiento ocurre en la capa de imagen.
Realización 37: Un medio legible por ordenador que almacena instrucciones ejecutables por ordenador para hacer que el sistema informático realice el método de la realización 32 durante la codificación de video.
Realización 38: Un medio legible por ordenador que almacena instrucciones ejecutables por ordenador para hacer que el sistema informático realice el método de la realización 32 durante la descodificación de video.
Realización 39: En un sistema informático, un método implementado por ordenador para procesar varias unidades en una secuencia de imágenes de video, en el que una información binaria representa características de varias unidades, en el que cada una de las varias unidades incluye varios píxeles, y en el que la información binaria incluye un bit para cada una de las varias unidades, comprendiendo el método: seleccionar un modo de codificación a partir de un grupo de varios modos de codificación disponibles, en el que los varios modos de codificación disponibles incluyen un modo de codificación de latencia baja; y si el modo de codificación seleccionado es el modo de codificación de latencia baja, procesar la información binaria de acuerdo con el modo de codificación seleccionado en una capa de unidad en una sintaxis de corriente de bits para la secuencia de imágenes de video, de otro modo, procesar la información binaria como un plano de bits de acuerdo con el modo de codificación seleccionado en una capa más alta que la capa de unidad en la sintaxis de corriente de bits para la imagen de video.
Realización 40: Un medio legible por ordenador que almacena instrucciones ejecutables por ordenador para hacer que el sistema informático realice el método de la realización 39 durante la codificación de video.
Realización 41: Un medio legible por ordenador que almacena instrucciones ejecutables por ordenador para hacer que el sistema informático realice el método de la realización 39 durante la descodificación de video.
Realización 42: En un sistema informático, un método implementado por ordenador para procesar varias unidades en una secuencia de imágenes de video, en el que una sintaxis de corriente de bits para la secuencia de imágenes de video incluye varias capas jerárquicas, incluyendo las varias capas jerárquicas una capa de secuencia y una capa de unidad, comprendiendo el método: seleccionar un modo de codificación a partir de un grupo de varios modos de codificación disponibles, en el que los varios modos de codificación disponibles incluyen un modo de codificación de latencia baja; y si el modo de codificación seleccionado es el modo de codificación de latencia baja, procesar la información binaria de acuerdo con el modo de codificación seleccionado en la capa de unidad, de otro modo, procesar la información binaria como un plano de bits de acuerdo con el modo de codificación seleccionado en una capa más alta que la capa de unidad.
Realización 43: Un medio legible por ordenador que almacena instrucciones ejecutables por ordenador para hacer que el sistema informático realice el método de la realización 42 durante la codificación de video.
Realización 44: Un medio legible por ordenador que almacena instrucciones ejecutables por ordenador para hacer que el sistema informático realice el método de la realización 42 durante la descodificación de video.
Realización 45: En un sistema informático, un método implementado por ordenador para comprimir un plano de bits que comprende símbolos binarios en una matriz dispuesta en filas o columnas, comprendiendo el método: para cada fila en el plano de bits donde cada símbolo binario en la figura es igual a un primer valor, o para cada columna en el plano de bits donde cada símbolo binario en la columna es igual a un primer valor, codificar la fila o columna con un único bit en una corriente de bits codificada; y para cada fila en el plano de bits donde al menos un símbolo binario en la fila no es igual al primer valor, o para cada columna en el plano de bits donde al menos un símbolo binario en la columna no es igual al primer valor, codificar la fila o columna con un bit por símbolo binario en la fila o columna.
Realización 46: El método de la realización 45 en el que los símbolos binarios en la matriz representan información de macrobloques omitidos en una secuencia de video.
Realización 47: Un medio legible por ordenador que almacena instrucciones ejecutables por ordenador para hacer que el sistema informático realice el método de la reivindicación 45 durante la codificación de video.
Realización 48: En un sistema informático, un método implementado por ordenador para procesar una o más imágenes de video, comprendiendo el método: procesar un plano de bits de acuerdo con un modo de codificación, en el que el
plano de bits incluye información binaria para varias unidades de una imagen de video, en el que la información binaria representa características de las varias unidades de la imagen de video, en el que cada una de las varias unidades incluye varios píxeles, en el que la información binaria incluye un bit para cada una de las varias unidades de la imagen de video, y en el que un indicador de inversión implica si invertir el plano de bits como parte del procesamiento.
5 Realización 49: Un medio legible por ordenador que almacena instrucciones ejecutables por ordenador para hacer que el sistema informático realice el método de la reivindicación 48 durante la codificación de video, en el que el procesamiento incluye codificar la entropía de acuerdo con el modo de codificación, y en el que la inversión del plano de bits ocurre, si se hace, antes de la codificación de entropía.
Realización 50: Un medio legible por ordenador que almacena instrucciones ejecutables por ordenador para hacer que el 10 sistema informático realice el método de la reivindicación 48 durante la descodificación de video, en el que el procesamiento incluye descodificar la entropía de acuerdo con el modo de codificación, y en el que la inversión del plano ocurre, si se hace, después de la descodificación de entropía.

Claims (15)

  1. 5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    55
    REIVINDICACIONES
    1. Un método implementado por ordenador de descodificación de video de uno o más fotogramas de video, comprendiendo el método:
    recibir información de video comprimida en una corriente de bits, en el que la información de video comprimida incluye un elemento de sintaxis de selección de modo de codificación; y descodificar un fotograma de video predicho, fotograma P, e información binaria que utiliza la información de video comprimida, en el que el fotograma P incluye varios macrobloques, siendo los varios macrobloques todos los macrobloques del fotograma P, y en el que la información binaria representa características de los varios macrobloques, en el que la información binaria es información de macrobloques omitidos para los varios macrobloques, en el que la información de macrobloques omitidos indica si los varios macrobloques han sido omitidos o no han sido omitidos durante la codificación del uno o más fotogramas de video, y en el que cualquier macrobloque de los varios macrobloques del fotograma P que ha sido omitido de acuerdo con la información de macrobloques omitidos es un macrobloque que (a) utiliza movimiento predicho basado en el movimiento de uno o más de otros macrobloques alrededor de dicho macrobloque en el fotograma P y (b) carece de información residual, y en el que la descodificación incluye:
    basado en el elemento de sintaxis de selección de modo de codificación, seleccionar (1110) un modo de codificación a partir de entre varios modos de codificación disponibles que han sido utilizados para codificar la información de macrobloques omitidos de todos los macrobloques del fotograma P; y
    si el modo de codificación seleccionado es un primer modo de codificación de los varios modos de codificación disponibles, para cada uno de los varios macrobloques, utilizar (1120) un elemento de sintaxis por macrobloque para determinar la información de macrobloques omitidos para ese macrobloque; de otro modo, determinar (1120) la información de macrobloques omitidos para los varios macrobloques de acuerdo con uno de una pluralidad de segundos modos de codificación de los varios modos de codificación disponible seleccionados basados en el elemento de sintaxis de selección del modo de codificación, en el que cada uno de los segundos modos de codificación codifica la información de macrobloques omitidos para todos los macrobloques del fotograma P en símbolos, en el que uno dado de los símbolos indica la información de macrobloques omitidos para dos o más de los varios macrobloques
  2. 2. Un método implementado por ordenador de codificación de video de uno o más fotogramas de video, comprendiendo el método:
    codificar un fotograma de video predicho, fotograma P, e información binaria, en el que el fotograma P incluye varios macrobloques, siendo los varios macrobloques todos los macrobloques del fotograma P, y en el que la información binaria representa características de los varios macrobloques, en el que la información binaria es información de macrobloques omitidos para los varios macrobloques, en el que la información de macrobloques omitidos indica si los varios macrobloques son omitidos o no son omitidos, y en el que un macrobloque dado de los varios macrobloques del fotograma P es indicado como omitido en la información de macrobloques omitido si (a) el macrobloque dado que utiliza movimiento predicho basado en el movimiento de uno o más de otros macrobloques alrededor del macrobloque dado en el fotograma P y (b) el macrobloque dado carece de información residual y en el que la codificación incluye:
    seleccionar (1010) un modo de codificación a partir de entre varios modos de codificación disponibles para codificar la información de macrobloques omitidos de todos los macrobloques del fotograma P; y
    si el modo de codificación seleccionado es un primer modo de codificación de los varios modos de codificación disponibles, para cada uno de los varios macrobloques, utilizar (1020) un elemento de sintaxis por macrobloque para indicar la información de macrobloques omitidos para ese macrobloque;
    de otro modo, determinar (1020) la información de macrobloques omitidos para los varios macrobloques de acuerdo con uno de una pluralidad de segundos modos de codificación de los varios modos de codificación disponibles, en el que la sintaxis de cada uno de los segundos modos de codificación codifica la información de macrobloques omitidos para todos los macrobloques del fotograma P en símbolos, en el que uno dado de los símbolos indica la información de macrobloques omitidos para dos o más de los varios macrobloques; y
    emitir información de video comprimida en una corriente de bits, en el que la información de video comprimida incluye un elemento de sintaxis de selección del modo de codificación que indica el modo de codificación seleccionado.
  3. 3. El método de la reivindicación 1 o 2 en el que el primer modo de codificación es un modo de baja latencia de acuerdo al cual el elemento de sintaxis por macrobloque es un elemento de sintaxis de capa de macrobloques, y en el que cada uno de los segundos modos de codificación es un modo de codificación de plano de bits de acuerdo al cual la información de macrobloques omitidos para los varios macrobloques es codificada como elementos de sintaxis de capa de fotogramas.
  4. 4. El método de la reivindicación 1 o 2 en el que uno de los segundos modos de codificación es un modo de codificación diferencial de acuerdo al cual la información de macrobloques omitidos para los varios macrobloques es codificada como valores residuales con relación a los valores de predicción calculados sobre una base de macrobloque por macro bloque.
    5
    10
    15
    20
    25
    30
    35
  5. 5. El método de cualquiera de las reivindicaciones 1 o 2 en el que uno de los segundos modos de codificación es un modo de codificación de predicción de fila o un modo de codificación de predicción de columna,
    en el que en el modo de codificación de predicción de fila, para cada fila de macrobloques en el fotograma P, un primer bit indica si toda la fila de macrobloques está omitida o no, y si no está omitida toda la fila, el primer bit va seguido por un campo de bits igual en longitud al número de macrobloques en la fila, indicando cada bit en el campo de bits si el macrobloque correspondiente de la fila está omitido o no, y
    en el que en el modo de codificación de predicción de columna, para cada columna de macrobloques en el fotograma P, un primer bit indica si toda la columna de macrobloques está omitida o no, y si no está omitida toda la columna, el primer bit va seguido por un campo de bits igual en longitud al número de macrobloques en la columna, indicando cada bit en el campo de bits si el macrobloque correspondiente de la columna está omitido o no.
  6. 6. El método de cualquiera de las reivindicaciones 1 o 2 en el que uno de los segundos modos de codificación es un modo de codificación de longitud variable de vector de acuerdo al cual uno dado de los símbolos indica la información de macrobloque omitido para un par de los varios macrobloques.
  7. 7. El método de cualquiera de las reivindicaciones 1 o 2 en el que uno de los segundos modos de codificación es un modo de codificación de longitud variable de vector de acuerdo al cual uno dado de los símbolos indica la información de macrobloques omitidos para un mosaico de 2*3 o un mosaico de 3*2 de los varios macrobloques.
  8. 8. El método de cualquiera de las reivindicaciones 1 o 2 en el que, de acuerdo al menos con uno de los segundos modos de codificación, un elemento de sintaxis de inversión indica si invertir valores de símbolos binarios para la información de macrobloques omitidos.
  9. 9. El método de la reivindicación 1 o 2 en el que cada bloque del fotograma P es predicho a partir de no más de un fotograma de referencia.
  10. 10. El método de la reivindicación 1 en el que la descodificación del fotograma P incluye, para un macrobloque dado del fotograma P que ha sido omitido de acuerdo con la información de macrobloques omitidos, reconstruir el macrobloque dado utilizando un vector de movimiento igual a un vector de movimiento predictor derivado a partir de vectores de movimiento del uno o más de otros macrobloques alrededor del macrobloque dado en el fotograma P.
  11. 11. El método de la reivindicación 2, en el que la codificación del fotograma P incluye, para el macrobloque dado del fotograma P, predecir el macrobloque dado utilizando un vector de movimiento igual a un vector del movimiento predictor derivado a partir de vectores de movimiento del uno o más de otros macrobloques alrededor del macrobloque dado en el fotograma P.
  12. 12. Un medio legible por ordenador que almacena en él instrucciones ejecutables por ordenador que, cuando son realizadas por un procesador, hacen que el procesador realice el método de una de las reivindicaciones 1 y 3 a 10.
  13. 13. Un dispositivo informático que implementa un descodificador de video, comprendiendo el descodificador de video medios adaptados para realizar el método de una de las reivindicaciones 1 y 3 a 10.
  14. 14. Un medio legible por ordenador que almacena en él instrucciones ejecutables por ordenador que, cuando son realizadas por un procesador, hacen que el procesador realice el método de una de las reivindicaciones 2 a 9 y 11.
  15. 15. Un dispositivo informático que implementa un codificador de video, comprendiendo el codificador de video medios adaptados para realizar el método de una de las reivindicaciones 2 a 9 y 11.
ES10010110.4T 2001-12-17 2002-12-16 Codificación por omisión de macrobloques Expired - Lifetime ES2664270T3 (es)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US34167401P 2001-12-17 2001-12-17
US341674P 2001-12-17
US37771202P 2002-05-03 2002-05-03
US377712P 2002-05-03

Publications (1)

Publication Number Publication Date
ES2664270T3 true ES2664270T3 (es) 2018-04-18

Family

ID=26992608

Family Applications (2)

Application Number Title Priority Date Filing Date
ES02787048.4T Expired - Lifetime ES2610430T3 (es) 2001-12-17 2002-12-16 Codificación por omisión de macrobloques
ES10010110.4T Expired - Lifetime ES2664270T3 (es) 2001-12-17 2002-12-16 Codificación por omisión de macrobloques

Family Applications Before (1)

Application Number Title Priority Date Filing Date
ES02787048.4T Expired - Lifetime ES2610430T3 (es) 2001-12-17 2002-12-16 Codificación por omisión de macrobloques

Country Status (9)

Country Link
US (10) US7200275B2 (es)
EP (2) EP2262269B1 (es)
JP (3) JP4610195B2 (es)
KR (1) KR100925968B1 (es)
CN (2) CN102316320B (es)
AU (1) AU2002351389A1 (es)
ES (2) ES2610430T3 (es)
HK (2) HK1133140A1 (es)
WO (1) WO2003053066A1 (es)

Families Citing this family (206)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US20050207663A1 (en) * 2001-07-31 2005-09-22 Weimin Zeng Searching method and system for best matching motion vector
US6882685B2 (en) * 2001-09-18 2005-04-19 Microsoft Corporation Block transform and quantization for image and video coding
AU2002351389A1 (en) * 2001-12-17 2003-06-30 Microsoft Corporation Skip macroblock coding
US7003035B2 (en) * 2002-01-25 2006-02-21 Microsoft Corporation Video coding methods and apparatuses
KR101108661B1 (ko) * 2002-03-15 2012-01-25 노키아 코포레이션 비디오 시퀀스에서의 움직임 부호화 방법
AU2003237279A1 (en) * 2002-05-29 2003-12-19 Pixonics, Inc. Classifying image areas of a video signal
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
US7280700B2 (en) * 2002-07-05 2007-10-09 Microsoft Corporation Optimization techniques for data compression
JP4724351B2 (ja) * 2002-07-15 2011-07-13 三菱電機株式会社 画像符号化装置、画像符号化方法、画像復号装置、画像復号方法、および通信装置
CN101039424B (zh) * 2002-07-15 2010-05-26 株式会社日立制作所 动态图像编码方法
US7154952B2 (en) 2002-07-19 2006-12-26 Microsoft Corporation Timestamp-independent motion vector prediction for predictive (P) and bidirectionally predictive (B) pictures
JP4007594B2 (ja) * 2002-09-26 2007-11-14 株式会社東芝 動画像符号化装置及び方法、動画像符号化方式変換装置及び方法
US7428341B2 (en) 2003-05-27 2008-09-23 Zaxel Systems, Inc. Method and apparatus for lossless data transformation with preprocessing by adaptive compression, multidimensional prediction, multi-symbol decoding enhancement enhancements
US7415162B2 (en) * 2003-05-27 2008-08-19 Zaxel Systems, Inc. Method and apparatus for lossless data transformation with preprocessing by adaptive compression, multidimensional prediction, multi-symbol decoding enhancement enhancements
US20130107938A9 (en) * 2003-05-28 2013-05-02 Chad Fogg Method And Apparatus For Scalable Video Decoder Using An Enhancement Stream
NO318318B1 (no) * 2003-06-27 2005-02-28 Tandberg Telecom As Fremgangsmate for forbedret koding av video
US7738554B2 (en) 2003-07-18 2010-06-15 Microsoft Corporation DC coefficient signaling at small quantization step sizes
US8218624B2 (en) * 2003-07-18 2012-07-10 Microsoft Corporation Fractional quantization step sizes for high bit rates
US20050013498A1 (en) 2003-07-18 2005-01-20 Microsoft Corporation Coding of motion vector information
US7602851B2 (en) * 2003-07-18 2009-10-13 Microsoft Corporation Intelligent differential quantization of video coding
US7580584B2 (en) * 2003-07-18 2009-08-25 Microsoft Corporation Adaptive multiple quantization
US7426308B2 (en) * 2003-07-18 2008-09-16 Microsoft Corporation Intraframe and interframe interlace coding and decoding
US10554985B2 (en) 2003-07-18 2020-02-04 Microsoft Technology Licensing, Llc DC coefficient signaling at small quantization step sizes
US7961786B2 (en) * 2003-09-07 2011-06-14 Microsoft Corporation Signaling field type information
US8064520B2 (en) 2003-09-07 2011-11-22 Microsoft Corporation Advanced bi-directional predictive coding of interlaced video
US8107531B2 (en) * 2003-09-07 2012-01-31 Microsoft Corporation Signaling and repeat padding for skip frames
US7317839B2 (en) * 2003-09-07 2008-01-08 Microsoft Corporation Chroma motion vector derivation for interlaced forward-predicted fields
US7369709B2 (en) * 2003-09-07 2008-05-06 Microsoft Corporation Conditional lapped transform
US7567617B2 (en) 2003-09-07 2009-07-28 Microsoft Corporation Predicting motion vectors for fields of forward-predicted interlaced video frames
US7724827B2 (en) * 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
US7606308B2 (en) * 2003-09-07 2009-10-20 Microsoft Corporation Signaling macroblock mode information for macroblocks of interlaced forward-predicted fields
US7092576B2 (en) * 2003-09-07 2006-08-15 Microsoft Corporation Bitplane coding for macroblock field/frame coding type information
US7253374B2 (en) * 2003-09-15 2007-08-07 General Motors Corporation Sheet-to-tube welded structure and method
CN1615019A (zh) * 2003-11-05 2005-05-11 华为技术有限公司 一种视频宏块模式编码方法
EP1538844A3 (en) * 2003-11-26 2006-05-31 Samsung Electronics Co., Ltd. Color image residue transformation and encoding method
CN1332563C (zh) * 2003-12-31 2007-08-15 中国科学院计算技术研究所 一种视频图像跳过宏块的编码方法
EP1736883A4 (en) * 2004-04-15 2008-12-10 Panasonic Corp BURST MEMORY ACCESS PROCEDURES ON A RECTANGULAR AREA
WO2005104563A1 (ja) * 2004-04-22 2005-11-03 Mitsubishi Denki Kabushiki Kaisha 画像符号化装置及び画像復号装置
US7801383B2 (en) 2004-05-15 2010-09-21 Microsoft Corporation Embedded scalar quantizers with arbitrary dead-zone ratios
US7792188B2 (en) 2004-06-27 2010-09-07 Apple Inc. Selecting encoding types and predictive modes for encoding video data
US8340177B2 (en) * 2004-07-12 2012-12-25 Microsoft Corporation Embedded base layer codec for 3D sub-band coding
US8442108B2 (en) * 2004-07-12 2013-05-14 Microsoft Corporation Adaptive updates in motion-compensated temporal filtering
US8374238B2 (en) * 2004-07-13 2013-02-12 Microsoft Corporation Spatial scalability in 3D sub-band decoding of SDMCTF-encoded video
TW200625964A (en) * 2004-07-20 2006-07-16 Qualcomm Inc Method and apparatus for encoder assisted-frame rate up conversion (EA-FRUC) for video compression
US9509991B2 (en) * 2004-08-12 2016-11-29 Gurulogic Microsystems Oy Processing and reproduction of frames
GB0418279D0 (en) * 2004-08-16 2004-09-15 Nds Ltd System for providing access to operation information
US8861601B2 (en) 2004-08-18 2014-10-14 Qualcomm Incorporated Encoder-assisted adaptive video frame interpolation
CN101005620B (zh) * 2004-09-03 2011-08-10 微软公司 为隔行扫描和逐行扫描视频编码和解码宏块和运动信息中的革新
KR100647294B1 (ko) 2004-11-09 2006-11-23 삼성전자주식회사 화상 데이터 부호화 및 복호화 방법 및 장치
US7671894B2 (en) * 2004-12-17 2010-03-02 Mitsubishi Electric Research Laboratories, Inc. Method and system for processing multiview videos for view synthesis using skip and direct modes
US20060140591A1 (en) * 2004-12-28 2006-06-29 Texas Instruments Incorporated Systems and methods for load balancing audio/video streams
EP1897374A1 (en) * 2004-12-29 2008-03-12 Koninklijke Philips Electronics N.V. Method and apparatus for encoding video data stream
US8315509B2 (en) 2005-01-27 2012-11-20 Thomson Licensing Video player for digital video server
CN100399828C (zh) * 2005-02-02 2008-07-02 腾讯科技(深圳)有限公司 一种视频数据的编码方法
US7788106B2 (en) * 2005-04-13 2010-08-31 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Entropy coding with compact codebooks
US7991610B2 (en) * 2005-04-13 2011-08-02 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Adaptive grouping of parameters for enhanced coding efficiency
US20060235683A1 (en) * 2005-04-13 2006-10-19 Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. Lossless encoding of information with guaranteed maximum bitrate
TWI284855B (en) * 2005-04-29 2007-08-01 Sunplus Technology Co Ltd Image processing method and method for detecting difference between different image macro-blocks
US20060260752A1 (en) * 2005-05-23 2006-11-23 Ward/Kraft System and method for producing small production runs of products having removable coatings
US8422546B2 (en) 2005-05-25 2013-04-16 Microsoft Corporation Adaptive video encoding using a perceptual model
KR100636785B1 (ko) * 2005-05-31 2006-10-20 삼성전자주식회사 다시점 입체 영상 시스템 및 이에 적용되는 압축 및 복원방법
KR101138393B1 (ko) * 2005-07-15 2012-04-26 삼성전자주식회사 부호화 모드에 따른 컬러 성분간 예측을 이용한 컬러 영상및 비디오 부호화/복호화 방법 및 장치
US8036274B2 (en) 2005-08-12 2011-10-11 Microsoft Corporation SIMD lapped transform-based digital media encoding/decoding
US9077960B2 (en) * 2005-08-12 2015-07-07 Microsoft Corporation Non-zero coefficient block pattern coding
WO2007024648A2 (en) * 2005-08-25 2007-03-01 Nms Communications Corporation Methods and apparatus for differential encoding
KR100736096B1 (ko) * 2005-12-12 2007-07-06 삼성전자주식회사 비디오 신호를 그룹별로 인코딩 및 디코딩하는 방법 및장치
US8094721B2 (en) * 2005-12-29 2012-01-10 Cisco Technology, Inc. Methods and apparatuses for selecting a mode within a compression scheme
KR101256548B1 (ko) * 2005-12-30 2013-04-19 삼성전자주식회사 영상 부호화 및 복호화 장치 및 그 방법
US7956930B2 (en) * 2006-01-06 2011-06-07 Microsoft Corporation Resampling and picture resizing operations for multi-resolution video coding and decoding
US8306118B1 (en) * 2006-03-01 2012-11-06 Maxim Integrated, Inc. High quality low bitrate video coding by enabling and disabling a non-residual mode
US8848789B2 (en) * 2006-03-27 2014-09-30 Qualcomm Incorporated Method and system for coding and decoding information associated with video compression
WO2007114612A1 (en) 2006-03-30 2007-10-11 Lg Electronics Inc. A method and apparatus for decoding/encoding a video signal
US8130828B2 (en) 2006-04-07 2012-03-06 Microsoft Corporation Adjusting quantization to preserve non-zero AC coefficients
US8059721B2 (en) 2006-04-07 2011-11-15 Microsoft Corporation Estimating sample-domain distortion in the transform domain with rounding compensation
US7995649B2 (en) 2006-04-07 2011-08-09 Microsoft Corporation Quantization adjustment based on texture level
US8503536B2 (en) 2006-04-07 2013-08-06 Microsoft Corporation Quantization adjustments for DC shift artifacts
US7974340B2 (en) 2006-04-07 2011-07-05 Microsoft Corporation Adaptive B-picture quantization control
US8711925B2 (en) 2006-05-05 2014-04-29 Microsoft Corporation Flexible quantization
NO325859B1 (no) 2006-05-31 2008-08-04 Tandberg Telecom As Kodek-preprosessering
EP2030450B1 (en) * 2006-06-19 2015-01-07 LG Electronics Inc. Method and apparatus for processing a video signal
KR100790150B1 (ko) * 2006-07-28 2008-01-02 삼성전자주식회사 비디오 부호화기 및 비디오 데이터 프레임 부호화 방법
US8888592B1 (en) 2009-06-01 2014-11-18 Sony Computer Entertainment America Llc Voice overlay
JP2008048240A (ja) * 2006-08-18 2008-02-28 Nec Electronics Corp ビットプレーン復号装置およびビットプレーン復号方法
WO2008023968A1 (en) 2006-08-25 2008-02-28 Lg Electronics Inc A method and apparatus for decoding/encoding a video signal
CN101150721B (zh) * 2006-09-21 2010-10-13 凌阳科技股份有限公司 具有适应性位元平面编码模式的编码方法
US8325819B2 (en) 2006-10-12 2012-12-04 Qualcomm Incorporated Variable length coding table selection based on video block type for refinement coefficient coding
US9319700B2 (en) * 2006-10-12 2016-04-19 Qualcomm Incorporated Refinement coefficient coding based on history of corresponding transform coefficient values
US8599926B2 (en) 2006-10-12 2013-12-03 Qualcomm Incorporated Combined run-length coding of refinement and significant coefficients in scalable video coding enhancement layers
US8565314B2 (en) 2006-10-12 2013-10-22 Qualcomm Incorporated Variable length coding table selection based on block type statistics for refinement coefficient coding
CN101536530B (zh) * 2006-11-07 2011-06-08 三星电子株式会社 基于运动估计进行视频编码和解码的方法和设备
KR101366086B1 (ko) 2007-01-03 2014-02-21 삼성전자주식회사 잔차 블록의 계수들에 대한 부호화 결정 방법, 장치,인코더 및 디코더
KR20080066522A (ko) * 2007-01-11 2008-07-16 삼성전자주식회사 다시점 영상의 부호화, 복호화 방법 및 장치
US9826197B2 (en) 2007-01-12 2017-11-21 Activevideo Networks, Inc. Providing television broadcasts over a managed network and interactive content over an unmanaged network to a client device
US8238424B2 (en) 2007-02-09 2012-08-07 Microsoft Corporation Complexity-based adaptive preprocessing for multiple-pass video compression
US8942289B2 (en) * 2007-02-21 2015-01-27 Microsoft Corporation Computational complexity and precision control in transform-based digital media codec
EP2126712A4 (en) * 2007-02-23 2014-06-04 Direct Measurements Inc NON-LINEAR DIFFERENTIAL STRESS MEASUREMENT FROM A BINARY CODE SYMBOL
US8498335B2 (en) 2007-03-26 2013-07-30 Microsoft Corporation Adaptive deadzone size adjustment in quantization
KR101366241B1 (ko) 2007-03-28 2014-02-21 삼성전자주식회사 영상 부호화, 복호화 방법 및 장치
US8243797B2 (en) 2007-03-30 2012-08-14 Microsoft Corporation Regions of interest for quality adjustments
US8189676B2 (en) * 2007-04-05 2012-05-29 Hong Kong University Of Science & Technology Advance macro-block entropy coding for advanced video standards
US8442337B2 (en) 2007-04-18 2013-05-14 Microsoft Corporation Encoding adjustments for animation content
US8331438B2 (en) 2007-06-05 2012-12-11 Microsoft Corporation Adaptive selection of picture-level quantization parameters for predicted video pictures
US8254455B2 (en) 2007-06-30 2012-08-28 Microsoft Corporation Computing collocated macroblock information for direct mode macroblocks
WO2009019739A1 (en) * 2007-08-09 2009-02-12 Thomson Licensing A video data reproduction system
US8125364B2 (en) * 2007-08-13 2012-02-28 Nec Corporation Data compression/decompression method
KR101409526B1 (ko) * 2007-08-28 2014-06-20 한국전자통신연구원 영상 데이터의 비트율을 일정하게 유지시키는 장치 및 방법
WO2009032255A2 (en) * 2007-09-04 2009-03-12 The Regents Of The University Of California Hierarchical motion vector processing method, software and devices
TWI399982B (zh) * 2007-12-05 2013-06-21 Ol2 Inc 用以壓縮串流互動視訊之系統
US8968087B1 (en) 2009-06-01 2015-03-03 Sony Computer Entertainment America Llc Video game overlay
US8147339B1 (en) 2007-12-15 2012-04-03 Gaikai Inc. Systems and methods of serving game video
US8613673B2 (en) 2008-12-15 2013-12-24 Sony Computer Entertainment America Llc Intelligent game loading
CN101478672B (zh) * 2008-01-04 2012-12-19 华为技术有限公司 视频编码、解码方法及装置和视频处理***
KR101446773B1 (ko) * 2008-02-20 2014-10-02 삼성전자주식회사 영상 복구를 이용한 인터 예측 부호화, 복호화 방법 및장치
US8953673B2 (en) * 2008-02-29 2015-02-10 Microsoft Corporation Scalable video coding and decoding with sample bit depth and chroma high-pass residual layers
KR101431545B1 (ko) * 2008-03-17 2014-08-20 삼성전자주식회사 영상의 부호화, 복호화 방법 및 장치
US8711948B2 (en) * 2008-03-21 2014-04-29 Microsoft Corporation Motion-compensated prediction of inter-layer residuals
US8189933B2 (en) 2008-03-31 2012-05-29 Microsoft Corporation Classifying and controlling encoding quality for textured, dark smooth and smooth video content
US8370887B2 (en) 2008-05-30 2013-02-05 Microsoft Corporation Media streaming with enhanced seek operation
US8447591B2 (en) 2008-05-30 2013-05-21 Microsoft Corporation Factorization of overlapping tranforms into two block transforms
US8897359B2 (en) 2008-06-03 2014-11-25 Microsoft Corporation Adaptive quantization for enhancement layer video coding
US9571856B2 (en) 2008-08-25 2017-02-14 Microsoft Technology Licensing, Llc Conversion operations in scalable video encoding and decoding
US8213503B2 (en) 2008-09-05 2012-07-03 Microsoft Corporation Skip modes for inter-layer residual video coding and decoding
US8325796B2 (en) 2008-09-11 2012-12-04 Google Inc. System and method for video coding using adaptive segmentation
US8503527B2 (en) 2008-10-03 2013-08-06 Qualcomm Incorporated Video coding with large macroblocks
WO2010050699A2 (ko) * 2008-10-27 2010-05-06 에스케이텔레콤 주식회사 동영상 부호화/복호화 장치, 이를 위한 적응적 디블록킹 필터링 장치와 필터링 방법, 및 기록 매체
KR101597253B1 (ko) * 2008-10-27 2016-02-24 에스케이 텔레콤주식회사 동영상 부호화/복호화 장치, 이를 위한 적응적 디블록킹 필터링 장치와 필터링 방법, 및 기록 매체
US8926435B2 (en) 2008-12-15 2015-01-06 Sony Computer Entertainment America Llc Dual-mode program execution
CN101771416B (zh) * 2008-12-29 2013-06-05 华为技术有限公司 位平面编码和解码方法、通信***及相关设备
US8189666B2 (en) 2009-02-02 2012-05-29 Microsoft Corporation Local picture identifier and computation of co-located information
CN102484729B (zh) * 2009-04-07 2016-08-24 Lg电子株式会社 广播发送器、广播接收器及其3d视频数据处理方法
US8379728B2 (en) * 2009-04-17 2013-02-19 Texas Instruments Incorporated Adaptive real-time video prediction mode method and computer-readable medium and processor for storage and execution thereof
US20100283893A1 (en) * 2009-05-11 2010-11-11 Yin Jingjiang Processing interlaced video over dsi
US8644389B2 (en) * 2009-05-15 2014-02-04 Texas Instruments Incorporated Real-time video image processing
US8506402B2 (en) 2009-06-01 2013-08-13 Sony Computer Entertainment America Llc Game execution environments
KR101631278B1 (ko) * 2009-07-28 2016-06-16 삼성전자주식회사 모드 정보를 부호화, 복호화하는 방법 및 장치
KR101631280B1 (ko) * 2009-07-28 2016-06-16 삼성전자주식회사 스킵 모드에 기초한 영상을 복호화하는 방법 및 장치
KR101710622B1 (ko) * 2009-07-28 2017-02-28 삼성전자주식회사 스킵 모드에 따라 영상을 부호화, 복호화하는 방법 및 장치
KR20110014000A (ko) * 2009-08-04 2011-02-10 광운대학교 산학협력단 영상 데이터의 디블록킹 필터링 장치 및 방법과 이를 이용한 영상 복호화 장치 및 방법
WO2011021914A2 (ko) 2009-08-21 2011-02-24 에스케이텔레콤 주식회사 적응적 움직임 벡터 해상도를 이용한 영상 부호화/복호화 방법 및 장치
KR101356613B1 (ko) 2009-08-21 2014-02-06 에스케이텔레콤 주식회사 적응적 움직임 벡터 해상도를 이용한 영상 부호화/복호화 방법 및 장치
JP5841944B2 (ja) * 2009-09-04 2016-01-13 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. スケーラブルな画像符号化および復号化
US8861879B2 (en) * 2009-09-17 2014-10-14 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding image based on skip mode
KR101070173B1 (ko) * 2009-11-10 2011-10-05 갤럭시아커뮤니케이션즈 주식회사 동영상 압축 효율을 높이기 위한 변환블록의 부호화 장치와 방법
JP2011166326A (ja) * 2010-02-05 2011-08-25 Sony Corp 画像処理装置および方法
US8948243B2 (en) 2010-03-31 2015-02-03 Mitsubishi Electric Corporation Image encoding device, image decoding device, image encoding method, and image decoding method
WO2011126277A2 (en) * 2010-04-05 2011-10-13 Samsung Electronics Co., Ltd. Low complexity entropy-encoding/decoding method and apparatus
WO2011126282A2 (en) 2010-04-05 2011-10-13 Samsung Electronics Co., Ltd. Method and apparatus for encoding video by using transformation index, and method and apparatus for decoding video by using transformation index
US9049450B2 (en) 2010-04-05 2015-06-02 Samsung Electronics Co., Ltd. Method and apparatus for encoding video based on internal bit depth increment, and method and apparatus for decoding video based on internal bit depth increment
CN105245883B (zh) * 2010-04-23 2017-11-10 M&K控股株式会社 用于对图像编码的设备和方法
KR20110123651A (ko) 2010-05-07 2011-11-15 한국전자통신연구원 생략 부호화를 이용한 영상 부호화 및 복호화 장치 및 그 방법
JP2012019447A (ja) * 2010-07-09 2012-01-26 Sony Corp 画像処理装置および方法
US8560331B1 (en) 2010-08-02 2013-10-15 Sony Computer Entertainment America Llc Audio acceleration
KR20120016991A (ko) * 2010-08-17 2012-02-27 오수미 인터 프리딕션 방법
KR20170129297A (ko) 2010-09-13 2017-11-24 소니 인터랙티브 엔터테인먼트 아메리카 엘엘씨 게임 서버
KR102126910B1 (ko) 2010-09-13 2020-06-25 소니 인터랙티브 엔터테인먼트 아메리카 엘엘씨 부가기능의 관리
KR20120035096A (ko) * 2010-10-04 2012-04-13 한국전자통신연구원 쿼드 트리 변환 구조에서 부가 정보의 시그널링 방법 및 장치
KR101894355B1 (ko) 2010-11-04 2018-09-04 지이 비디오 컴프레션, 엘엘씨 블록 병합 및 스킵 모드를 지원하는 화상 코딩
CN104811706B (zh) * 2011-01-06 2017-10-27 三星电子株式会社 视频的编码方法和装置及视频的解码方法和装置
US9154799B2 (en) 2011-04-07 2015-10-06 Google Inc. Encoding and decoding motion via image segmentation
US8891627B1 (en) * 2011-04-18 2014-11-18 Google Inc. System and method for coding video using color segmentation
KR101383775B1 (ko) * 2011-05-20 2014-04-14 주식회사 케이티 화면 내 예측 방법 및 장치
KR20140042845A (ko) 2011-06-14 2014-04-07 조우 왕 지각적 비디오 코딩을 위한 구조적 유사성 기반의 레이트-왜곡 최적화 방법 및 시스템
CN107529706B (zh) * 2011-06-16 2020-11-17 Ge视频压缩有限责任公司 解码器、编码器、解码和编码视频的方法及存储介质
CN103636220B (zh) * 2011-06-28 2017-10-13 寰发股份有限公司 编码/解码帧内预测模式的方法及装置
GB2492397A (en) 2011-06-30 2013-01-02 Canon Kk Encoding and decoding residual image data using probabilistic models
US20130016769A1 (en) 2011-07-17 2013-01-17 Qualcomm Incorporated Signaling picture size in video coding
EP2735154A1 (en) * 2011-07-22 2014-05-28 Motorola Mobility LLC Device and methods for scanning rectangular-shaped transforms in video coding
US9930329B2 (en) * 2011-11-03 2018-03-27 Thomson Licensing Video encoding and decoding based on image refinement
US10390046B2 (en) * 2011-11-07 2019-08-20 Qualcomm Incorporated Coding significant coefficient information in transform skip mode
WO2013096671A1 (en) 2011-12-20 2013-06-27 General Instrument Corporation Method and apparatus for efficient transform unit encoding
WO2013106390A1 (en) 2012-01-09 2013-07-18 Activevideo Networks, Inc. Rendering of an interactive lean-backward user interface on a television
US9262670B2 (en) 2012-02-10 2016-02-16 Google Inc. Adaptive region of interest
US9800945B2 (en) 2012-04-03 2017-10-24 Activevideo Networks, Inc. Class-based intelligent multiplexing over unmanaged networks
WO2013187060A1 (ja) * 2012-06-12 2013-12-19 パナソニック株式会社 動画像符号化方法、動画像復号化方法、動画像符号化装置および動画像復号化装置
US20140056347A1 (en) 2012-08-23 2014-02-27 Microsoft Corporation Non-Transform Coding
US9794569B2 (en) * 2013-01-30 2017-10-17 Intel Corporation Content adaptive partitioning for prediction and coding for next generation video
US20140254659A1 (en) 2013-03-11 2014-09-11 Mediatek Inc. Video coding method using at least evaluated visual quality and related video coding apparatus
WO2014145921A1 (en) 2013-03-15 2014-09-18 Activevideo Networks, Inc. A multiple-mode system and method for providing user selectable video content
WO2014197879A1 (en) 2013-06-06 2014-12-11 Activevideo Networks, Inc. Overlay rendering of user interface onto source video
FR3011429A1 (fr) * 2013-09-27 2015-04-03 Orange Codage et decodage video par heritage d'un champ de vecteurs de mouvement
WO2015052787A1 (ja) * 2013-10-09 2015-04-16 株式会社日立製作所 解析データ表示システムおよび解析データの転送表示方法
US9788029B2 (en) 2014-04-25 2017-10-10 Activevideo Networks, Inc. Intelligent multiplexing using class-based, multi-dimensioned decision logic for managed networks
US9392272B1 (en) 2014-06-02 2016-07-12 Google Inc. Video coding using adaptive source variance based partitioning
US9578324B1 (en) 2014-06-27 2017-02-21 Google Inc. Video coding using statistical-based spatially differentiated partitioning
US10523985B2 (en) 2014-12-24 2019-12-31 Activevideo Networks, Inc. Managing deep and shallow buffers in a thin-client device of a digital media distribution network
US10264293B2 (en) 2014-12-24 2019-04-16 Activevideo Networks, Inc. Systems and methods for interleaving video streams on a client device
US10306229B2 (en) * 2015-01-26 2019-05-28 Qualcomm Incorporated Enhanced multiple transforms for prediction residual
US10827186B2 (en) 2016-08-25 2020-11-03 Intel Corporation Method and system of video coding with context decoding and reconstruction bypass
WO2018041840A1 (en) * 2016-08-29 2018-03-08 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Improvements for greatest common line index (gcli) video coding
EP3291559A1 (en) * 2016-08-29 2018-03-07 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Encoder for encoding, and decoder for decoding, a 2-dimensional digital image representation into a data stream using further encoding of one or more remaining bits below the quantization factor
US10694202B2 (en) * 2016-12-01 2020-06-23 Qualcomm Incorporated Indication of bilateral filter usage in video coding
WO2019076138A1 (en) * 2017-10-16 2019-04-25 Huawei Technologies Co., Ltd. METHOD AND APPARATUS FOR ENCODING
KR102438149B1 (ko) 2018-02-23 2022-08-29 후아웨이 테크놀러지 컴퍼니 리미티드 비디오 코딩을 위한 위치 종속 공간 가변 변환
CN114374840B (zh) * 2018-04-04 2024-04-12 阿里健康信息技术有限公司 一种图像编码方法、装置及存储介质
WO2019211519A1 (en) * 2018-05-02 2019-11-07 Nokia Technologies Oy A method and an apparatus for volumetric video encoding and decoding
EP4250730A3 (en) 2018-05-31 2024-01-10 Huawei Technologies Co., Ltd. Spatially varying transform with adaptive transform type
US11323748B2 (en) 2018-12-19 2022-05-03 Qualcomm Incorporated Tree-based transform unit (TU) partition for video coding
US10728555B1 (en) * 2019-02-06 2020-07-28 Sony Corporation Embedded codec (EBC) circuitry for position dependent entropy coding of residual level data
CN110087077A (zh) * 2019-06-05 2019-08-02 广州酷狗计算机科技有限公司 视频编码方法及装置、存储介质
EP4020993A4 (en) * 2019-08-23 2022-09-07 Mitsubishi Electric Corporation IMAGE TRANSMITTING DEVICE, IMAGE RECEIVING DEVICE, IMAGE TRANSMITTING PROGRAM AND IMAGE RECEIVING PROGRAM
AU2020400536A1 (en) * 2019-12-11 2022-06-16 Sony Group Corporation Image processing device, bit stream generation method, coefficient data generation method, and quantization coefficient generation method
WO2021120067A1 (zh) * 2019-12-18 2021-06-24 深圳市大疆创新科技有限公司 数据编码方法、数据解码方法、数据处理方法、编码器、解码器、***、可移动平台与计算机可读介质
EP4118823A1 (en) * 2020-03-12 2023-01-18 InterDigital VC Holdings France Method and apparatus for video encoding and decoding
US11683509B1 (en) 2021-10-28 2023-06-20 Meta Platforms, Inc. Prediction unit skip detection in encoder
CN116800956A (zh) * 2022-01-07 2023-09-22 杭州海康威视数字技术股份有限公司 图像编解码方法、装置及存储介质

Family Cites Families (199)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US546129A (en) * 1895-09-10 Stool
JPS56128070A (en) 1980-03-13 1981-10-07 Fuji Photo Film Co Ltd Band compressing equipment of variable density picture
JPH031688Y2 (es) 1985-02-20 1991-01-18
JPS61205086A (ja) 1985-03-08 1986-09-11 Mitsubishi Electric Corp 画像符号化復号化装置
EP0207774B1 (en) 1985-07-02 1992-03-04 Matsushita Electric Industrial Co., Ltd. Block encoder
US4760461A (en) * 1986-02-28 1988-07-26 Kabushiki Kaisha Toshiba Binary data compression and expansion processing apparatus
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
DE3717057A1 (de) 1987-05-21 1988-12-01 Bayer Ag Verfahren zur herstellung von isocyanaten
US5033105A (en) * 1987-08-11 1991-07-16 Apple Computer Video compression algorithm
FR2648254B2 (fr) 1988-09-23 1991-08-30 Thomson Csf Procede et dispositif d'estimation de mouvement dans une sequence d'images animees
US5379351A (en) 1992-02-19 1995-01-03 Integrated Information Technology, Inc. Video compression/decompression processing and processors
JPH07109990B2 (ja) 1989-04-27 1995-11-22 日本ビクター株式会社 適応型フレーム間予測符号化方法及び復号方法
JP2562499B2 (ja) 1989-05-29 1996-12-11 日本電信電話株式会社 高能率画像符号化装置およびその復号化装置
JPH0822064B2 (ja) 1990-02-15 1996-03-04 三菱電機株式会社 変換符号化方式
DE69031107T2 (de) 1989-10-14 1997-11-13 Sony Corp Anordnung und Verfahren zum Übertragen eines Videosignals
JPH082107B2 (ja) 1990-03-02 1996-01-10 国際電信電話株式会社 動画像のハイブリッド符号化方法及びその装置
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
US4999705A (en) 1990-05-03 1991-03-12 At&T Bell Laboratories Three dimensional motion compensated video coding
US5155594A (en) 1990-05-11 1992-10-13 Picturetel Corporation Hierarchical encoding method and apparatus employing background references for efficiently communicating image sequences
US5068724A (en) 1990-06-15 1991-11-26 General Instrument Corporation Adaptive motion compensation for digital television
JP3037383B2 (ja) 1990-09-03 2000-04-24 キヤノン株式会社 画像処理システム及びその方法
US5193004A (en) * 1990-12-03 1993-03-09 The Trustees Of Columbia University In The City Of New York Systems and methods for coding even fields of interlaced video sequences
US5111292A (en) * 1991-02-27 1992-05-05 General Electric Company Priority selection apparatus as for a video signal processor
JPH0630280A (ja) 1991-03-19 1994-02-04 Nec Eng Ltd 2値画像データのブロック別選択型符号化前処理方式
DE4113505A1 (de) 1991-04-25 1992-10-29 Thomson Brandt Gmbh Verfahren zur bildsignalcodierung
JPH04334188A (ja) 1991-05-08 1992-11-20 Nec Corp 動画像信号の符号化方式
US5317397A (en) * 1991-05-31 1994-05-31 Kabushiki Kaisha Toshiba Predictive coding using spatial-temporal filtering and plural motion vectors
JP2977104B2 (ja) * 1991-07-26 1999-11-10 ソニー株式会社 動画像データエンコード方法および装置、並びに動画像データデコード方法および装置
US5539466A (en) 1991-07-30 1996-07-23 Sony Corporation Efficient coding apparatus for picture signal and decoding apparatus therefor
JP3001688B2 (ja) 1991-08-05 2000-01-24 株式会社大一商会 パチンコ球の循環制御装置
JP2991833B2 (ja) * 1991-10-11 1999-12-20 松下電器産業株式会社 インターレス走査ディジタルビデオ信号の符号化装置及びその方法
JP2962012B2 (ja) 1991-11-08 1999-10-12 日本ビクター株式会社 動画像符号化装置及びその復号装置
US5227878A (en) 1991-11-15 1993-07-13 At&T Bell Laboratories Adaptive coding and decoding of frames and fields of video
US5510840A (en) 1991-12-27 1996-04-23 Sony Corporation Methods and devices for encoding and decoding frame signals and recording medium therefor
JPH05199422A (ja) * 1992-01-20 1993-08-06 Fujitsu General Ltd 画像伝送装置
JP2524044B2 (ja) 1992-01-22 1996-08-14 松下電器産業株式会社 画像符号化方法及び画像符号化装置
US5287420A (en) * 1992-04-08 1994-02-15 Supermac Technology Method for image compression on a personal computer
KR0166716B1 (ko) 1992-06-18 1999-03-20 강진구 블럭 dpcm을 이용한 부호화/복호화방법 및 장치
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
US5666461A (en) 1992-06-29 1997-09-09 Sony Corporation High efficiency encoding and decoding of picture signals and recording medium containing same
US5412435A (en) * 1992-07-03 1995-05-02 Kokusai Denshin Denwa Kabushiki Kaisha Interlaced video signal motion compensation prediction system
JP2510456B2 (ja) 1992-08-27 1996-06-26 三菱電機株式会社 画像符号化装置
US5596659A (en) * 1992-09-01 1997-01-21 Apple Computer, Inc. Preprocessing and postprocessing for vector quantization
JPH06153180A (ja) 1992-09-16 1994-05-31 Fujitsu Ltd 画像データ符号化方法及び装置
JPH06113287A (ja) 1992-09-30 1994-04-22 Matsushita Electric Ind Co Ltd 画像符号化装置と画像復号化装置
JPH06225279A (ja) 1992-10-26 1994-08-12 Sony Corp 符号化方法、復号化方法、符号化装置及び復号化装置
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 윤종용 부호화 및 복호화방법 및 그 장치
US5400075A (en) 1993-01-13 1995-03-21 Thomson Consumer Electronics, Inc. Adaptive variable length encoder/decoder
US5491516A (en) * 1993-01-14 1996-02-13 Rca Thomson Licensing Corporation Field elimination apparatus for a video compression/decompression system
US5544286A (en) 1993-01-29 1996-08-06 Microsoft Corporation Digital video data compression technique
US5592228A (en) 1993-03-04 1997-01-07 Kabushiki Kaisha Toshiba Video encoder using global motion estimation and polygonal patch motion estimation
US5376968A (en) 1993-03-11 1994-12-27 General Instrument Corporation Adaptive compression of digital video data using different modes such as PCM and DPCM
JPH06276481A (ja) 1993-03-18 1994-09-30 Sony Corp 画像信号符号化及び復号化方法、並びに記録媒体
JP3312417B2 (ja) 1993-03-18 2002-08-05 ソニー株式会社 画像信号符号化装置及び画像信号復号化装置
CA2118118C (en) 1993-03-24 2004-02-24 Motoki Kato Method for coding and decoding motion vectors and apparatus therefor
JPH06327001A (ja) * 1993-05-11 1994-11-25 Olympus Optical Co Ltd 画像処理装置
DE69416717T2 (de) 1993-05-21 1999-10-07 Nippon Telegraph & Telephone Bewegtbildkoder und -dekoder
US5448297A (en) 1993-06-16 1995-09-05 Intel Corporation Method and system for encoding images using skip blocks
US5517327A (en) 1993-06-30 1996-05-14 Minolta Camera Kabushiki Kaisha Data processor for image data using orthogonal transformation
US5477272A (en) 1993-07-22 1995-12-19 Gte Laboratories Incorporated Variable-block size multi-resolution motion estimation scheme for pyramid coding
US5453799A (en) * 1993-11-05 1995-09-26 Comsat Corporation Unified motion estimation architecture
JPH07135660A (ja) 1993-11-12 1995-05-23 Matsushita Electric Ind Co Ltd 動きベクトル符号化装置
US5465118A (en) 1993-12-17 1995-11-07 International Business Machines Corporation Luminance transition coding method for software motion video compression/decompression
EP0675652B1 (fr) * 1994-03-30 2009-05-13 Nxp B.V. Procédé et circuit d'estimation de mouvement entre images à deux trames entrelacées, et dispositif de codage de signaux numériques comprenant un tel circuit
US5550541A (en) 1994-04-01 1996-08-27 Dolby Laboratories Licensing Corporation Compact source coding tables for encoder/decoder system
US5767898A (en) * 1994-06-23 1998-06-16 Sanyo Electric Co., Ltd. Three-dimensional image coding by merger of left and right images
US5796438A (en) * 1994-07-05 1998-08-18 Sony Corporation Methods and apparatus for interpolating picture information
US5594504A (en) 1994-07-06 1997-01-14 Lucent Technologies Inc. Predictive video coding using a motion vector updating routine
JP3474005B2 (ja) 1994-10-13 2003-12-08 沖電気工業株式会社 動画像符号化方法及び動画像復号方法
US5552832A (en) * 1994-10-26 1996-09-03 Intel Corporation Run-length encoding sequence for video signals
EP0710033A3 (en) 1994-10-28 1999-06-09 Matsushita Electric Industrial Co., Ltd. MPEG video decoder having a high bandwidth memory
JPH08129128A (ja) 1994-11-01 1996-05-21 Canon Inc 光電変換素子又はラインセンサを用いた蓄積制御装置、及び焦点検出装置、視線検出装置及びカメラ
JPH08140099A (ja) 1994-11-11 1996-05-31 Canon Inc 符号化装置及び方法
JP2951861B2 (ja) 1994-12-28 1999-09-20 シャープ株式会社 画像符号化装置及び画像復号装置
US5619281A (en) 1994-12-30 1997-04-08 Daewoo Electronics Co., Ltd Method and apparatus for detecting motion vectors in a frame decimating video encoder
EP0721287A1 (en) 1995-01-09 1996-07-10 Daewoo Electronics Co., Ltd Method and apparatus for encoding a video signal
JP3732867B2 (ja) 1995-03-09 2006-01-11 株式会社ルネサステクノロジ 画像伸張装置
DE69619002T2 (de) 1995-03-10 2002-11-21 Toshiba Kawasaki Kk Bildkodierungs-/-dekodierungsvorrichtung
KR0171118B1 (ko) 1995-03-20 1999-03-20 배순훈 비디오신호 부호화 장치
KR0181027B1 (ko) 1995-03-20 1999-05-01 배순훈 화소 단위 움직임 추정을 이용하는 영상처리 시스템
KR0181063B1 (ko) 1995-04-29 1999-05-01 배순훈 특징점을 이용한 움직임 보상에서의 그리드 형성방법 및 장치
JP3903496B2 (ja) 1995-06-05 2007-04-11 ソニー株式会社 画像符号化方法、符号化装置、復号方法および復号装置
US5835149A (en) 1995-06-06 1998-11-10 Intel Corporation Bit allocation in a coded video sequence
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
US5687097A (en) 1995-07-13 1997-11-11 Zapex Technologies, Inc. Method and apparatus for efficiently determining a frame motion vector in a video encoder
US5668608A (en) 1995-07-26 1997-09-16 Daewoo Electronics Co., Ltd. Motion vector estimation method and apparatus for use in an image signal encoding system
US5764807A (en) * 1995-09-14 1998-06-09 Primacomp, Inc. Data compression using set partitioning in hierarchical trees
US5623313A (en) 1995-09-22 1997-04-22 Tektronix, Inc. Fractional pixel motion estimation of video signals
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
KR100211917B1 (ko) 1995-10-26 1999-08-02 김영환 물체 모양정보 부호화 방법
US6192081B1 (en) 1995-10-26 2001-02-20 Sarnoff Corporation Apparatus and method for selecting a coding mode in a block-based coding system
SE507410C2 (sv) 1995-11-08 1998-05-25 Ericsson Telefon Ab L M Förfarande och anordning för rörelseestimering
US5692063A (en) 1996-01-19 1997-11-25 Microsoft Corporation Method and system for unrestricted motion estimation for video
JP3371191B2 (ja) 1996-03-22 2003-01-27 ソニー株式会社 画像信号の符号化方法及び復号方法、並びに、符号化装置及び復号装置
US5764814A (en) 1996-03-22 1998-06-09 Microsoft Corporation Representation and encoding of general arbitrary shapes
US5982438A (en) 1996-03-22 1999-11-09 Microsoft Corporation Overlapped motion compensation for object coding
US6215910B1 (en) 1996-03-28 2001-04-10 Microsoft Corporation Table-based compression with embedded coding
CN100361536C (zh) 1996-05-28 2008-01-09 松下电器产业株式会社 图像预测编码/解码装置和方法以及记录媒体
JP3628810B2 (ja) * 1996-06-28 2005-03-16 三菱電機株式会社 画像符号化装置
WO1998003018A2 (en) 1996-07-11 1998-01-22 Philips Electronics N.V. Transmission and reception of encoded video pictures
JPH1042295A (ja) * 1996-07-19 1998-02-13 Sony Corp 映像信号符号化方法および映像信号符号化装置
DE19637522A1 (de) 1996-09-13 1998-03-19 Bosch Gmbh Robert Verfahren zur Reduzierung von Daten in Videosignalen
JP4049280B2 (ja) 1996-09-24 2008-02-20 株式会社ハイニックスセミコンダクター グレースケール形状情報符号化/復号化装置及び方法
KR100303685B1 (ko) 1996-09-30 2001-09-24 송문섭 영상 예측부호화 장치 및 그 방법
JP4034380B2 (ja) * 1996-10-31 2008-01-16 株式会社東芝 画像符号化/復号化方法及び装置
US5748789A (en) 1996-10-31 1998-05-05 Microsoft Corporation Transparent block skipping in object-based video coding systems
JPH10145779A (ja) * 1996-11-06 1998-05-29 Sony Corp フィールド検出装置およびフィールド検出方法、画像符号化装置および画像符号化方法、並びに記録媒体および記録方法
JP3208101B2 (ja) * 1996-11-07 2001-09-10 松下電器産業株式会社 画像符号化方法および画像符号化装置並びに画像符号化プログラムを記録した記録媒体
EP0786907A3 (en) 1997-01-24 2001-06-13 Texas Instruments Incorporated Video encoder
CN1208971C (zh) * 1997-02-14 2005-06-29 日本电信电话株式会社 运动图像的预测编码方法和译码方法
US5974184A (en) 1997-03-07 1999-10-26 General Instrument Corporation Intra-macroblock DC and AC coefficient prediction for interlaced digital video
US6005980A (en) 1997-03-07 1999-12-21 General Instrument Corporation Motion estimation and compensation of video object planes for interlaced digital video
US5991447A (en) 1997-03-07 1999-11-23 General Instrument Corporation Prediction and coding of bi-directionally predicted video object planes for interlaced digital video
US6404813B1 (en) * 1997-03-27 2002-06-11 At&T Corp. Bidirectionally predicted pictures or video object planes for efficient and flexible video coding
JP4001969B2 (ja) 1997-03-31 2007-10-31 ソニー株式会社 符号化装置および方法、並びに復号装置および方法
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
US6351563B1 (en) * 1997-07-09 2002-02-26 Hyundai Electronics Ind. Co., Ltd. Apparatus and method for coding/decoding scalable shape binary image using mode of lower and current layers
JP3662129B2 (ja) * 1997-11-11 2005-06-22 松下電器産業株式会社 マルチメディア情報編集装置
US6148033A (en) 1997-11-20 2000-11-14 Hitachi America, Ltd. Methods and apparatus for improving picture quality in reduced resolution video decoders
US6111914A (en) 1997-12-01 2000-08-29 Conexant Systems, Inc. Adaptive entropy coding in adaptive quantization framework for video signal coding systems and processes
US6094225A (en) 1997-12-02 2000-07-25 Daewoo Electronics, Co., Ltd. Method and apparatus for encoding mode signals for use in a binary shape coder
US5973743A (en) 1997-12-02 1999-10-26 Daewoo Electronics Co., Ltd. Mode coding method and apparatus for use in an interlaced shape coder
JP3740813B2 (ja) * 1997-12-12 2006-02-01 ソニー株式会社 画像符号化方法および画像符号化装置
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
KR100281329B1 (ko) * 1998-01-31 2001-02-01 전주범 이진 형상 신호의 모드 신호 부호화 방법 및 그 복원 방법
KR100281462B1 (ko) 1998-03-30 2001-02-01 전주범 격행 부호화에서 이진 형상 신호의 움직임 벡터 부호화 방법
US6396956B1 (en) * 1998-03-31 2002-05-28 Sharp Laboratories Of America, Inc. Method and apparatus for selecting image data to skip when encoding digital video
US7263127B1 (en) * 1998-04-02 2007-08-28 Intel Corporation Method and apparatus for simplifying frame-based motion estimation
JP3888597B2 (ja) 1998-06-24 2007-03-07 日本ビクター株式会社 動き補償符号化装置、及び動き補償符号化復号化方法
EP0969656B1 (en) * 1998-06-29 2007-01-24 Xerox Corporation Compression for image boundaries
US6275531B1 (en) 1998-07-23 2001-08-14 Optivision, Inc. Scalable video coding method and apparatus
TW444507B (en) 1998-10-22 2001-07-01 Sony Corp Detecting method and device for motion vector
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
WO2000046989A1 (fr) 1999-02-05 2000-08-10 Sony Corporation Dispositifs de codage et de decodage et methodes correspondantes, systeme de codage et procede correspondant
JP3778721B2 (ja) 1999-03-18 2006-05-24 富士通株式会社 動画像符号化方法および装置
JP2000278692A (ja) * 1999-03-25 2000-10-06 Victor Co Of Japan Ltd 圧縮データ処理方法及び処理装置並びに記録再生システム
CN1107381C (zh) 1999-06-03 2003-04-30 鸿友科技股份有限公司 扫描图像实时压缩/解压缩方法
JP2001036908A (ja) * 1999-07-15 2001-02-09 Oki Electric Ind Co Ltd 動画像圧縮装置
EP1142343A1 (en) 1999-10-29 2001-10-10 Koninklijke Philips Electronics N.V. Video encoding method
FR2802048B1 (fr) * 1999-12-01 2002-01-18 France Telecom Procede de diffusion de television numerique, signal numerique et equipement associes
US6483876B1 (en) 1999-12-28 2002-11-19 Sony Corporation Methods and apparatus for reduction of prediction modes in motion estimation
KR100739281B1 (ko) * 2000-02-21 2007-07-12 주식회사 팬택앤큐리텔 움직임 추정 방법 및 장치
DE60130180T2 (de) * 2000-04-14 2008-05-15 Sony Corp. Verfahren zur kodierung und dekodierung, aufzeichnungsmedium und programm
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 三菱电机株式会社 编码装置和编码方法
US6501397B1 (en) 2000-05-25 2002-12-31 Koninklijke Philips Electronics N.V. Bit-plane dependent signal compression
US6614442B1 (en) * 2000-06-26 2003-09-02 S3 Graphics Co., Ltd. Macroblock tiling format for motion compensation
KR100341063B1 (ko) * 2000-06-28 2002-06-20 송문섭 실시간 영상 통신을 위한 율제어 장치 및 그 방법
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
WO2002071639A1 (en) 2001-03-05 2002-09-12 Intervideo, Inc. Systems and methods for error resilient encoding
US6677868B2 (en) * 2001-03-16 2004-01-13 Sharp Laboratories Of America, Inc. Entropy coding with adaptive syntax to replace high probability symbols with lower probabilities symbols
US20030012286A1 (en) 2001-07-10 2003-01-16 Motorola, Inc. Method and device for suspecting errors and recovering macroblock data in video coding
US6975680B2 (en) 2001-07-12 2005-12-13 Dolby Laboratories, Inc. Macroblock mode decision biasing for video compression systems
EP2819411B1 (en) 2001-09-14 2018-08-29 NTT DoCoMo, Inc. Coding method and decoding method
WO2003043347A1 (en) 2001-11-16 2003-05-22 Ntt Docomo, Inc. Image encoding method, image decoding method, image encoder, image decode, program, computer data signal, and image transmission system
KR101033398B1 (ko) 2001-11-21 2011-05-09 제너럴 인스트루먼트 코포레이션 디지털 비디오 콘텐트를 위한 매크로블록 레벨 적응성프레임/필드 코딩
US6980596B2 (en) 2001-11-27 2005-12-27 General Instrument Corporation Macroblock level adaptive frame/field coding for digital video content
CN101448162B (zh) * 2001-12-17 2013-01-02 微软公司 处理视频图像的方法
AU2002351389A1 (en) 2001-12-17 2003-06-30 Microsoft Corporation Skip macroblock coding
US6870578B2 (en) 2001-12-19 2005-03-22 Thomson Licensing Sa. Apparatus and method for sharing signal control lines
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
KR100846769B1 (ko) 2002-02-19 2008-07-16 삼성전자주식회사 고정 연산량을 갖는 동영상 부호화 방법 및 그 장치
EP1347649A1 (en) * 2002-03-18 2003-09-24 Lg Electronics Inc. B picture mode determining method and apparatus in video coding system
US7099387B2 (en) 2002-03-22 2006-08-29 Realnetorks, Inc. Context-adaptive VLC video transform coefficients encoding/decoding methods and apparatuses
JP4151374B2 (ja) 2002-03-29 2008-09-17 セイコーエプソン株式会社 動画像符号化装置および動画像符号化方法
US20050117642A1 (en) * 2002-06-28 2005-06-02 Kiyofumi Abe Moving picture coding method, decoding method, data stream, data recording medium and program
CN101039424B (zh) * 2002-07-15 2010-05-26 株式会社日立制作所 动态图像编码方法
AU2003241696A1 (en) 2002-07-26 2004-02-16 Matsushita Electric Industrial Co., Ltd. Moving picture encoding method, moving picture decoding method, and recording medium
US7072394B2 (en) 2002-08-27 2006-07-04 National Chiao Tung University Architecture and method for fine granularity scalable video coding
US6795584B2 (en) 2002-10-03 2004-09-21 Nokia Corporation Context-based adaptive variable length coding for adaptive block transforms
AU2003290536A1 (en) 2002-10-23 2004-05-13 Divxnetworks, Inc. Method and system for supercompression of compressed digital video
JP4093405B2 (ja) 2002-10-25 2008-06-04 株式会社リコー 画像処理装置、プログラム及び記憶媒体
ES2343410T3 (es) 2003-06-25 2010-07-30 Thomson Licensing Codificacion intertramas con decision rapida de modo.
US20060257000A1 (en) 2003-06-25 2006-11-16 Boyce Jill M Decoding method an apparatus for detection of watermarks in a compressed video bitsream
US7620106B2 (en) * 2003-09-07 2009-11-17 Microsoft Corporation Joint coding and decoding of a reference field selection and differential motion vector information
US7724827B2 (en) * 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
US8107531B2 (en) * 2003-09-07 2012-01-31 Microsoft Corporation Signaling and repeat padding for skip frames
US7092576B2 (en) * 2003-09-07 2006-08-15 Microsoft Corporation Bitplane coding for macroblock field/frame coding type information
US7853980B2 (en) * 2003-10-31 2010-12-14 Sony Corporation Bi-directional indices for trick mode video-on-demand
KR20050061762A (ko) 2003-12-18 2005-06-23 학교법인 대양학원 부호화 모드 결정방법, 움직임 추정방법 및 부호화 장치
EP1558039A1 (en) * 2004-01-21 2005-07-27 Deutsche Thomson-Brandt Gmbh Method and apparatus for generating/evaluating prediction information in picture signal encoding/decoding
US7599435B2 (en) * 2004-01-30 2009-10-06 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Video frame encoding and decoding
CN1293868C (zh) 2004-12-29 2007-01-10 朱旭祥 α-环丙氨酸在制备治疗心脑血管疾病药物中的应用
US7957610B2 (en) 2006-04-11 2011-06-07 Panasonic Corporation Image processing method and image processing device for enhancing the resolution of a picture by using multiple input low-resolution pictures

Also Published As

Publication number Publication date
JP5442568B2 (ja) 2014-03-12
US8781240B2 (en) 2014-07-15
US20060262979A1 (en) 2006-11-23
US20190327464A1 (en) 2019-10-24
HK1164594A1 (en) 2012-09-21
US7555167B2 (en) 2009-06-30
US20170078658A1 (en) 2017-03-16
CN100452883C (zh) 2009-01-14
JP2005513883A (ja) 2005-05-12
CN102316320B (zh) 2014-07-09
US9538189B2 (en) 2017-01-03
US20070110326A1 (en) 2007-05-17
US8428374B2 (en) 2013-04-23
HK1133140A1 (en) 2010-03-12
JP4610195B2 (ja) 2011-01-12
US20170374362A1 (en) 2017-12-28
JP2010283893A (ja) 2010-12-16
JP2013192255A (ja) 2013-09-26
AU2002351389A1 (en) 2003-06-30
US7200275B2 (en) 2007-04-03
EP1457056B1 (en) 2016-08-10
US20090262835A1 (en) 2009-10-22
JP5819347B2 (ja) 2015-11-24
EP2262269B1 (en) 2018-01-24
KR20040068257A (ko) 2004-07-30
US9088785B2 (en) 2015-07-21
KR100925968B1 (ko) 2009-11-09
EP2262269A2 (en) 2010-12-15
US20130235932A1 (en) 2013-09-12
EP2262269A3 (en) 2011-06-22
CN1605213A (zh) 2005-04-06
WO2003053066A1 (en) 2003-06-26
US20150288962A1 (en) 2015-10-08
EP1457056A1 (en) 2004-09-15
US9774852B2 (en) 2017-09-26
CN102316320A (zh) 2012-01-11
US7379607B2 (en) 2008-05-27
US20140286420A1 (en) 2014-09-25
US20030113026A1 (en) 2003-06-19
US10567753B2 (en) 2020-02-18
US10368065B2 (en) 2019-07-30
ES2610430T3 (es) 2017-04-27

Similar Documents

Publication Publication Date Title
ES2664270T3 (es) Codificación por omisión de macrobloques
US11070802B2 (en) Moving image coding device, moving image decoding device, moving image coding/decoding system, moving image coding method and moving image decoding method
ES2773751T3 (es) Transformación solapada condicional
ES2767932T3 (es) Codificación y decodificación de plano de bits para el estado de predicción AC e información de tipo de codificación de campo/trama de macrobloque
JP5027936B2 (ja) 適応スキャン順序付けのための方法、記録媒体、プログラム、及び処理装置。
JP2020039167A (ja) 計算装置及び方法
KR20130088125A (ko) 비디오 코딩을 위한 저 복잡성 인트라 예측