ES2674351T3 - Codificación de vídeo escalable con codificación de dos capas y decodificación de una capa - Google Patents

Codificación de vídeo escalable con codificación de dos capas y decodificación de una capa Download PDF

Info

Publication number
ES2674351T3
ES2674351T3 ES06748351.1T ES06748351T ES2674351T3 ES 2674351 T3 ES2674351 T3 ES 2674351T3 ES 06748351 T ES06748351 T ES 06748351T ES 2674351 T3 ES2674351 T3 ES 2674351T3
Authority
ES
Spain
Prior art keywords
layer
data
coefficient
base layer
residual error
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
Application number
ES06748351.1T
Other languages
English (en)
Inventor
Peisong Chen
Vijayalakshmi R. Raveendran
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=36693137&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=ES2674351(T3) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Application granted granted Critical
Publication of ES2674351T3 publication Critical patent/ES2674351T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • 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/124Quantisation
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/36Scalability techniques involving formatting the layers as a function of picture distortion after decoding, e.g. signal-to-noise [SNR] scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/37Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability with arrangements for assigning different transmission priorities to video input data or to video coded data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • 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
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing

Landscapes

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

Abstract

Un procedimiento para decodificar un flujo de bits multimedia, que comprende: recibir una capa de base de datos codificados y una capa de mejora de datos codificados; recibir un coeficiente de error residual en la capa de base de los datos codificados y recibir un refinamiento diferencial del coeficiente de error residual de capa de base en la capa de mejora de los datos codificados, en el que: el coeficiente de error residual de capa de base es: un mínimo de un coeficiente de error residual de capa de base original y un coeficiente de error residual de capa de mejora original; o cero, y el refinamiento diferencial de la capa de mejora se determina en base al coeficiente de error residual de capa de base y al coeficiente de error residual de capa de mejora original; combinar la capa de base recibida de datos codificados y la capa de mejora recibida de datos codificados; combinar el coeficiente de error residual de capa de base y el refinamiento diferencial con la capa de base combinada y la capa de mejora de los datos codificados; y decodificar la capa de base combinada y la capa de mejora de los datos codificados, y el coeficiente de error residual de capa de base combinada y el refinamiento diferencial.

Description

5
10
15
20
25
30
35
40
45
50
55
60
65
DESCRIPCION
Codificación de vídeo escalable con codificación de dos capas y decodificación de una capa
ANTECEDENTES
Campo
[1] Esta invención se refiere a un procedimiento y a un aparato para codificar y decodificar datos de vídeo escalables.
Antecedentes
[2] Debido al crecimiento explosivo y al gran éxito de Internet y de la comunicación inalámbrica, así como a la creciente demanda de servicios multimedia, los medios de transmisión por Internet y los canales móviles/inalámbricos han atraído una gran atención. En redes heterogéneas de Protocolo de Internet (IP), el vídeo se proporciona por un servidor y puede transmitirse por uno o más clientes. Las conexiones por cable incluyen acceso telefónico, ISDN, cable, xDSL, fibra, LAN (red de área local), WAN (red de área amplia) y otros. El modo de transmisión puede ser unidifusión o multidifusión. La variedad de dispositivos cliente individuales, incluyendo PDA (asistente digital personal), ordenador portátil, ordenador de sobremesa, decodificador, TV, HDTV (televisión de alta definición), teléfono móvil y otros, requiere flujos de bits de diferentes anchos de banda simultáneamente para el mismo contenido. El ancho de banda de la conexión podría variar rápidamente con el tiempo (de 9,6 kbps a 100 Mbps o más) y puede ser más rápido que la reacción de un servidor.
[3] Similar a la red IP heterogénea es la comunicación móvil/inalámbrica. El transporte de contenido multimedia a través de canales móviles/inalámbricos es muy difícil porque estos canales a menudo se ven gravemente afectados debido a desvanecimientos multirruta, sombreados, interferencias entre símbolos y perturbaciones de ruido. Algunas otras razones tales como la movilidad y el tráfico competitivo también causan variaciones y pérdidas de ancho de banda. El ruido del canal y la cantidad de usuarios atendidos determinan la propiedad que varía con el tiempo de los entornos del canal. Además de las condiciones ambientales, la red de destino puede variar de redes celulares de segunda a tercera generación a redes de datos de banda ancha debido a la ubicación geográfica y al roaming móvil. Todas estas variables requieren un ajuste de velocidad adaptativo para contenido multimedia, incluso sobre la marcha. Por tanto, la transmisión exitosa de vídeo a través de redes alámbricas/inalámbricas heterogéneas requiere una codificación eficiente, así como adaptabilidad a condiciones de red variables, características del dispositivo y preferencias del usuario, a la vez que es resistente a las pérdidas.
[4] Para cumplir con los diferentes requisitos del usuario y adaptarse a la variación del canal, se podrían generar múltiples versiones independientes de flujos de bits, cumpliendo cada una una clase de restricciones en base al ancho de banda de transmisión, a la visualización del usuario y/o a la capacidad computacional, pero esto no es eficiente para el almacenamiento del servidor y la aplicación de multidifusión. En la codificación escalable, donde se construye en el servidor un único macroflujo de bits que aloja usuarios de gama alta, los flujos de bits para aplicaciones de gama baja se incorporan como subconjuntos del macroflujo de bits. Como tal, un único flujo de bits se puede adaptar a diversos entornos de aplicaciones transmitiendo selectivamente subflujos de bits. Otra ventaja proporcionada por la codificación escalable es para transmisiones de vídeo robustas en canales propensos a errores. La protección contra errores y la ocultación de errores se pueden manejar fácilmente. Se puede aplicar un canal de transmisión más confiable o una protección mejor contra errores a los bits de la capa de base que contengan la información más significativa.
[5] Existen escalas espaciales, temporales y de relación señal-ruido (SNR) en codificadores híbridos como MPEG-1, MPEG-2, MPEG-4 (denominados colectivamente MPEG-x), H.261, H.262, H.263 y H.264 (denominados colectivamente H.26x). En la codificación híbrida, la redundancia temporal se elimina mediante la predicción compensada por movimiento (MCP). El vídeo se divide típicamente en una serie de grupos de imágenes (GOP), donde cada GOP comienza con una trama intracodificada (I) seguida de una disposición de tramas predichas hacia adelante (y/o hacia atrás) (P) y tramas predichas bidireccionales (B). Tanto las tramas P como B son tramas intercaladas que emplean MCP. Una capa de base puede contener la información más significativa de las tramas I, de las tramas P o de las tramas B con un nivel de calidad inferior, y una capa de mejora puede contener información de mayor calidad de las mismas tramas o de tramas de escala temporal adicionales no contenidas en la capa de base. La escalabilidad SNR se puede lograr en un decodificador al omitir selectivamente la decodificación de los datos de mayor calidad en la capa de mejora mientras se decodifican los datos de la capa de base. Dependiendo de cómo se analicen los datos entre la capa de base y la capa de mejora, la decodificación de la capa de base más los datos de la capa de mejora pueden introducir una mayor complejidad y más requisitos de memoria. El aumento de la complejidad computacional y el aumento de los requisitos de memoria pueden ser perjudiciales para el rendimiento de los dispositivos de potencia limitada y de computación limitada, tales como los PDA (asistentes digitales personales), los teléfonos móviles y similares. Lo que se desea es que la decodificación de la capa de base más las capas de mejora no aumente significativamente la complejidad computacional y los requisitos de memoria de dichos dispositivos.
5
10
15
20
25
30
35
40
45
50
55
60
65
[6] El artículo titulado "Scalable Video Coding by Stream Morphing" de John Arnold y otros (XP001222992) analiza una técnica de "flujo morfológico" que aprovecha la redundancia que existe entre diferentes descripciones comprimidas de la misma secuencia de vídeo en diferentes niveles de calidad.
SUMARIO
[7] La presente solicitud está dirigida a procedimientos y aparatos para decodificar y codificar datos, cuyas características se establecen en las reivindicaciones adjuntas. La siguiente divulgación ilustrativa se proporciona para permitir a un profesional experto implementar estos procedimientos y aparatos.
[8] Se describe un procedimiento y un aparato para decodificar flujos de bits multimedia, que comprende un procedimiento y medios para recibir una primera capa de datos codificados y una segunda capa de datos codificados; que combina los datos codificados de la primera capa recibida y los datos codificados de la segunda capa recibida; y que decodifica los datos combinados; en el que la primera capa comprende una capa de base y la segunda capa comprende una capa de mejora.
[9] En otro aspecto, un aparato para decodificar un flujo de bits multimedia comprende un receptor para recibir una primera capa de datos codificados y una segunda capa de datos codificados; un combinador para combinar los datos codificados de la primera capa recibida y los datos codificados de la segunda capa recibida; y un decodificador para decodificar los datos combinados; en el que la primera capa comprende una capa de base y una segunda capa comprende una capa de mejora.
[10] En los aspectos anteriores, el procedimiento y el aparato para decodificar pueden comprender además el procedimiento o medios para recibir un coeficiente de error residual en los datos de la capa de base y para recibir un refinamiento diferencial del coeficiente de error residual de la capa de base en los datos de la capa de mejora; combinar el coeficiente de error residual y el refinamiento diferencial con la primera capa combinada y los datos de la segunda capa; y decodificar la primera capa combinada, la segunda capa y el coeficiente de error residual combinado y el refinamiento diferencial. De forma alternativa, el procedimiento y el aparato pueden comprender además un procedimiento o medios para recibir un coeficiente de error residual en los datos de la capa de base y para recibir un refinamiento diferencial del coeficiente de error residual de la capa de base en los datos de la capa de mejora, en el que el coeficiente de error residual de la capa de base es un mínimo de un coeficiente de error residual de la capa de base original y de un coeficiente de error residual de la capa de mejora original o cero, y el refinamiento diferencial de la capa de mejora se determina en base al coeficiente de error residual y al coeficiente de error residual de la capa de mejora original. El procedimiento y el aparato para decodificar pueden comprender además un procedimiento o medios para recibir un coeficiente de error residual en los datos de la capa de base y para recibir un refinamiento diferencial del coeficiente de error residual de la capa de base en los datos de la capa de mejora, en el que el coeficiente de error residual de la capa de base es un mínimo de un coeficiente de error residual de la capa de base original y de un coeficiente de error residual de la capa de mejora original o cero, y el refinamiento diferencial de la capa de mejora se determina en base al coeficiente de error residual de la capa de base y al coeficiente de error residual de la capa de mejora original. El procedimiento y el aparato para decodificar pueden comprender además un procedimiento o medios para convertir los datos de la primera capa de un primer tamaño de paso de cuantificación en un segundo tamaño de paso de cuantificación, en el que los datos de la segunda capa recibida se codifican en el segundo tamaño de paso de cuantificación. El procedimiento y el aparato para decodificar pueden comprender además un procedimiento o medios para identificar datos intercodificados en los datos combinados, estando asociados dichos datos intercodificados con la primera capa; para identificar datos intercodificados en los datos combinados, estando asociados dichos datos intercodificados con la segunda capa; y para decodificar los datos intercodificados identificados asociados con la primera capa o los datos intercodificados identificados asociados con las primera y segunda capas.
[11] El procedimiento y el aparato para decodificar pueden comprender además un procedimiento o medios para identificar datos intracodificados en los datos combinados, estando asociados dichos datos intracodificados con la primera capa; y decodificar los datos intracodificados identificados.
El procedimiento y el aparato para decodificar pueden comprender además un procedimiento o medios para identificar datos intracodificados en los datos combinados, estando asociados dichos datos intracodificados con la primera capa; para identificar datos intercodificados en los datos combinados, estando asociados dichos datos intercodificados con la segunda capa; y para decodificar los datos intracodificados identificados o los datos intercodificados identificados.
[12] El procedimiento y el aparato para decodificar pueden comprender además un procedimiento o medios para convertir los datos de la primera capa de un primer tamaño de paso de cuantificación en un segundo tamaño de paso de cuantificación, en el que los datos de la segunda capa recibida se codifican en el segundo tamaño de paso de cuantificación. El procedimiento y el aparato para decodificar pueden comprender además un procedimiento o medios para identificar datos intracodificados de la primera capa en un primer pase, para decodificar los datos intracodificados de la segunda capa identificados en un segundo pase y para combinar los datos intracodificados de
5
10
15
20
25
30
35
40
45
50
55
60
65
la primera capa decodificados y los datos intracodificados de la segunda capa decodificados. El procedimiento y el aparato para decodificar pueden comprender además un procedimiento o un medio para descuantificar los datos de la primera capa y de la segunda capa combinados; y, al contrario, transformando los datos descuantificados.
[13] Además, los aspectos anteriores pueden implementarse mediante un medio legible por ordenador y/o un procesador.
[14] En otro aspecto más, un procedimiento y un aparato para codificar datos multimedia pueden comprender un procedimiento o medios para seleccionar datos para decodificar en una primera capa y en una segunda capa para permitir la decodificación de los datos en una única capa combinada; y para codificar los datos seleccionados en la primera capa y en la segunda capa.
[15] En otro aspecto más, un aparato para codificar datos multimedia, que comprende un receptor configurado para seleccionar datos para codificar en una primera capa y en una segunda capa para permitir la decodificación de los datos en una única capa combinada; y un codificador configurado para codificar los datos seleccionados en la primera capa y en la segunda capa.
[16] En los aspectos anteriores, la codificación puede comprender codificar un coeficiente en la primera capa; y codificar un refinamiento diferencial del primer coeficiente de capa en la segunda capa. Los datos de la primera capa codificada pueden comprender un primer coeficiente, y los datos codificados de la segunda capa pueden comprender un segundo coeficiente, en el que los primer y segundo coeficientes se usan para decodificar. Los datos pueden comprender datos intracodificados. Si es así, el procedimiento y el aparato para codificar pueden comprender además un procedimiento o medios para codificar los datos intracodificados en la primera capa o en las primera y segunda capas.
[17] Los datos pueden comprender datos intercodificados. Si es así, el procedimiento y el aparato para la codificación pueden comprender además un procedimiento o medios para codificar los datos intercodificados en la segunda capa.
[18] El procedimiento y el aparato para codificar pueden comprender además un procedimiento o medios para codificar algunos de los datos seleccionados como datos intercodificados en la primera capa y algunos de los datos seleccionados como datos intercodificados en la segunda capa.
[19] Si es así, el procedimiento y el aparato para codificar pueden comprender además un procedimiento o medios para codificar los datos seleccionados como datos intracodificados en la primera capa.
51. El procedimiento según la reivindicación 40, en el que la codificación comprende además codificar algunos de los datos seleccionados como datos intracodificados en la primera capa y algunos de los datos seleccionados como datos intercodificados en la segunda capa.
[20] El procedimiento y el aparato para la codificación pueden comprender además un procedimiento o medios para seleccionar un primer coeficiente primo en base a los primer y segundo coeficientes; y calcular un segundo coeficiente primo en base a los primer y segundo coeficientes, en el que la codificación comprende además usar el primer coeficiente primo para codificar en la primera capa, y usar el segundo coeficiente principal para codificar en la segunda capa. El primer coeficiente puede ser un coeficiente de error residual de la capa de base y el segundo coeficiente es un coeficiente de error residual de la capa de mejora, y el procedimiento y el aparato pueden comprender además un procedimiento o medios para seleccionar el primer coeficiente primo como mínimo del primer coeficiente y el segundo coeficiente o cero, y el cálculo comprende además establecer el segundo coeficiente primo igual al segundo coeficiente.
[21] El procedimiento y el aparato para codificar pueden comprender además asociar información de encabezado de bloque e información de vector de movimiento con la primera capa, derivando dicha información de encabezado de bloque e información de vector de movimiento de los datos recibidos. El procedimiento y el aparato para codificar pueden comprender además cuantificar los datos codificados de la primera capa en un primer tamaño de paso y cuantificar los datos codificados de la segunda capa en un segundo tamaño de paso, en el que el tamaño del primer paso y el tamaño del segundo paso están relacionados por un factor de escala.
[22] El procedimiento y el aparato para codificar pueden comprender además información de sobrecarga de codificación, en el que la información de sobrecarga es un miembro de un grupo que consiste en datos que identifican varias capas, datos que identifican una capa como capa de base, datos que identifican una capa como capa de mejora, datos que identifican una interrelación entre capas, y datos que identifican una capa como una capa de mejora final.
[23] Además, los aspectos anteriores pueden implementarse mediante un medio legible por ordenador y/o un procesador.
5
10
15
20
25
30
35
40
45
50
55
60
65
BREVE DESCRIPCION DE LOS DIBUJOS
[24]
La FIG. 1 es una ilustración de un ejemplo de un sistema de comunicación para el suministro de vídeo en tiempo real;
la FIG. 2A es un diagrama de flujo de un ejemplo de codificación de vídeo en tiempo real escalable SNR;
la FIG. 2B es un diagrama de flujo de un ejemplo de decodificación, en una sola capa, de vídeo en tiempo real escalable SNR;
la FIG. 3 es una ilustración de un ejemplo de un proceso de construcción de trama P;
la FIG. 4 es una ilustración de un ejemplo de un proceso de codificador para codificar la capa de base y los coeficientes de la capa de mejora;
la FIG. 5 es una ilustración de un ejemplo de un proceso selector de coeficiente de capa de base y de capa de mejora para su uso en el proceso mostrado en la FIG. 4;
la FIG. 6 es una ilustración de otro ejemplo de un proceso selector de coeficiente de capa de base y de capa de mejora para su uso en el proceso mostrado en la FIG. 4;
la FIG. 7 es una ilustración de otro ejemplo de un proceso selector de coeficiente de capa de base y de capa de mejora para su uso en el proceso mostrado en la FIG. 4;
la FIG. 8 es una ilustración de un ejemplo de un proceso de decodificador para decodificar datos de la capa de base;
la FIG. 9 es una ilustración de un ejemplo de un proceso de descodificador para decodificar la capa de base más los datos de la capa de mejora; y
la FIG. 10 es una ilustración de otro ejemplo de un proceso de decodificador para decodificar la capa de base más los datos de la capa de mejora.
DESCRIPCIÓN DETALLADA
[25] Se describen procedimientos y aparatos para proporcionar múltiples capas de vídeo, que incluyen una capa de base y una o más capas de mejora, con una sobrecarga del decodificador reducida. Un algoritmo de codificación genera capas base y coeficientes de capa de mejora, que pueden combinarse en el decodificador antes de la descuantificación cuando ambas capas estén disponibles para la decodificación. Los aspectos de algunos modos de realización proporcionan un vídeo de capa de base aceptable cuando la capa de mejora no está disponible o el decodificador puede elegir no decodificar la capa de mejora por razones tales como, por ejemplo, ahorro de energía. En la descripción siguiente, se dan detalles específicos para proporcionar un entendimiento profundo de los modos de realización. Sin embargo, resultará evidente para un experto en la técnica que los modos de realización pueden practicarse sin estos detalles específicos. Por ejemplo, pueden mostrarse circuitos en diagramas de bloques con el fin de no complicar los modos de realización con detalles innecesarios. En otros casos, dichos componentes, otras estructuras y técnicas se pueden mostrar en detalle para explicar mejor los modos de realización.
[26] También se observa que los modos de realización pueden describirse como un proceso, que se representa como un diagrama de flujo, un diagrama de estructura o un diagrama de bloques. Aunque un diagrama de flujo pueda describir las operaciones como un proceso secuencial, muchas de las operaciones pueden realizarse en paralelo o de forma simultánea. Además, el orden de las operaciones puede redisponerse. Un proceso se termina cuando se completan sus operaciones. Un proceso puede corresponder a un procedimiento, a una función, a un procedimiento, a una subrutina, a un subprograma, etc. Cuando un proceso corresponde a una función, su terminación corresponde a un retorno de la función a la función de llamada o a la función principal.
[27] La FIG. 1 es una ilustración de un ejemplo de un sistema de comunicación para el suministro de vídeo en tiempo real. El sistema 100 incluye el dispositivo codificador 105 y el dispositivo decodificador 110. El dispositivo codificador 105 incluye además el componente de transformada 115, el componente de cuantificación 120, el componente de codificador escalable SNR 125, el componente de memoria 130, el componente de procesador 135 y el componente de comunicaciones 140. El procesador 135 proporciona la plataforma informática para realizar los procesos de los otros componentes. El componente de transformada 115 transforma datos de vídeo desde el dominio espacial a otro dominio, tal como el dominio de frecuencia en el caso de DCT (transformada discreta de coseno). Los datos que se estén transformando pueden ser datos intracodificados donde se transformen los datos de vídeo reales, o pueden ser datos intracodificados donde el residuo de predicción espacial se transforme, o pueden ser datos
5
10
15
20
25
30
35
40
45
50
55
60
65
intercodificados donde se transforme un error residual. Otras transformadas digitales incluyen la transformada Hadamard, DWT (transformada de ondículas discreta) y transformadas enteras tales como las usadas en H.264.
[28] El componente de cuantificación 120 asigna el número de bits para representar cada uno de los coeficientes transformados. La cuantificación de los coeficientes transformados se puede cambiar para cada bloque o cada macrobloque. Un macrobloque puede ser un bloque de 16x16 píxeles (formado por un bloque Luma 16x16 y dos bloques Chroma 8x8). El parámetro de cuantificación, QP, determina el nivel de cuantificación que se realiza. Se realiza una mayor compresión digital al aumentar el QP, proporcionando una representación digital de menor calidad de los coeficientes que pueden codificarse en la capa de base de un flujo de vídeo escalable SNR. La disminución del QP permite una representación digital de mayor calidad de los coeficientes que pueden codificarse en la capa de mejora de un flujo de vídeo escalable SNR. El componente de codificador escalable SNR 125 realiza una selección interactiva de coeficientes, en paralelo, por ejemplo, que analiza los coeficientes en coeficientes de capa de base y coeficientes de capa de mejora. La selección interactiva de la capa de base y los coeficientes de la capa de mejora puede realizarse de forma que el dispositivo decodificador decodifique las dos capas, la capa de base más los datos de la capa de mejora, en una sola capa, y se analizarán con más detalle a continuación. El componente de memoria 130 se usa para almacenar información tal como datos de vídeo sin procesar para codificarse, datos de vídeo codificados para transmitirse, o datos intermedios que se hacen funcionar por los diversos componentes del codificador.
[29] El componente de transformada 115 y el componente de cuantificación 120 también realizan la transformada inversa y la descuantificación, respectivamente. Estas operaciones inversas se realizan en el codificador para permitir la reconstrucción de los coeficientes de la misma forma que un dispositivo decodificador, de manera que los cálculos de error residual y los cálculos de coeficiente de capa de mejora sean lo más precisos posible.
[30] El componente de comunicaciones 140 contiene lógica usada para recibir, por ejemplo, un receptor, datos para codificarse desde la fuente externa 145. La fuente externa 145 podría ser, por ejemplo, memoria externa, Internet, un vídeo en vivo y/o alimentación de audio, y la recepción de los datos puede incluir comunicaciones alámbricas y/o inalámbricas. El componente de comunicaciones 140 también contiene datos codificados de lógica para transmitir (Tx) a través de la Red 150. Los datos codificados pueden comprender datos transformados, datos cuantificados, datos codificados de longitud variable o cualquier combinación de los mismos. La red 150 puede formar parte de un sistema alámbrico tal como teléfono, cable y fibra óptica, o de un sistema inalámbrico. En el caso de sistemas de comunicación inalámbrica, la red 150 puede comprender, por ejemplo, parte de un sistema de comunicación de acceso múltiple por división de código (CDMA o CDMA2000) o, de forma alternativa, el sistema puede ser un sistema de acceso múltiple por división de frecuencia (FDMA), un sistema de acceso múltiple por división de tiempo (TDMA) tal como GSM/GPRS (servicio general de radio por paquetes)/EDGE (entorno GSM mejorado de datos) o tecnología de telefonía móvil TETRA (radio troncal terrestre) para la industria de servicios, acceso múltiple por división de código de banda ancha (WCDMA), un sistema de alta velocidad de datos (1xEV-DO o 1xEV-DO Gold Multicast) o, en general, cualquier sistema de comunicación inalámbrica que emplee una combinación de técnicas. Uno o más elementos del dispositivo codificador 105 pueden redisponerse y/o combinarse. Por ejemplo, el componente de procesador 135 puede ser externo al dispositivo codificador 105.
[31] El dispositivo decodificador 110 contiene componentes similares como el dispositivo codificador 105 que incluye el componente de transformada inversa 155, el componente de descuantificación 160, el componente de decodificador de capa única 165, el componente de memoria 170, el componente de comunicación 175 y el componente de procesador 180. El dispositivo de decodificador 110 recibe datos codificados que se han transmitido a través de la red 150 o desde el almacenamiento externo 185. Los datos codificados pueden comprender datos transformados, datos cuantificados, datos codificados de longitud variable o cualquier combinación de los mismos. El componente de comunicaciones 175 contiene la lógica usada para recibir (Rx) datos codificados junto con la red 150, así como la lógica para recibir datos codificados desde el almacenamiento externo 185. El almacenamiento externo 185 podría ser, por ejemplo, RAM o ROM externa, o un servidor remoto. El componente de decodificador de capa única 165 contiene la lógica usada para decodificar los datos de la capa de base y de la capa de mejora. Los datos de la capa de base se pueden decodificar por sí mismos si, por ejemplo, la capa de mejora no se recibe, o se recibe en un estado dañado, o para conservar la energía de la batería o la potencia de procesamiento. El componente de decodificador de capa única 165 también contiene lógica para combinar los datos de la capa de base y de la capa de mejora para decodificar los datos combinados en una única capa. Los datos intracodificados se procesan mediante el componente de descuantificación 160, seguido por el componente de transformada inversa 155 que da como resultado una imagen decodificada que se puede visualizar en el componente de visualización 190.
[32] Los datos intercodificados se pueden decodificar después de que la(s) trama(s) de referencia, de las que se predijo, se decodifiquen. Los coeficientes residuales de error se procesan mediante el componente de decodificador de capa única 165, dando el componente de descuantificación 160 y el componente de transformada inversa 155 como resultado un error residual decodificado. El error residual se combina luego con un(os) macrobloque(s) más compatible(s) de las tramas de referencia. Las tramas decodificadas pueden visualizarse con el componente de visualización 190, almacenarse en el almacenamiento externo 185 o almacenarse en la memoria interna del componente de procesador 180. El componente de visualización 190 puede ser una parte integrada del dispositivo de
5
10
15
20
25
30
35
40
45
50
55
60
65
decodificación que contenga partes tales como hardware y lógica de visualización de vídeo, que incluye una pantalla de visualización, o puede ser un dispositivo periférico externo. El componente de comunicaciones 175 también contiene lógica usada para comunicar las tramas decodificadas al componente de almacenamiento externo 185 o al componente de visualización 190. La codificación de dos capas y la decodificación de capa única realizada por el componente de codificador escalable SNR 125 y el componente de decodificador de capa única 165, respectivamente, se analizan con más detalle a continuación. Uno o más elementos del dispositivo de decodificador 110 pueden redisponerse y/o combinarse. Por ejemplo, el componente de procesador 180 puede ser externo al dispositivo de decodificador 110.
[33] En la decodificación de vídeo, un núcleo de vídeo de hardware, por ejemplo, se puede usar para acelerar el proceso de decodificación intensivo computacionalmente, especialmente la descuantificación y la transformada inversa. Un núcleo de vídeo de hardware puede contener una circuitería especializada y/o procesadores capaces de ejecución simultánea (canalización) de varias funciones. La canalización permite una reducción en el tiempo de decodificación. Cualquier interrupción en el flujo canalizado estándar, tal como una transformada inversa adicional, una operación de descuantificación adicional o incluso adiciones adicionales, podría ralentizar todo el proceso. Resultará evidente para los expertos en la técnica que uno o más modos de realización del núcleo de vídeo pueden implementarse mediante hardware, software, firmware, middleware, microcódigo o cualquier combinación de los mismos. En un decodificador de capa única convencional, la decodificación de las tramas I, la de las tramas P y la de las tramas B siguen todas una ruta similar. Los coeficientes, ya sea que representen un vídeo intracodificado o errores residuales, se descuantifican, se transforman inversamente y luego se combinan con coeficientes de predicción espacial o con los coeficientes de macrobloque más compatibles, respectivamente. Los procesos de codificación y de decodificación descritos a continuación hacen que la decodificación escalable de la capa de base y/o de la capa(s) de mejora sea(n) transparente(s) al núcleo de vídeo del hardware del decodificador. Una forma de lograr esto es decodificar cada capa por separado, cada una en su propio pase, y luego combinar las capas decodificadas. Este enfoque de dos pases puede reutilizar la misma circuitería de hardware para una mayor eficiencia. La transparencia del decodificador también se puede lograr combinando los datos de la capa de base y las modificaciones de la capa de mejora con los datos de la capa de base, antes de decodificar los datos combinados en el núcleo de vídeo de hardware en un único pase, proporcionando más eficiencia. Por ejemplo, un preprocesador tal como un DSP (procesador de señales digitales) puede realizar la operación de combinación.
[34] La FIG. 2A es un diagrama de flujo de un ejemplo de codificación de vídeo en tiempo real escalable SNR. El proceso 200 representa el flujo de codificación de un GOP formado por una trama inicial I seguida por múltiples tramas P y/o B. Cada trama puede contener datos de la capa de base y/o datos de la capa de mejora. Un experto en la técnica también puede optar por proporcionar capas adicionales de datos.
[35] Una trama I está codificada 205 con macrobloques totalmente intracodificados (IntraMB). En H.264, los IntraMB en las tramas I están codificados con predicción espacial completamente explotada, que proporciona una cantidad significativa de ganancia de codificación. Hay dos submodos: Intra 4x4 e Intra 16x16. Si la capa de base y/o la capa de mejora codificadas se van a aprovechar de la ganancia de codificación proporcionada por la predicción espacial, entonces la capa de base se codifica y reconstruye antes de codificar y reconstruir la capa de mejora. Se usa una codificación de dos pases y la reconstrucción de las tramas I. En la capa de base, un parámetro de cuantificación de capa de base QPb proporciona a los coeficientes de transformada un tamaño de paso de cuantificación aproximado. La diferencia en píxeles entre la trama original y la trama de capa de base reconstruida puede codificarse en la capa de mejora. La capa de mejora usa un parámetro de cuantificación QPe que proporciona un tamaño de paso de cuantificación más fino. Los medios de codificación, tales como el codificador escalable SNR 125 de la FIG. 1, puede realizar el acto de codificación 205.
[36] En el paso 210, el codificador codifica datos de la capa de base y datos de la capa de mejora para las tramas P y/o B en el GOP. Los medios de codificación, tales como el codificador escalable SNR 125 de la FIG. 1 puede realizar el acto de codificación 210. Se determina 215 si hay más tramas P o B para codificar. Los medios de codificación, tales como el codificador escalable SNR 125 de la FIG. 1, puede realizar la determinación 215. Si quedan más tramas P o B, se repite el paso 210 hasta que se terminan de codificar todas las tramas en el GOP. Las tramas P y B están compuestas por macrobloques intercodificados (interMB), aunque puede haber IntraMB en las tramas P y B, como se analizará a continuación.
[37] Con el fin de que un decodificador sea capaz de distinguir entre los datos de la capa de base y de la capa de mejora, el codificador codifica la información de sobrecarga, paso 217. Los tipos de información de sobrecarga incluyen, por ejemplo, datos que identifican el número de capas, datos que identifican una capa como capa de base, datos que identifican una capa como capa de mejora, datos que identifican interrelaciones entre capas (por ejemplo, una segunda capa es una capa de mejora para una primera capa o capa de base, o una tercera capa es una capa de mejora para la segunda capa), o datos que identifican una capa como una capa de mejora final en una cadena de capas de mejora. La información de sobrecarga puede estar contenida en encabezados conectados con la base y/o con los datos de la capa de mejora a los que pertenezca o contenidos en mensajes de datos separados. Los medios de codificación, tales como el codificador escalable SNR 125 de la FIG. 1 puede realizar el acto 217. Uno o más elementos del proceso 200 pueden omitirse, redisponerse y/o combinarse.
5
10
15
20
25
30
35
40
45
50
55
60
65
[38] La FIG. 2B es un diagrama de flujo de un ejemplo de decodificación, en una sola capa, del vídeo en tiempo real escalable SNR codificado por el proceso 200. El proceso 220 representa el flujo de decodificación del gOp formado por una trama inicial I seguida de múltiples tramas P y/o B.
[39] El decodificador extrae 222 la información de sobrecarga, por ejemplo, con un identificador, con el fin de identificar las diversas capas contenidas en el/los flujo(s) de bits que reciba, así como las interrelaciones entre las capas. Esta información de sobrecarga permite que el decodificador identifique la información de la capa de base y elija decodificarla solo. En la etapa 225, se toma la decisión de decodificar solo la capa de base o de decodificar la capa combinada de base y de mejora. Los medios de decodificación tales como el componente de decodificador de capa única 165 pueden realizar el paso 225. Si solo se va a decodificar la capa de base, el decodificador realiza una decodificación de capa única convencional de IntraMB y de interMB, paso 260. Los medios de decodificación tales como el componente decodificador de capa única 165 de la FIG. 1 pueden realizar el acto 260. En este ejemplo, si la capa de mejora también debe decodificarse, los IntraMB se decodifican en un esquema de dos pases, o en un esquema de un pase, mientras que las capas de interMB se decodifican en un solo pase, como se describirá en más detalle a continuación. El decodificador puede usar los datos generales que identifiquen el número de capas o los datos generales que identifiquen una capa como la capa final junto con los datos que identifiquen interrelaciones entre capas, para saber cuándo ha recibido todas las capas disponibles en el flujo de bits para el sección actual que esté procesando. Los medios de extracción, tales como el decodificador de capa única 165 de la FIG. 1 pueden realizar el acto 222.
[40] En este ejemplo, se usa un proceso de decodificación de dos pases para cada trama I. En el paso 230, una trama I de la capa de base se decodifica en un primer pase y, en el paso 235, una capa de mejora que comprende un refinamiento diferencial a la capa de base se decodifica y combina con la capa de base (como una trama P con vectores de movimiento cero) para formar la trama I de la capa de mejora. Los medios decodificadores, tales como el decodificador de capa única 165 de la FIG. 1 puede realizar actos 230 y 235. Si el dispositivo decodificador no tiene uso para la trama I de la capa de base Ib decodificada, la memoria intermedia de memoria que contenga Ib se puede sobrescribir y la trama I de la capa de mejora Ie decodificada se puede usar como referencia para las tramas predichas posteriores. Esta sobreescritura de memoria, o mezcla de memoria, se realiza en el paso 240. Los medios de memoria aleatoria, tales como el componente de memoria 170 de la FIG. 1, pueden realizar el acto 240. El dispositivo decodificador puede sobrescribir Ib, si el codificador no usa Ib para cualquier predicción posterior compensada por movimiento.
[41] Se usa una decodificación de pase único para las tramas P y B. Como se analiza a continuación, la base de las tramas P y B y los coeficientes de capa de mejora están codificados de una manera que permite la decodificación de un único pase. El decodificador, después de recibir la capa de base y los coeficientes de la capa de mejora, los combina, paso 245, y los decodifica en una única capa, etapa 250, tal como lo haría con una trama P o B codificada normalmente. Los medios de recepción, por ejemplo, un receptor, tal como el componente de comunicaciones 175 de la FIG. 1 pueden realizar el paso de recepción (paso de recepción no mostrado en la FIG. 2B). Los detalles de combinar el paso 245 y el paso de decodificación 250 se analizan a continuación. Los medios de combinación, por ejemplo, un combinador, y los medios de decodificación tales como el componente de decodificador de capa única 165 de la FIG. 1 pueden realizar los pasos 245 y 250. El paso de decisión 255 comprueba el flujo de bits para identificar si el GOP que se esté decodificando está completo. Si el GOP está completo, el proceso finaliza y luego comienza de nuevo en el próximo GOP. Si quedan más tramas P y/o B en el GOP, los pasos 245 y 250 se repiten hasta que el GOP esté completamente decodificado. Los medios de decodificación tales como el componente decodificador de capa única 165 de la FIG. 1 pueden realizar el acto 255.
[42] Con el fin de tener una decodificación de capa única, los coeficientes de dos capas se combinan antes de la cuantificación inversa. Por lo tanto, los coeficientes de las dos capas se pueden generar de forma interactiva; de lo contrario, esto podría generar una gran cantidad de sobrecarga. Una razón del aumento de la sobrecarga es que la codificación de la capa de base y la codificación de la capa de mejora podrían usar diferentes referencias temporales. Se necesita un algoritmo para generar la capa de base y los coeficientes de la capa de mejora, que se pueden combinar en el decodificador antes de la descuantificación cuando ambas capas estén disponibles. Al mismo tiempo, el algoritmo podría proporcionar un vídeo aceptable de la capa de base cuando la capa de mejora no esté disponible o el decodificador decida no decodificar la capa de mejora por razones tales como, por ejemplo, el ahorro de energía. Antes de analizar los detalles del algoritmo, sería útil un análisis sobre la codificación predictiva estándar. Uno o más elementos del proceso 220 pueden omitirse, redisponerse y/o combinarse.
[43] Las tramas P (o cualquier sección intercodificada) pueden aprovechar la redundancia temporal entre una región en una imagen actual y una región de predicción más compatible en una imagen de referencia. La ubicación de la región de predicción más compatible en la trama de referencia puede codificarse en un conjunto de vectores de movimiento. La diferencia entre la región actual y la región de predicción de referencia más compatible se conoce como error residual (o error de predicción). La FIG. 3 es una ilustración de un ejemplo de un proceso de construcción de Trama P en, por ejemplo, MPEG-4. El proceso 300 es una ilustración más detallada de un proceso de ejemplo que podría tener lugar en el paso 210 de la FIG. 2A. El proceso 300 incluye la imagen actual 325 compuesta de macrobloques 5 x 5, donde el número de macrobloques en este ejemplo es arbitrario. Un macrobloque se compone de 16 x 16 píxeles. Los píxeles se pueden definir por un valor de luminancia de 8 bits (Y) y por dos valores de
5
10
15
20
25
30
35
40
45
50
55
60
65
crominancia de 8 bits (Cr y Cb). En MPEG, los componentes Y, Cr y Cb se pueden almacenar en un formato 4:2:0, donde los componentes Cr y Cb se muestrean por disminución en 2 en las direcciones X e Y. Por lo tanto, cada macrobloque consistiría en 256 componentes Y, 64 componentes Cr y 64 componentes Cb. El macrobloque 335 de la imagen actual 325 se predice a partir de la imagen de referencia 330. Tanto la imagen actual 325 como la imagen de referencia 330 se encuentran en la secuencia de imágenes. Se realiza una búsqueda en la imagen de referencia 330 para localizar el macrobloque más compatible 340 que esté más cerca, en términos de los valores Y, Cr y Cb del macrobloque actual 335 que esté codificándose. La ubicación del macrobloque más compatible 340 en la imagen de referencia 330 está codificada en el vector de movimiento 345. La imagen de referencia 330 puede ser una Trama I o una Trama P que el decodificador puede haber reconstruido antes de la construcción de la imagen actual 325. El macrobloque más compatible 340 se resta del macrobloque actual 335 (se calcula una diferencia para cada uno de los componentes Y, Cr y Cb) dando como resultado el error residual 350. El error residual 350 se codifica con la Transformada de Coseno Discreta (DCT) en 2D 355 y luego se cuantifica 360. La cuantificación 360 puede realizarse para proporcionar compresión espacial, por ejemplo, asignando menos bits a los coeficientes de alta frecuencia mientras se asignan más bits a los coeficientes de baja frecuencia. Los coeficientes cuantificados del error residual 350, junto con el vector de movimiento 345 y la información de identificación de la imagen de referencia 330, son información codificada que representa el macrobloque actual 335. La información codificada puede almacenarse en la memoria para su uso futuro o hacerse funcionar para los propósitos de, por ejemplo, corrección de errores o mejora de imagen, o transmitirse a través de la red 365.
[44] Los coeficientes cuantificados codificados del error residual 350, junto con el vector de movimiento codificado 345, pueden usarse para reconstruir el macrobloque actual 335 en el codificador para su uso como parte de una trama de referencia para las estimación y la compensación de movimiento posteriores. El codificador puede emular los procedimientos de un decodificador para esta reconstrucción del Trama P. La emulación del decodificador puede hacer que tanto el codificador como el decodificador trabajen con la misma imagen de referencia. Aquí se presenta el proceso de reconstrucción, ya sea en un codificador, para otra intercodificación, o en un decodificador. La reconstrucción de una Trama P se puede iniciar después de reconstruir la trama de referencia (o una parte de una imagen o trama a la que se esté haciendo referencia). Los coeficientes cuantificados codificados se descuantifican 370 y luego se realiza una DCT inversa en 2D, o IDCT, 375 dando como resultado un error residual decodificado o reconstruido 380. El vector de movimiento codificado 345 se decodifica y se usa para ubicar el macrobloque más compatible 385 ya reconstruido en la imagen de referencia 330 ya reconstruida. El error residual reconstruido 380 se añade luego al macrobloque más compatible 385 reconstruido para formar el macrobloque reconstruido 390. El macrobloque reconstruido 390 se puede almacenar en la memoria, mostrarse independientemente o en una imagen con otros macrobloques reconstruidos, o procesarse además para la mejora de la imagen.
[45] Las Tramas B (o cualquier sección codificada con predicción bidireccional) puede aprovechar la redundancia temporal entre una región en una imagen actual y una región de predicción más compatible en una imagen previa y una región de predicción más compatible en una imagen posterior. La región de predicción más compatible posterior y la región de predicción más compatible anterior se combinan para formar una región predicha bidireccional combinada. La diferencia entre la región de imagen actual y la región de predicción bidireccional combinada más compatible es un error residual (o error de predicción). Las ubicaciones de la región de predicción más compatible en la imagen de referencia posterior y la región de predicción más compatible en la imagen de referencia previa se pueden codificar en dos vectores de movimiento.
[46] La FIG. 4 es una ilustración de un ejemplo de un proceso de codificador para la codificación de la capa de base y de los coeficientes de la capa de mejora. Las capas de base y de mejora están codificadas para proporcionar un flujo de bits escalable SNR. El proceso 400 representa un ejemplo para codificar coeficientes de error residual de interMB tal como se haría en el paso 210 de la FIG. 2A. Sin embargo, también podrían usarse procedimientos similares para codificar coeficientes de intraMB. Los medios de codificación tales como el componente de codificador escalable SNR 125 de la FIG. 1 pueden realizar el proceso 400 y el paso 210 de la FIG. 2A. Los datos de vídeo originales (que se vayan a codificar) 406 (los datos de vídeo comprenden información de Luma y Chroma en este ejemplo) se introducen en un bucle de macrobloque más compatible con la capa de base 402 y en un bucle de macrobloque más compatible con la capa de mejora 404 . Ambos bucles 402 y 404 intentan minimizar el error residual que se calcula en los sumadores 422 y 438, respectivamente. Los bucles 402 y 404 se pueden realizar en paralelo, como se muestra, o secuencialmente. Los bucles 402 y 404 incluyen lógica para buscar memorias intermedias 420 y 436, respectivamente, que contienen tramas de referencia, para identificar el macrobloque más compatible que minimice el error residual entre el macrobloque más compatible y los datos originales 406 (las memorias intermedias 420 y 436 pueden ser la misma memoria intermedia). Los errores residuales del bucle 402 y del bucle 404 pueden ser diferentes ya que el bucle de capa de base 402 puede utilizar en general un tamaño de paso de cuantificación más aproximado (un valor QP mayor) que el bucle de la capa de mejora 404. Los bloques de transformada 408 y 424 transforman los errores residuales de cada ciclo. En un ejemplo, el codificador asocia la información de encabezado de macrobloque más compatible (o cualquier bloque de píxeles) y la información de vector de movimiento correspondiente con la capa de base, derivando dicha información de encabezado de bloque y dicha información de vector de movimiento a partir de los datos originales recibidos.
[47] Los coeficientes transformados se analizan luego en la capa de base y en los coeficientes de capa de mejora en el selector 410. El análisis del selector 410 puede tomar varias formas, como se analiza a continuación.
5
10
15
20
25
30
35
40
45
50
55
Una característica común de las técnicas de análisis es que el coeficiente primo de capa de mejora, C'enh, se calcula de manera que es un refinamiento diferencial con el coeficiente primo de capa de base C’base- Calcular la capa de mejora para ser un refinamiento de la capa de base permite que un decodificador decodifique el coeficiente de capa de base por sí mismo y tenga una representación razonable de la imagen, o combine los coeficientes de capa de mejora y de base y tenga una representación refinada de la imagen. Los coeficientes primos seleccionados y calculados por el selector 410 se cuantifican luego por los cuantificadores 412 y 426. Los coeficientes primos cuantificados C'base y C'enh (calculados con los cuantificadores 412 y 426 respectivamente) pueden almacenarse en medios de memoria tales como el componente de memoria 130 en la FIG. 1 o transmitirse a través de una red a un decodificador.
[48] Con el fin de hacer coincidir la reconstrucción del macrobloque en un descodificador, el descuantificador 414 descuantifica los coeficientes de error residual de la capa de base. Los coeficientes de error residuales descuantificados se transforman inversamente 416 y se añaden 418 al macrobloque más compatible encontrado en la memoria intermedia 420, dando como resultado un macrobloque reconstruido que coincide con lo que se puede reconstruir en el decodificador. El cuantificador 426, el descuantificador 428, el transformador inverso 432, el sumador 434 y la memoria intermedia 436 realizan cálculos similares en el bucle de mejora 404 como se hizo en el bucle de capa de base 402. Además, el sumador 430 se usa para combinar la capa de mejora descuantificada y los coeficientes de capa de base usados en la reconstrucción de la capa de mejora. El cuantificador y el descuantificador de la capa de mejora pueden utilizar en general un tamaño de paso de cuantificador más fino (un QP menor) que la capa de base. Uno o más elementos del proceso 400 pueden omitirse, redisponerse y/o combinarse.
[49] Las FIGS. 5, 6 y 7 muestran ejemplos de procesos de selección de coeficientes de capa de base y de capa de mejora que pueden emplearse en el selector 410 de la FIG. 4. La selección de medios tales como el componente de codificador escalable SNR 125 de la FIG. 1 puede realizar los procesos representados en las FIGS. 5, 6 y 7. Usando la FIG. 5 como ejemplo, los coeficientes transformados se analizan en los coeficientes primos de la capa de base y de mejora de la siguiente manera:
imagen1
CU=C6„,,-Qb'WC'teJ
[2]
signo[x)
l,s/x>0 l, por el contrario
donde la función "min" es un mínimo matemático de los dos argumentos, y la Fórmula
[1] se representa como el bloque 505 y la Fórmula [2] se representa como el sumador 510 en la FIG. 5. En la Fórmula
[2] , Qb representa el cuantificador de capa de base 412, y Qb-1 representa el descuantificador 414 de la capa de base. La Fórmula [2] convierte el coeficiente de capa de mejora en un refinamiento diferencial del coeficiente de capa de base calculado con la Fórmula [1].
[50] La FIG. 6 es una ilustración de otro ejemplo de una capa de base y de un selector de coeficiente de capa de mejora 410. En este ejemplo, la fórmula (.) contenida en el bloque 605 representa el coeficiente primo de capa de base con lo siguiente:
imagen2
[51] El sumador 610 calcula el coeficiente primo de capa de mejora de la siguiente manera:
[4]
donde C'base se da por la fórmula [3].
[52] La FIG. 7 es una ilustración de otro ejemplo de una capa de base y de un selector de capa de mejora 410. En este ejemplo, el coeficiente primo de capa de base no cambia desde el coeficiente de capa de base original, y el coeficiente primo de capa de mejora es igual a la diferencia entre el coeficiente de capa de base cuantificado/descuantificado y el coeficiente de capa de mejora original. Dependiendo del proceso, el selector 410 puede usarse con la capa de base original y con los coeficientes de capa de mejora original que sean coeficientes intercodificados o intracodificados.
5
10
15
20
25
30
35
40
45
50
55
60
65
[53] Independientemente de qué ejemplo de proceso mostrado en las FIGS. 5, 6 o 7, utiliza el selector 410, el decodificador realiza las mismas operaciones en la decodificación, como se analizará a continuación. Los bucles 402 y 404 pueden funcionar sincrónicamente con ambas capas haciendo referencia al mismo macrobloque compatible, o asíncronamente con cada apuntamiento a un macrobloque de referencia diferente (la información de referencia de la capa de base y la información de referencia de la capa de mejora pueden codificarse ambas en la información de sobrecarga como se analiza a continuación). Si los bucles 402 y 404 apuntan a macrobloques de referencia diferentes, el decodificador puede usar la información de referencia de la capa de base codificada para decodificar solamente la capa de base, o puede usar la información de referencia de la capa de mejora codificada para decodificar la capa de mejora base más combinada.
[54] Además de los coeficientes de error residual de capa de base y de mejora, el decodificador necesita información que identifique cómo están codificados los MB. Los medios de codificación tales como el componente de codificador escalable SNR 125 de la FIG. 1, mientras realiza el paso 210 de la FIG. 2A, codifica información de sobrecarga que puede incluir un mapa de partes intracodificadas e intercodificadas, tal como, por ejemplo, un mapa MB donde los macrobloques (o submacrobloques) se identifiquen como intracodificados o intercodificados, por ejemplo, con un identificador, (que también identifica qué tipo de intercodificación incluye, por ejemplo, hacia adelante, hacia atrás o bidireccional) y a qué trama(s) se hace referencia entre las partes intercodificadas. En un modo de realización de ejemplo, el mapa de MB y los coeficientes de capa de base se codifican en la capa de base, y el coeficiente de capa de mejora se codifica en la capa de mejora.
[55] La FIG. 8 es una ilustración de un ejemplo de un proceso de decodificador para decodificar una única capa de datos de vídeo, datos de la capa de base en este ejemplo, tal como se realizaría en el paso 260 de la FIG. 2B. En el proceso 800, los coeficientes cuantificados C'base representan datos intracodificados o datos de error residual intercodificados. Los coeficientes se descuantifican 805, se transforman inversamente 810 y se añaden 815 a los datos de predicción espacial o temporal almacenados en la memoria intermedia 820. El paso de descuantificación 805 utiliza el parámetro de cuantificación de capa de base QPb. La salida de vídeo de capa de base decodificada 825 resultante puede almacenarse en medios de memoria, tal como el componente de memoria 170 en la FIG. 1, o se muestran en medios de visualización tales como el componente de visualización 190 en la FIG. 1.
[56] El proceso 800 podría repetirse en un segundo pase con los coeficientes de capa de mejora C'enh reemplazando los coeficientes de capa de base C'base, y con un parámetro de cuantificación de capa de mejora QPe reemplazando el parámetro de capa de base en la etapa 805. La salida resultante puede ser la salida de vídeo de la capa de mejora decodificada. La salida de vídeo de capa de base 825 se puede combinar luego, en el dominio de píxeles, con la salida de vídeo de capa de mejora. Este proceso de dos pases puede reutilizar la misma circuitería de hardware del decodificador para una mayor eficiencia. Este proceso de decodificación puede usarse independientemente de qué proceso de codificación, de los que se muestran en las Figs. 5, 6 o 7, se usó.
[57] La FIG. 9 es una ilustración de un ejemplo de un proceso de decodificador para decodificar la capa de base más los datos de la capa de mejora, tal como se realizaría en los pasos 245 y 250 de la FIG. 2B. En el proceso 900, los coeficientes cuantificados C'base y C'enh se descuantifican, en los pasos 905 y 910 respectivamente, y se combinan, en el dominio transformado (por ejemplo, frecuencia), en el paso de adición 915. El acto de descuantificación 905 utiliza un parámetro de cuantificación de capa de base mientras que el acto de descuantificación 910 utiliza un parámetro de cuantificación de capa de mejora QPe más pequeño. Los coeficientes combinados se transforman inversamente 920 y se añaden, paso 925, a los datos de predicción espacial o temporal almacenados en la memoria intermedia 930. Este proceso de decodificación puede usarse independientemente de qué proceso de codificación, de los que se muestran en las Figs. 5, 6 o 7, se usó. La salida de vídeo de capa de mejora 935 resultante se puede almacenar en la memoria o visualizar.
[58] El proceso 900 difiere del proceso 800 de una manera importante. El proceso 900 utiliza dos actos de descuantificación 905 y 910 en lugar del único acto de descuantificación 805 en el proceso 800. Si la descuantificación se canaliza en el núcleo del hardware, es altamente deseable tener solo una etapa de descuantificación para la decodificación de la capa de mejora como en el proceso de decodificación de capa de base 800. Un ejemplo, para reducir el número de pasos de descuantificación a uno, implica la utilización de parámetros de cuantificación relacionados por características matemáticas. El tamaño de paso de cuantificación se duplica para cada incremento de 6 en Qp para H.264. Si = QPe + 6, los coeficientes de capa de base se pueden convertir luego en la escala de la capa de mejora y combinarse con la siguiente fórmula:
imagen3
[59] La FIG. 10 es una ilustración de otro ejemplo de un proceso de decodificador para decodificar la capa de base más los datos de la capa de mejora. El proceso 1000 utiliza la capa de base y la cuantificación de la capa de mejora donde QPb = QPe + 6. Como se muestra en la Fórmula [5], los coeficientes de capa de base se convierten en escala de capa de mejora desplazando (una forma de escala) los coeficientes un bit a la izquierda, en el paso 1005, y se añaden al coeficiente de capa de mejora, en 1010. Por tanto, solo se necesita un acto de descuantificación, en el
5
10
15
20
25
30
35
40
45
50
55
60
65
paso 1015, y un acto de transformada inversa, en la etapa 1020. Si el coeficiente de capa de base es igual a cero, no es necesario ningún cambio. Entonces, con el fin de hacer uso de esta propiedad, cuando tanto Cbase como C'enh son diferentes de cero, la diferencia entre QPe podría ser un múltiplo de 6. También se pueden utilizar otros procedimientos además del cambio de bit, tal como la multiplicación por un factor de escala, por ejemplo, con un escalador.
[60] Las tramas P y B pueden contener IntraMB e interMB. Es común que los codificadores de vídeo híbridos utilicen la optimización de distorsión de frecuencia (RD) para decidir codificar ciertos macrobloques en las tramas P o B como IntraMB. Con el fin de tener una decodificación de capa única en la que los IntraMB no dependen de la capa de base y/o de los interMB de la capa de mejora, cualquier interMB vecino no se usa para la predicción espacial de los IntraMB de la capa de base. Con el fin de mantener inalterada la complejidad computacional para la decodificación de la capa de mejora, para los Intra MB en la trama de capa de base P o B, podría omitirse el refinamiento en la capa de mejora.
[61] Los IntraMB en las tramas P o B requieren muchos más bits que los interMB. Por esta razón, los IntraMB en las tramas P o B podrían codificarse solo en la calidad de la capa de base a un QP mayor. Esto puede introducir cierto deterioro en la calidad de vídeo, pero este deterioro debería ser imperceptible si se refina en una trama posterior con los coeficientes de interMB en la capa de base y en la capa de mejora como se analizó anteriormente. Dos razones hacen que este deterioro sea imperceptible. La primera es una característica del sistema visual humano (HVS) y la otra es que los InterMB refinan los intraMB. Con objetos que cambian de posición desde una primera trama a una segunda trama, algunos píxeles en la primera trama son invisibles en la segunda trama (información que se cubrirá) y algunos píxeles en la segunda trama son visibles por primera vez (información no cubierta). Los ojos humanos no son sensibles a la información visual descubierta y cubierta. Por tanto, para la información descubierta, a pesar de que esté codificada con una calidad inferior, es posible que los ojos no noten la diferencia. Si la misma información permanece en la siguiente trama P, puede haber una alta probabilidad de que la siguiente trama P en la capa de mejora pueda refinarla porque la capa de mejora tenga un QP menor.
[62] Otra técnica común que introduce IntraMB en las tramas P o B se conoce como Intra Refresh. En este caso, algunos MB se codifican como IntraMB, aunque la optimización de R-D estándar dictaminaría que podrían ser MB intercodificados. Estos MB intracodificados, contenidos en la capa de base, pueden codificarse con QPb o QPe. Si QPe, se usa para la capa de base, no se necesita luego ningún refinamiento en la capa de mejora. Si QPb, se usa para la capa de base, luego el refinamiento puede ser apropiado, de lo contrario, en la capa de mejora, la caída de la calidad puede ser notable. Como la intercodificación es más eficiente que la codificación interna en el sentido de eficiencia de codificación, estos refinamientos en la capa de mejora pueden estar intercodificados. De esta forma, los coeficientes de capa de base pueden no usarse para la capa de mejora. Por lo tanto, la calidad mejora en la capa de mejora sin introducir nuevas operaciones.
[63] Las tramas B se usan comúnmente en las capas de mejora debido a las altas cualidades de compresión que ofrecen. Sin embargo, las tramas B pueden tener que hacer referencia a IntraMB de una trama P. Si los píxeles de la trama B debían codificarse en la calidad de la capa de mejora, podría requerir demasiados bits debido a la menor calidad de los IntraMB de la trama P, como se analizó anteriormente. Aprovechando las cualidades del HVS, como se analizó anteriormente, los MB de la trama B podrían codificarse con una calidad inferior cuando se haga referencia a IntraMB de inferior calidad de las tramas P.
[64] Un caso extremo de los Intra MB en las tramas P o B es cuando todos los MB en una trama P o B se codifican en el modo Intra debido a la presencia de un cambio de escena en el vídeo que se esté codificando. En este caso, toda la trama puede codificarse en la calidad de la capa de base y no refinarse en la capa de mejora. Si se produce un cambio de escena en una trama B y se supone que las tramas B solo se codifican en la capa de mejora, entonces la trama B podría codificarse en calidad de capa de base o simplemente descartarse. Si se produce un cambio de escena en una trama P, no se necesitan cambios, pero la trama P se podría descartar o codificar en la calidad de la capa de base.
[65] Los procesos de ejemplo de codificación descritos anteriormente utilizaron procedimientos para seleccionar la capa de base y el coeficiente de capa de mejora después de que se transformaron los datos originales. Técnicas de análisis similares podrían usarse antes de transformar los coeficientes.
[66] Los expertos en la técnica entenderían que la información y las señales pueden representarse usando cualquiera de una variedad de tecnologías y técnicas diferentes. Por ejemplo, los datos, las instrucciones, los comandos, la información, las señales, los bits, los símbolos y los chips que puedan mencionarse a lo largo de la descripción anterior pueden representarse por tensiones, corrientes, ondas electromagnéticas, campos o partículas magnéticos, campos o partículas ópticos o cualquier combinación de los mismos.
[67] Los expertos en la técnica apreciarían además que los varios bloques, módulos, circuitos y etapas algorítmicas lógicos ilustrativos descritos en relación con los modos de realización divulgados en el presente documento pueden implementarse como hardware electrónico, software informático o como combinaciones de ambos. Para ilustrar claramente esta intercambiabilidad de hardware y software, se han descrito anteriormente en
5
10
15
20
25
30
35
general varios componentes ilustrativos, bloques, módulos, circuitos y etapas, en términos de su funcionalidad. Que dicha funcionalidad se implemente como hardware o software depende de la aplicación particular y de las limitaciones de diseño impuestas sobre todo el sistema. Los expertos en la técnica pueden implementar la funcionalidad descrita de formas diferentes para cada solicitud particular, pero dichas decisiones de implementación no deberían interpretarse como causantes de una salida del alcance de los métodos divulgados.
[68] Los diversos bloques lógicos, módulos y circuitos ilustrativos descritos en relación con los aspectos divulgados en el presente documento pueden implementarse o realizarse con un procesador de uso general, un procesador de señales digitales (DSP), un circuito integrado específico de la aplicación (ASIC), una matriz de puertas programables de campo (FPGA) u otro dispositivo lógico programable, compuerta discreta o lógica de transistor, componentes de hardware discretos o cualquier combinación de los mismos diseñada para realizar las funciones descritas en el presente documento. Un procesador de uso general puede ser un microprocesador pero, como alternativa, el procesador puede ser cualquier procesador, controlador, microcontrolador o máquina de estados convencional. Un procesador puede implementarse también como una combinación de dispositivos informáticos, por ejemplo, una combinación de un DSP y de un microprocesador, una pluralidad de microprocesadores, uno o más microprocesadores conjuntamente con un núcleo DSP o cualquier otra dicha configuración.
[69] Las etapas de un procedimiento o algoritmo descrito en relación con los modos de realización divulgados en el presente documento pueden realizarse directamente en hardware, en un módulo de software ejecutado por un procesador o en una combinación de los dos. Un módulo de software puede residir en una memoria RAM, en una memoria flash, en una memoria ROM, en una memoria EPROM, en una memoria EEPROM, en registros, en un disco duro, en un disco extraíble, en un CD-ROM o en cualquier otra forma de medio de almacenamiento conocido en la técnica. Un medio de almacenamiento está acoplado al procesador de manera que el procesador puede leer información del, y escribir información en, el medio de almacenamiento. Como alternativa, el medio de almacenamiento puede ser parte integrante del procesador. El procesador y el medio de almacenamiento pueden residir en un circuito integrado específico de la aplicación (ASIC). El ASIC puede residir en un módem inalámbrico. Como alternativa, el procesador y el medio de almacenamiento pueden residir como componentes discretos en un módem inalámbrico.
[70] La descripción anterior de los ejemplos divulgados se proporciona para permitir que cualquier experto en la técnica haga o use los procedimientos y el aparato divulgados. Diversas modificaciones a estos modos de realización resultarán fácilmente evidentes para los expertos en la técnica y los principios genéricos definidos en el presente documento pueden aplicarse a otros ejemplos sin salirse del alcance de las reivindicaciones adjuntas.
[71] Por tanto, se proporciona un procedimiento y un aparato para proporcionar vídeo de calidad aceptable en una capa de base y vídeo de mayor calidad en una capa de mejora, con una sobrecarga mínima del decodificador.

Claims (36)

1.
10
15
20
25 2.
30
3.
35
4.
40
5.
45
50
55 6.
60
7.
REIVINDICACIONES
Un procedimiento para decodificar un flujo de bits multimedia, que comprende:
recibir una capa de base de datos codificados y una capa de mejora de datos codificados;
recibir un coeficiente de error residual en la capa de base de los datos codificados y recibir un refinamiento diferencial del coeficiente de error residual de capa de base en la capa de mejora de los datos codificados, en el que:
el coeficiente de error residual de capa de base es: un mínimo de un coeficiente de error residual de capa de base original y un coeficiente de error residual de capa de mejora original; o cero, y
el refinamiento diferencial de la capa de mejora se determina en base al coeficiente de error residual de capa de base y al coeficiente de error residual de capa de mejora original;
combinar la capa de base recibida de datos codificados y la capa de mejora recibida de datos codificados;
combinar el coeficiente de error residual de capa de base y el refinamiento diferencial con la capa de base combinada y la capa de mejora de los datos codificados; y
decodificar la capa de base combinada y la capa de mejora de los datos codificados, y el coeficiente de error residual de capa de base combinada y el refinamiento diferencial.
El procedimiento según la reivindicación 1, en el que el coeficiente de error residual de la capa de base es cero cuando el coeficiente de error residual de capa de base original y el coeficiente de error residual de capa original tienen signos opuestos, y en el que el coeficiente de error residual de capa de base es un mínimo del coeficiente de error residual de capa de base original y del coeficiente de error residual de capa de mejora original cuando el coeficiente de error residual de capa de base original y el coeficiente de error residual de capa de mejora original tienen los mismos signos.
El procedimiento según la reivindicación 1, que comprende además:
convertir los datos de la capa de base de un primer tamaño de paso de cuantificación en un segundo tamaño de paso de cuantificación, en el que la capa de mejora recibida de datos codificados se codifica en el segundo tamaño de paso de cuantificación.
El procedimiento según la reivindicación 1, que comprende además identificar los datos intracodificados en los datos de la capa de base recibida e identificar un refinamiento diferencial de los datos intracodificados de la capa de base recibida en la capa de mejora recibida de los datos codificados.
El procedimiento según la reivindicación 4, en el que la decodificación de la capa de base combinada y de la capa de mejora de los datos codificados, y del coeficiente de error residual de capa de base combinada y del refinamiento diferencial se produce con respecto a los datos intercodificados, comprendiendo además el procedimiento:
decodificar los datos intracodificados de capa de base identificada en un primer paso para decodificar;
decodificar los datos intracodificados de la capa de mejora identificados en un segundo pase para decodificar; y
combinar los datos intracodificados de la capa de base decodificada y los datos intracodificados de la capa de mejora decodificada.
El procedimiento según la reivindicación 1, que comprende además:
descuantificar la capa de base combinada y la capa de mejora de los datos codificados; y
transformar inversamente los datos descuantificados.
El procedimiento según la reivindicación 1, que comprende además:
identificar datos intercodificados en datos combinados, siendo los datos combinados la capa de base combinada y la capa de mejora de datos codificados, y el coeficiente de error residual de la capa de base combinada y el refinamiento diferencial, estando asociados dichos datos intercodificados con la capa de base, en donde:
5
10
15
20
25
30
35
40
45
50
55
60
el procedimiento comprende además:
identificar datos intercodificados en los datos combinados, estando dichos datos intercodificados asociados con la capa de mejora; y
decodificar los datos intercodificados identificados asociados con la capa de base o los datos intercodificados identificados asociados con las capas base y de mejora.
8. El procedimiento según la reivindicación 1, que comprende además:
identificar datos intracodificados en los datos combinados, siendo los datos combinados la capa de base combinada y la capa de mejora de los datos codificados, y el coeficiente de error residual de capa de base combinada y el refinamiento diferencial, estando asociados dichos datos intracodificados con la capa de base; y
decodificar los datos intracodificados identificados.
9. El procedimiento según la reivindicación 1, que comprende además:
identificar los datos intracodificados en los datos combinados, siendo los datos combinados la capa de base combinada y la capa de mejora de los datos codificados, y el coeficiente de error residual de capa de base combinada y el refinamiento diferencial, estando asociados dichos datos intracodificados con la capa de base;
identificar datos intercodificados en los datos combinados, estando dichos datos intercodificados asociados con la capa de mejora; y
decodificar los datos intracodificados identificados o los datos intercodificados identificados.
10. Un aparato para decodificar un flujo de bits multimedia, que comprende:
medios para recibir una capa de base de los datos codificados y una capa de mejora de los datos codificados;
medios para recibir un coeficiente de error residual en la capa de base de datos codificados y recibir un refinamiento diferente del coeficiente de error residual de capa de base en la capa de mejora de los datos codificados, en el que:
el coeficiente de error residual de capa de base es: un mínimo de un coeficiente de error residual de capa de base original y un coeficiente de error residual de capa de mejora original; o cero, y
el refinamiento diferencial de la capa de mejora se determina en base al coeficiente de error residual de capa de base y al coeficiente de error residual de capa de mejora original
medios para combinar la capa de base recibida de los datos codificados y la capa de mejora recibida de los datos codificados; y
medios para combinar el coeficiente de error residual de capa de base y el refinamiento diferencial con la capa de base combinada y la capa de mejora de los datos codificados; y
medios para decodificar datos combinados, en los que los medios para decodificar comprenden además medios para decodificar la capa de base combinada y la capa de mejora de los datos codificados, y el coeficiente de error residual de capa de base combinada y el refinamiento diferencial
11. El aparato según la reivindicación 10, en el que el coeficiente de error residual de capa de base es cero cuando el coeficiente de error residual de la capa de base original y el coeficiente de error residual de la capa de mejora original tienen signos opuestos, y en el que el coeficiente de error residual de capa de base es un mínimo del coeficiente de error residual de capa de base original y del coeficiente de error residual de capa de mejora original cuando el coeficiente de error residual de capa de base original y el coeficiente de error residual la capa de mejora original tienen los mismos signos.
12. El aparato según la reivindicación 10, que incluye además:
5
10
15
20
25
30
35
40
45
50
55
60
13.
14.
15.
16.
17.
18.
19.
20. 21. 22.
medios para convertir la capa de base de los datos codificados desde un primer tamaño de paso de cuantificación en un segundo tamaño de paso de cuantificación, en el que la capa de mejora recibida de los datos codificados se codifica en el segundo tamaño de paso de cuantificación.
El aparato según la reivindicación 12, en el que los medios para escalar comprenden además:
medios para el cambio de bits de la capa de base de los datos codificados.
El aparato según la reivindicación 10, en el que los medios para recibir comprenden además:
medios para identificar datos intracodificados en la capa de base recibida de datos codificados y para identificar un refinamiento diferencial a los datos intracodificados de capa de base recibidos en la capa de mejora recibida de los datos codificados.
El aparato según la reivindicación 14, que incluye además:
medios para decodificar datos intracodificados de la capa de base identificados en un primer paso para decodificar;
medios para decodificar datos intracodificados de la capa de mejora identificados en un segundo pase para decodificar; y
medios para combinar los datos intracodificados de capa de base decodificada y los datos intracodificados de la capa de mejora decodificada.
El aparato según la reivindicación 10, en el que los medios para descodificar comprenden además:
medios para descuantificar la capa de base combinada y la capa de mejora de los datos codificados; y
medios para transformar inversamente los datos descuantificados.
Un aparato para decodificar un flujo de bits multimedia de acuerdo con cualquiera de las reivindicaciones 10 a 16, en el que el medio para recibir es un receptor, el medio para combinar es un combinador y el medio para decodificar es un decodificador.
El aparato según la reivindicación
17 cuando dependa de la reivindicación 12, en el que el medio para
convertir es un escalador.
El aparato según la reivindicación
17 cuando dependa de la reivindicación 14, en el que el medio para
identificar es un identificador.
El aparato según la reivindicación
17 cuando dependa de la reivindicación 16, en el que el medio para
descuantificar es un descuantificador y el medio para la transformada inversa es un transformador.
Un medio legible por ordenador que incorpora un procedimiento para decodificar un flujo de bits multimedia de acuerdo con cualquiera de las reivindicaciones 1 a 9.
Un procedimiento de codificación de datos multimedia, que comprende:
seleccionar datos para codificar en una primera capa y en una segunda capa para permitir la decodificación de los datos en una única capa combinada, en donde la primera capa de datos codificados comprende un primer coeficiente, la segunda capa de datos codificados comprende un segundo coeficiente y los primer y segundo coeficientes se usan para decodificar;
seleccionar un primer coeficiente primo en base a los primer y segundo coeficientes;
calcular un segundo coeficiente primo en base a los primer y segundo coeficientes; codificar los datos seleccionados en la primera capa y en la segunda capa, en donde la codificación comprende además usar el primer coeficiente primo para codificar en la primera capa, y usar el segundo coeficiente primo para codificar en la segunda capa;
en el que el primer coeficiente es un coeficiente de error residual de capa de base y el segundo coeficiente es un coeficiente de error residual de la capa de mejora; y
5
10
15
20
25
30
35
40
45
50
55
60
65
en el que la selección comprende además seleccionar el primer coeficiente principal para que sea: un mínimo del primer coeficiente y del segundo coeficiente; o cero, y el cálculo comprende además establecer el segundo coeficiente primo igual al segundo coeficiente.
23. El procedimiento según la reivindicación 22, en el que la codificación comprende:
codificar un refinamiento diferencial del primer coeficiente de capa en la segunda capa.
24. El procedimiento según la reivindicación 22, en el que el primer coeficiente primo es cero cuando el primer coeficiente y el segundo coeficiente tienen signos opuestos, y en el que el primer coeficiente primo es un mínimo del primer coeficiente y del segundo coeficiente cuando el primer coeficiente y el segundo coeficiente tienen los mismos signos.
25. El procedimiento según la reivindicación 22, en el que el procedimiento comprende además asociar información de encabezado de bloque e información de vector de movimiento con la primera capa, obteniendo dicha información de encabezado de bloque e información de vector de movimiento de los datos recibidos.
26. El procedimiento según la reivindicación 22, en el que el procedimiento comprende además cuantificar la primera capa de datos codificados en un primer paso y cuantificar la segunda capa de datos codificados en un segundo tamaño de paso, en el que el primer tamaño de paso y el segundo paso están relacionados por un factor de escala.
27. El procedimiento según la reivindicación 22, en el que los datos comprenden datos intracodificados y además en el que la codificación comprende además codificar los datos intracodificados en la primera capa o en las primera y segunda capas.
28. El procedimiento según la reivindicación 23, en el que los datos comprenden datos intercodificados, en los que la codificación comprende además codificar los datos intercodificados en la segunda capa.
29. El procedimiento según la reivindicación 22, en el que la codificación comprende además codificar algunos de los datos seleccionados como datos intercodificados en la primera capa y algunos de los datos seleccionados como datos intercodificados en la segunda capa.
30. El procedimiento según la reivindicación 22, en el que la codificación comprende además codificar los datos seleccionados como datos intracodificados en la primera capa.
31. El procedimiento según la reivindicación 22, que comprende además información de sobrecarga de codificación, en el que la información de sobrecarga es un miembro de un grupo que consiste en: datos que identifican un número de capas, datos que identifican una capa como capa de base, datos que identifican una capa como una capa de mejora, datos que identifican una interrelación entre capas, y datos que identifican una capa como una capa de mejora final.
32. Un aparato para codificar datos multimedia, que comprende:
medios para seleccionar datos para codificar en una primera capa y en una segunda capa para permitir la decodificación de los datos en una única capa combinada, en donde la primera capa de datos codificados comprende un primer coeficiente, la segunda capa de datos codificados comprende un segundo coeficiente y los primer y segundo coeficientes se usan para decodificar;
medios para seleccionar un primer coeficiente primo en base a los primer y segundo coeficientes;
medios para calcular un segundo coeficiente primo en base a los primer y segundo coeficientes;
medios para codificar los datos seleccionados en la primera capa y en la segunda capa en donde la codificación comprende además el uso del primer coeficiente primo para la codificación en la primera capa y el uso del segundo coeficiente principal para la codificación en la segunda capa;
en el que el primer coeficiente es un coeficiente de error residual de capa de base y el segundo coeficiente es un coeficiente de error residual de capa de mejora; y
en el que la selección comprende además seleccionar el primer coeficiente principal para que sea: un mínimo del primer coeficiente y del segundo coeficiente; o cero, y el cálculo comprende además establecer el segundo coeficiente primo igual al segundo coeficiente.
33. El aparato según la reivindicación 32, en el que los medios para codificar comprenden:
5
10
15
20
25
30
35
medios para codificar un refinamiento diferencial del primer coeficiente de capa en la segunda capa.
34. El aparato según la reivindicación 32, en el que el primer coeficiente primo es cero cuando el primer coeficiente y el segundo coeficiente tienen signos opuestos, y en el que el primer coeficiente primo es un mínimo del primer coeficiente y del segundo coeficiente cuando el primer coeficiente y el segundo coeficiente tienen los mismos signos.
35. El aparato según la reivindicación 32, que comprende además:
medios para asociar información de encabezado de bloque e información de vector de movimiento con la primera capa, obteniendo dicha información de encabezado de bloque e información de vector de movimiento de los datos recibidos.
36. El aparato según la reivindicación 32, que comprende además:
medios para cuantificar la primera capa de datos codificados en un primer tamaño de paso; y
medios para cuantificar la segunda capa de datos codificados en un segundo tamaño de paso, en el que el primer tamaño de paso y el segundo tamaño de paso están relacionados por un factor de escala.
37. El aparato según la reivindicación 32, en el que los datos son datos intracodificados y además en los que los medios para codificar codifican los datos intracodificados en la primera capa o en las primera y segunda capas.
38. El aparato según la reivindicación 32, en el que los datos son datos intercodificados y además en el que los medios para codificar codifican los datos intercodificados en la segunda capa.
39. El aparato según la reivindicación 32, que comprende además:
medios para codificar información de sobrecarga, en el que la información de sobrecarga es un elemento de un grupo que consiste en datos que identifican un número de capas, datos que identifican una capa como una capa de base, datos que identifican una capa como una capa de mejora, datos que identifican una interrelación entre capas, y datos que identifican una capa como una capa de mejora final.
40. Un medio legible por ordenador que incorpora un procedimiento para codificar datos multimedia de acuerdo con cualquiera de las reivindicaciones 22 a 31.
ES06748351.1T 2005-03-10 2006-03-10 Codificación de vídeo escalable con codificación de dos capas y decodificación de una capa Active ES2674351T3 (es)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US66087705P 2005-03-10 2005-03-10
US660877P 2005-03-10
US71320805P 2005-08-30 2005-08-30
US713208P 2005-08-30
PCT/US2006/008761 WO2006099221A2 (en) 2005-03-10 2006-03-10 Scalable video coding with two layer encoding and single layer decoding

Publications (1)

Publication Number Publication Date
ES2674351T3 true ES2674351T3 (es) 2018-06-29

Family

ID=36693137

Family Applications (1)

Application Number Title Priority Date Filing Date
ES06748351.1T Active ES2674351T3 (es) 2005-03-10 2006-03-10 Codificación de vídeo escalable con codificación de dos capas y decodificación de una capa

Country Status (24)

Country Link
US (1) US7995656B2 (es)
EP (1) EP1856917B1 (es)
JP (3) JP2008533850A (es)
KR (1) KR100950273B1 (es)
CN (1) CN101167364B (es)
AR (1) AR056939A1 (es)
AU (1) AU2006223285C1 (es)
BR (1) BRPI0608284A2 (es)
CA (1) CA2600450C (es)
DK (1) DK1856917T3 (es)
ES (1) ES2674351T3 (es)
HU (1) HUE038079T2 (es)
IL (1) IL185827A (es)
MX (1) MX2007011087A (es)
NO (1) NO20075125L (es)
NZ (1) NZ561351A (es)
PL (1) PL1856917T3 (es)
PT (1) PT1856917T (es)
RU (1) RU2372743C2 (es)
SI (1) SI1856917T1 (es)
TR (1) TR201808894T4 (es)
TW (1) TWI457001B (es)
UA (1) UA90889C2 (es)
WO (1) WO2006099221A2 (es)

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2575908A1 (en) * 2004-09-14 2006-03-23 Gary Demos High quality wide-range multi-layer compression coding system
US8780957B2 (en) 2005-01-14 2014-07-15 Qualcomm Incorporated Optimal weights for MMSE space-time equalizer of multicode CDMA system
KR100941336B1 (ko) * 2005-03-10 2010-02-11 퀄컴 인코포레이티드 멀티미디어 스트리밍에서 최적화된 오류 관리를 위한디코더 아키텍쳐
US7925955B2 (en) * 2005-03-10 2011-04-12 Qualcomm Incorporated Transmit driver in communication system
US8693540B2 (en) * 2005-03-10 2014-04-08 Qualcomm Incorporated Method and apparatus of temporal error concealment for P-frame
WO2006099082A2 (en) 2005-03-10 2006-09-21 Qualcomm Incorporated Content adaptive multimedia processing
US8705617B2 (en) 2005-09-27 2014-04-22 Qualcomm Incorporated Multiple layer video encoding
US8879857B2 (en) 2005-09-27 2014-11-04 Qualcomm Incorporated Redundant data encoding methods and device
US8654848B2 (en) 2005-10-17 2014-02-18 Qualcomm Incorporated Method and apparatus for shot detection in video streaming
US8948260B2 (en) 2005-10-17 2015-02-03 Qualcomm Incorporated Adaptive GOP structure in video streaming
DE102005060968B4 (de) * 2005-12-20 2008-05-08 Infineon Technologies Ag Verfahren und Ablaufsteuerung zur Übertragung von Daten verschiedener Verkehrstypen durch ein xDSL-Modem
US7956930B2 (en) 2006-01-06 2011-06-07 Microsoft Corporation Resampling and picture resizing operations for multi-resolution video coding and decoding
US8320450B2 (en) * 2006-03-29 2012-11-27 Vidyo, Inc. System and method for transcoding between scalable and non-scalable video codecs
US9131164B2 (en) 2006-04-04 2015-09-08 Qualcomm Incorporated Preprocessor method and apparatus
EP1944978A1 (en) * 2007-01-12 2008-07-16 Koninklijke Philips Electronics N.V. Method and system for encoding a video signal. encoded video signal, method and system for decoding a video signal
PT2123052E (pt) * 2007-01-18 2011-03-02 Fraunhofer Ges Forschung Corrente de dados de vídeo de qualidade escalonável
US8767834B2 (en) * 2007-03-09 2014-07-01 Sharp Laboratories Of America, Inc. Methods and systems for scalable-to-non-scalable bit-stream rewriting
KR100937030B1 (ko) * 2007-05-31 2010-01-15 한국전자통신연구원 디지털 방송 신호의 전송 방법, 전송 장치, 수신 방법 및수신 장치
EP2174502A2 (en) * 2007-06-26 2010-04-14 Nokia Corporation System and method for indicating temporal layer switching points
KR101366249B1 (ko) * 2007-06-28 2014-02-21 삼성전자주식회사 스케일러블 영상 부호화장치 및 방법과 그 영상 복호화장치및 방법
US9648325B2 (en) 2007-06-30 2017-05-09 Microsoft Technology Licensing, Llc Video decoding implementations for a graphics processing unit
US20090060035A1 (en) * 2007-08-28 2009-03-05 Freescale Semiconductor, Inc. Temporal scalability for low delay scalable video coding
US8161166B2 (en) * 2008-01-15 2012-04-17 Adobe Systems Incorporated Information communication using numerical residuals
TWI386063B (zh) * 2008-02-19 2013-02-11 Ind Tech Res Inst 可調性視訊編碼標準的位元流分配系統與方法
US8711948B2 (en) * 2008-03-21 2014-04-29 Microsoft Corporation Motion-compensated prediction of inter-layer residuals
US8503460B2 (en) 2008-03-24 2013-08-06 Qualcomm Incorporated Dynamic home network assignment
US8082320B1 (en) 2008-04-09 2011-12-20 Adobe Systems Incorporated Communicating supplemental information over a block erasure channel
JP5238069B2 (ja) * 2008-04-25 2013-07-17 フラウンホッファー−ゲゼルシャフト ツァ フェルダールング デァ アンゲヴァンテン フォアシュンク エー.ファオ トランスポート・データストリーム内で参照するフレキシブル・サブストリーム
FR2932637B1 (fr) * 2008-06-17 2010-08-20 Canon Kk Procede et dispositif de codage d'une sequence d'images
US9571856B2 (en) 2008-08-25 2017-02-14 Microsoft Technology Licensing, Llc Conversion operations in scalable video encoding and decoding
BRPI0918671A2 (pt) * 2008-09-16 2020-07-14 Thomson Licensing método para entrega de programação de tv linear digital usando codificação de vídeo escalável
US20100135379A1 (en) * 2008-12-02 2010-06-03 Sensio Technologies Inc. Method and system for encoding and decoding frames of a digital image stream
EP2382756B1 (fr) * 2008-12-31 2018-08-22 Lewiner, Jacques Procédé de modélisation par macroblocs de l'affichage d'un terminal distant à l'aide de calques caractérisés par un vecteur de mouvement et des données de transparence
WO2011005563A1 (en) * 2009-06-24 2011-01-13 Delta Vidyo, Inc. System and method for an active video electronic programming guide
CN101938659A (zh) * 2009-06-30 2011-01-05 中兴通讯股份有限公司 移动多媒体广播系统中业务扩展方法与装置
US8345749B2 (en) * 2009-08-31 2013-01-01 IAD Gesellschaft für Informatik, Automatisierung und Datenverarbeitung mbH Method and system for transcoding regions of interests in video surveillance
US8908774B2 (en) * 2010-02-11 2014-12-09 Mediatek Inc. Method and video receiving system for adaptively decoding embedded video bitstream
US20120179833A1 (en) * 2010-06-02 2012-07-12 Onmobile Global Limited Method and apparatus for adapting media
US10033485B2 (en) 2010-08-25 2018-07-24 Qualcomm Incorporated Managing acknowledgement messages from multiple destinations for multi user MIMO transmissions
US20120075436A1 (en) * 2010-09-24 2012-03-29 Qualcomm Incorporated Coding stereo video data
US9706214B2 (en) 2010-12-24 2017-07-11 Microsoft Technology Licensing, Llc Image and video decoding implementations
RU2448370C1 (ru) * 2011-03-22 2012-04-20 Открытое акционерное общество "Концерн радиостроения "Вега" Способ обнаружения модификации электронного изображения
CN103621081B (zh) * 2011-06-10 2016-12-21 寰发股份有限公司 可伸缩视频编码方法及装置
CN103931173B (zh) * 2011-06-30 2016-12-21 维德约股份有限公司 可伸缩视频编码中的运动预测
RU2477891C1 (ru) * 2011-09-02 2013-03-20 Открытое акционерное общество "Концерн радиостроения "Вега" Способ обнаружения модификации электронного изображения (варианты)
JP5698644B2 (ja) * 2011-10-18 2015-04-08 株式会社Nttドコモ 動画像予測符号化方法、動画像予測符号化装置、動画像予測符号化プログラム、動画像予測復号方法、動画像予測復号装置及び動画像予測復号プログラム
US9819949B2 (en) * 2011-12-16 2017-11-14 Microsoft Technology Licensing, Llc Hardware-accelerated decoding of scalable video bitstreams
US9591303B2 (en) * 2012-06-28 2017-03-07 Qualcomm Incorporated Random access and signaling of long-term reference pictures in video coding
US9602827B2 (en) * 2012-07-02 2017-03-21 Qualcomm Incorporated Video parameter set including an offset syntax element
EP3273691B1 (en) * 2012-12-18 2021-09-22 Sony Group Corporation Image processing device and image processing method
US20150358635A1 (en) * 2013-01-07 2015-12-10 Vid Scale, Inc. Motion information signaling for scalable video coding
US9743097B2 (en) * 2013-03-01 2017-08-22 Qualcomm Incorporated Spatial motion vector scaling for scalable video coding
KR101754527B1 (ko) * 2015-03-09 2017-07-06 한국항공우주연구원 패킷 부호화 장치 및 방법
US11636100B2 (en) * 2020-11-27 2023-04-25 Verizon Patent And Licensing Inc. Systems and methods for compression-based search engine

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3576660B2 (ja) 1995-09-29 2004-10-13 株式会社東芝 画像符号化装置および画像復号化装置
JP3788823B2 (ja) 1995-10-27 2006-06-21 株式会社東芝 動画像符号化装置および動画像復号化装置
US6173013B1 (en) 1996-11-08 2001-01-09 Sony Corporation Method and apparatus for encoding enhancement and base layer image signals using a predicted image signal
RU2201654C2 (ru) 1997-12-23 2003-03-27 Томсон Лайсенсинг С.А. Способ низкошумового кодирования и декодирования
US6275531B1 (en) 1998-07-23 2001-08-14 Optivision, Inc. Scalable video coding method and apparatus
US6263022B1 (en) * 1999-07-06 2001-07-17 Philips Electronics North America Corp. System and method for fine granular scalable video with selective quality enhancement
US6600836B1 (en) 2000-01-28 2003-07-29 Qualcomm, Incorporated Quality based image compression
US6700933B1 (en) * 2000-02-15 2004-03-02 Microsoft Corporation System and method with advance predicted bit-plane coding for progressive fine-granularity scalable (PFGS) video coding
GB2364842A (en) * 2000-07-11 2002-02-06 Motorola Inc Method and system for improving video quality
GB2384638B (en) 2002-01-24 2004-04-28 Motorola Inc Scalable video communication
AU2003274538A1 (en) * 2002-11-22 2004-06-18 Koninklijke Philips Electronics N.V. Transcoder for a variable length coded data stream
US8315307B2 (en) 2004-04-07 2012-11-20 Qualcomm Incorporated Method and apparatus for frame prediction in hybrid video compression to enable temporal scalability
US7991053B2 (en) 2004-05-04 2011-08-02 Qualcomm Incorporated Method and apparatus to enable acquisition of media in streaming applications
US7430336B2 (en) 2004-05-06 2008-09-30 Qualcomm Incorporated Method and apparatus for image enhancement for low bit rate video compression
US8553776B2 (en) 2004-07-21 2013-10-08 QUALCOMM Inorporated Method and apparatus for motion vector assignment

Also Published As

Publication number Publication date
JP2008533850A (ja) 2008-08-21
CA2600450C (en) 2013-02-12
WO2006099221A3 (en) 2007-01-04
JP5619688B2 (ja) 2014-11-05
US20060230162A1 (en) 2006-10-12
IL185827A0 (en) 2008-01-06
JP2012120211A (ja) 2012-06-21
JP2011254500A (ja) 2011-12-15
NZ561351A (en) 2010-11-26
EP1856917A2 (en) 2007-11-21
CN101167364B (zh) 2011-05-25
UA90889C2 (uk) 2010-06-10
EP1856917B1 (en) 2018-04-18
BRPI0608284A2 (pt) 2009-12-22
PL1856917T3 (pl) 2018-09-28
PT1856917T (pt) 2018-06-28
JP5619790B2 (ja) 2014-11-05
TW200706006A (en) 2007-02-01
NO20075125L (no) 2007-10-24
WO2006099221A2 (en) 2006-09-21
AU2006223285C1 (en) 2010-10-28
US7995656B2 (en) 2011-08-09
TR201808894T4 (tr) 2018-07-23
MX2007011087A (es) 2007-11-14
TWI457001B (zh) 2014-10-11
HUE038079T2 (hu) 2018-09-28
DK1856917T3 (en) 2018-06-25
SI1856917T1 (en) 2018-06-29
AU2006223285A1 (en) 2006-09-21
RU2007137490A (ru) 2009-04-20
IL185827A (en) 2012-06-28
CN101167364A (zh) 2008-04-23
KR20070117623A (ko) 2007-12-12
AR056939A1 (es) 2007-11-07
RU2372743C2 (ru) 2009-11-10
AU2006223285B2 (en) 2010-04-22
KR100950273B1 (ko) 2010-03-31
CA2600450A1 (en) 2006-09-21

Similar Documents

Publication Publication Date Title
ES2674351T3 (es) Codificación de vídeo escalable con codificación de dos capas y decodificación de una capa
US20230033765A1 (en) System and method for video coding
US8532187B2 (en) Method and apparatus for scalably encoding/decoding video signal
JP2008533850A5 (es)
US20050207664A1 (en) Methods and apparatuses for compressing digital image data
US20100091841A1 (en) System and method of optimized bit extraction for scalable video coding
JP5675719B2 (ja) マルチメディアデータを処理する方法および装置
US20220159307A1 (en) System and method for video coding
JP2007529184A (ja) 動き予測を使用してデジタル・イメージ・データを圧縮するための方法および装置
US20220303546A1 (en) Encoder, decoder, encoding method, and decoding method
US20220038746A1 (en) Encoder, decoder, encoding method, and decoding method
US20220201306A1 (en) Encoder, decoder, encoding method, and decoding method
US20220272364A1 (en) Encoder, decoder, encoding method, decoding method, and medium
Parameswaran et al. Adapting quantization offset in multiple description coding for error resilient video transmission
Yang et al. A content-based layered multiple description coding scheme for robust video transmission over ad hoc networks
Nakachi et al. A study on multiresolution lossless video coding using inter/intra frame adaptive prediction
Adam Transmission of low-bit-rate MPEG-4 video signals over wireless channels