ES2299787T3 - Codificacion de video mejorada usando codificacion adaptativa de parametros de bloque para bloques codificados/sin codificar. - Google Patents
Codificacion de video mejorada usando codificacion adaptativa de parametros de bloque para bloques codificados/sin codificar. Download PDFInfo
- Publication number
- ES2299787T3 ES2299787T3 ES04028880T ES04028880T ES2299787T3 ES 2299787 T3 ES2299787 T3 ES 2299787T3 ES 04028880 T ES04028880 T ES 04028880T ES 04028880 T ES04028880 T ES 04028880T ES 2299787 T3 ES2299787 T3 ES 2299787T3
- Authority
- ES
- Spain
- Prior art keywords
- macroblock
- plural
- video
- macroblocks
- frame
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 230000003044 adaptive effect Effects 0.000 title description 25
- 230000033001 locomotion Effects 0.000 claims abstract description 116
- 238000000034 method Methods 0.000 claims abstract description 58
- 230000006837 decompression Effects 0.000 claims abstract description 12
- 238000007906 compression Methods 0.000 claims description 27
- 230000006835 compression Effects 0.000 claims description 26
- FPPNZSSZRUTDAP-UWFZAAFLSA-N carbenicillin Chemical compound N([C@H]1[C@H]2SC([C@@H](N2C1=O)C(O)=O)(C)C)C(=O)C(C(O)=O)C1=CC=CC=C1 FPPNZSSZRUTDAP-UWFZAAFLSA-N 0.000 description 28
- 239000013598 vector Substances 0.000 description 25
- 230000008569 process Effects 0.000 description 8
- 238000013459 approach Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- JETQIUPBHQNHNZ-OAYJICASSA-N sulbenicillin Chemical compound N([C@H]1[C@H]2SC([C@@H](N2C1=O)C(O)=O)(C)C)C(=O)C(S(O)(=O)=O)C1=CC=CC=C1 JETQIUPBHQNHNZ-OAYJICASSA-N 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/186—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Color Television Systems (AREA)
Abstract
Un procedimiento implementado por ordenador de descodificación de tramas plurales de vídeo en una secuencia de vídeo, en la que cada una de las tramas plurales de vídeo incluye macrobloques plurales, comprendiendo el procedimiento: la recepción de los datos de vídeo comprimido en un flujo binario, teniendo el flujo binario una sintaxis de codificación con niveles plurales de sintaxis, los niveles plurales de sintaxis incluyendo nivel de trama y nivel de macrobloque; y la descompresión de una trama de vídeo prevista de las tramas plurales de vídeo usando descompresión inter-trama, en la que la descompresión usando descompresión inter-trama incluye: la recuperación de información a nivel de trama para indicar si la sintaxis del macrobloque incluye bits indicadores plurales para los macrobloques plurales de la trama de vídeo prevista para indicar, para cada uno de los macrobloques, si el macrobloque va a ser omitido. si los bits indicadores plurales están presentes en el flujo binario para los macrobloques plurales de la trama de vídeo prevista, para cada macrobloque de los macrobloques plurales de la trama de vídeo prevista, recuperar a nivel de macrobloque para el macrobloque un único bit indicador de los bits indicadores plurales; en base al bit indicador único recuperado, determinar si el macrobloque está omitido o no está omitido, y si el macrobloque no está omitido, recuperar a nivel de macrobloque la información de movimiento de macrobloque y la información de patrón de bloque codificadas para el macrobloque; y si los bits indicadores plurales no están presentes en el flujo binario, para cada uno de los macrobloques plurales de la trama de vídeo prevista: recuperar a nivel de macrobloque la información de movimiento de macrobloque y la información de patrón de bloque codificadas.
Description
Codificación de vídeo mejorada usando
codificación adaptativa de parámetros de bloque para bloques
codificados/sin codificar.
\global\parskip0.900000\baselineskip
La invención se refiere a la codificación de
vídeo, y de manera específica, a un procedimiento de codificación
de vídeo mejorado usado en codificadores y en descodificadores de
vídeo.
Las reproducciones de vídeo con movimiento
completo basadas en señales de vídeo analógicas se han encontrado
disponibles durante un largo tiempo en el formato de televisión. Con
los recientes avances en las capacidades y en las posibilidades de
procesado por ordenador, las reproducciones de vídeo con movimiento
completo basadas en señales de vídeo digitales han pasado a
convertirse en disponibles comercialmente. Los sistemas de vídeo
digitales pueden proporcionar mejoras significativas sobre los
sistemas de vídeo analógicos convencionales para la creación,
modificación, transmisión, almacenamiento y reproducción de
secuencias de vídeo con movimiento completo.
Las exhibiciones de vídeo digital incluyen un
gran número de tramas de imagen que son reproducidas o extraídas de
manera sucesiva a frecuencias entre 30 y 75 Hz. Cada trama de imagen
es una imagen fija formada a partir de una matriz de píxeles basada
en la resolución de la pantalla de un sistema en particular. Como
ejemplos, los sistemas basados en VHS tienen resoluciones de
pantalla de 320 x 480 píxeles, los sistemas basados en NTSC tienen
resoluciones de pantalla de 720 x 486 píxeles, y los sistemas de
televisión de alta definición (HDTV) bajo desarrollo tienen
resoluciones de pantalla de 1360 x 1024 píxeles.
Las cantidades de información digital en bruto
incluida en las secuencias de vídeo son masivas. El almacenamiento
y la transmisión de estas cantidades de información de vídeo es
inviable con un equipo de ordenador personal convencional.
Considérese, por ejemplo, un formato digitalizado de un formato de
imagen VHS de relativamente baja resolución que tenga una
resolución de 320 x 480 píxeles. Una imagen en movimiento de
longitud completa de dos horas de duración a esta resolución
corresponde a 100 gigabytes de información de vídeo digital.
Mediante comparación, los discos ópticos compactos convencionales
tienen capacidades aproximadamente de 0,6 gigabytes, los discos
duros magnéticos tienen capacidades de 1 a 2 gigabytes, y los discos
ópticos compactos bajo desarrollo tienen unas capacidades de hasta
8 gigabytes.
Para tratar las limitaciones en el
almacenamiento o en la transmisión de dichas cantidades masivas de
información de vídeo digital, se han establecido varias normas y
procesos de compresión de vídeo, incluyendo MPEG-1,
MPEG2 y H.26X. Estas técnicas de compresión de vídeo utilizan
similitudes entre las tramas sucesivas de imágenes, a las que se
hace referencia como correlación temporal o
inter-trama, para proporcionar la compresión
inter-trama en la que los datos de movimiento y las
señales de error se usan para codificar los cambios entre
tramas.
Además, las técnicas de compresión de vídeo
convencionales utilizan similitudes dentro de las tramas de la
imagen, a las que se hace referencia como correlación espacial o
intra-trama, para proporcionar la compresión
intra-trama en la que se comprimen las muestras de
la imagen que estén dentro de una trama de imagen. La compresión
intra-trama se basa en procesos convencionales para
comprimir las imágenes fijas, tales como la codificación de la
transformada coseno discreta (DTC). A veces se hace referencia a
este tipo de codificación como codificación de "textura" o de
"transformada". Una "textura" por lo general se refiere a
una matriz de dos dimensiones de valores de muestras de imagen, tal
como una matriz de valores de crominancia y de luminancia o una
matriz de valores alfa (opacidad). El término "transformada"
en este contexto hace referencia a cómo se transforman las muestras
de la imagen en las componentes espaciales de frecuencia durante el
proceso de la codificación. Este uso del término
"transformada" se debería distinguir de una transformada
geométrica usada para estimar cambios de escena en algunos
procedimientos de compresión inter-trama.
La compresión inter-trama de
manera típica utiliza una estimación del movimiento y compensación
del mismo para codificar los cambios de escena entre tramas. La
estimación del movimiento es un proceso para estimar el movimiento
de las muestras de imagen (por ejemplo, los píxeles) entre tramas.
Usando la estimación de movimiento, el codificador intenta comparar
bloques de píxeles de una trama con los píxeles correspondientes de
otra trama. Después de que el bloque más similar sea encontrado en
un área de búsqueda dada, el cambio en la posición de las
localizaciones de píxel de los píxeles correspondientes es
aproximado y se representa como datos de movimiento, tales como un
vector de movimiento. La compensación de movimiento es un
procedimiento para determinar una imagen prevista y calcular el
error entre la imagen prevista y la imagen original. Usando la
compensación de movimiento, el codificador aplica los datos de
movimiento a una imagen y calcula una imagen prevista. La
diferencia entre la imagen prevista y la imagen de entrada se
denomina la señal de error. Como la señal de error es una matriz de
valores que representan la diferencia entre los valores de muestra
de imagen, se puede comprimir usando el mismo procedimiento de
codificación de textura que el usado para la codificación
intra-trama de las muestras de imagen.
Aunque difieren en las implementaciones
específicas, las normas de compresión de vídeo
MPEG-1, MPEG-2 y H.26X son
similares en varios sentidos. La siguiente descripción de la norma
de compresión de vídeo MPEG-2 es aplicable por lo
general a las otras.
\global\parskip1.000000\baselineskip
MPEG-2 proporciona compresión
inter-trama y compresión intra-trama
en base a bloques cuadrados de matrices de píxeles en las imágenes
de vídeo. Una imagen de vídeo está dividida en bloques de muestra de
imagen denominados macrobloques que tienen unas dimensiones de 16 x
16 píxeles. En MPEG-2, un macrobloque comprende
cuatro bloques de luminancia (cada bloque es de 8 x 8 muestras de
luminancia (Y)) y dos bloques de crominancia (un bloque de muestra
de 8 x 8 cada uno para Cb y Cr).
En MPEG-2, la codificación
inter-trama se realiza sobre los macrobloques. Un
codificador MPEG-2 realiza la estimación y la
compensación del movimiento para calcular los vectores de movimiento
y las señales de error de bloque. Para cada bloque M_{N} en una
trama de imagen N, se realiza una búsqueda por toda la imagen de
una trama N+1 de vídeo siguiente sucesiva o de una trama de imagen
inmediatamente precedente N-1 (es decir, de forma
bidireccional) para identificar los respectivos bloques más
similares, M_{N+1}, o M_{N-1}. La localización
del bloque más similar con relación al bloque M_{N} se codifica
con un vector de movimiento (DX, DY). El vector de movimiento se
usa después para calcular un bloque de valores de muestras
predichos. Los valores de muestras predichos se comparan con el
bloque M_{N} para determinar la señal de error de bloque. La
señal de error se comprime usando un procedimiento de codificación
de textura tal como una codificación de transformada de coseno
discreta (DCT).
Se han propuesto las técnicas de codificación de
vídeo basadas en objetos como una mejora a las normas de
codificación convencionales basadas en tramas. En la codificación
basada en objetos, las características de la imagen con forma
arbitraria son separadas de las tramas de la secuencia de vídeo
usando un procedimiento denominado "segmentación". Los objetos
de vídeo o "segmentos" se codifican de manera independiente. La
codificación basada en objetos puede mejorar la velocidad de
compresión porque aumenta la correlación
inter-trama entre los objetos de vídeo en las
sucesivas tramas. También es ventajosa para una variedad de
aplicaciones que requieran el acceso a objetos y el seguimiento de
los mismos en una secuencia de vídeo.
En los procedimientos de codificación de vídeo
basados en objetos propuestos para la norma MPEG-4,
la forma, el movimiento y la textura de los objetos de vídeo se
codifican de manera independiente. La forma de un objeto se
representa por medio de una máscara binaria o alfa que define los
límites del objeto con forma arbitraria en una trama de vídeo. El
movimiento de un objeto es similar a los datos de movimiento de
MPEG-2, excepto que se aplica a una imagen con una
forma arbitraria del objeto que se haya segmentado a partir de una
forma rectangular. La estimación del movimiento y la compensación
del mismo se realizan sobre bloques de un "plano de objeto de
vídeo" en lugar de sobre toda la trama. El plano de objeto de
vídeo es el nombre para la imagen con forma de un objeto de una
única trama.
La textura de un objeto de vídeo es la
información de la muestra de la imagen en un plano de objeto de
vídeo que caiga dentro de la forma del objeto. La codificación de
la textura de muestras de imagen de un objeto y las señales de
error se realiza usando procedimientos de codificación de la textura
similares como en la codificación basada en trama. Por ejemplo, una
imagen segmentada se puede ajustar dentro de un rectángulo
limitador formado por macrobloques. La imagen rectangular formada
por el rectángulo limitador se puede comprimir justo como una trama
rectangular, excepto que los macrobloques transparentes no necesitan
ser codificados. Los bloques parcialmente transparentes son
codificados después de rellenar las porciones del bloque que caigan
fuera del límite de la forma del objeto con valores de muestra en
una técnica denominada "relleno".
Las técnicas de codificación basadas en tramas
tales como MPEG-2 y H.26X y las técnicas de
codificación basadas en objetos propuestas para
MPEG-4 son similares en que realizan la codificación
intra-trama e inter-trama sobre los
macrobloques. El formato de codificación inter-trama
para estás técnicas usa un bit especial para indicar si el
macrobloque de inter-trama está codificado. A este
bit especial a veces se le denomina el bit COD o el bit "no
codificado". Para ser consecuentes, nos referiremos a este tipo
de parámetro como un bit COD o parámetro COD. El bit COD indica si
el macrobloque codificado incluye o no datos de movimiento y datos
de error codificados de textura. En los casos en los que los datos
de movimiento y los datos de señal de error sean cero, el bit COD
reduce la información necesaria para codificar el macrobloque porque
solamente se envía un bit en lugar de bits adicionales que indiquen
que los datos de vector de movimiento y los datos de textura no
están codificados.
Además del bit COD, la sintaxis de codificación
para los macrobloques incluye parámetros de bloque codificados
(CBP) que indican si se transmiten los coeficientes de la
transformada codificados para la crominancia y para la luminancia
para el macrobloque. Si los coeficientes de la transformada son
todos ellos cero para un bloque, no hay necesidad de enviar datos
de textura para el bloque. Los parámetros de bloque codificados para
la crominancia (CBCP) son dos bits que indican si se transmiten o
no los datos de textura codificados para cada uno de los dos
bloques de crominancia. El patrón de bloque codificado para la
luminancia (CBPY) son cuatro bits que indican si se transmiten o no
los datos de textura codificados para cada uno de los cuatro bloques
de luminancia.
Los bits CBPC se codifican junto con otro
indicador que proporciona información acerca del tipo de
cuantificación para el macrobloque. Estos indicadores se combinan
para formar un parámetro denominado MCBPC, y MCBPC es la entropía
codificada usando un procedimiento de codificación de la entropía
tal como una codificación de Huffman o una codificación aritmética.
Los indicadores CBPY también se codifican como la entropía usando
una codificación de Huffman o una codificación aritmética.
Mientras que el bit COD tiene ventajas en la
codificación de escenas con muy poco movimiento, es ineficiente
para escenas que cambien de manera frecuente y que tengan muy pocos
macrobloques con vectores de movimiento cero (es decir, vectores de
movimiento que indiquen el movimiento cero). De esta manera, existe
una necesidad de una aplicación más eficiente para el bit COD para
estos tipos de escenas.
El código de longitud variable para CBPY se basa
en la suposición de que los macrobloques de
intra-trama incluyen más bloques de luminancia
codificados que bloques no codificados, mientras que para los
macrobloques inter-trama es cierto lo contrario.
Esta suposición se viola en algunos casos, y de esta forma, conduce
a una codificación ineficiente de los indicadores CBPY.
En la Recomendación UIT-T H.262,
UIT-T, ISO/IEC 13818 - 2 titulada "Tecnología de
la Información - Código genérico de Imágenes en movimiento e
Información de Audio asociado: Vídeo", julio de 1995,
XP000198491, se describe un proceso de codificación y
descodificación para los datos de vídeo. El algoritmo de
codificación es un híbrido de predicción compensada de movimiento y
DCT, en el que los macrobloques omitidos (es decir, los
macrobloques para los que no se han codificado datos) están
identificados por medio de la diferencia en la dirección del
macrobloque actual y la dirección del macrobloque anterior.
La invención, como se declara en las
reivindicaciones anejas, proporciona un procedimiento mejorado de
codificación de parámetros de bloque para secuencias de vídeo que
se codifican usando estimación y compensación del movimiento.
En un primer aspecto, la presente invención
proporciona un procedimiento implementado por ordenador para
descodificar tramas plurales de vídeo en una secuencia de vídeo, en
la que cada una de las tramas plurales de vídeo incluye
macrobloques plurales, comprendiendo el procedimiento: la recepción
de datos de vídeo comprimido en un flujo binario, teniendo el flujo
binario una sintaxis de codificación con niveles plurales de
sintaxis, los niveles plurales de sintaxis incluyendo un nivel de
trama y un nivel de macrobloque; y la descompresión de una trama de
vídeo prevista de las tramas plurales de vídeo usando descompresión
inter-trama. La descompresión usando descompresión
inter-trama incluye: la recuperación de la
información al nivel de trama para la trama de vídeo prevista; a
partir de la información recuperada, la determinación de si los bits
indicadores plurales se encuentran presentes en el flujo binario
para los macrobloques plurales de la trama de vídeo prevista; y si
los bits indicadores plurales están presentes en el flujo binario
para los macrobloques plurales de la trama de vídeo prevista, para
cada uno de los macrobloques de los macrobloques plurales de la
trama de vídeo prevista: recuperación al nivel de macrobloque para
el macrobloque de un bit indicador único de los bits indicadores
plurales; en base al bit indicador único recuperado, determinar si
el macrobloque es omitido o no es omitido; si el macrobloque no es
omitido, recuperar a nivel del macrobloque la información de
movimiento de macrobloque y la información del patrón de bloque
codificado para el macrobloque.
En un segundo aspecto, la presente invención
proporciona un procedimiento implementado por ordenador para
codificar tramas plurales de vídeo en una secuencia de vídeo, en el
que cada una de las tramas plurales de vídeo incluye macrobloques
plurales, comprendiendo el procedimiento: la compresión de los datos
de vídeo en un flujo binario, teniendo el flujo binario una
sintaxis de codificación con niveles plurales de sintaxis, los
niveles plurales de sintaxis incluyendo un nivel de trama y un nivel
de macrobloque, en el que los datos de compresión de vídeo en el
flujo binario incluyen la compresión de una trama de vídeo prevista
de las tramas plurales de vídeo usando compresión
inter-trama. La compresión usando compresión
inter-trama incluye: extraer la información al
nivel de trama para la trama de vídeo prevista, indicando la
información de salida al nivel de trama si hay presentes bits
indicadores plurales en el flujo binario para los macrobloques
plurales de la trama de vídeo prevista; y si los bits indicadores
plurales se encuentran presentes en el flujo binario para los
macrobloques plurales de la trama de vídeo prevista, para cada
macrobloque de los macrobloques plurales de la trama de vídeo
prevista: extraer a nivel de macrobloque para el macrobloque, un bit
indicador único de los bits indicadores plurales, indicando el bit
indicador único si el macrobloque está omitido o no está omitido; y
si el macrobloque no está omitido, extraer a nivel de macrobloque la
información de movimiento del macrobloque y la información de
patrón de bloque codificada para el macrobloque.
Un procedimiento como se describe para la
codificación adaptativa de un parámetro COD que indica si los datos
de textura y de movimiento están codificados para los macrobloques
inter-trama. Se describe otro procedimiento para
seleccionar de manera adaptativa un modo de codificación de la
entropía para los parámetros de bloque codificados para la
luminancia en base a los parámetros de bloque codificados para la
crominancia. Ambas características se aplican a la codificación de
vídeo basada en objetos y a la codificación de vídeo basada en
tramas.
La codificación adaptativa del parámetro COD
mejora la eficiencia de la codificación para un número de
aplicaciones de codificación de vídeo, y en particular, para
escenas con pocos macrobloques con movimiento cero. La codificación
adaptativa para el parámetro COD se refiere a un procedimiento para
inhabilitar de manera selectiva el parámetro COD en base al número
de macrobloques no codificados en una imagen de vídeo. La
codificación adaptativa del parámetro COD se implementa en el
codificador mediante la determinación del número de macrobloques en
una imagen con textura y movimiento cero ("macrobloques
omitidos"). El parámetro COD es después inhabilitado para los
macrobloques inter-trama en la imagen cuando el
número de macrobloques omitidos sea menor que un valor umbral.
El número umbral se deriva a partir del número
total de macrobloques en la imagen y del número de bits necesarios
para codificar el movimiento y la textura en un macrobloque de
inter-trama en el que los datos de textura y de
movimiento sean todos ellos cero. En el punto umbral, necesita menos
bits para codificar todos los macrobloques sin el parámetro COD
porque existen más bits COD que el número de bits necesarios para
codificar los datos de movimiento y de la textura para los bloques
inter-trama para los que los datos de la textura y
del movimiento sean cero. Por ejemplo, si se requieren cinco bits
para codificar el movimiento y la textura cero para un macrobloque,
entonces el número umbral es un quinto del número total de
macrobloques para la imagen.
La inhabilitación adaptativa del parámetro COD
se representa usando un indicador de inhabilitación COD que se
proporciona con cada una de las imágenes
inter-trama. El indicador indica si el parámetro COD
esté incluido con cada uno de los macrobloques de la imagen. El
codificador determina el valor de este indicador después de
realizar la estimación del movimiento, compensación del movimiento y
codificación de la textura para la imagen porque estos procesos
indican cuántos bloques tienen macrobloques con datos de textura y
de movimiento cero. El descodificador usa el indicador de
inhabilitación COD para determinar si descodificar el parámetro COD
para cada macrobloque.
La codificación eficiente se puede realizar
además mediante la selección adaptativa del modo de codificación de
la entropía para el patrón de bloque codificado para la luminancia
(CBPY) en base al patrón de bloques codificado para la crominancia
(CBPC). Este procedimiento de codificación mejorado selecciona la
codificación de la entropía para CBPY en los macrobloques
inter-trama en base a si los bits CBPC están
activados para el macrobloque. Cuando los bits CBPC están activados
("11") en un macrobloque de inter-trama, es más
probable que los bloques de luminancia tengan coeficientes de
transformada distintos de cero. Como tales, se selecciona la
codificación de la entropía de forma que se usen menos bits para
codificar CBPY para los bloques de luminancia codificados. A la
inversa, cuando uno de los bits CBPC no esté activado, se selecciona
la codificación de la entropía de forma que se usen menos bits para
codificar CBPY para los bloques de luminancia no codificados.
Los procedimientos resumidos con anterioridad
mejoran la eficiencia de la codificación para los macrobloques
inter-trama en escenas de vídeo con pocos
macrobloques que tengan movimiento cero y cambios frecuentes de una
trama a otra. La inhabilitación adaptativa del parámetro COD puede
ahorrar del 2 al 3% de la velocidad binaria total para aplicaciones
de baja velocidad binaria. La selección adaptativa del modo de
codificación CBPY para los bloques inter-trama se
ha demostrado que reduce el número de bits necesarios para codificar
CBPY en un 25%. Estos procedimientos mejoran la eficiencia de la
codificación sin aumentar la complejidad de un codificador y el
diseño de un descodificador o creando problemas de
compatibilidad.
Características y ventajas adicionales de la
invención serán más aparentes a partir de la siguiente descripción
detallada y de los dibujos que la acompañan de una implementación de
la invención.
La figura 1 es un diagrama de bloques de un
codificador de vídeo.
La figura 2 es un diagrama de bloques de un
descodificador de vídeo.
La figura 3 es un diagrama de flujo que ilustra
un proceso de codificación para inhabilitar de manera adaptativa el
parámetro COD para macrobloques inter-trama.
La figura 4 es un diagrama de flujo que ilustra
cómo interpreta un descodificador los macrobloques para los que el
parámetro COD está habilitado e inhabilitado.
La figura 5 es un diagrama de flujo que ilustra
cómo un codificador gestiona la codificación de la entropía de
parámetros CBPY en base a los valores de los parámetros CBPC.
La figura 6 es un diagrama de bloques que
ilustra cómo un descodificador interpreta los parámetros CBPY de
los macrobloques de inter-trama en base a los
valores de los parámetros CBPC.
La primera sección a continuación proporciona
una descripción de un codificador y de un descodificador de vídeo.
Las posteriores secciones describen cómo mejorar la codificación por
medio de: 1) la habilitación adaptativa de un parámetro de bloque
que indique si están codificados el movimiento y la textura para un
bloque, y 2) la mejora de la codificación de la entropía de los
parámetros de bloque indicando si los bloques de luminancia están
codificados para un macrobloque.
La invención se aplica tanto para la
codificación basada en tramas como para la codificación basada en
objetos. La invención mejora la codificación de secuencias de
imagen, si las imágenes representan planos de objetos de vídeo
derivados a partir de una secuencia de tramas o de la totalidad de
las tramas. La codificación basada en objetos incluye componentes
similares de codificación de movimiento y de textura usados en la
codificación basada en tramas así como la codificación de la forma.
La sintaxis pertinente de bloque para la invención es similar tanto
en la codificación basada en tramas como en la codificación basada
en objetos. De esta manera, mientras que el codificador y el
descodificador descritos en la siguiente sección se basan en
objetos, proporcionan una base suficiente para explicar cómo
implementar la invención tanto en esquemas de codificación basados
en tramas como en esquemas de codificación basados en objetos.
La figura 1 es un diagrama de bloques que
ilustra una implementación de un codificador de vídeo basado en
objetos. La entrada 30 al codificador incluye una serie de objetos,
su información de forma y sus rectángulos delimitadores. La
información de forma, por lo tanto, se encuentra disponible antes de
que el codificador codifique los datos de textura y de movimiento.
La codificación basada en tramas se diferencia en que la totalidad
de la trama se codifica sin información de la forma.
El módulo de codificación de la forma 32 recibe
la definición de un objeto incluyendo su rectángulo delimitador y
amplía el rectángulo delimitador a múltiplos enteros de los
macrobloques. La información de la forma para un objeto comprende
una máscara de "plano alfa". El módulo de codificación de la
forma 32 lee esta máscara y la comprime, usando por ejemplo, un
procedimiento de codificación de cadena convencional para codificar
el contorno del objeto.
El módulo de estimación del movimiento 34 lee un
objeto incluyendo su rectángulo delimitador y una imagen
previamente reconstruida 1636 y calcula los datos de la estimación
del movimiento usados para predecir el movimiento de un objeto
desde una trama a otra. El módulo de estimación del movimiento 1634
busca el macrobloque que sea el más similar de todos en la imagen
reconstruida para cada macrobloque en la imagen actual para calcular
los datos de movimiento para cada macrobloque. El formato
específico de los datos de movimiento provenientes del módulo de
estimación de movimiento 1634 pueden variar dependiendo del
procedimiento de estimación del movimiento utilizado. Por ejemplo,
los datos de movimiento pueden incluir vectores de movimiento o
coeficientes de transformada geométrica tales como los coeficientes
de la transformada afín usado para predecir el movimiento del
macrobloque. En la codificación estándar del movimiento, los datos
de movimiento incluyen un vector de movimiento para cada
macrobloque, o cuatro vectores de movimiento, correspondientes a los
cuatro bloques de luminancia en el macrobloque.
El módulo de compensación de movimiento 38 lee
los datos de movimiento calculados por el módulo de estimación de
movimiento y la imagen previamente reconstruida 36 y calcula una
imagen prevista para la trama actual. El codificador encuentra la
diferencia entre los valores de muestra de la imagen en el bloque de
imagen de entrada, como se especifica en la entrada 30 y los
correspondientes valores de muestra en el bloque de imagen predicho
como se calcularon en el módulo de compensación del movimiento 38
para determinar la señal de error para el macrobloque.
El módulo de codificación de la textura 40
comprime esta señal de error para los objetos codificados
inter-trama y comprime los valores de muestra de
imagen para el objeto a partir del flujo de datos de entrada 30 para
los objetos codificados intra-trama. El camino de
realimentación 42 desde el módulo de codificación de la textura 40
representa la señal de error. El codificador usa los bloques de la
señal de error junto con los bloques de imagen predichos
provenientes del módulo de compensación del movimiento para calcular
la imagen previamente reconstruida 36.
El módulo de codificación de la textura 40
codifica los datos intra-trama y los datos de la
señal de error para un objeto usando cualquiera de una variedad de
técnicas de compresión de imagen fija. Técnicas de compresión de
ejemplo incluyen DCT, tren de ondas, así como otros procedimientos
de compresión de imagen convencionales.
El flujo binario de la secuencia de vídeo
comprimido incluye la información codificada de la forma, del
movimiento y de la textura proveniente de la codificación de la
forma, la estimación del movimiento y los módulos de codificación
de la textura. El multiplexor 44 combina y da formato a estos datos
con la sintaxis apropiada y los saca a la memoria de almacenamiento
temporal 46.
Mientras que el codificador se puede implementar
en hardware o en software, con más probabilidad se implementará en
software. En una implementación software, los módulos del
codificador representan rutinas software que se ejecutan en la
memoria de un ordenador y la memoria usada para almacenar los datos
de vídeo. Un codificador software se puede almacenar y distribuir
sobre una variedad de medios convencionales legibles por un
ordenador. En implementaciones hardware, los módulos de codificador
son implementados en lógica digital, de manera preferible en un
circuito integrado. Algunas de las funciones del codificador se
pueden optimizar en dispositivos lógicos digitales de propósito
especial en un periférico de ordenador para descargar la carga de
procesado proveniente de un ordenador servidor.
La figura 2 es un diagrama de bloques que
ilustra un descodificador para un procedimiento de codificación de
vídeo basado en objetos. Un demultiplexor 60 recibe un flujo binario
que representa una secuencia de vídeo comprimida y datos
codificados independientes de las formas, del movimiento y de la
textura sobre una base de objeto por objeto. El módulo de
descodificación de la forma 64 descodifica la forma o el contorno
para el objeto actual que se esté procesando. Para llevar a cabo
esto, emplea un descodificador de la forma que implementa el
procedimiento inverso al procedimiento de codificación de la forma
usado en el codificador de la figura 2. Los datos de forma
resultantes son una máscara, tal como un plano alfa binario o un
plano alfa de escala de grises que representa la forma del
objeto.
objeto.
El módulo de descodificación del movimiento 66
descodifica la información del movimiento en el flujo binario. La
información de movimiento descodificada incluye datos de movimiento
como vectores de movimiento para los bloques de macrobloques o
coeficientes de transformada geométrica, dependiendo del tipo del
procedimiento de estimación usado en el codificador. El módulo de
descodificación de movimiento 66 proporciona esta información de
movimiento al módulo de compensación de movimiento 68, y el módulo
de compensación de movimiento 68 aplica los datos de movimiento a
los datos 70 de objeto previamente reconstruido.
El módulo de descodificación de la textura 74
descodifica las señales de error para los datos de textura
codificados inter-trama y una matriz de valores de
color para los datos de textura intra-trama y pasa
esta información a un módulo 72 para calcular y acumular la imagen
reconstruida. Para los objetos codificados
inter-trama, este módulo 72 aplica los datos de la
señal de error a la salida de imagen prevista proveniente del módulo
de compensación de movimiento para calcular el objeto reconstruido
para la trama actual. Para los objetos codificados
intra-trama, el módulo de descodificación de la
textura 74 descodifica los valores de muestra de la imagen para el
objeto y coloca el objeto reconstruido en el módulo de objeto
reconstruido 72. Los objetos reconstruidos previamente, son
temporalmente almacenados en memoria de objeto 70 y son usados para
construir el objeto para otras tramas.
Como el codificador, el descodificador se puede
implementar en hardware o en software o en una combinación de
ambos. En las implementaciones software, los módulos del
descodificador son rutinas software que se ejecutan en la memoria
de un ordenador y la memoria usada para almacenar los datos de
vídeo. Un descodificador software se puede almacenar y distribuir
sobre una variedad de medios convencionales legibles por un
ordenador. En las implementaciones hardware, los módulos de
descodificador se implementan en lógica digital, de manera
preferible en un circuito integrado. Algunas de las funciones de
descodificador se pueden optimizar en dispositivos lógicos
digitales de propósito especial en un periférico de ordenador para
descargar la carga de procesado proveniente de un ordenador
servidor.
En las normas de codificación de vídeo actuales
y en las propuestas, el parámetro COD se usa para indicar si el
movimiento y la textura están codificados para un macrobloque de
inter-trama. El uso del bit COD se optimiza para la
codificación de muy baja velocidad binaria o escenas con un bajo
movimiento. Para muchas aplicaciones, y en particular para las
aplicaciones de Internet, este uso del bit COD puede ser
ineficiente. Por ejemplo, en estas aplicaciones:
- \bullet
- La velocidad binaria disponible para el vídeo es de manera típica 10+ kilobits por segundo (kbps);
- \bullet
- el tamaño de la imagen es de manera típica QCIF (QCIF es un tamaño de trama estándar que tiene 99 macrobloques);
- \bullet
- la velocidad de trama es de manera típica 5+ por segundo; y
- \bullet
- el cambio de escena es frecuente, y el movimiento entre tramas es mayoritariamente distinto de cero.
Bajo estas condiciones, la mayoría de los datos
de textura para los macrobloques/bloques tienen coeficientes
distintos de cero. El bit COD no es efectivo en estas circunstancias
porque aunque la codificación se omite para pocos macrobloques, aún
se envía el parámetro COD para todos los macrobloques
inter-trama ya se omitan estos macrobloques o no.
La velocidad binaria para el parámetro COD es aproximadamente 0,5
kbps. El procedimiento detallado a continuación inhabilita de
manera adaptativa el bit COD y ahora de manera potencial del 2 al 3%
de la velocidad binaria total.
Para mejorar la eficiencia del parámetro COD, el
codificador de manera adaptativa inhabilita este parámetro para las
imágenes codificadas inter-trama en las que el
número de macrobloques no codificados sobrepasa un valor umbral. En
la codificación basada en objetos, el codificador añade un indicador
a la sintaxis de codificación al nivel de plano de objeto de vídeo
para indicar si el parámetro COD está inhabilitado para todos los
macrobloques inter-trama en el plano de objeto de
vídeo. El plano de objeto de vídeo es una imagen que representa un
objeto en una trama.
En la codificación basada en tramas, el
codificador añade un indicador a la sintaxis de codificación al
nivel de trama para indicar si el parámetro COD está inhabilitado
para todos los macrobloques de la trama. Nótese que tanto en la
aproximación basada en objetos como en la aproximación basada en
tramas, el parámetro COD está inhabilitado para los macrobloques
inter-trama.
El codificador de vídeo de la figura 1 codifica
una imagen de vídeo en dos etapas primarias. La primera etapa
realiza una estimación y una compensación del movimiento, y la
segunda etapa construye el flujo binario con la sintaxis de
codificación apropiada. De esta forma, el número de macrobloques
para los que los vectores de movimiento y los datos de textura son
todos ellos cero viene determinado en la primera etapa. En base al
número de estos macrobloques, la segunda etapa determina si
inhabilitar el parámetro COD para todos los macrobloques en la
imagen de vídeo.
La figura 3 es un diagrama de flujo que ilustra
un proceso para inhabilitar de manera adaptativa el parámetro COD a
la vez se codifica una imagen de vídeo. El codificador realiza la
estimación y la compensación del movimiento (100, 102) y nota si
los vectores de movimiento son cero. Mientras realiza la
codificación transformada para cada macrobloque
inter-trama y el bloque (104), el codificador
también nota si los coeficientes de transformada DCT para el
macrobloque son todos ellos cero. Esto puede ocurrir en los casos en
los que los valores de error para todas las muestras de la imagen
de un macrobloque sean cero o sean aproximadamente cero.
Cuando se completa la codificación del
movimiento y de la textura para la imagen, la segunda etapa del
codificador determina el número de bloques para los que los
vectores de movimiento y los coeficientes de transformada son todos
ellos cero (106). Se hace a veces referencia a estos bloques como
bloques omitidos porque la codificación de los vectores de
movimiento y de los coeficientes de transformada se omite para estos
macrobloques. Si el número de macrobloques omitidos sobrepasa un
valor umbral, entonces es eficiente el uso del parámetro COD para
cada macrobloque, indicando si el macrobloque está codificado. En
este caso, se habilita el parámetro COD mediante el borrado del
indicador de inhabilitación COD para la imagen (110). En cualquier
otro caso, el indicador de inhabilitación de COD se activa para la
imagen.
La sintaxis de codificación para la imagen
incluye el indicador de inhabilitación COD para indicar si la
sintaxis del macrobloque incluye el parámetro COD. El parámetro COD
se fija a uno si los coeficientes de la transformada para un
macrobloque inter-tramas son todos ellos cero, y en
cualquier otro caso, se fija a cero.
La siguiente tabla ayudará a ilustrar cómo el
indicador de inhabilitación COD mejora la eficiencia de la
codificación para una imagen. La sintaxis para un macrobloque
inter-trama es de la siguiente manera.
Si el bit COD está activado, entonces MCBPC,
CBPY, MVD (datos de vector de movimiento), y el bloque DCT no son
enviados para el bloque. A esto se hace referencia como un
macrobloque omitido. A la inversa, cuando el bit COD no está
activado en las normas de codificación convencionales, el
macrobloque incluye bits codificados de entropía para MCBPC y CBPY,
un vector de movimiento codificado o vectores de movimiento
codificados (MVD) y al menos un bloque DCT. Los vectores de
movimiento están codificados de manera típica como vectores
diferenciales de movimiento. Un vector diferencial de movimiento es
una cantidad vectorial (por ejemplo, tiene una componente vertical
y una componente horizontal) que representa la diferencial entre dos
vectores de movimiento, tal como la diferencial entre los vectores
de movimiento para el macrobloque actual y el macrobloque
anterior.
En escenas que tengan pocos macrobloques con
movimiento cero y frecuentes cambios de una trama a otra,
probablemente hay muy pocos macrobloques omitidos. Bajo estas
circunstancias, el bit COD es ineficiente porque añade un bit extra
al macrobloque. Si el parámetro COD está inhabilitado, cada uno de
los macrobloques codificados tiene un bit menos con relación al
caso en el que el COD está habilitado. Suponiendo que, por ejemplo,
se use codificación de Huffman para codificar el MCBPC y el CBPY,
cada uno de los macrobloques con datos de movimiento o de textura
cero tienen bits extras para el MCBPC (1 bit), CBPY (2 bits) y MVD
(2 ó más bits). El movimiento y la textura para este tipo de
macrobloque requiere al menos 5 bits para codificar (MCBPC + CBPY +
MVD > 5). De esta forma, mediante la inhabilitación del
parámetro COD, este macrobloque requiere al menos 5 bits para
codificar, en lugar de sólo un bit en el caso en el que el COD esté
habilitado.
El número umbral de macrobloques omitidos se
puede evaluar de manera analítica en base al número total de
macrobloques en la imagen y los bits requeridos para codificar un
macrobloque con datos de movimiento y de textura cero y sin
parámetro COD. La siguiente expresión da un ejemplo de un valor de
umbral:
ejemplo de un valor de umbral:
(1/x)
MB_{total} >
MB_{omitidos}
donde MB_{omitidos} es el número
de macrobloques omitidos, MB_{total} es el número total de
macrobloques en la imagen, y x es el número de bits necesarios para
codificar un macrobloque cuando los datos de movimiento y de
textura son todos ellos cero. El número umbral
es:
(1/x)
M_{total}.
Es importante hacer énfasis en que este valor
umbral solamente es un ejemplo. El número de bits que se necesitan
para codificar un macrobloque con datos de movimiento y de textura
cero puede variar dependiendo de los procedimientos específicos de
codificación. Por ejemplo, en los casos en los que se use la
codificación de Huffman, es más fácil estimar el número de bits
necesarios para codificar el MCBPC y el CBPY como se ilustra en el
ejemplo anterior. En los casos en los que se use la codificación
aritmética, es más difícil calcular el número de bits necesarios
para codificar un macrobloque con datos de movimiento y de textura
cero. Sin embargo, una aproximación similar como la que se muestra
anteriormente se puede usar en el caso de codificación aritmética
mediante el uso de una estimación conservadora del número de bits
necesarios para codificar los parámetros en un macrobloque con
datos de movimiento y de textura cero.
Existe una variedad de procedimientos
heurísticos y analíticos para seleccionar un valor umbral. Una
manera es calcular un promedio del número de bits necesarios para
codificar macrobloques con datos de movimiento y de textura cero
para una trama y después usar una fórmula similar a la que se ha
mostrado anteriormente, (por ejemplo, (1/x_{promedio})
MB_{total}) para calcular un valor umbral para la trama. Otra
manera es comparar sobre una base de trama a trama, el número de
bits necesarios para codificar la trama con y sin el parámetro COD
y después seleccionar la aproximación que use menos bits.
El descodificador tiene que ser modificado para
soportar la habilitación y la inhabilitación adaptativas del
parámetro COD. La figura 4 es un diagrama de flujo que ilustra cómo
interpreta un descodificador macrobloques para los que el parámetro
COD está habilitado e inhabilitado. En una aproximación basada en
trama, el indicador de inhabilitación COD se codifica a nivel de
trama, a saber, existe un único indicador para cada trama. En una
aproximación basada en objeto, el indicador de inhabilitación COD se
codifica de manera preferible a nivel de plano de objeto de vídeo.
En otras palabras, cada uno de los objetos codificados
inter-trama tiene un indicador de inhabilitación
COD para cada trama. Cuando el descodificador descodifica los
parámetros a nivel de trama o los parámetros a nivel de objeto,
descodifica el indicador de inhabilitación COD (120) y determina si
el parámetro COD está habilitado o inhabilitado (122).
Si el parámetro COD está habilitado, los
parámetros a nivel de macrobloque son interpretados como que tienen
un parámetro COD para cada macrobloque en la imagen (124). En este
caso, el descodificador, de manera selectiva, descodifica el vector
de movimiento y los parámetros de bloque codificados para cada
macrobloque para los que el parámetro COD esté activado.
Si el parámetro COD está inhabilitado, los
parámetros a nivel de macrobloque se interpretan como que no tienen
un parámetro COD para cada macrobloque (128). Como tal, el
descodificador descodifica los datos de vector de movimiento y del
parámetro de bloque codificado para cada macrobloque.
La eficiencia de la codificación para escenas
que tengan pocos macrobloques con movimiento cero se puede mejorar
mediante la selección adaptativa de un modo de codificación de la
entropía para estos bits CBPY en base a los bits CBPC. La figura 5
es un diagrama de flujo que ilustra cómo un proceso de codificador
gestiona la codificación de la entropía de CBPY en base a los
valores CBPC.
El codificador evalúa los bits SBPC para cada
uno de los macrobloques (130). Existen dos bits, uno para cada
bloque de crominancia. Si ambos bits están activados, significando
que ambos bloques de crominancia tienen coeficientes de
transformada distintos de cero, entonces es probable que al menos
uno de los cuatro bloques de crominancia tendrá coeficientes de
transformada distintos de cero también. El codificador selecciona de
manera adaptativa un código de entropía para CBPY en base al valor
de los parámetros CBPC. Si los bits CBPC están activados, el
codificador selecciona un modo de codificación de la entropía que
asigne una probabilidad más alta a los bloques de luminancia
codificados (134). A la inversa, si al menos uno de los bits CBPC no
está activado, el codificador selecciona un modo de codificación de
la entropía que asigna una probabilidad más alta a bloques de
luminancia no codificados (136). Esta aproximación se implementa
mediante la selección adaptativa entre dos tablas de codificación
de la entropía para macrobloques inter-trama en base
a los bits CBPC.
La aproximación convencional en las normas
propuestas tales como H263, es usar una primera tabla de
codificación de la entropía (por ejemplo, una tabla de Huffman)
para crear un código de entropía para todos los macrobloques
intra-trama, y una segunda tabla de codificación de
la entropía para crear un código de entropía para todos los
macrobloques inter-trama. La siguiente tabla muestra
un ejemplo de tablas de codificación de la entropía que se usan
para calcular un código de longitud variable (VLC). La tabla 1 es la
tabla VLC convencional para macrobloques
intra-tipo, y la tabla 2 es la tabla VLC
convencional para macrobloques inter-tipo. Los bits
CBPY indican un uno (1) para un bloque codificado, y un cero (0)
para un bloque no codificado. Nótese que los bloques no codificados
son considerados como los más probables para los
inter-macrobloques, y de esta forma, se codifican
con un código de longitud más corta que para los bloques
codificados. A la inversa, los bloques codificados son considerados
como los más probables para los intra-macrobloques,
y de esta forma, son codificados con un código de una longitud más
corta que para los bloques codificados.
\newpage
Un procedimiento mejorado de codificación CBPY
es seleccionar la tabla 1 para los macrobloques
inter-trama cuando los bloques CBPC estén ambos
codificados, y seleccionar la tabla 2 para los macrobloques
inter-trama cuando al menos uno de los bloques CBPC
no esté codificado. Los experimentos han mostrado que la selección
adaptativa de las tablas 1 y 2 para los macrobloques
inter-trama reduce el número de bits necesarios para
codificar CBPY para las secuencias de vídeo de prueba estándar
desde aproximadamente un poco en tanto por ciento a más de un 26%.
En el caso de prueba Akiyo en el que existe poco cambio de una trama
a otra, la selección adaptativa de las tablas CBPC produjo un
ligero aumento en el número de bits para CBPY (menos del 0,1%). Las
ventajas de esta codificación mejorada de CBPY son más
significativas para los tamaños de paso de cuantificación menores y
las escenas más complejas.
Es importante hacer notar que la anterior
descripción de codificación adaptativa CBPY solamente es una posible
implementación. Nótese que existen tres posibles estados para los
bits CBPC en el contexto de la codificación adaptativa de CBPY: (1)
ambos activados (CBPC = 11); (2) ambos desactivados (CBPC = 00); y
(3) un bit activado - un bit desactivado (CBPC = 01 ó 10). En la
anterior implementación, se usa un modo de codificación de la
entropía para el estado (1) y un segundo modo de codificación de la
entropía se usa para los estados (2) y (3). En algunas
aplicaciones, es ventajoso agrupar el estado (2) con el modo de
codificación de la entropía para el estado (1). Son posibles una
variedad de diferentes combinaciones de modos de codificación de la
entropía y estados CBPC, y se podrían usar también más de dos modos
de codificación de la entropía. Por ejemplo, se podrían usar tres
modos diferentes de codificación para los tres estados diferentes de
CBPC.
La codificación adaptativa de COD y de CBPC se
pueden usar juntas. Como la codificación de CBPY se basa en los
bits CBPC que ya están en el formato de macrobloque, no es necesario
añadir un indicador adicional que indique si esta característica
está habilitada. Sin embargo, la codificación adaptativa de CBPY se
puede activar y desactivar mediante el uso de un indicador de
codificación adaptativa CBPY. Una manera de implementar este
indicador sería combinarlo con el indicador de inhabilitación COD.
En este caso, la codificación adaptativa de COD y de CBPY se
podrían habilitar e inhabilitar juntas.
La codificación adaptativa de CBPY se puede
implementar en el descodificador mediante la selección de la tabla
usada para descodificar CBPY en base a los bits CBPC. La figura 6 es
un diagrama de flujo que ilustra cómo interpreta un descodificador
los parámetros CBPY de los macrobloques inter-trama
en base a los valores de los parámetros CBPC. En funcionamiento de
descodificación típico, el descodificador descodifica los bits CBPC
para un macrobloque (140). Después determina si CBPC = 11 (142). De
ser así, el descodificador descodifica el VLC para CBPY usando la
tabla 1. Si no fuese así, el descodificador descodifica CBPY usando
la tabla 2.
Cuando se implemente de la manera descrita con
anterioridad, la codificación mejorada de CBPY no aumenta la
complejidad del codificador o del descodificador y no provoca
preocupaciones de emulaciones de código de inicio. "Emulación de
código de inicio" hace referencia a un problema de compatibilidad
provocado por la utilización de un formato de codificación que se
puede confundir con un código usado para la sincronización
denominado un "código de inicio".
Claims (6)
1. Un procedimiento implementado por ordenador
de descodificación de tramas plurales de vídeo en una secuencia de
vídeo, en la que cada una de las tramas plurales de vídeo incluye
macrobloques plurales, comprendiendo el procedimiento:
- la recepción de los datos de vídeo comprimido en un flujo binario, teniendo el flujo binario una sintaxis de codificación con niveles plurales de sintaxis, los niveles plurales de sintaxis incluyendo nivel de trama y nivel de macrobloque; y
- la descompresión de una trama de vídeo prevista de las tramas plurales de vídeo usando descompresión inter-trama, en la que la descompresión usando descompresión inter-trama incluye:
- la recuperación de información a nivel de trama para indicar si la sintaxis del macrobloque incluye bits indicadores plurales para los macrobloques plurales de la trama de vídeo prevista para indicar, para cada uno de los macrobloques, si el macrobloque va a ser omitido.
- si los bits indicadores plurales están presentes en el flujo binario para los macrobloques plurales de la trama de vídeo prevista, para cada macrobloque de los macrobloques plurales de la trama de vídeo prevista,
- recuperar a nivel de macrobloque para el macrobloque un único bit indicador de los bits indicadores plurales;
- en base al bit indicador único recuperado, determinar si el macrobloque está omitido o no está omitido, y
- si el macrobloque no está omitido, recuperar a nivel de macrobloque la información de movimiento de macrobloque y la información de patrón de bloque codificadas para el macrobloque; y
- si los bits indicadores plurales no están presentes en el flujo binario, para cada uno de los macrobloques plurales de la trama de vídeo prevista:
- recuperar a nivel de macrobloque la información de movimiento de macrobloque y la información de patrón de bloque codificadas.
2. El procedimiento de la reivindicación 1, en
el que la información recuperada a nivel de trama es un único
bit.
3. Un procedimiento implementado por ordenador
para descodificar tramas plurales de vídeo en una secuencia de
vídeo, en el que cada una de las tramas plurales de vídeo incluye
macrobloques plurales, comprendiendo el procedimiento:
- la compresión de datos de vídeo en un flujo binario, teniendo el flujo binario una sintaxis de codificación con niveles plurales de sintaxis, los niveles plurales de sintaxis incluyendo nivel de trama y nivel de macrobloque, en la que la compresión de los datos de vídeo en el flujo binario incluye la compresión de una trama de vídeo prevista de las tramas plurales de vídeo usando compresión inter-trama, y en la que la compresión usando compresión inter-trama incluye:
- emitir información a nivel de trama para indicar si la sintaxis del macrobloque incluye bits indicadores plurales para los macrobloques plurales de la trama de vídeo prevista para indicar, para cada uno de los macrobloques, si el macrobloque va a ser omitido.
- si los bits indicadores plurales están presentes en el flujo binario para los macrobloques plurales de la trama de vídeo prevista, para cada macrobloque de los macrobloques plurales de la trama de vídeo prevista,
- emitir a nivel de macrobloque para el macrobloque un único bit indicador de los bits indicadores plurales, el bit indicador único indicando si el macrobloque está omitido o si no está omitido, y
- si el macrobloque no está omitido, emitir a nivel de macrobloque la información de movimiento de macrobloque y la información de patrón de bloque codificadas para el macrobloque; y
- si los bits indicadores plurales no están presentes en el flujo binario, para cada uno de los macrobloques plurales de la trama de vídeo prevista:
\newpage
- emitir a nivel de macrobloque la información de movimiento de macrobloque y la información de patrón de bloque codificadas e inhabilitar el bit indicador para el macrobloque.
4. El procedimiento de la reivindicación 3, en
el que la información de salida a nivel de trama es un único
bit.
5. El procedimiento de una cualquiera de las
reivindicaciones anteriores en el que cada uno de los macrobloques
plurales incluye cuatro bloques de píxeles de luminancia de 8 x 8 y
dos bloques de píxeles de crominancia de 8 x 8.
6. Un medio legible por ordenador que tiene
almacenadas en el mismo instrucciones ejecutables por ordenador
para provocar que el sistema de ordenador realice el procedimiento
de una cualquiera de las reivindicaciones anteriores.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US1573 | 1997-12-31 | ||
US09/001,573 US5946043A (en) | 1997-12-31 | 1997-12-31 | Video coding using adaptive coding of block parameters for coded/uncoded blocks |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2299787T3 true ES2299787T3 (es) | 2008-06-01 |
Family
ID=21696758
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES04028880T Expired - Lifetime ES2299787T3 (es) | 1997-12-31 | 1998-09-30 | Codificacion de video mejorada usando codificacion adaptativa de parametros de bloque para bloques codificados/sin codificar. |
Country Status (10)
Country | Link |
---|---|
US (1) | US5946043A (es) |
EP (3) | EP1156680A3 (es) |
JP (1) | JP3689334B2 (es) |
AT (2) | ATE216824T1 (es) |
CA (1) | CA2316848C (es) |
DE (2) | DE69805099T2 (es) |
DK (1) | DK1528813T3 (es) |
ES (1) | ES2299787T3 (es) |
PT (1) | PT1528813E (es) |
WO (1) | WO1999034603A1 (es) |
Families Citing this family (114)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6215910B1 (en) * | 1996-03-28 | 2001-04-10 | Microsoft Corporation | Table-based compression with embedded coding |
US6571016B1 (en) * | 1997-05-05 | 2003-05-27 | Microsoft Corporation | Intra compression of pixel blocks using predicted mean |
EP2352297B1 (en) * | 1997-02-13 | 2016-04-13 | Mitsubishi Denki Kabushiki Kaisha | Moving picture decoding apparatus |
US7177355B1 (en) * | 1997-12-01 | 2007-02-13 | Samsung Electronics Co., Ltd. | Method for representing encoding upon coding information |
US6816618B1 (en) * | 1998-03-03 | 2004-11-09 | Minolta Co., Ltd. | Adaptive variable length image coding apparatus |
KR100281464B1 (ko) * | 1998-03-14 | 2001-02-01 | 전주범 | 물체 기반 부호화 시스템의 보조 정보 부호화 장치 |
US6400831B2 (en) | 1998-04-02 | 2002-06-04 | Microsoft Corporation | Semantic video object segmentation and tracking |
US6904174B1 (en) * | 1998-12-11 | 2005-06-07 | Intel Corporation | Simplified predictive video encoder |
GB2336058B (en) * | 1998-04-02 | 2002-03-27 | Daewoo Electronics Co Ltd | Apparatus and method for adaptively coding an image signal |
US7046734B2 (en) * | 1998-04-02 | 2006-05-16 | Intel Corporation | Method and apparatus for performing real-time data encoding |
US6408029B1 (en) | 1998-04-02 | 2002-06-18 | Intel Corporation | Method and apparatus for simplifying real-time data encoding |
US6031872A (en) * | 1998-06-16 | 2000-02-29 | Daewoo Electronics Co., Ltd. | Method and apparatus for encoding a video signal |
US6711278B1 (en) * | 1998-09-10 | 2004-03-23 | Microsoft Corporation | Tracking semantic objects in vector image sequences |
JP2000102007A (ja) * | 1998-09-28 | 2000-04-07 | Matsushita Electric Ind Co Ltd | マルチメディア情報合成装置、及び圧縮映像信号生成装置 |
US6563953B2 (en) * | 1998-11-30 | 2003-05-13 | Microsoft Corporation | Predictive image compression using a single variable length code for both the luminance and chrominance blocks for each macroblock |
US6983018B1 (en) | 1998-11-30 | 2006-01-03 | Microsoft Corporation | Efficient motion vector coding for video compression |
US6404931B1 (en) | 1998-12-14 | 2002-06-11 | Microsoft Corporation | Code book construction for variable to variable length entropy encoding |
US6223162B1 (en) | 1998-12-14 | 2001-04-24 | Microsoft Corporation | Multi-level run length coding for frequency-domain audio coding |
US6300888B1 (en) | 1998-12-14 | 2001-10-09 | Microsoft Corporation | Entrophy code mode switching for frequency-domain audio coding |
US6499060B1 (en) * | 1999-03-12 | 2002-12-24 | Microsoft Corporation | Media coding for loss recovery with remotely predicted data units |
US6476805B1 (en) | 1999-12-23 | 2002-11-05 | Microsoft Corporation | Techniques for spatial displacement estimation and multi-resolution operations on light fields |
US6502097B1 (en) * | 1999-12-23 | 2002-12-31 | Microsoft Corporation | Data structure for efficient access to variable-size data objects |
US6738424B1 (en) | 1999-12-27 | 2004-05-18 | Objectvideo, Inc. | Scene model generation from video for use in video processing |
WO2001049028A1 (en) * | 1999-12-27 | 2001-07-05 | Diamondback Vision, Inc. | Scene model generation from video for use in video processing |
KR100683380B1 (ko) * | 2000-02-21 | 2007-02-15 | 주식회사 팬택앤큐리텔 | 영상 압축 부호화를 위한 변환 및 역변환 방법 및 장치 |
US6356213B1 (en) * | 2000-05-31 | 2002-03-12 | Lucent Technologies Inc. | System and method for prediction-based lossless encoding |
GB2365240B (en) * | 2000-07-19 | 2002-09-25 | Motorola Inc | Apparatus and method for image transmission |
FR2813001B1 (fr) * | 2000-08-11 | 2002-12-20 | Thomson Multimedia Sa | Procede de conversion de format couleur d'une sequence d'images |
EP2364025B1 (en) * | 2000-08-15 | 2015-09-16 | Microsoft Technology Licensing, LLC | Methods, systems and data structures for timecoding media samples |
FR2813484A1 (fr) * | 2000-08-31 | 2002-03-01 | Koninkl Philips Electronics Nv | Traitement de donnees en une serie temporelle d'etapes |
US20020089602A1 (en) | 2000-10-18 | 2002-07-11 | Sullivan Gary J. | Compressed timing indicators for media samples |
JP2004512785A (ja) * | 2000-10-24 | 2004-04-22 | アイボール ネットワークス インコーポレイテッド | Dctに基づくスケーラブルなビデオ圧縮 |
US6677868B2 (en) | 2001-03-16 | 2004-01-13 | Sharp Laboratories Of America, Inc. | Entropy coding with adaptive syntax to replace high probability symbols with lower probabilities symbols |
FR2824988B1 (fr) * | 2001-05-21 | 2003-08-01 | Thomson Licensing Sa | Procede et dispositif de codage video utilisant la norme mpeg4 |
US7773670B1 (en) | 2001-06-05 | 2010-08-10 | At+T Intellectual Property Ii, L.P. | Method of content adaptive video encoding |
US6810086B1 (en) * | 2001-06-05 | 2004-10-26 | At&T Corp. | System and method of filtering noise |
US6909745B1 (en) * | 2001-06-05 | 2005-06-21 | At&T Corp. | Content adaptive video encoder |
US6970513B1 (en) | 2001-06-05 | 2005-11-29 | At&T Corp. | System for content adaptive video decoding |
US6968006B1 (en) | 2001-06-05 | 2005-11-22 | At&T Corp. | Method of content adaptive video decoding |
JP3778913B2 (ja) * | 2001-11-16 | 2006-05-24 | 株式会社エヌ・ティ・ティ・ドコモ | 画像符号化方法、画像復号方法、画像符号化装置、画像復号装置、及びプログラム |
CN101448162B (zh) | 2001-12-17 | 2013-01-02 | 微软公司 | 处理视频图像的方法 |
KR100925968B1 (ko) | 2001-12-17 | 2009-11-09 | 마이크로소프트 코포레이션 | 컴퓨터 시스템에서 비디오 시퀀스의 복수의 비디오 화상을 처리하는 방법, 시스템 및 컴퓨터 판독가능 매체 |
FR2834162A1 (fr) * | 2001-12-20 | 2003-06-27 | Koninkl Philips Electronics Nv | Systeme de communication de donnees selon un principe de commutation par paquets |
US6925125B2 (en) * | 2002-01-09 | 2005-08-02 | Hiroshi Akimoto | Enhanced aperture problem solving method using displaced center quadtree adaptive partitioning |
US7149247B2 (en) | 2002-01-22 | 2006-12-12 | Microsoft Corporation | Methods and systems for encoding and decoding video data to enable random access and splicing |
JP4703114B2 (ja) * | 2002-01-22 | 2011-06-15 | マイクロソフト コーポレーション | 開始符号エミュレーションの防止およびデータ充填のための方法およびシステム |
KR100895932B1 (ko) * | 2002-04-19 | 2009-05-07 | 마이크로소프트 코포레이션 | 비-바이트 정렬되거나 비트 시프팅된 위치를 포함하는위치에서 시작 코드 에뮬레이션을 방지하기 위한 방법 및시스템 |
US7016547B1 (en) * | 2002-06-28 | 2006-03-21 | Microsoft Corporation | Adaptive entropy encoding/decoding for screen capture content |
KR100523052B1 (ko) * | 2002-08-30 | 2005-10-24 | 한국전자통신연구원 | 다중 디스플레이 방식을 지원하는 다시점 동영상의 객체 기반 부호화 장치 및 그 방법과 그를 이용한 객체 기반 송수신 시스템 및 그 방법 |
US7433824B2 (en) * | 2002-09-04 | 2008-10-07 | Microsoft Corporation | Entropy coding by adapting coding between level and run-length/level modes |
ES2334934T3 (es) | 2002-09-04 | 2010-03-17 | Microsoft Corporation | Codificacion de entropia por adaptacion de codificacion entre modalidades de nivel y de longitud de sucesion y nivel. |
US7095786B1 (en) | 2003-01-11 | 2006-08-22 | Neo Magic Corp. | Object tracking using adaptive block-size matching along object boundary and frame-skipping when object motion is low |
US7424493B2 (en) * | 2003-04-21 | 2008-09-09 | Microsoft Corporation | Replication-based propagation mechanism for pipelines |
US7830963B2 (en) * | 2003-07-18 | 2010-11-09 | Microsoft Corporation | Decoding jointly coded transform type and subblock pattern information |
US20050013498A1 (en) | 2003-07-18 | 2005-01-20 | Microsoft Corporation | Coding of motion vector information |
US10554985B2 (en) | 2003-07-18 | 2020-02-04 | Microsoft Technology Licensing, Llc | DC coefficient signaling at small quantization step sizes |
US7426308B2 (en) * | 2003-07-18 | 2008-09-16 | Microsoft Corporation | Intraframe and interframe interlace coding and decoding |
US7738554B2 (en) | 2003-07-18 | 2010-06-15 | Microsoft Corporation | DC coefficient signaling at small quantization step sizes |
US7269288B2 (en) * | 2003-07-30 | 2007-09-11 | Mediatek Inc. | Apparatus for parallel calculation of prediction bits in a spatially predicted coded block pattern and method thereof |
US7724827B2 (en) * | 2003-09-07 | 2010-05-25 | Microsoft Corporation | Multi-layer run level encoding and decoding |
US8085844B2 (en) * | 2003-09-07 | 2011-12-27 | Microsoft Corporation | Signaling reference frame distances |
US7961786B2 (en) * | 2003-09-07 | 2011-06-14 | Microsoft Corporation | Signaling field type information |
US7852919B2 (en) * | 2003-09-07 | 2010-12-14 | Microsoft Corporation | Field start code for entry point frames with predicted first field |
US7577198B2 (en) * | 2003-09-07 | 2009-08-18 | Microsoft Corporation | Number of reference fields for an interlaced forward-predicted field |
US7577200B2 (en) | 2003-09-07 | 2009-08-18 | Microsoft Corporation | Extended range variable length coding/decoding of differential motion vector information |
US8107531B2 (en) * | 2003-09-07 | 2012-01-31 | Microsoft Corporation | Signaling and repeat padding for skip frames |
US7782954B2 (en) * | 2003-09-07 | 2010-08-24 | Microsoft Corporation | Scan patterns for progressive video content |
US8064520B2 (en) | 2003-09-07 | 2011-11-22 | Microsoft Corporation | Advanced bi-directional predictive coding of interlaced video |
US8213779B2 (en) * | 2003-09-07 | 2012-07-03 | Microsoft Corporation | Trick mode elementary stream and receiver system |
US7688894B2 (en) * | 2003-09-07 | 2010-03-30 | Microsoft Corporation | Scan patterns for interlaced video content |
US7092576B2 (en) * | 2003-09-07 | 2006-08-15 | Microsoft Corporation | Bitplane coding for macroblock field/frame coding type information |
US7839930B2 (en) * | 2003-11-13 | 2010-11-23 | Microsoft Corporation | Signaling valid entry points in a video stream |
US7317839B2 (en) | 2003-09-07 | 2008-01-08 | Microsoft Corporation | Chroma motion vector derivation for interlaced forward-predicted fields |
US7609762B2 (en) * | 2003-09-07 | 2009-10-27 | Microsoft Corporation | Signaling for entry point frames with predicted first field |
US7924921B2 (en) * | 2003-09-07 | 2011-04-12 | Microsoft Corporation | Signaling coding and display options in entry point headers |
US7606308B2 (en) * | 2003-09-07 | 2009-10-20 | Microsoft Corporation | Signaling macroblock mode information for macroblocks of interlaced forward-predicted fields |
US7567617B2 (en) | 2003-09-07 | 2009-07-28 | Microsoft Corporation | Predicting motion vectors for fields of forward-predicted interlaced video frames |
US20050120340A1 (en) * | 2003-12-01 | 2005-06-02 | Skazinski Joseph G. | Apparatus, system, and method for automated generation of embedded systems software |
US7580461B2 (en) * | 2004-02-27 | 2009-08-25 | Microsoft Corporation | Barbell lifting for wavelet coding |
US7627037B2 (en) * | 2004-02-27 | 2009-12-01 | Microsoft Corporation | Barbell lifting for multi-layer wavelet coding |
US20080089413A1 (en) * | 2004-06-28 | 2008-04-17 | Canon Kabushiki Kaisha | Moving Image Encoding Apparatus And Moving Image Encoding Method |
US7697610B2 (en) * | 2004-09-13 | 2010-04-13 | Microsoft Corporation | Variable block size early termination for video coding |
KR100681242B1 (ko) * | 2004-12-16 | 2007-02-09 | 삼성전자주식회사 | 동영상 복호화 방법, 동영상 복호화 장치 및 이를 가지는시스템 온 칩 시스템 |
US8634413B2 (en) | 2004-12-30 | 2014-01-21 | Microsoft Corporation | Use of frame caching to improve packet loss recovery |
TWI266541B (en) * | 2005-06-08 | 2006-11-11 | Via Tech Inc | Computing method of motion vector |
KR101261525B1 (ko) | 2005-07-15 | 2013-05-06 | 삼성전자주식회사 | 영상 부호화 및 복호화 방법과 장치 |
US7599840B2 (en) * | 2005-07-15 | 2009-10-06 | Microsoft Corporation | Selectively using multiple entropy models in adaptive coding and decoding |
US7684981B2 (en) * | 2005-07-15 | 2010-03-23 | Microsoft Corporation | Prediction of spectral coefficients in waveform coding and decoding |
US7693709B2 (en) * | 2005-07-15 | 2010-04-06 | Microsoft Corporation | Reordering coefficients for waveform coding or decoding |
US8599925B2 (en) * | 2005-08-12 | 2013-12-03 | Microsoft Corporation | Efficient coding and decoding of transform blocks |
US9077960B2 (en) * | 2005-08-12 | 2015-07-07 | Microsoft Corporation | Non-zero coefficient block pattern coding |
US7933337B2 (en) * | 2005-08-12 | 2011-04-26 | Microsoft Corporation | Prediction of transform coefficients for image compression |
US7565018B2 (en) * | 2005-08-12 | 2009-07-21 | Microsoft Corporation | Adaptive coding and decoding of wide-range coefficients |
US8780997B2 (en) * | 2005-11-18 | 2014-07-15 | Apple Inc. | Regulation of decode-side processing based on perceptual masking |
US8233535B2 (en) | 2005-11-18 | 2012-07-31 | Apple Inc. | Region-based processing of predicted pixels |
US8031777B2 (en) * | 2005-11-18 | 2011-10-04 | Apple Inc. | Multipass video encoding and rate control using subsampling of frames |
US20070116117A1 (en) * | 2005-11-18 | 2007-05-24 | Apple Computer, Inc. | Controlling buffer states in video compression coding to enable editing and distributed encoding |
US8295343B2 (en) | 2005-11-18 | 2012-10-23 | Apple Inc. | Video bit rate control method |
US8848789B2 (en) * | 2006-03-27 | 2014-09-30 | Qualcomm Incorporated | Method and system for coding and decoding information associated with video compression |
US8184710B2 (en) * | 2007-02-21 | 2012-05-22 | Microsoft Corporation | Adaptive truncation of transform coefficient data in a transform-based digital media codec |
US7774205B2 (en) * | 2007-06-15 | 2010-08-10 | Microsoft Corporation | Coding of sparse digital media spectral data |
US8254455B2 (en) | 2007-06-30 | 2012-08-28 | Microsoft Corporation | Computing collocated macroblock information for direct mode macroblocks |
US8179974B2 (en) | 2008-05-02 | 2012-05-15 | Microsoft Corporation | Multi-level representation of reordered transform coefficients |
US8406307B2 (en) | 2008-08-22 | 2013-03-26 | Microsoft Corporation | Entropy coding/decoding of hierarchically organized data |
US8189666B2 (en) | 2009-02-02 | 2012-05-29 | Microsoft Corporation | Local picture identifier and computation of co-located information |
US9082278B2 (en) * | 2010-03-19 | 2015-07-14 | University-Industry Cooperation Group Of Kyung Hee University | Surveillance system |
US8356114B2 (en) | 2010-04-15 | 2013-01-15 | Canon Kabushiki Kaisha | Region of interest-based image transfer |
RU2538284C2 (ru) * | 2010-04-22 | 2015-01-10 | Медиатэк, Инк. | Способ предсказания движения |
US8755441B2 (en) | 2010-05-10 | 2014-06-17 | Canon Kabushiki Kaisha | Region of interest-based video transfer |
TWI595776B (zh) * | 2012-06-27 | 2017-08-11 | Sony Corp | Image processing device and method |
CN104244004B (zh) * | 2014-09-30 | 2017-10-10 | 华为技术有限公司 | 低功耗编码方法及装置 |
US10271069B2 (en) | 2016-08-31 | 2019-04-23 | Microsoft Technology Licensing, Llc | Selective use of start code emulation prevention |
JP6849508B2 (ja) * | 2017-04-03 | 2021-03-24 | 日本特殊陶業株式会社 | 保持装置の製造方法 |
KR20240023238A (ko) | 2018-03-29 | 2024-02-20 | 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. | 변환 계수 블록 코딩 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5351086A (en) * | 1991-12-31 | 1994-09-27 | Daewoo Electronics Co., Ltd. | Low-bit rate interframe video encoder with adaptive transformation block selection |
JPH06153180A (ja) * | 1992-09-16 | 1994-05-31 | Fujitsu Ltd | 画像データ符号化方法及び装置 |
US5448297A (en) * | 1993-06-16 | 1995-09-05 | Intel Corporation | Method and system for encoding images using skip blocks |
US5465118A (en) * | 1993-12-17 | 1995-11-07 | International Business Machines Corporation | Luminance transition coding method for software motion video compression/decompression |
JP3474005B2 (ja) * | 1994-10-13 | 2003-12-08 | 沖電気工業株式会社 | 動画像符号化方法及び動画像復号方法 |
US5552832A (en) * | 1994-10-26 | 1996-09-03 | Intel Corporation | Run-length encoding sequence for video signals |
KR100211917B1 (ko) * | 1995-10-26 | 1999-08-02 | 김영환 | 물체 모양정보 부호화 방법 |
EP0786907A3 (en) * | 1997-01-24 | 2001-06-13 | Texas Instruments Incorporated | Video encoder |
US5870148A (en) * | 1997-06-17 | 1999-02-09 | Intel Corporation | Method and apparatus for adaptively enabling and disabling PB frames in an H.263 video coder |
US5880784A (en) * | 1997-06-17 | 1999-03-09 | Intel Corporation | Method and apparatus for adaptively switching on and off advanced prediction mode in an H.263 video coder |
-
1997
- 1997-12-31 US US09/001,573 patent/US5946043A/en not_active Expired - Lifetime
-
1998
- 1998-09-30 EP EP01116447A patent/EP1156680A3/en not_active Withdrawn
- 1998-09-30 EP EP04028880A patent/EP1528813B1/en not_active Expired - Lifetime
- 1998-09-30 EP EP98952010A patent/EP1044566B1/en not_active Expired - Lifetime
- 1998-09-30 PT PT04028880T patent/PT1528813E/pt unknown
- 1998-09-30 DE DE69805099T patent/DE69805099T2/de not_active Expired - Lifetime
- 1998-09-30 AT AT98952010T patent/ATE216824T1/de not_active IP Right Cessation
- 1998-09-30 WO PCT/US1998/020573 patent/WO1999034603A1/en active IP Right Grant
- 1998-09-30 AT AT04028880T patent/ATE385652T1/de active
- 1998-09-30 ES ES04028880T patent/ES2299787T3/es not_active Expired - Lifetime
- 1998-09-30 CA CA002316848A patent/CA2316848C/en not_active Expired - Lifetime
- 1998-09-30 DK DK04028880T patent/DK1528813T3/da active
- 1998-09-30 DE DE69839100T patent/DE69839100T2/de not_active Expired - Lifetime
- 1998-09-30 JP JP2000527094A patent/JP3689334B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
DE69839100D1 (de) | 2008-03-20 |
DE69805099D1 (de) | 2002-05-29 |
EP1044566B1 (en) | 2002-04-24 |
EP1528813B1 (en) | 2008-02-06 |
JP2002500483A (ja) | 2002-01-08 |
WO1999034603A1 (en) | 1999-07-08 |
EP1156680A2 (en) | 2001-11-21 |
ATE385652T1 (de) | 2008-02-15 |
ATE216824T1 (de) | 2002-05-15 |
EP1044566A1 (en) | 2000-10-18 |
US5946043A (en) | 1999-08-31 |
JP3689334B2 (ja) | 2005-08-31 |
PT1528813E (pt) | 2008-04-11 |
DE69839100T2 (de) | 2009-01-29 |
DK1528813T3 (da) | 2008-05-19 |
DE69805099T2 (de) | 2002-11-28 |
CA2316848A1 (en) | 1999-07-08 |
CA2316848C (en) | 2004-06-01 |
EP1528813A1 (en) | 2005-05-04 |
EP1156680A3 (en) | 2004-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2299787T3 (es) | Codificacion de video mejorada usando codificacion adaptativa de parametros de bloque para bloques codificados/sin codificar. | |
ES2296415T3 (es) | Codificacion eficaz de cabecero de macrobloque para video compresion. | |
US6633678B2 (en) | Image predictive decoding method, image predictive decoding apparatus, image predictive coding method, image predictive coding apparatus, and data storage media | |
US7408990B2 (en) | Efficient motion vector coding for video compression | |
US5694173A (en) | Video data arranging method and video data encoding/decoding apparatus | |
JP3464660B2 (ja) | 画像符号化方法および画像符号化装置並びに画像復号化方法および画像復号化装置 | |
MXPA98002826A (es) | Metodo de decodificacion predictiva de imagenes,aparato para la decodificacion predictiva de imagenes, metodo de decodificacion predictiva de imagenes, aparato para la codificacion predictiva de imagenes y medios para almacenar datos | |
JP2001069509A (ja) | 画像処理装置及びその方法 |