ES2336039T3 - Procedimiento y aparato para determinar un procedimiento de codificacion en base a un valor de distorsion relacionado con el ocultamiento de errores. - Google Patents
Procedimiento y aparato para determinar un procedimiento de codificacion en base a un valor de distorsion relacionado con el ocultamiento de errores. Download PDFInfo
- Publication number
- ES2336039T3 ES2336039T3 ES07710232T ES07710232T ES2336039T3 ES 2336039 T3 ES2336039 T3 ES 2336039T3 ES 07710232 T ES07710232 T ES 07710232T ES 07710232 T ES07710232 T ES 07710232T ES 2336039 T3 ES2336039 T3 ES 2336039T3
- Authority
- ES
- Spain
- Prior art keywords
- coding
- quad
- distortion
- concealment
- procedure
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 169
- 230000033001 locomotion Effects 0.000 claims abstract description 42
- 230000000694 effects Effects 0.000 claims abstract description 16
- 239000013598 vector Substances 0.000 description 17
- 230000001186 cumulative effect Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 230000006835 compression Effects 0.000 description 8
- 238000007906 compression Methods 0.000 description 8
- 238000011084 recovery Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 5
- 230000006872 improvement Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 3
- 230000000875 corresponding effect Effects 0.000 description 3
- 238000006731 degradation reaction Methods 0.000 description 3
- 230000002123 temporal effect Effects 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 241000023320 Luma <angiosperm> Species 0.000 description 1
- 206010053615 Thermal burn Diseases 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000012800 visualization Methods 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/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
- H04N19/89—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder
- H04N19/895—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder in combination with error concealment
-
- 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/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
-
- 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/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
-
- 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/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
- H04N19/147—Data rate or code amount at the encoder output according to rate distortion criteria
-
- 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/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/164—Feedback from the receiver or from the transmission channel
- H04N19/166—Feedback from the receiver or from the transmission channel concerning the amount of transmission errors, e.g. bit error rate [BER]
-
- 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/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/167—Position within a video image, e.g. region of interest [ROI]
-
- 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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/189—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
- H04N19/196—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Procedimiento de codificación de datos multimedia que comprende: la estimación de un valor de distorsión para una primera parte de datos multimedia en base, en parte, a por lo menos uno o más procedimientos de ocultamiento relacionados con el ocultamiento de la primera parte si la primera parte fuese recibida erróneamente (402); y la determinación de un procedimiento de codificación para la primera parte en base, en parte, a por lo menos una comparación del valor de distorsión estimado y un umbral; caracterizado porque: el umbral varía en función de uno o más factores seleccionados de una lista de factores (404), la lista de factores incluyendo: una ubicación de la primera parte en una trama que contiene la primera parte, una textura de un área de la trama que contiene la primera parte, una posición de la trama que contiene la primera parte dentro de un grupo de imágenes que contienen la trama, una distribución de valores de distorsión en la trama que contiene la primera parte, y una actividad de movimiento del área de la trama que contiene la primera parte.
Description
Procedimiento y aparato para determinar un
procedimiento de codificación en base a un valor de distorsión
relacionado con el ocultamiento de errores.
Esta solicitud se refiere al procesamiento de
señal multimedia y, más concretamente, a la codificación de
vídeo.
Los sistemas de procesamiento multimedia, como
los codificadores de vídeo, pueden codificar datos multimedia
utilizando procedimientos de codificación basados en estándares
internacionales como los estándares Grupo de Expertos en Imágenes
en Movimiento (MPEG)-1, -2 y -4, el estándar Unión
Internacional de Telecomunicaciones (ITU)-T H.263,
e ITU-T H.264 y su homólogo ISO/IEC
MPEG-4, Parte 10, es decir, Codificación de vídeo
Avanzada (AVC). Tales procedimientos de codificación por lo general
se refieren a la compresión de datos multimedia para la transmisión
y/o almacenamiento. La compresión es en términos generales el
proceso de eliminación de la redundancia de los datos.
Una señal de vídeo puede describirse en términos
de una secuencia de imágenes, que incluyen tramas (una imagen
completa) o campos (p. ej., un flujo de vídeo entrelazado comprende
campos de líneas pares e impares alternantes de una imagen). Tal y
como se utiliza en la presente memoria, la expresión "trama" se
refiere a una imagen, una trama o un campo. Los procedimientos de
codificación de vídeo comprimen señales de vídeo utilizando
algoritmos de compresión sin pérdida o con pérdida para comprimir
cada trama. La codificación "intra-frame"
(denominada intra-codificación en la presente
memoria) se refiere a la codificación de una trama utilizando
únicamente dicha trama. La codificación
"inter-frame" (denominada
inter-codificación en la presente memoria) se
refiere a la codificación de una trama en base a otras, tramas de
"referencia". Por ejemplo, las señales de vídeo muchas veces
presentan una redundancia temporal en la que las tramas que son
cercanas entre sí en la secuencia temporal de tramas tienen por lo
menos partes que coinciden o por lo menos coinciden parcialmente
entre sí.
Los procesadores multimedia, como los
codificadores de vídeo, pueden codificar una trama partiéndola en
bloques o "macrobloques" de, por ejemplo, 16x16 píxeles. El
codificador puede partir adicionalmente cada macrobloque en
subbloques. Cada subbloque puede comprender adicionalmente
subbloques adicionales. Por ejemplo, los subbloques o un
macrobloque pueden incluir subbloques de 16x8 y 8x16. Los subbloques
de los subbloques de 8x16 pueden incluir subbloques de 8x8, y así
sucesivamente. Tal y como se utiliza en la presente memoria, el
término "bloque" se refiere a un macrobloque o a un
subbloque.
Los codificadores toman ventaja de esta
redundancia temporal utilizando algoritmos basados en la
compensación de movimiento por inter-codificación.
Los algoritmos de compensación de movimiento identifican partes de
una trama de referencia que coinciden por lo menos parcialmente con
un bloque. El bloque puede desplazarse en la trama con respecto a
la parte coincidente de la trama de referencia. Este desplazamiento
se caracteriza por un vector de movimiento. Cualquier diferencia
entre el bloque y la parte parcialmente coincidente de la trama de
referencia puede caracterizarse en términos de un residual. El
codificador puede codificar una trama como datos que comprenden uno
o más vectores de movimiento y residuales para una partición
particular de una trama. Una partición particular de un bloque para
la codificación de una trama puede seleccionarse minimizando
aproximadamente una función de coste que, por ejemplo, equilibra el
tamaño de la codificación con la distorsión del contenido
resultante de la codificación.
La inter-codificación permite
una compresión más eficaz que la intra-codificación.
Sin embargo, la inter-codificación puede crear
problemas cuando los datos de referencia (p. ej., las tramas de
referencia o los campos de referencia) se pierden debido a errores
en el canal, etc. En estos casos, puede no resultar posible la
decodificación de los datos inter-codificados o
puede resultar en errores no deseados y en la propagación de
errores. Los decodificadores pueden emplear esquemas de
ocultamiento que tratan de ocultar o tapar datos erróneos con datos
derivados de los bloques vecinos o de datos en otras tramas. La
mejoría de los algoritmos de ocultamiento puede proporcionar alguna
mejoría en la calidad de las partes ocultas de los datos de vídeo
erróneos. Sin embargo, hay un límite en la calidad que mostrará la
imagen oculta debido a la fuerte dependencia de los algoritmos de
ocultamiento de la información espacio-temporal. Los
datos ocultos no pueden ser de alta calidad y la experiencia de
visualización puede verse degradada. Además, la decodificación de la
señal puede volverse imposible y puede requerirse la
resincronización. La propagación de errores puede ser limitada, y
puede permitirse la resincronización (o la adquisición inicial),
mediante procedimientos de codificación que refrescan la señal de
vídeo. Una señal de vídeo refrescada puede decodificarse sin
referencia a o conocimiento de otras tramas.
Una trama intra-codificada
independientemente decodificable es la forma más común de trama que
permite el refresco de la señal de vídeo. Los estándares
MPEG-x y H.26x utilizan lo que se conoce como grupo
de imágenes (GOP) que comprende una trama
intra-codificada (también denominada trama I) y
tramas P temporalmente predichas o tramas B bidirecccionalmente
predichas que hacen referencia a la trama I y/o a otras tramas P y/o
B dentro del GOP. Son deseables GOP-s más largos
para una mayor compresión, pero GOP-s más cortos
permiten una adquisición y una resincronización más rápidas.
Aumentar el número de tramas I refrescará la señal de vídeo con
mayor frecuencia, limitando así adicionalmente la propagación de
errores y proporcionando una adquisición y una resincronización más
rápidas, pero a costa de una menor compresión. Lo que se necesita es
una forma de codificar datos de vídeo que limite la propagación de
errores del flujo de vídeo en el decodificador al tiempo que se
preserva la eficacia de la compresión.
COTE G ET AL: "Optimal Mode Selection
and Synchronization for Robust Video Communications over
Error-Prone Networks" de la revista de la IEEE
JOURNAL ON SELECTED AREAS IN COMMUNICATIONS, IEEE SERVICE CENTER,
PISCATAWAY, EEUU, vol. 18, nº 6, junio de 2000
(2000-06), XP011055134 ISSN:
0733-8716, se refiere a una selección y
sincronización de modo óptimo.
RUI ZHANG ET AL: "Video Coding with
Optimal Inter/Intra-Mode Switching for Packet Loss
Resilience" de la revista IEEE JOURNAL ON SELECTED AREAS IN
COMMUNICATIONS, IEEE SERVICE CENTER, PISCATAWAY, EEUU, vol. 18, nº
6, junio 2000 (2000-06), páginas
966-976, XP011055155 ISSN: 0733-8716
se refiere a una codificación de vídeo con conmutación
inter/intra-modo óptima.
US 6,574,277 se refiere a un aparato y a un
procedimiento de codificación de imágenes en movimiento. Se calcula
la distancia desde un pequeño bloque a un patrón de sincronización
insertado en los datos codificados para cada bloque pequeño en una
trama de imágenes. En base al conteo, una unidad de estimación de
probabilidad de pérdida de datos estima la probabilidad de que los
datos codificados de un bloque pequeño diana se pierdan durante la
transmisión. En lo que respecta a un bloque pequeño en el que se ha
realizado una codificación predictiva
"inter-frame", una unidad de estimación de la
degradación de la calidad de la imagen estima al grado de
degradación de la calidad de la imagen que se producirá en este
bloque pequeño en la imagen decodificada. La prioridad de refresco
forzada de cada bloque pequeño se calcula comparando la probabilidad
de pérdida de datos estimada y el grado de degradación de la
calidad de la imagen estimada con valores umbrales, y los valores
de prioridad son almacenados en forma de un mapa de refresco
forzado.
Por último, COTE G ET AL: "Optimal
intra coding of blocks for robust video communication over the
Internet" SIGNAL PROCESSING. IMAGE COMMUNICATION, ELSEVIER
SCIENCE PUBLISHERS, AMSTERDAM, PAISES BAJOS, vol. 15, nº
1-2, septiembre 1999 (1999-09),
páginas 25-34, XP004180636 ISSN:
0923-5965 se refiere a la
intra-codificación óptima de bloques.
La invención se define en las reivindicaciones
independientes 1 y 9.
El sistema, procedimiento y dispositivos de la
solicitud presentan cada uno varios aspectos, ninguno de los cuales
es responsable único de sus atributos deseables. Sin limitar el
alcance de esta solicitud según se expresa mediante las
reivindicaciones que siguen, a continuación se analizarán brevemente
sus características más prominentes. Tras considerar este análisis,
y en particular tras leer la sección titulada "Descripción
Detallada de Algunas Formas de Realización", uno entenderá cómo
las características de muestra de esta solicitud pueden
proporcionar algunas mejoras que incluyen, entre otros, por ejemplo,
una mejor calidad de vídeo decodificado, una mejor recuperación de
errores y/o una eficacia mejorada.
Se proporciona un procedimiento de codificación
de datos multimedia. El procedimiento incluye la estimación de uno
o más valores de distorsión para una o más partes de los datos
multimedia basados por lo menos en parte en uno o más
procedimientos de ocultamiento relacionados con el ocultamiento de
una o más partes si la una o más partes fuesen recibidas
erróneamente, y la determinación de por lo menos un procedimiento de
codificación para la primera parte en base en parte a por lo menos
el uno o más valores de distorsión estimados.
Se proporciona un procesador de datos
multimedia. El procesador se configura para estimar uno o más
valores de distorsión para una o más partes de los datos multimedia
en base a por lo menos en parte uno o más procedimientos de
ocultamiento relacionados con el ocultamiento de una o más partes si
la una o más partes fuesen recibidas erróneamente, y determinar por
lo menos un procedimiento de codificación para la una o más partes
en base, en parte, a por lo menos uno o más valores de distorsión
estimados.
Se proporciona un aparato para la codificación
de datos multimedia. El aparato incluye un estimador para estimar
uno o más valores de distorsión para una o más partes de datos
multimedia en base a por lo menos en parte uno o más procedimientos
de ocultamiento relacionados con el ocultamiento de la una o más
partes si la una o más partes fuesen recibidas erróneamente, y un
determinador para determinar por lo menos un procedimiento de
codificación para la una o más partes en base, en parte, a por lo
menos el valor de distorsión estimado.
Se proporciona un medio legible por máquina que
comprende instrucciones que al ejecutarlas hacen que una máquina
codifique datos multimedia. Las instrucciones hacen que la máquina
estime uno o más valores de distorsión para una o más partes de los
datos multimedia en base a por lo menos uno o más procedimientos de
ocultamiento relacionados con el ocultamiento de una o más partes
si la una o más partes fuesen recibidas erróneamente, y determinar
por lo menos un procedimiento de codificación para la primera parte
en base a por lo menos en parte el valor de distorsión
estimado.
La Fig. 1 es un diagrama de bloques que ilustra
un sistema de comunicación multimedia según un aspecto.
La Fig. 2 es un diagrama de bloques que ilustra
una forma de realización de un dispositivo codificador que puede
utilizarse en un sistema como el ilustrado en la Fig. 1.
La Fig. 3 es un diagrama de bloques que ilustra
una forma de realización de un dispositivo decodificador que puede
utilizarse en un sistema como el ilustrado en la Fig. 1.
La Fig. 4A es un diagrama de flujo que ilustra
un ejemplo de un procedimiento de codificación de una parte de un
flujo de vídeo en un sistema como el ilustrado en la Fig. 1.
La Fig. 4B es un diagrama de flujo que ilustra
en mayor detalle un ejemplo de un procedimiento de codificación de
una parte de un flujo de vídeo en un sistema como el ilustrado en la
Fig. 1.
La Fig. 5 ilustra gráficamente un mapa de
distorsión que puede generarse mediante los procedimientos de las
FIGS. 4A y 4B.
La Fig. 6 ilustra gráficamente regiones de
predicción utilizados para estimar una parte de vídeo como se
utiliza en los procedimientos de predicción por compensación de
movimiento.
La Fig. 7 es un diagrama de bloques funcional
que ilustra una forma de realización de un dispositivo codificador
que puede utilizarse en un sistema como el ilustrado en la Fig.
1.
La Fig. 8 es un diagrama de bloques funcional
que ilustra una forma de realización de un dispositivo codificador
que puede utilizarse en un sistema como el ilustrado en la Fig.
1.
La siguiente descripción detallada se refiere a
algunas formas de realización de muestra de la solicitud. Sin
embargo, la solicitud puede realizase de múltiples maneras
diferentes como definen y abarcan las reivindicaciones. En esta
descripción, se hace referencia a los dibujos en los que partes
similares se indican con números de referencia similares en todo el
documento.
Las señales de vídeo pueden caracterizarse en
términos de una serie de imágenes, tramas, campos o partes. Tal y
como se utiliza en la presente memoria, el término "trama" es
un término general que puede abarcar tramas de una señal de vídeo
progresiva, campos de una señal de vídeo entrelazada, o partes de
cualquiera de ellas.
Las formas de realización incluyen unos sistemas
y procedimiento de mejora del procesamiento en un codificador en un
sistema de transmisión multimedia. Los datos multimedia pueden
incluir uno o más de vídeo en movimiento, audio, imágenes fijas, o
cualquier otro tipo adecuado de datos audiovisuales. Las formas de
realización incluyen un aparato y un procedimiento de codificación
de datos de vídeo. Por ejemplo, un aspecto comprende un
procedimiento de codificación de datos de vídeo que limita los
efectos de la propagación de errores y mejora el rendimiento del
ocultamiento de errores durante la decodificación. En particular, se
ha descubierto que estimando un valor de distorsión para una parte
de datos multimedia en base a uno o más procedimientos de
ocultamiento que pueden utilizarse para ocultar la parte de datos
multimedia si la parte fuese recibida erróneamente, y determinando
un procedimiento de codificación para la parte de datos multimedia
en base al valor de distorsión estimado, podrían mejorarse la
calidad del vídeo decodificado, la capacidad de recuperación de
errores y/o la eficacia de la decodificación.
Fig. 1 es un diagrama de bloques que ilustra un
sistema de comunicación multimedia 100 según un aspecto. El sistema
100 incluye un dispositivo codificador 110 en comunicación con un
dispositivo decodificador 150 a través de una red 140. En un
ejemplo, el dispositivo codificador recibe una señal multimedia
desde una fuente externa 102 y codifica esa señal para la
transmisión en la red 140.
En este ejemplo, el dispositivo 110 comprende un
procesador 112 acoplado a una memoria 114 y un transceptor 116. El
procesador 112 puede incluir uno o más de un procesador de propósito
general y/o un procesador digital de señal. La memoria 114 puede
incluir uno o más de un almacenamiento basados en estado sólido y/o
en disco. El procesador 112 codifica datos de una fuente de datos
multimedia y proporciona los mismos al transceptor 116 para la
comunicación a través de la red 140.
En este ejemplo, el dispositivo decodificador
150 comprende un procesador 152 acoplado a una memoria 154 y un
transceptor 156. El procesador 152 puede incluir uno o más de un
procesador de propósito general y/o un procesador digital de señal.
La memoria 154 puede incluir uno o más de un almacenamiento basado
en estado sólido y/o en disco. El transceptor 156 se configura para
recibir datos multimedia en una red 140 y proporcionar los mismos
al procesador 152 para la decodificación. En un ejemplo, el
transceptor 156 incluye un transceptor inalámbrico. La red 140
puede comprender uno o más de un sistema de comunicación por cable o
inalámbrico, incluyendo uno o más de sistemas Ethernet, teléfono
(p. ej., POTS), cable, línea eléctrica, y fibra óptica, y/o un
sistema inalámbrico que comprende uno o más sistemas de comunicación
de acceso múltiple por división de código (CDMA o CDMA2000), un
sistema de acceso múltiple por división de frecuencia (FDMA), un
sistema de acceso múltiple por división de frecuencia ortogonal
(OFDM), un sistema de acceso múltiple por división de tiempo (TDMA)
como GSM/GPRS (Servicio General de Paquetes Vía Radio)/EDGE (entorno
GSM para datos mejorados), un sistema de telefonía móvil TETRA
(Radio Troncal Terrestre), un sistema de acceso múltiple por
división de código de banda ancha (WCDMA), un sistema de alta tasa
de datos (1xEV-DO o 1xEV-DO Gold
Multicast), un sistema IEEE 802.11, un sistema MediaFLO, un sistema
DMB, o un sistema DVB-H.
La Fig. 2 es un diagrama de bloques que ilustra
una forma de realización del dispositivo codificador 110 que puede
utilizarse en un sistema como el sistema 100 ilustrado en la Fig. 1.
En esta forma de realización, el codificador 110 comprende un
elemento estimador de valores de distorsión 202, un determinador del
procedimiento de codificación 204, y un elemento codificador
multimedia 206. El estimador de valores de distorsión 202 estima un
valor de distorsión para partes de datos multimedia que están siendo
codificados. El valor de distorsión se basa en parte en la
propagación de errores de otras partes de vídeo de las que se
predice la parte actual y la probabilidad de que las otras partes
sean recibidas erróneamente. El valor de distorsión también incluye
un componente de distorsión debido a errores introducidos en el
decodificador al tiempo que oculta la parte de los datos de vídeo
si fuesen recibidos erróneamente. El estimador de valores de
distorsión puede considerar múltiples procedimientos de
codificación y calcular valores de distorsión para cada uno de los
procedimientos de codificación.
El determinador del procedimiento de
codificación 204 determina un procedimiento de codificación que se
utilizará para codificar la parte de los datos de vídeo en base al
valor de distorsión estimado. El determinador del procedimiento de
codificación 204 y el estimador del valor de distorsión 202 pueden
trabajar conjuntamente para calcular los múltiples valores de
distorsión para los múltiples procedimientos de codificación (por
ejemplo múltiples procedimientos de
inter-codificación) y tomar el procedimiento de
codificación que resulte en la menor distorsión. El determinador
del procedimiento de codificación puede comparar el valor de
distorsión con un umbral y, en base a la comparación, determinar
que se requiere otro procedimiento de codificación. El otro
procedimiento de codificación puede ser un procedimiento de
codificación relacionado con el refresco del flujo de vídeo, como
la intra-codificación. El otro procedimiento de
codificación también puede ser otra forma de
inter-codificación que resulte en un menor valor de
distorsión como se estima mediante el estimador de valores de
distorsión 202. El determinador del procedimiento de codificación
también puede considerar la complejidad computacional junto con el
valor de distorsión al determinar un procedimiento de codificación
que proporcione una distorsión aceptable y no exceda de un nivel de
complejidad computacional.
El codificador multimedia 206 lleva a cabo el
procedimiento de codificación que se determinó en base al valor de
distorsión. Los procedimientos de codificación llevados a cabo por
el codificador multimedia 206 incluyen la
inter-codificación donde las partes del vídeo se
predicen temporalmente (p. ej., utilizando una predicción por
compensación de movimiento) en referencia a otras partes de los
datos de vídeo situados en otras tramas temporales. Otros
procedimientos de codificación incluyen la
intra-codificación, donde las partes de vídeo se
codifican de manera que puedan ser decodificadas independientemente
sin referencia a otros datos de vídeo situados temporalmente. En
algunas formas de realización, la intra-codificación
puede utilizar una predicción espacial para aprovechar la
redundancia en los demás datos de vídeo situados en la misma trama
temporal.
En algunas formas de realización, uno o más de
los elementos del codificador 110 de la Fig. 2 pueden reconfigurarse
y/o combinarse. Los elementos pueden implementarse mediante
hardware, software, firmware, middleware, microcódigo o cualquier
combinación de los mismos. Los detalles de las acciones llevadas
acabo por los elementos del codificador 110 se analizarán en
referencia a los procedimientos ilustrados en la Fig. 4 más
adelante.
La Fig. 3 es un diagrama de bloques que ilustra
una forma de realización del dispositivo decodificador 150 que
puede utilizarse en un sistema como el sistema 100 ilustrado en la
Fig. 1. En esta forma de realización, el dispositivo decodificador
150 incluye un elemento decodificador multimedia 302 y un elemento
de ocultamiento de errores 304. El decodificador multimedia 302
decodifica un flujo de bits multimedia codificado tal como fue
codificado utilizando el dispositivo codificador 110 de la Fig. 2.
El decodificador multimedia lleva a cabo una operación inversa
correspondiente a las operaciones de codificación utilizadas para
codificar los datos. Los datos codificados pueden ser datos
inter-codificados (p. ej. datos predichos
temporalmente) y/o datos intra-codificados.
El elemento de ocultamiento de errores 304 lleva
a cabo diversas formas de ocultamiento de error que son utilizadas
para ocultar o tapar partes de vídeo que se reciben erróneamente o
bien no son decodificables (p. ej., debido a la pérdida de
sincronización). Los procedimientos de ocultamiento pueden incluir
el ocultamiento de errores espaciales, ocultamiento de errores
temporales y otros procedimientos. Los procedimientos de
ocultamiento utilizados pueden ser los mismos o similares a los
procedimientos de ocultamiento de errores modelados al estimar los
valores de distorsión en el estimador de valores de distorsión 202
del dispositivo codificador 110 de la Fig. 2. Mientras que el
presente aspecto no requiere los mismos procedimientos de
ocultamiento o procedimientos similares, el uso de tales mismos
procedimientos de ocultamiento o procedimientos similares en el
dispositivo decodificador 150 como fueron modelados en el
dispositivo codificador puede resultar en la mejora de la calidad
del vídeo decodificado. Además de llevar a cabo el ocultamiento de
errores, el elemento de ocultamiento de errores 304 puede llevar a
cabo funciones de recuperación de errores. La recuperación de
errores puede llevarse a cabo en secciones de datos que son
determinados como erróneos en un intento de extraer partes útiles
(p. ej., libres de errores). Estas partes extraídas también pueden
ser utilizadas en el ocultamiento de errores por el elemento de
ocultamiento de errores 304.
En algunas formas de realización, uno o más de
los elementos del decodificador 150 de la Fig. 3 pueden
reconfigurarse y/o combinarse. Los elementos pueden implementarse
mediante hardware, software, firmware, middleware, microcódigo o
cualquier combinación de los mismos. Los detalles de las acciones
llevadas a cabo por los elementos del decodificador 150 están más
allá del alcance de este análisis.
La Fig. 4A es un diagrama de flujo que ilustra
un ejemplo de un procedimiento de codificación de una parte de un
flujo de vídeo en un sistema como el ilustrado en la Fig. 1. En este
ejemplo, el procedimiento estima un valor de distorsión para una
parte de vídeo que está siendo codificada. El valor de distorsión se
basa en una probabilidad de que la parte codificada sea recibida
erróneamente en un decodificador y el error causado por un
procedimiento de ocultamiento que se utiliza para ocultar la parte
errónea. Basando el valor de distorsión en un procedimiento de
ocultamiento decodificador, el flujo de bits de vídeo codificados
puede ser más robusto a efectos de propagación de errores en el
decodificador, lo que puede mejorar la calidad del vídeo
decodificado. El procedimiento en este ejemplo también puede
determinar un procedimiento de codificación en base al valor de
distorsión estimado. El procedimiento de codificación puede
determinarse para minimizar el valor de distorsión entre una
pluralidad de procedimientos de codificación. El procedimiento de
codificación puede determinarse en base a mejorar la posibilidad de
recuperación de la parte de vídeo en el decodificador. El
procedimiento de codificación puede determinarse para refrescar la
parte de vídeo para limitar la propagación de errores en el
decodificador.
En referencia a la Fig. 4A, el procedimiento 400
comienza en el bloque 402 donde un dispositivo de codificación
estima un valor de distorsión para una parte de los datos
multimedia. La parte de datos multimedia puede ser un píxel (p.
ej., luma y croma, o rojo, verde y azul, etc.), un bloque de píxeles
o una región de cualquier forma y tamaño de uno o más píxeles. El
valor de distorsión se basa por lo menos en parte en un componente
de distorsión relacionado con un procedimiento de ocultamiento de
errores que puede utilizarse para ocultar la parte de vídeo si se
recibe erróneamente. El valor de distorsión puede incluir
componentes de múltiples procedimientos de ocultamiento. Por
ejemplo, un componente puede representar la distorsión introducida
por un primer procedimiento de ocultamiento utilizado si sólo la
parte que está siendo codificada es recibida erróneamente. En otras
palabras, se supone que todos los demás datos de vídeo que podría
utilizar un dispositivo decodificador para predecir una parte
oculta (denominada datos de predicción) se reciben libres de
errores. Otros componentes del valor de distorsión pueden incluir
una distorsión introducida por un segundo o tercer procedimiento de
ocultamiento, donde estos procedimientos de ocultamiento pueden ser
utilizados por un decodificador si una o más partes de predicción
son recibidas erróneamente. Los procedimientos de ocultamiento
pueden incluir el ocultamiento espacial, el ocultamiento temporal y
otras formas de ocultamiento. Más adelante se analizarán los
detalles de un procedimiento para estimar un valor de distorsión que
incluye un ocultamiento temporal. El estimador de valores de
distorsión 202 del dispositivo codificador 110 en la Fig. 2 puede
llevar a cabo las acciones en el bloque 402.
En algunos ejemplos, un valor de distorsión se
calcula en el bloque 402 para cada bloque en una trama de datos.
Los bloques pueden ser macrobloques (p. ej., macrobloques de 16x16
píxeles), o sub-macrobloques de cualquier tamaño.
Los valores de distorsión para cada bloque en una trama pueden
almacenarse en un mapa de distorsión. La Fig. 5 ilustra
gráficamente un mapa de distorsión que puede generarse en el bloque
402. El mapa de distorsión 500 contiene múltiples variables de
valores de distorsión 505 (indicadas como dv1-dv16),
una para cada bloque en una trama. El mapa de distorsión 500 de una
trama anterior puede utilizarse para calcular los valores de
distorsión en una nueva trama. De esta manera, puede calcularse
fácilmente la distorsión acumulativa. Si se determina que cualquier
bloque debe ser refrescado, p. ej.,
intra-codificado, el valor de distorsión de ese
bloque puede establecerse a cero, o al valor de distorsión debido a
la cuantificación o algún otro factor.
En el bloque 404, el dispositivo codificador
determina un procedimiento de codificación a ser utilizado por la
parte de los datos multimedia en base al valor de distorsión
estimado. En algunos ejemplos, los valores de distorsión se
calculan en el bloque 402 para múltiples procedimientos de
codificación como parte de un cálculo del grado de distorsión que
se utiliza para elegir qué procedimiento de codificación de los
múltiples procedimientos se va a utilizar. Por ejemplo, puede
determinarse el procedimiento de codificación que resulta en el
valor de distorsión mínimo (en el bloque 404) a utilizar para
codificar la parte de los datos multimedia. En otros ejemplos, los
valores de distorsión se calculan en base a un primer procedimiento
de codificación (bien inter-codificado o
intra-codificado), y se utilizan los valores de
distorsión para determinar los bloques que deberían ser
intra-codificados, como se ha realizado en el
Intra-Refresco Adaptativo (AIR). Por ejemplo, el
valor de distorsión que corresponde a una parte puede calcularse
después de que una decisión basada en el grado de distorsión haya
resultado en el descubrimiento del vector o vectores de movimiento y
modo de codificar la parte óptimos. Si el valor de distorsión
obtenido de esta manera es mayor que un umbral, entonces se puede
determinar intra-codificar la parte utilizando uno
de los modos de intra-codificación, p. ej.,
intra-codificación de 4x4 píxeles o
intra-codificación de 16x16 píxeles. De esta manera,
se refresca la parte de multimedia. Además de formar modos de
intra-codificación, también se pueden determinar
algunos modos de inter-codificación (P8x8, P16x16,
P16x8, P8x16, etc.) en base al valor de distorsión en algunos casos,
aunque estos puedan no resultar en un vídeo refrescado. Hay que
reseñar que algunos de los bloques del procedimiento 400 pueden
combinarse, omitirse, reconfigurarse o cualquier combinación de los
mismos. Más adelante se analizan los detalles de algunas formas de
realización de determinación del procedimiento de codificación en el
bloque 404, en referencia a la Fig. 4B.
A continuación se analizarán los detalles de un
algoritmo de ejemplo para estimar el valor de distorsión en el
bloque 402. El valor de distorsión en este ejemplo se relaciona con
un procedimiento de ocultamiento temporal que oculta una parte
errónea de multimedia que utiliza partes de otras dos tramas, por
ejemplo, una trama anterior y una trama posterior. Sin embargo,
pueden representarse otros procedimientos de ocultamiento utilizando
procedimientos similares.
El algoritmo de ejemplo calcula un valor de
distorsión recursivo del valor de distorsión esperado (es decir,
expectativa estadística) de las partes predichas unidireccionalmente
(como en las Tramas P) de vídeo. Otras partes como las partes
intra-codificadas y las partes predichas
bidireccionalmente pueden también representarse mediante algoritmos
similares. El algoritmo se basa en parte en una probabilidad asumida
de que se pierda el MB actual (definido como una probabilidad
"P") y una probabilidad de que se pierdan los indicadores
utilizados por un procedimiento de ocultamiento (definido como una
probabilidad "Q"). Puesto que por lo menos una de las
probabilidades asumidas P y Q aumenta, el algoritmo tiende más hacia
proporcionar un ocultamiento/resistencia a los errores buena
mientras sacrifica la eficiencia de compresión. Ocurre lo contrario
cuando uno disminuye por lo menos una de las probabilidades P y
Q.
El algoritmo calcula un valor de distorsión
esperado para una parte de los datos multimedia. La parte de los
datos multimedia pude ser cualquier número de píxeles y cualquier
forma. Se analizará el ejemplo en referencia a la parte que es un
Macrobloque (MB) de 16x16 píxeles, pero hay que reseñar que también
pueden representarse otras partes. En una forma de realización, el
algoritmo se utiliza para estimar un valor de distorsión esperado
para cada MB de una trama para formar un mapa de distorsión como se
ha analizado anteriormente en referencia a la Fig. 5. El valor de
distorsión esperado en este ejemplo se calcula de una manera
recursiva y que se adapta al movimiento. Aunque este mapa de
distorsión esperado no es exactamente la medida de distorsión MSE o
L_{1}-norm, se espera que se correlacione
razonablemente bien con estas medidas.
La siguiente notación se utiliza para el
análisis del algoritmo de valores de distorsión:
- D_{t}^{i,j} =
- valor de distorsión acumulativo del macrobloque nº (ij) en la trama nº "t"
- P =
- Probabilidad de que se pierda el MB actual
- Q =
- Probabilidad de que se pierda un indicador utilizado por el procedimiento de ocultamiento relacionado.
\vskip1.000000\baselineskip
Dados estos supuestos, el MB actual se recibe
sin ningún error a una probabilidad igual a (1-P).
En la predicción unidireccional, el MB actual se codifica en
referencia a una parte de tamaño de MB de otra trama, la trama
anterior en este ejemplo. Un vector de movimiento MV da las
posiciones relativas, o situaciones, del MB actual y la parte de
referencia de tamaño de MB. La parte de referencia no estará
generalmente alineada con las fronteras de un MB, pero se solapará
hasta con cuatro regiones de cuatro MBs. La Fig. 6 ilustra
gráficamente las regiones de predicción utilizadas para estimar una
parte de vídeo utilizando los procedimientos de predicción por
compensación de movimiento. Un vector de movimiento 605 apunta a
una región de predicción de tamaño de MB 610 hecha de cuatro partes
de área indicadas como a1, a2, a3 y a4. Las partes de área
a1-a4, se encuentran dentro de cuatro MBs 615, 620,
625 y 630, respectivamente. Los valores de distorsión de los MBs
615-630 pueden obtenerse a partir de una versión
almacenada del mapa de distorsión de la trama anterior. En este
ejemplo, se calcula el peso medio de los valores de distorsión
acumulativos de las cuatro partes de área a1-a4 en
la región de predicción 610 (p. ej., en base al número de píxeles
en cada parte de área) para calcular el valor de distorsión del MB
actual. De esta manera, el valor de distorsión esperado estimado del
macrobloque actual debido a la propagación de errores acumulativo
viene dado por:
Donde a_{1}, a_{2}, a_{3}, a_{4} son las
cuatro partes de área según se ilustra en la Fig. 6. Adviértase que
el valor de distorsión dado por la fórmula (1) se normaliza
dividiendo el peso medio de la región de 16x16 píxeles por 256.
Además de la distorsión acumulativa de las
regiones de predicción de la trama anterior, el algoritmo estima
los componentes del valor de distorsión debidos al ocultamiento del
MB actual, si el MB actual es recibido erróneamente. Como se ha
analizado anteriormente, se da por hecho que el MB actual es
recibido erróneamente con una probabilidad de P. La distorsión en
la que incurre el macrobloque actual debido a un procedimiento de
ocultamiento puede ser aproximadamente la suma del error de
ocultamiento (el error introducido por el procedimiento de
ocultamiento e indicado por el término Conceal_Error) y los efectos
debidos a la propagación de errores desde las regiones de
predicción utilizadas por el procedimiento de ocultamiento. Como se
ha indicado anteriormente, se da por hecho que los indicadores (p.
ej., de las tramas actual y/o pasadas) están disponibles con una
probabilidad de 1-Q. En este ejemplo, se da por
hecho que el procedimiento o procedimientos de ocultamiento dependen
de la disponibilidad de los datos en la trama actual y una trama
anterior. Se da por hecho que la región de predicción se encuentra
en la trama anterior, como indican los términos de distorsión
acumulativa D_{t-1}^{i,j}. Sin embargo,
esto es sólo un ejemplo y las regiones de predicción pueden
encontrarse en la trama actual o en cualquier otra trama
disponible. De esta manera, la distorsión en la que se ha incurrido
debido a un procedimiento de ocultamiento de errores temporal que
utiliza regiones de predicción de la trama anterior, donde la parte
que está siendo ocultada es errónea con una probabilidad de P, y que
depende de la disponibilidad de los datos de predicción en la trama
actual y la trama anterior (ambas disponibles con una probabilidad
de 1-Q) puede calcularse como:
Los cálculos de los errores por ocultamiento
pueden ser computacionalmente complejos. Sin embargo, bajo algunos
supuestos razonables, pueden aproximarse como una diferencia en los
siguientes valores de SAD (suma de diferencias acumuladas en
valores de píxeles):
- SAD_{opt}:
- SAD obtenida entre la imagen original y la imagen comprimida cuando se utilizan el MV óptimo y el modo de codificación óptimo.
- SAD_{est}:
- SAD obtenida entre la imagen original y la imagen oculta cuando se utiliza el MV estimado (estimado por el algoritmo de ocultamiento temporal).
\vskip1.000000\baselineskip
Esta aproximación puede escribirse como
sigue:
Donde a_{1}', a_{2}', a_{3}', a_{4}' son
cuatro partes de área en la trama anterior (como se ilustra en la
Fig. 6) que se utilizaron como la predicción de la parte de
ocultamiento y se utilizan para obtener el peso medio de la
distorsión acumulativa. Adviértase que el valor de distorsión dado
por la fórmula (3) también se normaliza dividiendo el peso medio de
la región de 16x16 píxeles por 256.
Adviértase que, cuando se utiliza la fórmula
(3), la SAD_{est} puede resultar menor que LA SAD_{opt} en
algunos casos (debido a imprecisiones de compensación de movimiento,
por ejemplo), pero la diferencia puede ser insignificantemente
pequeña y en esos casos el componente Conceal_Error puede
aproximarse a cero.
La fórmula (3) representa un componente del
valor de distorsión que se corresponde con el procedimiento de
ocultamiento utilizado cuando tanto la trama actual como la trama
anterior están disponibles (donde cada una se da con una
probabilidad de 1-Q). Sin embargo, pueden existir
diferentes errores de ocultamiento si alguna de las tramas actual
y/o pasada o todas ellas son recibidas erróneamente, donde cada una
se da con una probabilidad de Q. Se pueden tener en cuenta los
componentes del valor de distorsión correspondientes a cuatro
estimaciones de ocultamiento diferentes, donde las cuatro
estimaciones de ocultamiento se corresponden con cuatro escenarios
1) trama actual disponible y trama anterior disponible, 2) trama
actual disponible pero trama anterior errónea, 3) trama actual
errónea pero trama anterior disponible y 4) tanto la trama actual
como la trama anterior son erróneas. Los detalles relacionados con
el cálculo de las cuatro estimaciones de ocultamiento no son
cruciales para la comprensión del cálculo del valor de distorsión,
y no se analizarán en la presente memoria. La distorsión
acumulativa que incluye los cuatro componentes de los valores de
distorsión puede calcularse como:
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
Donde la primera estimación del ocultamiento
resulta en una distorsión de 50
y la segunda estimación de ocultamiento resulta en una
distorsión de 51 etcétera. Además, se
calculan los pesos medios de las distorsiones acumulativas en base
a las áreas (a', a'', a''' y a'''') de
las regiones de predicción utilizadas en cada una de las cuatro
estimaciones de ocultamiento. Las estimaciones de ocultamiento
pueden basarse en diferentes tipos de procedimientos de ocultamiento
como el ocultamiento espacial, ocultamiento bidireccional, etc. Por
ejemplo, un algoritmo de ocultamiento puede ocultar temporalmente
unas veces y espacialmente otras veces, dependiendo de los criterios
determinísticos/probabilísticos. El dispositivo codificador que
lleva a cabo el cálculo del valor de distorsión y que determina qué
procedimiento de codificación utilizar en base al valor de
distorsión puede modelar el mismo procedimiento o procedimientos
similares de ocultamiento que se utilizan en un decodificador para
mejorar el rendimiento del ocultamiento de errores y/o recuperación
de errores cuando el decodificador recibe datos erróneos.
Adviértase que se pueden considerar e incluir
otras estimaciones de ocultamiento en la Ecuación (4) en base a las
probabilidades de que otras regiones de predicción no estén
disponibles. Se puede utilizar la Ecuación (4) para cada MB en una
trama para formar el mapa de distorsión como se ilustra en la Fig.
5. De esta manera, los valores de distorsión calculados utilizando
la Ecuación (4) comprenden una suma ponderada de las distorsiones
en las que se incurre eligiendo múltiples opciones de ocultamiento,
donde el peso es la probabilidad de cada opción de ocultamiento
elegida.
La Fig. 4B es un diagrama de flujo que ilustra
en mayor detalle un ejemplo de un procedimiento de codificación de
una parte de un flujo de vídeo en un sistema como el ilustrado en la
Fig. 1. El procedimiento 420 incluye los bloques 402 y 404 como se
ha analizado anteriormente en referencia a la Fig. 4A incluyendo
diversos procedimientos de ocultamiento que pueden considerarse
cuando se estima el valor de distorsión en el bloque 402 y diversos
procedimientos de determinación del procedimiento de codificación en
el bloque 404.
En el bloque 402, el valor de distorsión puede
estimares utilizando unos algoritmos similares a los analizados
anteriormente en referencia a la Ecuación (4). Las ecuaciones
exactas del valor de distorsión utilizadas dependen del tipo de
procedimiento de ocultamiento que se está representando. Los
procedimientos de ocultamiento representados pueden incluir
procedimientos de ocultamiento espacial donde las partes de
predicción situadas en la misma trama se utilizan para ocultar una
parte recibida erróneamente. En el caso de un ocultamiento espacial
dentro de una trama, los valores de distorsión acumulativos de los
MBs en la trama actual se utilizan en lugar de los valores de
distorsión de la trama anterior. Los procedimientos de ocultamiento
temporal pueden incluir una predicción unidireccional como se ha
analizado anteriormente y como se ha representado por la Ecuación
(4), y también pueden incluir una predicción bidireccional donde
también puede considerarse la disponibilidad de una trama
posterior.
Un ejemplo de un procedimiento de ocultamiento
temporal es el escalado del vector de movimiento. El escaldo del
vector de movimiento es un procedimiento que interpola y/o extrapola
los vectores de movimiento de otras tramas para deducir un vector
de movimiento para una parte de los datos multimedia erróneos en una
trama actual. Otro ejemplo de un procedimiento de ocultamiento
temporal es la conversión de la velocidad de tramas. La conversión
de la velocidad de tramas puede ser similar al escalado del vector
de movimiento, pero implica la construcción de una trama completa
en base a, por lo general, dos tramas circundantes. Otros ejemplos
de procedimientos de ocultamiento temporal de errores pueden
basarse en procedimientos de flujo óptico. Otras formas de
ocultamiento que pueden representarse por el valor de distorsión
estimado en el bloque 402 incluyen la interpolación en el dominio
frecuencial y espacial, la recuperación máximamente y la proyección
en conjuntos convexos. Los tecnólogos expertos reconocerán otras
formas de ocultamiento de errores que pueden representarse cuando se
estima el valor de distorsión en el bloque 402 del procedimiento
400.
Como se ha analizado anteriormente, el
dispositivo codificador determina, en el bloque 404, un
procedimiento de codificación basado en el valor de distorsión que
se estimó en el bloque 402. En algunas formas de realización, el
valor de distorsión estimado se compara con un umbral y se determina
el procedimiento de codificación en base a la comparación. El
umbral puede ser un valor único para todas las partes de los datos
multimedia. Sin embargo, el umbral también puede variar según los
procedimientos como los indicados en el bloque 404 del procedimiento
420. Estos procedimientos se analizarán en relación a la
determinación de un procedimiento de codificación basado en exceder
un umbral, donde el procedimiento de codificación elegido si se
excede el umbral servirá generalmente para refrescar la parte (o
por lo menos disminuir el valor de distorsión estimado de la parte).
Sin embargo, hay que reseñar que los procedimientos de codificación
también pueden determinarse en base a un valor de distorsión que
esté por debajo de un umbral.
En algunos ejemplos, el umbral se varía como una
función de una textura de un área en la que se sitúa la parte
multimedia que está siendo codificada. Las áreas con una textura
altamente variable (p. ej., grandes variaciones de píxel a píxel)
pueden no mostrar tantos errores como las áreas con una textura
menos variada, y por tanto se les puede asignar un umbral más alto
sobre el que poder determinar el procedimiento de codificación para
refrescar la parte (p. ej., utilizando la
intra-codificación). Sin embargo, las áreas con una
textura más lisa o poco variada pueden mostrar más errores y por
tanto se les puede asignar un umbral más bajo.
En algunos ejemplos, el umbral puede variarse
como una función de la posición, o situación, de la parte que está
siendo codificada dentro de una trama. Por ejemplo, se puede asignar
a las partes en los bordes un umbral más elevado que a las partes
en medio. De esta manera, las áreas donde más frecuentemente mira un
observador (p. ej., el centro de la trama) pueden refrescarse con
mayor frecuencia que las áreas del borde donde no se mira tan
frecuentemente.
En algunos ejemplos, el umbral puede ser una
función de la posición de la trama que actualmente está siendo
codificada dentro de un GOP (grupo de imágenes) o una supertrama de
múltiples tramas. Un GOP generalmente empieza con una trama
intra-codificada o un conjunto de tramas que
incluyen prácticamente todos los MBs dentro de una trama que está
siendo intra-codificada por lo menos una vez
(conocido como intra-refresco adaptativo o AIR) y
donde las demás tramas en el GOP (o supertrama) no hacen referencia
a tramas fuera del GOP. Para asegurar que los MBs tienen una mayor
oportunidad de ser intra-codificados al comienzo de
un GOP, el umbral en las tramas cercanas al inicio del GOP pueden
tener un umbral más bajo que los MBs cercanos al final del GOP.
En algunos ejemplos, el umbral puede ser una
función de la distribución de los valores de distorsión, en el mapa
de distorsión, por ejemplo, dentro de una trama. Por ejemplo, el
umbral puede establecerse de manera adaptativa para garantizar que
un porcentaje de MBs dentro de la trama está
intra-codificado en base a la distribución de los
valores de distorsión. Esto puede utilizarse para limitar el número
de MBs intra-codificados para limitar la tasa de
datos necesaria para la transmisión. A pesar de que pueda degradarse
la calidad para algunas tramas (debido a una elevada distribución
de los valores de distorsión), la tasa de datos puede mantenerse a
un nivel deseado.
En algunos ejemplos, el umbral puede ser una
función de la actividad de movimiento en un área de la trama que
contiene la parte que está siendo codificada. Los errores que se
producen en áreas de vídeo que se caracterizan por una mayor
actividad de movimiento tienden a ser menos perceptibles que los
errores que se producen en áreas caracterizadas por poco
movimiento. El umbral puede establecerse a valores más elevados en
áreas con mayor actividad de movimiento que en áreas con menor
actividad de movimiento. La actividad de movimiento puede medirse
de muchas maneras. Por ejemplo, puede utilizarse la amplitud del
vector de movimiento como un indicador de la actividad de
movimiento donde vectores de movimiento de mayor amplitud indican
una mayor actividad de movimiento. También puede utilizarse la
variación de la dirección del vector de movimiento como indicador
de la actividad de movimiento. Si la mayoría de los vectores de
movimiento en un área están apuntando prácticamente en la misma
dirección, esto puede ser un indicativo de una baja actividad de
movimiento. Si los vectores de movimiento en bloques vecinos de un
área están apuntando en diferentes direcciones, esto puede ser
indicativo de una elevada actividad de movimiento. Pueden obtenerse
medidas de actividad de movimiento similares utilizando otras
técnicas de compensación de movimiento como el flujo óptico.
En algunos ejemplos, el umbral puede ser una
función del modo de codificación de la parte de vídeo que está
siendo codificada. Por ejemplo, algunas partes de vídeo por lo
general no se utilizan como una referencia para otras partes
predichas del vídeo. Las tramas B, por ejemplo, no se utilizan para
tramas de referencia en muchos sistemas. De esta manera, el valor
de distorsión de las tramas B en este tipo de sistema podría
permitirse que fuera más elevado dado que ningún otro vídeo las
referenciará. Dado que ningún otro vídeo referenciará a las tramas
B, los errores persistirán únicamente para una duración de una trama
(p. ej., 1/30avo de segundo en una secuencia de vídeo de 30 tramas
por segundo). De esta manera, el umbral podría ser superior para
partes no referenciadas de vídeo que para partes de vídeo que
puedan ser referenciadas por otras partes predichas.
Una vez que se ha determinado el procedimiento
de codificación, en el bloque 404, en base al valor de distorsión
estimado en el bloque 402, el proceso 420 continúa en el bloque 406,
donde la parte de datos multimedia que están siendo codificados se
codifica con el procedimiento de codificación determinado. Los
procedimientos de codificación en el bloque 406 pueden incluir la
intra-codificación con o sin la predicción espacial
de bloques vecinos. Puede elegirse la
intra-codificación sin predicción espacial de
píxeles vecinos con el fin de reducir el valor de distorsión
calculado en el bloque 402. Los procedimientos de codificación en el
bloque 406 pueden incluir la predicción unidireccional o
bidireccional utilizando la predicción por compensación de
movimiento. Pueden elegirse diferentes formas de predicción por
compensación de movimiento sobre otros con el fin de reducir el
valor de distorsión estimado en el bloque 402. La predicción por
compensación de movimiento puede incluir el ajuste de bloques o
"block matching", flujo óptico y otros procedimientos para
calcular los vectores de movimiento tal y como se ha analizado
anteriormente. Hay que reseñar que algunos de los bloque del
procedimiento 402 pueden ser combinados, omitidos, reconfigurados o
cualquier combinación de los mismos.
La Fig. 7 es un diagrama de bloques funcionales
que ilustra un ejemplo de un dispositivo codificador 110 que puede
utilizarse en un sistema como el ilustrado en la Fig. 1. Este
aspecto incluye unos medios para estimar un valor de distorsión
para una primera parte de datos multimedia en base a por lo menos en
parte uno o más procedimientos de ocultamiento relacionados con el
ocultamiento de la primera parte si la primera parte fuese recibida
erróneamente, y unos medios para determinar un procedimiento de
codificación para la primera parte en base a por lo menos en parte
el valor de distorsión estimado. Algunos ejemplos de este aspecto
incluyen dónde comprenden los medios de estimación un estimador 702
de valores de distorsión, y dónde comprenden los medios de
determinación un determinador 704 de procedimientos de
codificación.
La Fig. 8 es un diagrama de bloques funcionales
que ilustra un ejemplo de un dispositivo codificador 110 que puede
utilizarse en un sistema como el ilustrado en la Fig. 1. Este
aspecto incluye unos medios para la estimación de un valor de
distorsión para una primera parte de los datos multimedia en base a
por lo menos en parte uno o más procedimientos de ocultamiento
relacionados con el ocultamiento de la primera parte si la primera
parte fuese recibida erróneamente, y unos medios para la
determinación de un procedimientos de codificación para la primera
parte en base a por lo menos en parte el valor de distorsión
estimado. En algunos ejemplos de este aspecto, los medios de
estimación comprenden un módulo para la estimación del valor de
distorsión 802 y los medios de determinación comprenden un módulo
para la determinación del procedimiento de codificación 804.
Las personas capacitadas en la técnica
entenderán que la información y las señales pueden representarse
utilizando cualquiera de una diversidad de diferentes tecnologías y
técnicas. Por ejemplo, los datos, las instrucciones, los comandos,
la información, las señales, los bits, los símbolos y los chips que
pueden referenciarse en la descripción anteriormente indicada
pueden representarse mediante voltajes, corrientes, ondas
electromagnéticas, partículas o campos magnéticos, partículas o
campos ópticos, o cualquier combinación de los mismos.
Las personas capacitadas en la técnica
apreciarán además que los diversos bloques lógicos, módulos y etapas
de algoritmos ilustrativos descritos en conexión con los ejemplos
descritos en la presente memoria pueden implementarse como hardware
electrónico, firmware, software informático, middleware,
microcódigo, o combinaciones de los mismos. Para ilustrar
claramente esta intercambiabilidad de hardware y software, se han
descrito anteriormente diversos componentes, bloques, módulos,
circuitos y etapas ilustrativas generalmente en términos de su
funcionalidad. El que dicha funcionalidad sea implementada como
hardware o como software depende de las particulares restricciones
de aplicación y diseño impuestas en el sistema completo. Los
expertos en la materia pueden implementar la funcionalidad descrita
de diversas maneras para cada aplicación particular, pero dichas
decisiones de implementación no deberían interpretarse como
causantes de alejamiento del alcance de los procedimientos
descritos.
Los diversos bloques lógicos, componentes,
módulos y circuitos ilustrativos descritos en conexión con los
ejemplos descritos en la presente memoria pueden implementarse o
llevarse a cabo con un procesador de propósito general, un
procesador digital de señal (DSP), un circuito integrado para
aplicaciones específicas (ASIC), una matriz de puertas programables
(FPGA) u otro dispositivo lógico programable, puerta discreta o
lógica de transistores, componentes hardware discretos, o cualquier
combinación de los mismos diseñada para llevar a cabo las funciones
descritas en la presente memoria. Un procesador de propósito general
puede ser un microprocesador, pero alternativamente, el procesador
puede ser cualquier procesador convencional, controlador,
microcontrolador, o máquina de estados. Un procesador también puede
implementarse como una combinación de dispositivos informáticos, p.
ej., una combinación de un DSP y un microprocesador, una pluralidad
de microprocesadores, uno o más microprocesadores conjuntamente con
un núcleo DSP o un núcleo ASIC, o cualquier otra configuración.
Las etapas de un procedimiento o algoritmo
descritas en conexión con los ejemplos descritos en la presente
memoria pueden realizarse directamente en hardware, en un módulo
software ejecutado por un procesador, o en una combinación de los
dos. Un módulo software puede residir en memoria RAM, memoria flash,
memoria ROM, memoria EPROM, memoria EEPROM, registros, disco duro,
un disco extraíble, un CD-ROM, un medio de
almacenamiento óptico, o cualquier otra forma de medio de
almacenamiento conocida en la técnica. Un medio de almacenamiento de
ejemplo se acopla al procesador de tal manera que el procesador
puede leer información de, y escribir información a, el medio de
almacenamiento. Alternativamente, el medio de almacenamiento puede
estar integrado en el procesador. El procesador y el medio de
almacenamiento pueden residir en un Circuito Integrado Para
Aplicaciones Específicas (ASIC). El ASIC puede residir en un modem
inalámbrico. Alternativamente, el procesador y el medio de
almacenamiento pueden residir como componentes discretos en el
modem inalámbrico.
La anterior descripción de los ejemplos
descritos se proporciona para permitir que cualquier persona
capacitada en la técnica pueda hacer uso de los procedimientos y
del aparato descritos. Se pondrán de manifiesto para los expertos
en la materia diversas modificaciones a estos ejemplos, y los
principios definidos en la presente memoria pueden aplicarse a
otros ejemplos y pueden añadirse elementos adicionales.
De esta manera, se han descrito unos
procedimientos y un aparato para llevar a cabo una codificación
altamente efectiva de datos multimedia previendo una calidad de
decodificación y ocultamiento de errores eficaces.
Claims (15)
1. Procedimiento de codificación de datos
multimedia que comprende:
- \quad
- la estimación de un valor de distorsión para una primera parte de datos multimedia en base, en parte, a por lo menos uno o más procedimientos de ocultamiento relacionados con el ocultamiento de la primera parte si la primera parte fuese recibida erróneamente (402); y
- \quad
- la determinación de un procedimiento de codificación para la primera parte en base, en parte, a por lo menos una comparación del valor de distorsión estimado y un umbral;
- \quad
- caracterizado porque:
- \quad
- el umbral varía en función de uno o más factores seleccionados de una lista de factores (404), la lista de factores incluyendo:
- \quad
- una ubicación de la primera parte en una trama que contiene la primera parte,
- \quad
- una textura de un área de la trama que contiene la primera parte,
- \quad
- una posición de la trama que contiene la primera parte dentro de un grupo de imágenes que contienen la trama,
- \quad
- una distribución de valores de distorsión en la trama que contiene la primera parte, y
- \quad
- una actividad de movimiento del área de la trama que contiene la primera parte.
\vskip1.000000\baselineskip
2. Procedimiento según la Reivindicación 1, que
comprende adicionalmente la codificación de la primera parte
utilizando el procedimiento de codificación (406) determinado.
3. Procedimiento según la Reivindicación 1, en
el que la determinación del procedimiento de codificación comprende
adicionalmente la determinación del procedimiento de codificación
para refrescar la primera parte.
4. Procedimiento según la Reivindicación 3, en
el que el umbral varía en función de uno o más factores
seleccionados de una lista de factores, incluyendo adicionalmente
la lista de factores:
- \quad
- un modo de codificación de la trama que contiene la primera parte.
\vskip1.000000\baselineskip
5. Procedimiento según la Reivindicación 1, que
comprende adicionalmente la intra-codificación de la
primera parte para refrescar la primera parte en base a una
comparación del valor de distorsión estimado y un umbral.
6. Procedimiento según la Reivindicación 1, que
comprende adicionalmente la estimación del valor de distorsión de
la primera parte en base, en parte, a por lo menos una probabilidad
de error de los datos de predicción utilizados por el uno o más
procedimientos de ocultamiento.
7. Procedimiento según la Reivindicación 1, que
comprende adicionalmente la estimación del valor de distorsión para
la primera parte en base, en parte, a por lo menos una diferencia en
valores de píxeles entre una versión de la primera parte construida
por el uno o más procedimientos de ocultamiento y una versión libre
de errores de la primera parte.
8. Procedimiento según la Reivindicación 1, en
el que la estimación del valor de distorsión de la primera parte
comprende adicionalmente la estimación de los componentes de
distorsión del valor de distorsión para cada uno de los uno o más
procedimientos de ocultamiento.
9. Aparato de codificación de datos multimedia
que comprende:
- \quad
- medios para estimar un valor de distorsión (802) para una primera parte de los datos multimedia en base, en parte, a por lo menos uno o más procedimientos de ocultamiento relacionados con el ocultamiento de la primera parte si la primera parte fuese recibida erróneamente; y
- \quad
- medios para determinar un procedimiento de codificación (804) para la primera parte en base, en parte, a por lo menos una comparación del valor de distorsión estimado y un umbral, caracterizado porque
- \quad
- el umbral varía en función de uno o más factores seleccionados de una lista de factores, incluyendo la lista de factores:
- \quad
- una ubicación de la primera parte en una trama que contiene la primera parte,
- \quad
- una textura de un área de la trama que contiene la primera parte,
- \quad
- una posición de la trama que contiene la primera parte dentro de un grupo de imágenes que contienen la trama,
- \quad
- una distribución de valores de distorsión en la trama que contiene la primera parte, y
- \quad
- una actividad de movimiento del área de la trama que contiene la primera parte.
\vskip1.000000\baselineskip
10. Aparato según la Reivindicación 9, que
comprende adicionalmente medios para codificar la primera parte
utilizando el procedimiento de codificación determinado.
11. Aparato según la Reivindicación 9, en el que
los medios de determinación determinan el procedimiento de
codificación para refrescar la primera parte.
12. Aparato según la Reivindicación 11, en el
que el umbral varía en función de uno o más factores seleccionados
de la lista de factores, incluyendo adicionalmente la lista de
factores:
- \quad
- un modo de codificación de la trama que contiene la primera parte.
\vskip1.000000\baselineskip
13. Aparato según la Reivindicación 9, que
comprende adicionalmente medios para la
intra-codificación de la primera parte para
refrescar la primera parte en base a una comparación del valor de
distorsión estimado y un umbral.
14. Aparato según la Reivindicación 9, en el que
el aparato es un procesador de datos multimedia.
15. Medio legible por máquina que comprende unas
instrucciones que al ejecutarlas hacen que una máquina lleve a cabo
un procedimiento según cualquiera de las reivindicaciones 1 a 8.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US76067806P | 2006-01-20 | 2006-01-20 | |
| US760678P | 2006-01-20 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2336039T3 true ES2336039T3 (es) | 2010-04-07 |
Family
ID=38169856
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES07710232T Active ES2336039T3 (es) | 2006-01-20 | 2007-01-19 | Procedimiento y aparato para determinar un procedimiento de codificacion en base a un valor de distorsion relacionado con el ocultamiento de errores. |
Country Status (11)
| Country | Link |
|---|---|
| US (1) | US8325822B2 (es) |
| EP (1) | EP1980115B1 (es) |
| JP (1) | JP4908522B2 (es) |
| KR (1) | KR20080098042A (es) |
| CN (1) | CN101375602B (es) |
| AR (1) | AR059105A1 (es) |
| AT (1) | ATE450118T1 (es) |
| DE (1) | DE602007003441D1 (es) |
| ES (1) | ES2336039T3 (es) |
| TW (1) | TW200737995A (es) |
| WO (1) | WO2007084994A2 (es) |
Families Citing this family (29)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8325822B2 (en) | 2006-01-20 | 2012-12-04 | Qualcomm Incorporated | Method and apparatus for determining an encoding method based on a distortion value related to error concealment |
| US8861585B2 (en) | 2006-01-20 | 2014-10-14 | Qualcomm Incorporated | Method and apparatus for error resilience algorithms in wireless video communication |
| US8121189B2 (en) * | 2007-09-20 | 2012-02-21 | Microsoft Corporation | Video decoding using created reference pictures |
| EP2051525A1 (en) * | 2007-10-15 | 2009-04-22 | Mitsubishi Electric Information Technology Centre Europe B.V. | Bandwidth and content dependent transmission of scalable video layers |
| US9848209B2 (en) * | 2008-04-02 | 2017-12-19 | Microsoft Technology Licensing, Llc | Adaptive error detection for MPEG-2 error concealment |
| US9788018B2 (en) * | 2008-06-30 | 2017-10-10 | Microsoft Technology Licensing, Llc | Error concealment techniques in video decoding |
| US9924184B2 (en) * | 2008-06-30 | 2018-03-20 | Microsoft Technology Licensing, Llc | Error detection, protection and recovery for video decoding |
| US9131241B2 (en) | 2008-11-25 | 2015-09-08 | Microsoft Technology Licensing, Llc | Adjusting hardware acceleration for video playback based on error detection |
| JP5554831B2 (ja) * | 2009-04-28 | 2014-07-23 | テレフオンアクチーボラゲット エル エム エリクソン(パブル) | 歪みの重み付け |
| US8340510B2 (en) | 2009-07-17 | 2012-12-25 | Microsoft Corporation | Implementing channel start and file seek for decoder |
| TWI412282B (zh) * | 2009-11-17 | 2013-10-11 | Univ Nat Cheng Kung | 可隱藏傳輸錯誤之視訊解碼裝置與相關方法 |
| EP2547106A4 (en) * | 2010-01-14 | 2014-05-21 | Sumitomo Electric Industries | METHOD, DEVICE AND COMMUNICATION SYSTEM FOR DISPLAYING CODED VIDEO IMAGE DATA |
| US20110249127A1 (en) * | 2010-04-07 | 2011-10-13 | Cisco Technology, Inc. | Estimating Video Quality Corruption in Lossy Networks |
| US9172979B2 (en) * | 2010-08-12 | 2015-10-27 | Net Power And Light, Inc. | Experience or “sentio” codecs, and methods and systems for improving QoE and encoding based on QoE experiences |
| WO2012021173A2 (en) | 2010-08-12 | 2012-02-16 | Net Power And Light Inc. | System architecture and methods for experiential computing |
| US9557817B2 (en) | 2010-08-13 | 2017-01-31 | Wickr Inc. | Recognizing gesture inputs using distributed processing of sensor data from multiple sensors |
| US8429704B2 (en) | 2010-10-21 | 2013-04-23 | Net Power And Light, Inc. | System architecture and method for composing and directing participant experiences |
| GB2487200A (en) | 2011-01-12 | 2012-07-18 | Canon Kk | Video encoding and decoding with improved error resilience |
| GB2491589B (en) | 2011-06-06 | 2015-12-16 | Canon Kk | Method and device for encoding a sequence of images and method and device for decoding a sequence of image |
| US9667942B2 (en) * | 2012-11-20 | 2017-05-30 | Qualcomm Incorporated | Adaptive luminance compensation in three dimensional video coding |
| FR3000350A1 (fr) * | 2012-12-21 | 2014-06-27 | France Telecom | Procede et dispositif de transmission d'une sequence d'images, procede et dispositif de reception, programme d'ordinateur et support d'enregistrement correspondants. |
| US9756356B2 (en) * | 2013-06-24 | 2017-09-05 | Dialogic Corporation | Application-assisted spatio-temporal error concealment for RTP video |
| KR20240154105A (ko) * | 2017-05-19 | 2024-10-24 | 파나소닉 인텔렉츄얼 프로퍼티 코포레이션 오브 아메리카 | 부호화 장치, 복호 장치, 부호화 방법 및 복호 방법 |
| CN117041563A (zh) * | 2017-06-05 | 2023-11-10 | 松下电器(美国)知识产权公司 | 解码装置、编码装置、存储介质、解码方法和编码方法 |
| CN109816615B (zh) * | 2019-03-06 | 2022-12-16 | 腾讯科技(深圳)有限公司 | 图像修复方法、装置、设备以及存储介质 |
| EP3829169B1 (en) * | 2019-11-29 | 2021-10-13 | Axis AB | Method for intra refresh encoding of a plurality of image frames using convex and concave distribution functions |
| CN111935545B (zh) * | 2020-08-03 | 2023-03-24 | 腾讯音乐娱乐科技(深圳)有限公司 | 转码视频数据的方法、装置、设备及存储介质 |
| US11514641B2 (en) * | 2021-03-03 | 2022-11-29 | Qualcomm Incorporated | Error concealment in split rendering using shading atlases |
| CN114630122B (zh) * | 2021-03-19 | 2023-04-28 | 杭州海康威视数字技术股份有限公司 | 基于自适应帧内刷新机制的解码、编码方法及相关设备 |
Family Cites Families (28)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5613015A (en) | 1992-11-12 | 1997-03-18 | Fuji Xerox Co., Ltd. | Image signal analyzing system and coding system |
| US5627935A (en) | 1994-11-11 | 1997-05-06 | Samsung Electronics Co., Ltd. | Error-correction-code coding & decoding procedures for the recording & reproduction of digital video data |
| US5793895A (en) | 1996-08-28 | 1998-08-11 | International Business Machines Corporation | Intelligent error resilient video encoder |
| US6037985A (en) | 1996-10-31 | 2000-03-14 | Texas Instruments Incorporated | Video compression |
| JP3223962B2 (ja) | 1997-01-24 | 2001-10-29 | 松下電器産業株式会社 | 画像復号化方法 |
| RU2217882C2 (ru) | 1997-08-12 | 2003-11-27 | Томсон Конзьюмер Электроникс, Инк. | Устройство для сжатия блоков пикселов в системе обработки изображений |
| US6025888A (en) | 1997-11-03 | 2000-02-15 | Lucent Technologies Inc. | Method and apparatus for improved error recovery in video transmission over wireless channels |
| JPH11331839A (ja) | 1998-05-13 | 1999-11-30 | Matsushita Electric Ind Co Ltd | 映像伝送再送の装置及び方法 |
| JP3748717B2 (ja) | 1998-08-31 | 2006-02-22 | シャープ株式会社 | 動画像符号化装置 |
| US6466624B1 (en) | 1998-10-28 | 2002-10-15 | Pixonics, Llc | Video decoder with bit stream based enhancements |
| JP3166736B2 (ja) | 1998-11-25 | 2001-05-14 | 日本電気株式会社 | 動画像符号化装置および動画像符号化方法 |
| GB2347038A (en) | 1999-02-18 | 2000-08-23 | Nokia Mobile Phones Ltd | A video codec using re-transmission |
| JP2002016913A (ja) | 2000-06-28 | 2002-01-18 | Yamaha Corp | トランスコーディング方法およびトランスコーディング装置 |
| JP4644939B2 (ja) * | 2001-01-17 | 2011-03-09 | 日本電気株式会社 | 動画像符号化装置および動画像符号化方法 |
| EP1374430A4 (en) * | 2001-03-05 | 2005-08-17 | Intervideo Inc | SYSTEMS AND METHODS FOR ROBUST ERROR CODING |
| US6795076B2 (en) | 2001-06-28 | 2004-09-21 | Sun Microsystems, Inc. | Graphics system with real-time convolved pixel readback |
| JP2003032689A (ja) | 2001-07-18 | 2003-01-31 | Sharp Corp | 画像符号化装置、画像復号化装置及び動画像伝送システム |
| US20030235249A1 (en) | 2002-06-25 | 2003-12-25 | Chengji Zhao | Video encoder and method for encoding video frames |
| US7034888B2 (en) | 2003-03-26 | 2006-04-25 | Silicon Integrated Systems Corp. | Method for motion pixel detection |
| GB0314161D0 (en) | 2003-06-18 | 2003-07-23 | British Telecomm | Edge analysis in video quality assessment |
| US7835438B2 (en) | 2003-12-22 | 2010-11-16 | Nec Corporation | Method and device for encoding moving picture using reference frequency of reference frame |
| US7738561B2 (en) * | 2004-11-16 | 2010-06-15 | Industrial Technology Research Institute | MPEG-4 streaming system with adaptive error concealment |
| US20070030894A1 (en) * | 2005-08-03 | 2007-02-08 | Nokia Corporation | Method, device, and module for improved encoding mode control in video encoding |
| US8229983B2 (en) | 2005-09-27 | 2012-07-24 | Qualcomm Incorporated | Channel switch frame |
| US8670437B2 (en) | 2005-09-27 | 2014-03-11 | Qualcomm Incorporated | Methods and apparatus for service acquisition |
| US20070086971A1 (en) * | 2005-10-19 | 2007-04-19 | Patrick Diet | Acidic Cleaning Compositions |
| US8861585B2 (en) | 2006-01-20 | 2014-10-14 | Qualcomm Incorporated | Method and apparatus for error resilience algorithms in wireless video communication |
| US8325822B2 (en) | 2006-01-20 | 2012-12-04 | Qualcomm Incorporated | Method and apparatus for determining an encoding method based on a distortion value related to error concealment |
-
2007
- 2007-01-18 US US11/624,459 patent/US8325822B2/en active Active
- 2007-01-19 ES ES07710232T patent/ES2336039T3/es active Active
- 2007-01-19 KR KR1020087020394A patent/KR20080098042A/ko not_active Ceased
- 2007-01-19 JP JP2008551554A patent/JP4908522B2/ja not_active Expired - Fee Related
- 2007-01-19 DE DE602007003441T patent/DE602007003441D1/de active Active
- 2007-01-19 EP EP07710232A patent/EP1980115B1/en active Active
- 2007-01-19 AT AT07710232T patent/ATE450118T1/de not_active IP Right Cessation
- 2007-01-19 TW TW096102106A patent/TW200737995A/zh unknown
- 2007-01-19 CN CN2007800031633A patent/CN101375602B/zh active Active
- 2007-01-19 WO PCT/US2007/060786 patent/WO2007084994A2/en not_active Ceased
- 2007-01-19 AR ARP070100257A patent/AR059105A1/es unknown
Also Published As
| Publication number | Publication date |
|---|---|
| KR20080098042A (ko) | 2008-11-06 |
| JP2009524364A (ja) | 2009-06-25 |
| US8325822B2 (en) | 2012-12-04 |
| EP1980115B1 (en) | 2009-11-25 |
| EP1980115A2 (en) | 2008-10-15 |
| WO2007084994A2 (en) | 2007-07-26 |
| CN101375602B (zh) | 2012-03-21 |
| WO2007084994A3 (en) | 2007-10-04 |
| CN101375602A (zh) | 2009-02-25 |
| TW200737995A (en) | 2007-10-01 |
| JP4908522B2 (ja) | 2012-04-04 |
| US20070177678A1 (en) | 2007-08-02 |
| DE602007003441D1 (de) | 2010-01-07 |
| ATE450118T1 (de) | 2009-12-15 |
| AR059105A1 (es) | 2008-03-12 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2336039T3 (es) | Procedimiento y aparato para determinar un procedimiento de codificacion en base a un valor de distorsion relacionado con el ocultamiento de errores. | |
| CN101375603B (zh) | 用于无线视频通信中的错误恢复算法的方法和设备 | |
| JP5261774B2 (ja) | 動画像スケーラブル符号化方法及び復号方法、それらの装置、それらのプログラム並びにプログラムを記録した記録媒体 | |
| ES2715703T3 (es) | Dispositivo de decodificación de vídeo, procedimiento de decodificación de vídeo y programa de decodificación de vídeo | |
| CN101379816A (zh) | 双向预测帧的时间错误隐藏 | |
| JP2009521839A (ja) | フレキシブル・マクロブロック配列(fmo)ビデオ符号化のためにフレーム選択を最適化する方法及び装置 | |
| Tsai et al. | Joint temporal and spatial error concealment for multiple description video coding | |
| Huang et al. | Optimization of hybridized error concealment for H. 264 | |
| US9794589B2 (en) | Method and device for processing a video sequence | |
| Chen et al. | Dynamic multi-mode switching error concealment algorithm for H. 264/AVC video applications | |
| Psannis | Efficient redundant frames encoding algorithm for streaming video over error prone wireless channels | |
| Chen et al. | Multi-frame error concealment for H. 264/AVC frames with complexity adaptation | |
| Patel et al. | Hybrid spatio-temporal error concealment technique for image/video transmission | |
| Kim et al. | Hybrid error concealment method for H. 264/AVC | |
| Xu et al. | A perceptual sensitivity based redundant slices coding scheme for error-resilient transmission H. 264/AVC video | |
| Shin et al. | An improved error concealment for mobile IPTV | |
| ES2348123T3 (es) | Compensación de movimiento global para imágenes de video. | |
| KR20080070242A (ko) | 에러 은닉 장치 및 방법 | |
| MX2008009312A (es) | Metodo y aparato para algoritmos de resiliencia de error en comunicacion inalambrica de video | |
| Yang et al. | A content-based layered multiple description coding scheme for robust video transmission over ad hoc networks | |
| Lin et al. | Coding-residual-based motion vector recovery algorithm | |
| Kannepalli | Smart Slice Prioritization in H. 264 AVC | |
| Haroun et al. | Robust multiple hypothesis motion compensated prediction within the H. 264/AVC standard | |
| FMO | OF H. 264/AVC |