ES2291445T3 - Codificacion por longitud de serie de macrobloques no codificados. - Google Patents

Codificacion por longitud de serie de macrobloques no codificados. Download PDF

Info

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
Application number
ES02708900T
Other languages
English (en)
Inventor
Per Frojdh
Torbjorn Einarsson
Rickard Sjoberg
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Application granted granted Critical
Publication of ES2291445T3 publication Critical patent/ES2291445T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/65Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

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.
Campo técnico
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.
Antecedentes de la invención
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.
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
Compendio de la invención
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
Breve descripción de los dibujos
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.
Descripción detallada de una realización ilustrativa
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.
ES02708900T 2001-03-20 2002-03-20 Codificacion por longitud de serie de macrobloques no codificados. Expired - Lifetime ES2291445T3 (es)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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