ES2291445T3 - Codificacion por longitud de serie de macrobloques no codificados. - Google Patents
Codificacion por longitud de serie de macrobloques no codificados. Download PDFInfo
- Publication number
- ES2291445T3 ES2291445T3 ES02708900T ES02708900T ES2291445T3 ES 2291445 T3 ES2291445 T3 ES 2291445T3 ES 02708900 T ES02708900 T ES 02708900T ES 02708900 T ES02708900 T ES 02708900T ES 2291445 T3 ES2291445 T3 ES 2291445T3
- Authority
- ES
- Spain
- Prior art keywords
- macroblocks
- slice
- length
- slices
- coded
- 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
- 238000000034 method Methods 0.000 claims abstract description 29
- 230000005540 biological transmission Effects 0.000 claims abstract description 8
- 238000013144 data compression Methods 0.000 abstract description 2
- 238000007906 compression Methods 0.000 description 14
- 230000006835 compression Effects 0.000 description 14
- 230000033001 locomotion Effects 0.000 description 7
- 238000012986 modification Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 230000011218 segmentation Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000000926 separation method Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 2
- 238000010420 art technique Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000010422 painting Methods 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000010561 standard procedure Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000001131 transforming effect Effects 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/65—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience
-
- 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/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/103—Selection of coding mode or of prediction mode
- H04N19/107—Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
-
- 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/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/70—Methods 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
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)
- Medicines Containing Material From Animals Or Micro-Organisms (AREA)
Abstract
Un método para comprimir una trama de datos de vídeo que comprende las operaciones de: dividir dicha trama en un número de macrobloques que comprende macrobloques codificados (18a-18c; 18j-18k) y macrobloques no codificados (18d-18i); agrupar, consecutivamente, dichos macrobloques en una secuencia de rebanadas de longitud variable (20, 22), en las que las rebanadas de longitud variable terminan después de un último macrobloque no codificado; determinar el número de macrobloques no codificados en una rebanada particular de longitud variable situada entre el macrobloque final codificado de la rebanada particular y el final de dicha rebanada particular; cuyo método comprende las operaciones adicionales de: agrupar los macrobloques no codificados, codificar los macrobloques no codificados agrupados como una palabra clave por longitud de serie (24), e insertar la palabra clave por longitud de serie (24) después del macrobloque codificado final en la particular de dichas rebanadas de longitud variable para indicar el número determinado de macrobloques no codificados en dicha rebanada particular.
Description
Codificación por longitud de serie de
macrobloques no codificados.
La presente invención se refiere a un método
para la compresión resistente frente a errores de una trama de datos
de vídeo.
La invención descrita y reivindicada en este
documento pertenece, de manera general, a un método para la
compresión de datos de señales de vídeo. Más particularmente, la
invención pertenece a un método del tipo antedicho en el que los
datos de vídeo están representados, colectivamente, mediante
agrupaciones de macrobloques codificados y de macrobloques omitidos
(o no codificados). Más particularmente, la invención pertenece a un
método del tipo antedicho en el que los macrobloques se agrupan en
rebanadas, y la codificación por longitud de serie se utiliza para
indicar el número de macrobloques omitidos en aquéllas.
Las señales digitales de vídeo, en forma no
comprimida, contienen, típicamente, cantidades grandes de datos.
Sin embargo, el contenido realmente necesario de información es
considerablemente más pequeño debido a las elevadas correlaciones
temporales y espaciales. De acuerdo con esto, la compresión de
vídeo, o la codificación, se utiliza para disminuir la cantidad de
datos que se requiere, realmente, para ciertas tareas, tales como
el almacenamiento de las señales de vídeo, o para transmitirlos
desde una ubicación a otra. En el procedimiento de codificación, la
redundancia temporal puede ser utilizada para hacer las denominadas
predicciones compensadas de movimiento, en las que las regiones de
una trama de vídeo se predicen a partir de regiones similares de
una trama anterior. Es decir, puede haber partes de una trama que no
contienen ningún cambio en absoluto, o apenas ninguno, respecto de
las partes correspondientes de la trama anterior. Tales regiones se
pueden, por tanto, omitir o no codificar, para maximizar la
eficiencia de la compresión. Por otra parte, si no se puede
encontrar un buen emparejamiento con una trama anterior, las
predicciones dentro de una trama se pueden utilizar para reducir la
redundancia espacial. Con un esquema acertado de predicción, el
error de predicción será pequeño y la cantidad de información que
tiene que ser codificada se reducirá grandemente. Además,
transformando los píxeles al dominio de la frecuencia, por ejemplo,
usando la transformada discreta del coseno, las correlaciones
espaciales proporcionan ganancias adicionales en eficiencia. Las
técnicas de la técnica anterior de compresión de vídeo están
descritas, por ejemplo, en la patente estadounidense número
5.552.832 y en la patente estadounidense número 5.903.313,
expedidas el 11 de mayo de 1999.
La patente estadounidense número 5.552.832
describe un método para codificar y descodificar señales de vídeo
para proporcionar conferencias de audio/vídeo satisfactorias entre
sistemas de PC que se comunican vía conexiones de RTPC. El
procedimiento de codificación comprende las operaciones de dividir
una trama de vídeo en una pluralidad de regiones, y cada región
está clasificada en una de tres clases posibles de regiones. El
método recuerda la codificación y descodificación según el estándar
de MPEG, pero sin incluir la compensación de movimiento y la
estimación de movimiento.
Además, la patente estadounidense número
6.285.458 B1 describe cómo puede codificarse el color de los bloques
usando codificación por longitud de serie para bloques de color
idéntico. Sin embargo, esto corresponde a bloques de codificación y
a sus modos de codificación.
A pesar de los beneficios de la compresión de
los datos de vídeo, la corriente de bits codificada, es decir, los
datos comprimidos que se transmiten desde una ubicación a otra,
puede corromperse debido a canales de transmisión propensos a
errores. Si sucede esto, confiar demasiado en la predicción puede
causar grandes daños potenciales, tales como propagación de errores
y disminución seria de la calidad de vídeo. En el pasado, las
técnicas comunes para reducir tales daños han incluido la prevención
de predicciones temporales en determinados momentos, y el
constreñimiento de las predicciones espaciales dentro de segmentos
limitados de una trama de vídeo, o de un cuadro. La calidad total
de la señal de vídeo descodificada (que sigue a la compresión y a
la transmisión) es, de este modo, un compromiso entre una compresión
elevada por un lado, y la resistencia a los errores, por el otro.
Sin embargo, hay conflictos potenciales entre usar la segmentación
flexible y robusta frente a los errores, y una señalización
efectiva de regiones omitidas o no codificadas de una trama de
datos de vídeo. Los métodos de la técnica anterior manejan estos
conflictos mediante la restricción de la segmentación a áreas
rígidas, con pérdida de flexibilidad y de eficiencia, o imponiendo
la codificación de las regiones dentro de un segmento que, en
principio, no necesite ser codificado.
En este documento, los términos "cuadro" y
"trama" se utilizan, alternativamente, para referirse a una
trama de datos de imagen en una secuencia de vídeo.
Para limitar la propagación de errores
espaciales, hay disponibles diversos métodos o técnicas de dividir
un cuadro en segmentos. Dos métodos estándar son proporcionados por
las Recomendaciones H.261 y H.262, respectivamente, de la
ITU-T. En la Recomendación H.261, cada trama de una
secuencia de vídeo está dividida en varios segmentos llamados
Grupos de Bloques (GOB). Cada GOB contiene 33 macrobloques
dispuestos en 3 filas y 11 columnas, y cada macrobloque cubre un
área de 16 x 16 píxeles. Por consiguiente, los dos formatos de
cuadro soportados por H.261, el Formato Intermedio Común (CIF), que
contiene 352 x 288 píxeles, y el formato de un Cuarto de CIF
(QCIF), que contiene 176 x 144 píxeles, están formados por la
combinación de 12 y 3 GOB que no se solapan, respectivamente, para
cubrir el cuadro entero.
Dentro de un GOB, los macrobloques están
posicionados fila por fila y de izquierda a derecha, con el primer
bloque en la esquina superior izquierda y el bloque 33 en la esquina
inferior derecha. Sin embargo, solamente esos macrobloques que se
diferencian del cuadro codificado previamente (si había un cuadro
codificado previamente) necesitan ser codificados. Por tanto, se
transmite una dirección de macrobloque antes de cada macrobloque
codificado, para señalar su posición dentro del GOB. Para el primer
macrobloque codificado en un GOB, la dirección es la posición del
macrobloque en el GOB. Para los macrobloques subsiguientes, la
dirección es el incremento de la posición del macrobloque
codificado previamente. Las direcciones de los macrobloques son
dadas por las palabras de código de longitud variable mostradas en
la figura 1. Los macrobloques que no están dirigidos deben ser
omitidos y copiados desde el cuadro anterior. Es decir, los datos de
vídeo para un macrobloque omitido son los datos del macrobloque
correspondiente del cuadro anterior. Debe observarse que, aunque no
hay ninguna restricción sobre cuáles o cuántos macrobloques
necesitan ser codificados, un GOB siempre se refiere a 33
macrobloques, estén o no estén codificados. Las posiciones del
principio y del final de cada GOB están definidas por el estándar
H.261 y están señaladas en la corriente de bits por un número de GOB
en cada cabecera de GOB.
Una técnica más flexible de segmentación de
cuadros se puede encontrar en los estándares de vídeo
MPEG-1 y MPEG-2, ISO/IEC
11172-2 e ISO/IEC 13818-2,
respectivamente. Este último está publicado, también, conjuntamente
por ITU-T como la Recomendación H.262. De acuerdo
con esto, al mismo tiempo, un cuadro está segmentado en rebanadas,
que son diferentes de los GOB antedichos usados en la Recomendación
H.261. Cada rebanada comprende un número arbitrario de
macrobloques, dispuestos consecutivamente en una secuencia o en
serie, en donde el ordenamiento de los macrobloques se refiere a un
cuadro entero que empieza en la esquina superior izquierda. Cada
rebanada debe tener, por lo menos, una longitud de un macrobloque, y
puede no solapar otras rebanadas. MPEG-1 permite
rebanadas de longitud arbitraria, pero no permite separaciones entre
rebanadas. MPEG-2, por otra parte, obliga a que las
rebanadas quepan dentro de una fila de macrobloques, pero permite
separaciones en la estructura general de la rebanada. Aquí, la
aparición de una separación entre rebanadas informa al
descodificador, de manera implícita, de que los macrobloques
correspondientes están omitidos, y que los datos de estos
macrobloques omitidos se deben copiar de los valores de los píxeles
de los macrobloques correspondientes del cuadro anterior.
Una restricción importante en ambas rebanadas de
MPEG-1 y MPEG-2 es que los
macrobloques primero y último incluidos en una rebanada deben estar
codificados, es decir, una rebanada no puede comenzar o terminar con
un macrobloque omitido. Debido a esta necesidad, siempre está claro
dónde terminó la rebanada anterior cuando comienza una nueva
rebanada, es decir, la rebanada anterior terminó justo después de
que fuera transmitido el último macrobloque codificado. A excepción
de los macrobloques primero y último, una rebanada puede contener
los macrobloques omitidos que no tienen que ser transmitidos. Por
consiguiente, la posición de cada macrobloque codificado dentro de
una rebanada se señala en la corriente de bits. Esto se hace de
manera semejante para la disposición de GOB de la recomendación
H.261. La posición relativa de cada macrobloque se denomina
incremento de la dirección del macrobloque, y viene dada por las
palabras clave de la figura 1. Para permitir más de 32 macrobloques
omitidos consecutivos en una rebanada, se incluye, también, una
palabra clave de escape de macrobloque. Se pueden introducir una o
más palabras clave de escape antes del incremento real de la
dirección del macrobloque, indicando, cada una, un incremento
adicional de 33 macrobloques.
La libertad para utilizar un número variable de
macrobloques en un segmento permite mantener el segmento dentro de
cierto tamaño de bit. Esto es muy útil cuando los segmentos están
fragmentados en paquetes para la transmisión en una red de IP
(protocolo de Internet), y es particularmente importante para
aplicaciones inalámbricas en las que el tamaño de los paquetes es
pequeño. Además, ajustando el tamaño de los segmentos, es posible
ajustarlos para varios entornos de transmisión. En un canal con
pérdidas, por ejemplo, la eficiencia de la compresión puede ser
negociada para conseguir una mejor calidad de vídeo usando segmentos
más pequeños. La tasa de bits erróneos se puede utilizar, de este
modo, para encontrar un tamaño óptimo del segmento. Como sucede con
la Recomendación H.261 descrita más arriba, los límites del
segmento para los GOB están predefinidos. Por lo tanto, el tamaño
de un GOB es difícil de controlar, lo que hace que estos segmentos
sean muy inflexibles. Por ello, las rebanadas de
MPEG-1
y MPEG-2 son más versátiles. Sin embargo, dado que los límites de las rebanadas están señalados asegurando que el último macrobloque de una rebanada esté siempre codificado, puede ser difícil alcanzar una compresión eficiente y un tamaño óptimo de rebanada dentro de estos estándares. La razón es que puede forzarse a codificar un macrobloque, que, de otra manera, podría haber sido omitido, o, alternativamente, a desviarlo del tamaño deseado de rebanada. Estos inconvenientes se resaltan, además, al hacer referencia a la figura 2.
y MPEG-2 son más versátiles. Sin embargo, dado que los límites de las rebanadas están señalados asegurando que el último macrobloque de una rebanada esté siempre codificado, puede ser difícil alcanzar una compresión eficiente y un tamaño óptimo de rebanada dentro de estos estándares. La razón es que puede forzarse a codificar un macrobloque, que, de otra manera, podría haber sido omitido, o, alternativamente, a desviarlo del tamaño deseado de rebanada. Estos inconvenientes se resaltan, además, al hacer referencia a la figura 2.
La figura 2 muestra una fila 10 de macrobloques
en un cuadro de QCIF, que, por lo demás, no se muestra. Los
macrobloques se pueden codificar en una primera ubicación,
transmitir a un descodificador en una segunda ubicación, y
descodificar, por lo tanto, para recuperar los datos de vídeo
originales. Los datos originales se recuperan, típicamente, con una
degradación de calidad que depende del grado de dureza con el que se
realiza la compresión. La figura 2 muestra, además, la parte final
de una rebanada 12, que incluye, por lo menos, macrobloques 12a y
12b codificados, la parte inicial de una rebanada 14, que incluye,
por lo menos, un macrobloque 14b codificado, y macrobloques
16a-f omitidos situados entre los macrobloques
12a-c y 14a-b codificados. Los
macrobloques omitidos entre los macrobloques 12c y 14a codificados
pueden crear problemas en la segmentación de los macrobloques
mostrada en la figura 2, si la segmentación se debe hacer de acuerdo
con el estándar MPEG-2 y si se desea situar un
límite de rebanada entre B y C, para formar rebanadas 12 y 14, de
modo que cada rebanada se pudiera situar en un paquete de IP
separado, de tamaño máximo especificado. La ubicación del límite de
la rebanada es aún más importante si las rebanadas 12 y 14 van a
llenar de manera precisa sus paquetes de IP hasta su capacidad
máxima. Si el estándar MPEG-2 se aplica a la
disposición de la técnica anterior mostrada en la figura 2, son
posibles tres alternativas, que tienen, cada una, sus propios
inconvenientes.
En la primera alternativa, la rebanada 12
terminaría en B en la figura 2, y la rebanada 14 empezaría en C.
Los macrobloques omitidos 16a-f entre B y C serían
considerados, implícitamente, como omitidos por el descodificador,
puesto que no se transmitiría ningún dato para los bloques omitidos.
Sin embargo, si los datos comprimidos fueran transmitidos a través
de un canal con pérdidas, tal como un canal de comunicaciones
inalámbricas, el paquete de IP que empieza en C y, por tanto,
contiene la rebanada 14, podría perderse y, por tanto, no recibirse
en el descodificador. En este caso, toda la información relativa a
los macrobloques 16a-f omitidos también se
perdería. Particularmente, el descodificador no podría distinguir
los macrobloques omitidos de los macrobloques perdidos.
En la segunda alternativa, el límite de la
rebanada estaría situado en B o en C, sin una separación entre las
rebanadas 12 y 14. Por consiguiente, si el límite fue puesto en B en
la figura 2, el último macrobloque de la rebanada 12 estaría
codificado como macrobloque 12c, pero el primer macrobloque de la
rebanada 14 sería el macrobloque omitido 16a. Por otra parte, si el
límite fuera puesto en C, el primer macrobloque de la rebanada 14
estaría codificado como macrobloque 14a, pero el último macrobloque
de la rebanada 12 sería el macrobloque omitido 16f. Como se
mencionó anteriormente, ninguna de las dos disposiciones será
permitida, puesto que el estándar MPEG-2 no permite
macrobloques omitidos al principio o al final de una rebanada. Por
lo tanto, será necesario codificar adicionalmente uno de los
macrobloques omitidos, el macrobloque omitido 16a o el 16f. Además,
el macrobloque omitido tendría que ser codificado con el vector de
movimiento cero (absoluto) y sin ningún coeficiente. De este modo,
podría enviarse la información del macrobloque omitido entre B y C.
Sin embargo, el número de bits adicionales que tendrían que ser
transmitidos como resultado de codificar el macrobloque omitido
podría ser bastante significativo, particularmente si el vector de
movimiento predicho es grande.
En la tercera alternativa, el límite de la
rebanada se pondría en cualquier posición A o D en la figura 2.
Esto evita los inconvenientes respectivos expuestos más arriba con
respecto a las alternativas primera y segunda. Sin embargo, como se
ha expuesto anteriormente, se desea enviar los datos de las
rebanadas respectivas en paquetes de IP, con una rebanada por cada
paquete y teniendo los paquetes respectivos un tamaño máximo de bit
fijo. Claramente, cada paquete debería llenarse con tantos bits como
fuera posible, para utilizar completamente la capacidad de la red.
Por consiguiente, poner el límite en A podría estar por debajo de lo
óptimo, si la rebanada 12 llegara a ser, de tal modo, demasiado
pequeña para utilizar toda la capacidad de bits de un paquete.
Poner el límite en D no sería posible, puesto que la rebanada 12
llegaría a ser tan grande que excedería el tamaño máximo del
paquete.
\vskip1.000000\baselineskip
La invención, como se establece en la
reivindicación independiente 1, pertenece a un método de compresión
de vídeo en el que una trama de datos de vídeo es segmentada en
rebanadas. Se permite que las rebanadas contengan un número
arbitrario de macrobloques consecutivos, comenzando y terminando en
posiciones arbitrarias dentro de un cuadro y, por lo tanto, dando
absoluta libertad para que las rebanadas empiecen y terminen en
cualquier posición. Puesto que las rebanadas pueden contener un
número variable de macrobloques, las realizaciones de la invención
pueden ser adaptadas, fácilmente, para proporcionar un estándar de
codificación para entornos de codificación diferentes.
Una realización de la invención, dirigida a un
método para comprimir una trama de datos de imágenes de vídeo,
incluye las operaciones de dividir la trama en un número de bloques
que comprende bloques codificados y bloques omitidos, y agrupar,
consecutivamente, los bloques en una secuencia de rebanadas. El
método incluye, además, la operación de insertar una palabra clave
por longitud de serie después del bloque codificado final en una
rebanada para indicar el número de bloques omitidos que hay
colocados entre el bloque codificado final y el final de la
rebanada. De esta manera, en un aspecto de la invención, las
regiones no codificadas de una trama de datos de vídeo están
señaladas, de manera eficaz, usando codificación por longitud de
serie. Los bloques omitidos consecutivos se agrupan juntos y se
codifican como un solo símbolo, denominado, en este documento,
palabra clave por longitud de serie, para indicar el número de
bloques omitidos. Señalando todas las regiones sin codificar dentro
de un segmento de una trama, es posible aprovecharse eficientemente
de una segmentación flexible de los cuadros y, también, ocultar, de
manera efectiva, áreas dañadas de los cuadros.
\vskip1.000000\baselineskip
La figura 1 es una tabla que muestra las
palabras clave para indicar la dirección de un macrobloque con
respecto a un macrobloque previo.
La figura 2 es un diagrama esquemático que
muestra una fila de macrobloques en una imagen de QCIF para ilustrar
inconvenientes de la técnica anterior.
La figura 3 es un diagrama esquemático que
muestra una fila de macrobloques que se van a comprimir o codificar
de acuerdo con una realización de la invención.
La figura 4 es un diagrama esquemático que
muestra la fila de macrobloques de la figura 3 después de la
compresión.
La figura 5 es una tabla que muestra las
palabras clave por longitud de serie para su uso en una realización
de la invención, y muestra, más particularmente, las diez primeras
palabras clave variables de una tabla infinita.
La figura 6 es un diagrama esquemático que
muestra una fila de macrobloques codificados de acuerdo con una
modificación de la invención.
La figura 7 es un diagrama esquemático que
muestra un sistema simplificado para comprimir, transmitir y
descodificar datos de vídeo de acuerdo con una realización de la
invención.
Haciendo referencia a la figura 3, en ella se
muestra una fila de macrobloques 18 que se van a comprimir de
acuerdo con una realización de la invención, que elimina o reduce,
substancialmente, los problemas del tipo descrito más arriba con
respecto a la técnica anterior. La fila 18, que comprende
macrobloques 18a-18k, es similar a la fila 10 de la
figura 2 y está asociada con la compresión de vídeo digital
compensado en movimiento, por el que las tramas respectivas están
divididas en macrobloques, teniendo cada macrobloque una resolución
de luminancia de 16 x 16 píxeles. Los macrobloques
18a-18c y 18j-18k son macrobloques
codificados, que están codificados de acuerdo con la práctica
convencional de manera que la información de la compensación del
movimiento está asociada con los mismos, y los macrobloques
18d-18i son macrobloques omitidos como se ha
descrito más arriba.
De acuerdo con la invención, los bloques
18a-18k deben ser segmentados en rebanadas, y se
permite que dichas rebanadas contengan un número arbitrario de
macrobloques consecutivos y puedan comenzar y terminar en posiciones
arbitrarias dentro de la trama asociada. Por consiguiente, se da
absoluta libertad para que las rebanadas del comienzo y del final
ocupen cualquier posición. Debido a esta libertad, los macrobloques
mostrados en la figura 3 son segmentados en una primera rebanada 20
y en una segunda rebanada 22 mediante la ubicación de un límite de
rebanada en C. Se asume que esto proporcionará rebanadas 20 y 22 que
están ambas dimensionadas para llenar los paquetes de IP
correspondientes sobre una base óptima, es decir, cada paquete será
llenado hasta su capacidad máxima. Así, la rebanada 20 termina con
los macrobloques 18a-18i y la rebanada 22 comienza
con los macrobloques 18j y 18k. Más específicamente, la rebanada 20
termina con seis macrobloques omitidos 18d-18i.
Haciendo referencia a la figura 4, en ella se
muestran las rebanadas 20 y 22 y sus macrobloques respectivos
después de la compresión de acuerdo con la invención. En particular,
la figura 4 muestra una palabra clave 24 por longitud de serie
incluida en la rebanada 20, inmediatamente después del último
macrobloque codificado de la misma, es decir, después del
macrobloque 18c. La palabra clave 24 define el final de la rebanada
20, y tiene un índice que indica el número de macrobloques no
codificados u omitidos que siguen al último macrobloque codificado
de la rebanada 20, antes de la rebanada siguiente. La palabra clave
24, que no necesita ser de más de unos pocos bits, indica, por
tanto, al descodificador que los seis macrobloques omitidos
18d-18i siguen al macrobloque codificado 18c dentro
de la rebanada 20. De acuerdo con esto, la información relativa a
los macrobloques omitidos llegará al descodificador aunque la
rebanada siguiente, la rebanada 22, se pierda en la transmisión.
Esta robustez frente a los errores se proporciona con un coste de
sobrecarga reducido, puesto que la palabra clave 24 no necesita ser
de más de unos pocos bits de longitud. Así, se ve que una
realización de la invención permite que los tamaños de las
rebanadas respectivas se adapten fácilmente para casar con los
tamaños de los paquetes de IP. Esto es especialmente útil en
aplicaciones inalámbricas en las que los paquetes son relativamente
pequeños. Al mismo tiempo, la compresión de macrobloques omitidos en
el final de una rebanada es muy resistente a errores.
Aunque no se muestra, cada rebanada comprimida o
grupo incluye una cabecera o un código de inicio.
En una realización de la invención, la palabra
clave 24 por longitud de serie podría comprender una palabra clave
asociada con una de las direcciones del macrobloque mostradas en la
figura 1. En esta realización, los macrobloques codificados son
dirigidos usando una codificación por longitud de serie de los
macrobloques omitidos precedentes, similar a la dirección de los
GOB de H.261, como se ha descrito anteriormente. Sin embargo, la
palabra clave 24, en vez de dirigir un macrobloque codificado,
señalaría el número de macrobloques omitidos entre el último
macrobloque codificado y el final de la rebanada. Para dar cuenta de
la aparición de cero bloques omitidos, el número seleccionado de la
figura 1 sería igual al número de bloques omitidos más uno. Así,
para indicar seis bloques omitidos 18d-18i, el
número 7 sería seleccionado de la figura 1, y la palabra clave 24
sería, por lo tanto, 00010. Puesto que la figura 1 describe,
solamente, 33 direcciones, se podría utilizar una palabra clave de
escape para indicar un incremento adicional de 33 macrobloques
omitidos, de manera análoga a los estándares de
MPEG-1 y MPEG-2 descritos más
arriba.
En una segunda realización de la invención, la
palabra clave 24 por longitud de serie puede ser generada a partir
de un código infinito de longitud variable. Un código de este tipo
eliminaría la necesidad de palabra clave de escape descrita más
arriba. Un código infinito de longitud variable muy útil está
ilustrado en la figura 5. En notación taquigráfica, las palabras
clave de código infinito se generan según el patrón siguiente: 1;
0x1; 0x0x1; 0x0x0x1; 0x0x0x0x1..., donde cada x puede ser 0 o 1.
\newpage
La figura 5 muestra, además, un símbolo,
denominado SKIPRUN, que es un único símbolo que representa la
codificación por longitud de serie de bloques omitidos
consecutivos. Por tanto, para los seis macrobloques omitidos
18d-18i mostrados en la figura 3, SKIPRUN sería 6 y
la palabra clave 24 por longitud de serie, a partir de la figura 5,
sería 01011. En esta realización, SKIPRUN se transmite, siempre, al
principio y al final de un grupo de rebanadas y, también, se
introduce entre dos macrobloques codificados adyacentes
cualesquiera, para indicar el número de macrobloques omitidos entre
ellos.
En una modificación de la invención, la palabra
clave 24 por longitud de serie no se utiliza para señalar cero
macrobloques omitidos, en el caso de que no haya ningún macrobloque
omitido que siga al último macrobloque codificado, antes del final
de la rebanada. En esta modificación, el descodificador reconocería,
simplemente, que la ausencia de la palabra clave por longitud de
serie entre rebanadas indicaba cero macrobloques omitidos entre
ellas. Por consiguiente, las disposiciones de codificación mostradas
en las figuras 1 y 5 podrían ser modificadas. Por este motivo, los
seis macrobloques omitidos 18d-18i, en la
disposición de la figura 1, serían indicados mediante la palabra
clave 00011. En la disposición de la figura 5, los seis macrobloques
omitidos estarían representados por la palabra clave 01001.
Haciendo referencia a la figura 6, en ella se
muestra otra modificación, en la que se solapan las rebanadas 20 y
22. Esto se consigue terminando la primera rebanada 20 en el límite
C, y comenzando la segunda rebanada 22 en el límite B, según se
muestra, respectivamente, en la figura 3. Consecuentemente, la
rebanada 20 termina con la palabra clave 24 por longitud de serie
como se describe más arriba, para indicar los seis macrobloques
omitidos 18d-18i. Además, la rebanada 22 está
provista de una palabra clave 26 para indicar los seis macrobloques
18d-18i precedentes. De esta manera, la información
relativa a los macrobloques omitidos 18d-18i será
recibida siempre y cuando se reciba una de las rebanadas 20 o 22,
aunque se pierda la otra. Aunque no se muestran, se podría permitir
que las rebanadas 20 y 22 solapasen con otros tipos de macrobloques,
además de macrobloques omitidos.
En una modificación adicional, la sintaxis se
podría definir con el fin de permitir las rebanadas que contengan,
solamente, macrobloques no codificados u omitidos. Una rebanada como
tal podría estar indicada mediante una única palabra clave por
longitud de serie, que cubriera toda la rebanada y que no contuviera
ningún dato de macrobloque.
Haciendo referencia a la figura 7, en ella se
muestra una fuente 28 de información de vídeo tal como una cámara
de vídeo. La información de vídeo está acoplada a un codificador de
vídeo 30, que comprime tramas sucesivas de datos de acuerdo con una
realización de la invención, según se ha descrito en este documento.
Una corriente de bits que comprende los datos comprimidos se
transmite a través de un canal de comunicaciones, que puede ser un
canal de comunicaciones inalámbrico, desde un transmisor 32 a un
receptor 34. Los datos recibidos se aplican a un descodificador 36
para recuperar la información de vídeo. En su funcionamiento, el
descodificador copia los píxeles que corresponden a macrobloques
omitidos desde un cuadro recibido previamente.
Obviamente, a la luz de las enseñanzas
anteriores, son posibles muchas otras modificaciones y variaciones
de la presente invención. Debe entenderse, por lo tanto, que, dentro
del alcance del concepto descrito, la invención puede ejecutarse de
manera diferente a como ha sido descrita específicamente.
Claims (11)
1. Un método para comprimir una trama de datos
de vídeo que comprende las operaciones de:
dividir dicha trama en un número de macrobloques
que comprende macrobloques codificados (18a-18c;
18j-18k) y macrobloques no codificados
(18d-18i);
agrupar, consecutivamente, dichos macrobloques
en una secuencia de rebanadas de longitud variable (20, 22), en las
que las rebanadas de longitud variable terminan después de un último
macrobloque no codificado;
determinar el número de macrobloques no
codificados en una rebanada particular de longitud variable situada
entre el macrobloque final codificado de la rebanada particular y el
final de dicha rebanada particular; cuyo método comprende las
operaciones adicionales de:
agrupar los macrobloques no codificados,
codificar los macrobloques no codificados
agrupados como una palabra clave por longitud de serie (24), e
insertar la palabra clave por longitud de serie (24) después del
macrobloque codificado final en la particular de dichas rebanadas
de longitud variable para indicar el número determinado de
macrobloques no codificados en dicha rebanada particular.
2. El método de la reivindicación 1 en el
que:
se permite que dichas rebanadas de longitud
variable (20, 22) comiencen y terminen, respectivamente, en
posiciones arbitrarias dentro de dicha trama.
3. El método de la reivindicación 1 en el
que:
cada una de dichas rebanadas (20, 22) contiene
datos dispuestos para la transmisión por medio de un paquete de
datos correspondiente, estando cada rebanada dimensionada de modo
que sus datos contenidos llenen óptimamente su paquete
correspondiente.
4. El método de la reivindicación 1 en el
que:
una de dichas rebanadas comprende una primera
rebanada (20) que tiene una palabra clave insertada que indica que
un número especificado de macrobloques no codificados sigue la
palabra clave final de dicha primera rebanada; y
una palabra clave por longitud de serie (24)
adicional, que indica, asimismo, dicho número especificado de
macrobloques no codificados al final de dicha primera rebanada, está
insertada al principio de una segunda rebanada (22) que sigue,
inmediatamente, a dicha primera rebanada en dicha secuencia.
5. El método de la reivindicación 1 en el
que:
a los macrobloques codificados en una rebanada
se accede mediante un código por longitud de serie que indica el
número de macrobloques no codificados que precede a los respectivos
macrobloques codificados.
6. El método de la reivindicación 1 en el
que:
cada una de dichas rebanadas comprende un código
de inicio, una cabecera y datos para los macrobloques codificados
incluidos en ella.
7. El método de la reivindicación 1 en el
que:
dicha palabra clave por longitud de serie
comprende un número pequeño de bits digitales.
8. El método de la reivindicación 1 en el
que:
los macrobloques no codificados consecutivos de
una rebanada (20, 22) son codificados juntos como un único símbolo,
estando situado uno de dichos símbolos entre cada par de
macrobloques codificados consecutivos de una rebanada para indicar
el número de macrobloques no codificados entre ellos como la palabra
clave por longitud de serie, y estando situado uno de dichos
símbolos, adicionalmente, en el principio de una próxima rebanada
de longitud variable que indica el número de macrobloques no
codificados que preceden a la siguiente rebanada de longitud
variable.
9. El método de la reivindicación 1 en el
que:
dicha palabra clave por longitud de serie (24)
se genera a partir de una disposición de codificación de longitud
variable infinita.
10. El método de la reivindicación 1 en el
que:
la ausencia de una palabra clave por longitud de
serie al final de una rebanada dada se emplea para indicar que
ningún macrobloque no codificado sigue a la rebanada dada en dicha
secuencia, antes de la rebanada siguiente en aquélla.
11. El método de la reivindicación 1 en el
que:
cada uno de dichos macrobloques (18) tiene una
resolución de luminancia de 16 x 16 píxeles.
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US27751501P | 2001-03-20 | 2001-03-20 | |
| US277515P | 2001-03-20 | ||
| US10/066,027 US6859500B2 (en) | 2001-03-20 | 2002-01-30 | Run-length coding of non-coded macroblocks |
| US66027 | 2002-01-30 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2291445T3 true ES2291445T3 (es) | 2008-03-01 |
Family
ID=26746285
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES02708900T Expired - Lifetime ES2291445T3 (es) | 2001-03-20 | 2002-03-20 | Codificacion por longitud de serie de macrobloques no codificados. |
Country Status (9)
| Country | Link |
|---|---|
| US (1) | US6859500B2 (es) |
| EP (1) | EP1371230B1 (es) |
| JP (1) | JP4050150B2 (es) |
| KR (1) | KR100909328B1 (es) |
| CN (1) | CN1224269C (es) |
| AT (1) | ATE370615T1 (es) |
| DE (1) | DE60221807T2 (es) |
| ES (1) | ES2291445T3 (es) |
| WO (1) | WO2002076104A2 (es) |
Families Citing this family (15)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2005506775A (ja) * | 2001-10-16 | 2005-03-03 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | ビデオ符号化方法及び対応する送信可能なビデオ信号 |
| US7519115B2 (en) * | 2003-03-31 | 2009-04-14 | Duma Video, Inc. | Video compression method and apparatus |
| CN1332563C (zh) * | 2003-12-31 | 2007-08-15 | 中国科学院计算技术研究所 | 一种视频图像跳过宏块的编码方法 |
| US20050259623A1 (en) * | 2004-05-13 | 2005-11-24 | Harinath Garudadri | Delivery of information over a communication channel |
| KR100681242B1 (ko) * | 2004-12-16 | 2007-02-09 | 삼성전자주식회사 | 동영상 복호화 방법, 동영상 복호화 장치 및 이를 가지는시스템 온 칩 시스템 |
| CN100399828C (zh) * | 2005-02-02 | 2008-07-02 | 腾讯科技(深圳)有限公司 | 一种视频数据的编码方法 |
| KR100736096B1 (ko) * | 2005-12-12 | 2007-07-06 | 삼성전자주식회사 | 비디오 신호를 그룹별로 인코딩 및 디코딩하는 방법 및장치 |
| KR101366241B1 (ko) * | 2007-03-28 | 2014-02-21 | 삼성전자주식회사 | 영상 부호화, 복호화 방법 및 장치 |
| US8189676B2 (en) * | 2007-04-05 | 2012-05-29 | Hong Kong University Of Science & Technology | Advance macro-block entropy coding for advanced video standards |
| WO2009136681A1 (en) * | 2008-05-08 | 2009-11-12 | Lg Electronics Inc. | Method for encoding and decoding image, and apparatus for displaying image |
| CN101998141B (zh) * | 2008-06-19 | 2013-06-05 | 华为技术有限公司 | 视频数据的打包、编解码方法及装置及系统 |
| US8817331B2 (en) * | 2010-02-11 | 2014-08-26 | Ricoh Production Print Solutions LLC | Transcoding run length limited datastreams for object level halftoning |
| CN102577412B (zh) * | 2010-03-04 | 2014-12-10 | 北京视博云科技有限公司 | 一种图像编码方法和装置 |
| US20130083852A1 (en) * | 2011-09-30 | 2013-04-04 | Broadcom Corporation | Two-dimensional motion compensation filter operation and processing |
| KR102430173B1 (ko) | 2015-11-24 | 2022-08-05 | 삼성전자주식회사 | 디스플레이 장치 |
Family Cites Families (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH05292331A (ja) * | 1992-03-30 | 1993-11-05 | Internatl Business Mach Corp <Ibm> | ラン・レングス・コードのデコード方法、ビデオ・コントローラ、及びデータ処理システム |
| US5552832A (en) * | 1994-10-26 | 1996-09-03 | Intel Corporation | Run-length encoding sequence for video signals |
| US5903313A (en) | 1995-04-18 | 1999-05-11 | Advanced Micro Devices, Inc. | Method and apparatus for adaptively performing motion compensation in a video processing apparatus |
| US5768536A (en) * | 1995-10-26 | 1998-06-16 | Advanced Micro Devices, Inc. | Generation of a secondary video bitstream from a compressed video bitstream to enhance playback performance |
| JP3743837B2 (ja) * | 1996-06-14 | 2006-02-08 | 株式会社大宇エレクトロニクス | ランレングス符号器 |
| JPH1051642A (ja) * | 1996-07-31 | 1998-02-20 | Fuji Xerox Co Ltd | 画像処理装置 |
| US6304607B1 (en) * | 1997-03-18 | 2001-10-16 | Texas Instruments Incorporated | Error resilient video coding using reversible variable length codes (RVLCS) |
| KR100252108B1 (ko) * | 1997-12-20 | 2000-04-15 | 윤종용 | Mpeg 압축부호화 및 복호화기를 채용한 디지털 기록 재생장치 및 그 방법 |
| JP2000032393A (ja) * | 1998-07-09 | 2000-01-28 | Sony Corp | 画像情報処理装置および方法、並びに提供媒体 |
| EP0982950A3 (en) * | 1998-08-24 | 2004-09-29 | Sony Corporation | Electronic video camera comprising an MPEG encoder |
| US6940912B2 (en) * | 2000-04-21 | 2005-09-06 | Microsoft Corporation | Dynamically adaptive multimedia application program interface and related methods |
| US6801668B2 (en) * | 2000-12-20 | 2004-10-05 | Telefonaktiebolaget Lm Ericsson (Publ) | Method of compressing data by use of self-prefixed universal variable length code |
-
2002
- 2002-01-30 US US10/066,027 patent/US6859500B2/en not_active Expired - Lifetime
- 2002-03-20 AT AT02708900T patent/ATE370615T1/de active
- 2002-03-20 EP EP02708900A patent/EP1371230B1/en not_active Expired - Lifetime
- 2002-03-20 DE DE60221807T patent/DE60221807T2/de not_active Expired - Lifetime
- 2002-03-20 WO PCT/SE2002/000553 patent/WO2002076104A2/en not_active Ceased
- 2002-03-20 CN CNB028067592A patent/CN1224269C/zh not_active Expired - Lifetime
- 2002-03-20 ES ES02708900T patent/ES2291445T3/es not_active Expired - Lifetime
- 2002-03-20 KR KR1020037011587A patent/KR100909328B1/ko not_active Expired - Lifetime
- 2002-03-20 JP JP2002573442A patent/JP4050150B2/ja not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| US6859500B2 (en) | 2005-02-22 |
| KR20030090658A (ko) | 2003-11-28 |
| US20020136306A1 (en) | 2002-09-26 |
| DE60221807D1 (de) | 2007-09-27 |
| WO2002076104A3 (en) | 2002-12-19 |
| EP1371230A2 (en) | 2003-12-17 |
| CN1498503A (zh) | 2004-05-19 |
| EP1371230B1 (en) | 2007-08-15 |
| AU2002243161B2 (en) | 2006-12-21 |
| KR100909328B1 (ko) | 2009-07-24 |
| JP2004523181A (ja) | 2004-07-29 |
| WO2002076104A2 (en) | 2002-09-26 |
| JP4050150B2 (ja) | 2008-02-20 |
| DE60221807T2 (de) | 2008-05-15 |
| CN1224269C (zh) | 2005-10-19 |
| ATE370615T1 (de) | 2007-09-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2291445T3 (es) | Codificacion por longitud de serie de macrobloques no codificados. | |
| ES2983276T3 (es) | Recorte de filtro de interpolación para vectores de movimiento de subimagen | |
| ES2767933T3 (es) | Capa de sectores en códec de vídeo | |
| ES2899642T3 (es) | Procesamiento en paralelo de mosaicos y de frente de onda | |
| KR101710243B1 (ko) | 비디오 코딩을 위한 타일들의 그룹화 | |
| ES2347537T3 (es) | Codificacion de video en primer plano y de fondo; en el que la imagen se divide en porciones. | |
| US10448058B2 (en) | Grouping palette index at the end and index coding using palette size and run value | |
| ES2937793T3 (es) | Codificación de imagen con bajo retardo | |
| ES2656470T3 (es) | Mejora de los diseños de formato de la carga útil de RTP | |
| ES2707892T3 (es) | Operaciones de almacenamiento en memoria intermedia de vídeo para acceso aleatorio en la codificación de vídeo | |
| US6696993B2 (en) | Variable length coding | |
| ES2892964T3 (es) | Inicialización de predictor de paleta y fusión para codificación de vídeo | |
| DK3020198T3 (en) | PALETTE PREVIEW IN PALET-BASED VIDEO CODING | |
| ES2770664T3 (es) | Restricción en el tamaño de bloque de paleta en la codificación de vídeo | |
| US20020057898A1 (en) | Method and apparatus for trick play of bitstream data | |
| JP2006510308A (ja) | 映像データストリームを暗号化する方法及び装置 | |
| NO339116B1 (no) | System og fremgangsmåte for å skjule videofeil | |
| ES2990015T3 (es) | Restricción de memoria para conjuntos de parámetros de adaptación para codificación de vídeo | |
| US20160227254A1 (en) | Coding palette run in palette-based video coding | |
| ES2255797A1 (es) | Prediccion selectiva para intracodificar un bloque de datos de video. | |
| JP2004523181A5 (es) | ||
| US20250159156A1 (en) | Systems and methods for block partitioning and interleaved coding order for multiview video coding | |
| AU2002243161B9 (en) | Run-length coding of non-coded macroblocks | |
| Mazataud | Error Concealment for H. 264 Video Transmission | |
| AU2002243161A1 (en) | Run-length coding of non-coded macroblocks |