ES2440824T3 - Dispositivo y procedimiento de codificación y de decodificación escalables de flujo de datos de imágenes, señal y programa informático correspondientes - Google Patents
Dispositivo y procedimiento de codificación y de decodificación escalables de flujo de datos de imágenes, señal y programa informático correspondientes Download PDFInfo
- Publication number
- ES2440824T3 ES2440824T3 ES07803994.8T ES07803994T ES2440824T3 ES 2440824 T3 ES2440824 T3 ES 2440824T3 ES 07803994 T ES07803994 T ES 07803994T ES 2440824 T3 ES2440824 T3 ES 2440824T3
- Authority
- ES
- Spain
- Prior art keywords
- blocks
- coding
- data
- block
- group
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 33
- 238000013139 quantization Methods 0.000 claims abstract description 10
- 238000011002 quantification Methods 0.000 claims description 55
- 230000005540 biological transmission Effects 0.000 claims description 6
- 238000004891 communication Methods 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 3
- 239000010410 layer Substances 0.000 description 59
- 230000006872 improvement Effects 0.000 description 30
- 239000011229 interlayer Substances 0.000 description 24
- 230000000750 progressive effect Effects 0.000 description 12
- 230000003044 adaptive effect Effects 0.000 description 9
- 230000006835 compression Effects 0.000 description 7
- 238000007906 compression Methods 0.000 description 7
- 230000000295 complement effect Effects 0.000 description 6
- 230000011664 signaling Effects 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 5
- 238000006467 substitution reaction Methods 0.000 description 5
- 230000002123 temporal effect Effects 0.000 description 5
- 230000006978 adaptation Effects 0.000 description 4
- 238000000354 decomposition reaction Methods 0.000 description 4
- 239000012634 fragment Substances 0.000 description 4
- 230000033001 locomotion Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000009466 transformation Effects 0.000 description 4
- 239000000654 additive Substances 0.000 description 3
- 230000000996 additive effect Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000015654 memory Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234327—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by decomposing into layers, e.g. base layer and one or more enhancement layers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/266—Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
- H04N21/2662—Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Abstract
Procedimiento de codificación de una imagen o de una secuencia de imágenes que generan un flujo de datos enforma de grupos de bloques, en el que al menos un grupo de bloques agrupa bloques de imagen que tienen unaresolución y un nivel de calidad de cuantificación idénticos, caracterizado porque dicho procedimiento comprende,para la codificación de dicho al menos un grupo de bloques a dicha resolución y a dicho nivel de calidad decuantificación, un número de pasadas de codificación superior o igual a dos, correspondiendo una primera pasada auna primera etapa de codificación adaptada para generar, para cada bloque del al menos un grupo de bloques,datos codificados útiles para una predicción de un nivel de calidad de cuantificación superior, siendo los datos noútiles para una predicción de un nivel de calidad de cuantificación superior para al menos un bloque de dicho almenos un grupo de bloques codificados en el curso de al menos otra pasada, de tal manera que para al menos unbloque de dicho al menos un grupo de bloques, los datos codificados en el curso de las pasadas pueden combinarsedurante la decodificación para suministrar una decodificación de dicho bloque, comprendiendo el procedimientoademás la introducción de cada pasada de codificación en una slice en el sentido de la sintaxis SVC.
Description
Dispositivo y procedimiento de codificación y de decodificación escalables de flujo de datos de imágenes, señal y programa informático correspondientes
5 El campo de la invención es el de la codificación y decodificación de imágenes o de secuencias vídeo de imágenes. Más en concreto, la invención se refiere a una técnica de codificación y decodificación de imágenes escalables (en inglés, "scalable"), es decir, de calidad adaptable y resolución espacio-temporal variable.
Numerosos sistemas de transmisión de datos son en la actualidad heterogéneos, en el sentido de que atienden a una pluralidad de clientes que disponen de tipos de acceso a los datos muy diversos. Así, la red mundial Internet, por ejemplo, es accesible tanto a partir de un terminal de tipo ordenador personal (PC) como de un radioteléfono. Más en general, la banda de paso para el acceso a la red, las capacidades de tratamiento de los terminales clientes y el tamaño de sus pantallas varían significativamente de un usuario a otro. Así, un primer cliente puede acceder,
15 por ejemplo, a la red Internet a partir de un PC potente, y disponer de una velocidad ADSL ("Asymmetric Digital Subscriber Line", o "Línea de abonado digital de estructura asimétrica") de 1.024 kbits/s mientras que un segundo cliente pretende acceder a los mismos datos en el mismo instante a partir de un terminal de tipo PDA ("Personal Digital Assistant", o "asistente digital personal") conectado a un módem de baja velocidad.
Así pues, es necesario proponer a estos diversos usuarios un flujo de datos que esté adaptado tanto en términos de velocidad como de resolución de las imágenes a sus diferentes necesidades. Esta necesidad se impone especialmente para todas las aplicaciones accesibles para clientes que disponen de capacidades de acceso y de tratamiento muy diversas, y sobre todo para las aplicaciones de:
25 - VOD ("Video On Demand", o "vídeo a la carta"), accesibles para terminales de radiocomunicación de tipo UMTS ("Universal Mobile Telecomunicación Service", o "servicio de telecomunicación móvil universal"), para PC o para terminales de televisión con acceso ADSL, etc.;
- -
- movilidad de sesión (por ejemplo, recuperación en una PDA de una sesión de vídeo iniciada en un televisor, o, en un móvil UMTS de una sesión iniciada en GPRS ("General Packet Radio Service", o "servicio general de radiocomunicación por paquetes"));
- -
- continuidad de sesión (en un contexto de compartición de la banda de paso con una nueva aplicación);
35 - televisión de alta definición, en la que una codificación de vídeo única debe permitir servir tanto a clientes que disponen de una definición estándar SD como a clientes que disponen de un terminal de alta definición HD;
- -
- videoconferencia, en la que una codificación única debe responder a las necesidades de clientes que disponen de un acceso UMTS y de un acceso a Internet;
- -
- etc.
Para responder a estas diferentes necesidades, se han desarrollado algoritmos de codificación de imágenes escalables, o "scalable", que permiten una calidad adaptable y una resolución espacio-temporal variable. El
45 codificador genera un flujo comprimido que presenta una estructura jerárquica de capas, en la que cada una de las capas está anidada en una capa de nivel superior. Por ejemplo, una primera capa de datos transmite un flujo a 256 kbits/s, que podrá ser decodificado por un terminal de tipo PDA, y una segunda capa de datos complementaria transmite un flujo de resolución superior a 256 kbits/s que podrá ser decodificado, como complemento del primero, mediante un terminal más potente de tipo PC. La velocidad necesaria para el transporte de estas dos capas anidadas es, en este ejemplo, de 512 kbits/s.
Algunos de estos algoritmos de codificación vídeo escalables están en la actualidad en curso de adopción por la norma MPEG ("Moving Picture Expert Group", o "Grupo de expertos en codificación de imágenes"), en el marco del grupo de trabajo MPEG VIDEO.
55 La primera generación de estos algoritmos escalables (véanse los trabajos de MPEG-4, especialmente con las tecnologías de tipo FGS - Fine Grain Scalability - Escalabilidad de grano fino) no se ha impuesto, ya que se le reprochaba que era subóptima en términos de compresión.
Más recientemente, se han impuesto nuevos algoritmos para responder a este problema de eficacia. En la actualidad están en curso de adopción por la norma MPEG-4 AVC, en el contexto del grupo de trabajo JVT conjunto entre ISO e IEC: SVC será la modificación 3 de la norma AVC (ISO/IEC 14496-10 Amdt3) (Scalable Video Coding codificación de vídeo escalable).
65 El modelo que ha sido conservado recientemente por SVC se basa en un codificador escalable con predicción intercapas y descomposición temporal por predicción bidireccional (imágenes B). Esta nueva norma es capaz de suministrar flujos escalables de grano medio en las dimensiones temporal y espacial y en calidad de cuantificación.
El decodificador correspondiente a la norma se describe en el documento "Joint Draft 6", J. Reichel, M. Wien, H. Schwarz, JVT-S202, 2006,. 5 Las características principales de esta solución son las siguientes:
- -
- solución piramidal con submuestreo de los componentes de entrada;
- -
- descomposición temporal por imágenes B en cada nivel,
- -
- codificación de capas sucesivas en modo CGS (Coarse Grain Scalability - Escalabilidad de grano grueso) o en modo FGS (Fine Grain Scalability - Escalabilidad de grano fino).
15 El codificador se ilustra esquemáticamente en la fig. 1. Incluye dos modos:
a) el modo FGS 1, 1', 1" o codificación por cuantificación progresiva que permite alcanzar una granularidad llamada "media" (del orden del 10%). El codificador encadena las etapas siguientes:
- -
- Codificación en 2 de una versión de baja resolución de la secuencia de vídeo (el nivel de base de cuantificación de esta baja resolución es compatible con AVC).
- -
- Codificación de niveles superiores por predicción a partir del nivel precedente reconstruido y sobremuestreado y
codificación de los residuos en forma de: 25
- •
- un nivel de base
- •
- uno o varios niveles de mejora obtenidos por codificación multipaso de planos de bits (en lo sucesivo: FGS). El residuo de predicción es codificado hasta una velocidad R_ri_max que corresponde a la velocidad máxima decodificable para la resolución ri.
b) el modo CGS o codificación por capas que permite alcanzar una escalabilidad llamada gruesa (del orden del 25%). El codificador encadena las etapas siguientes:
35 - El nivel de base es codificado con una calidad 0 (layer 0, con QP0)
- -
- Se calcula la diferencia entre las capas y se codifica esta diferencia (codificación entrópica).
Un flujo SVC está constituido por un conjunto de paquetes de información. Estos diferentes paquetes de información (NAL unit) pueden agruparse jerárquicamente en:
- -
- secuencia de vídeo: conjunto de paquetes de información que representa una secuencia de vídeo (sin correspondencia necesariamente con todo el flujo de vídeo). En los primeros paquetes, se encuentran especialmente paquetes de información global relativa a la secuencia: paquetes de tipo SPS (Sequence Parameter
45 Set - conjunto de parámetros de secuencia), pero también paquetes de información relativos a los diferentes tipos de imágenes presentes: paquetes de tipo PPS (Picture Parameter Set - conjunto de parámetros de imagen)
- -
- Access Unit: conjunto de información correspondiente a un instante temporal. Se encuentra en paquetes de información de tipo mensaje de información (SEI - Supplemental Enhancement Information - información de mejora complementaria), o bien de datos
- -
- Slice: conjunto de informaciones codificadas en una NAL unit. Una slice agrupa un conjunto de macrobloques de una imagen para un nivel de representación o capa (por ejemplo, nivel de representación espacial). En lo sucesivo, se llamará slice a un grupo de grupo de bloques.
- -
- Macrobloque: conjunto de informaciones presente en un grupo de bloques. Un macrobloque está constituido por 4 bloques 8 x 8 de luminancia y de 2 bloques 8 x 8 de crominancia (crominancia roja, crominancia azul) para el formato de color 4:2:0. En lo sucesivo, se llamará macrobloque a un grupo de bloques.
- -
- Bloque: conjunto de información relativo a un bloque de imagen de tamaño 8 x 8 ó 4 x 4.
Debe observarse que en lo sucesivo de este texto, salvo cuando el contexto lo indique de otro modo, el término “grupo de bloques” designa indistintamente un macrobloque o una “slice”.
65 El flujo SVC está organizado en Access units (AU - unidad de acceso) correspondiente cada una a un instante (temporal) y que comprende una o varias unidades de acceso para la red (paquete) o NALU (Network Abstraction Layer Units - unidades de capa de abstracción de red)
Cada NALU, fig. 2, está asociada a una imagen obtenida de la descomposición espacio-temporal Ti, un nivel de resolución espacial Sj y un nivel de calidad de cuantificación SNR Ek. Esta estructuración en unidades NALU permite
5 entonces poder realizar una adaptación en velocidad y/o resolución espacio-temporal suprimiendo las NALU de resolución espacial demasiado elevada, o de frecuencia temporal demasiado elevada o incluso de calidad de cuantificación demasiado elevada.
Cada NALU encapsula una porción (en inglés, “slice”) de imagen, pudiendo corresponder la porción de imagen a parte o la totalidad de la imagen. Tal como se indica anteriormente, una “slice” es un conjunto de macrobloques contenido en una imagen. Pueden encontrarse varias slices en una imagen (normalmente para limitar el tamaño de las unidades NALU, limitar el impacto de una pérdida de paquete, realizar una codificación adaptativa por región de imagen, etc.).
15 Cada NALU específica de SVC incluye un octeto de encabezamiento AVC y dos octetos de encabezamiento SVC que contienen los campos (P,D,T,Q) (Priority_id, Dependency_id, Temporal_level, Quality_level). Estos campos pueden ser aprovechados para realizar una adaptación en resolución espacial y/o frecuencia temporal y/o calidad, conservando sólo las unidades NALU que tienen un nivel de campos (P,D,T,Q) suficientemente elevado.
El campo “Priority_id” indica un nivel de prioridad de una NALU que puede servir para guiar una adaptación en calidad.
El campo “Dependency_id” permite conocer el nivel de resolución espacial de una capa jerárquica de codificación. Este nivel puede controlar también un nivel de mejora de calidad SNR o de mejora temporal en el marco de una
25 codificación en capa, es decir, para un número de puntos de funcionamiento discreto.
El campo “Temporal_level” permite indicar el nivel temporal relacionado con la frecuencia de imagen.
El campo “Quality_level” permite indicar el nivel de cuantificación progresiva, y controlar así la velocidad/calidad y/o la complejidad.
Cada NALU incluye asimismo en el encabezamiento un campo "discardable_flag" que indica si la unidad considerada debe ser tenida en cuenta para la decodificación del nivel actual solamente o para la decodificación del nivel actual y del nivel superior.
35 Un flujo escalable se divide en capas (en inglés, “layer”). Cada capa es identificada por el elemento de sintaxis denominado "dependency_id". Para cada capa, un nivel de base es codificado en modo no progresivo con un paso de cuantificación inicial QP0. Este nivel de base es identificado en el interior de la capa por el elemento de sintaxis denominado nivel de calidad (quality_level en la norma) QL0 (es decir, QL = 0).
El nivel de base QL0 de una capa “layer 1”, fig. 3, puede predecirse por:
- -
- el nivel de base QL0 de una capa inferior “layer 0”. Así sucede especialmente en el caso de modo no progresivo,
ya que en el estado actual de la norma, no se permite tener varios niveles de calidad (QL) en una misma capa en 45 CGS
- -
- o bien por un nivel QLi (es decir, QL = i) de la capa inferior (i>=0) en modo progresivo o en modo no progresivo CGS suponiendo varios niveles QL en CGS.
Esta predicción se denomina predicción “inter-layer” o predicción intercapas.
En el interior de cada capa, pueden codificarse niveles de mejora QLi del nivel de base QL0, estos niveles de mejora están identificados por su nivel de calidad QL. La norma prevé que estos niveles de mejora estén codificados en modo de refinamiento progresivo - FGS, aunque técnicamente es posible asimismo codificar el nivel de mejora en
55 modo no progresivo CGS. Estos niveles de predicción se codifican con ayuda de una predicción intracapa que proviene del nivel precedente QL0 (nivel de base o de mejora).
En el modo denominado "single loop" (conservado actualmente para la norma SVC) los bloques de imagen de un nivel N usados para la predicción del nivel superior (N+1) no tienen compensación de movimiento. En otros términos, no dependen de otros bloques de imágenes circundantes.
Así, la compensación de movimiento es realizada por el decodificador en el último nivel. Los datos residuales que sirven para la predicción se acumulan entonces por macrobloque.
65 Para los macrobloques que no usan la predicción, los bloques correspondientes del nivel de base no son necesarios. Así, todo un conjunto de bloque de nivel N no es necesario para la decodificación del nivel (N+1). Estos bloques pueden ser, por tanto, omitidos.
En la actualidad, los datos útiles para la predicción del nivel superior, y los que no lo son, son codificados en la misma slice de imagen. Por tanto, no es posible separarlos de manera inmediata.
5 En la técnica anterior existen varias técnicas de separación en varias slices de informaciones de un nivel de calidad de una capa en informaciones útiles (primera slice) y no útiles (segunda slice) para la predicción de la capa superior. Estos procedimientos presentan varios problemas:
10 - las soluciones propuestas implican en su mayor parte modificaciones profundas de la sintaxis de la norma AVC/SVC,
- -
- proponen un tratamiento binario de la información de los (macro)bloques: los macrobloques están incluidos en o excluidos de una de las slices.
15 Los documentos que ilustran las técnicas conocidas son los siguientes:
- -
- "Independant parsing of spatial and CGS layers", Schwarz y col., JVT-S069, abril de 2006, Ginebra (HHI),
20 "Discardable bits and Multi-layer RD estimation for Single loop decoding", Mathew y col., JVT-R050r1, enero de 2006, Bangkok,
On discardable lower layer adaptations, Wang y col., JVTS039, abril de 2006, Ginebra.
25 El objeto de la invención es proponer un procedimiento de codificación de datos representativos de un nivel de calidad de una capa de datos en al menos dos pasadas que pueden ser combinadas. Un objetivo de la invención es resolver los inconvenientes mencionados anteriormente proponiendo un mecanismo más flexible de distribución en diferentes slices de los datos de codificación respetando la sintaxis de la norma AVC/SVC.
30 La invención propone así un procedimiento de codificación según la reivindicación 1.
Las ventajas de un procedimiento semejante son:
• disponer de una granularidad más fina en velocidad. Durante una codificación por slice de tipo EI, EP, EB (modo
35 no progresivo), la granularidad está limitada a la de la slice. Las pasadas relacionadas con dos codificaciones permiten así tener una granularidad más fina,
• contar con una mejor eficacia de compresión. Por ejemplo, es interesante codificar un bloque en dos modos de
división que se añaden (es decir, bajas frecuencias en modo 16 x 16, y únicamente detalles de altas frecuencias en 40 uno de los bloques 4 x 4).
Según formas de realización en particular, el procedimiento puede comprender las características adicionales de las reivindicaciones 2 a 4.
45 Esto permite liberarse, en un contexto de predicción intercapas, de la transmisión de informaciones que no son necesarias para la codificación de las informaciones de la capa superior cuando se desea decodificar únicamente esta capa.
Esto permite separar simplemente las informaciones en varias pasadas (al menos dos) con el fin de realizar, por
50 ejemplo, una predicción intercapas adaptativa reutilizando la sintaxis existente de SVC en el marco de un perfil “main”, asegurando en caso necesario un nivel de calidad mínimo para la reconstrucción del nivel de base y/o asegurando en caso necesario la mejor predicción para el nivel superior.
La codificación se hace más eficaz en cuanto a compresión simulando, por ejemplo, una codificación multicapas que 55 optimiza la codificación de la capa superior.
La codificación en varias pasadas permite igualmente una granularidad más fina en velocidad por medio de pasadas en un nivel de calidad de una capa así como una compatibilidad incrementada con el parque de decodificadores existente.
60 La invención se refiere también a un procedimiento de decodificación según la reivindicación 5.
La invención propone igualmente un dispositivo de codificación según la reivindicación 6.
65 La invención propone igualmente un dispositivo de decodificación según la reivindicación 7.
La invención propone igualmente una señal de transmisión de un flujo de datos codificado por el procedimiento precedente.
Es como un encabezamiento de grupo de bloques que incluye además una información que indica el tipo de 5 combinación que se realizará entre los datos codificados por las diferentes etapas de codificación.
La invención propone igualmente un producto de programa informático descargable desde una red de comunicación y/o registrado en un soporte legible por ordenador y/o ejecutable por un procesador, caracterizado porque comprende instrucciones de código de programa para la implementación del procedimiento de codificación
10 precedente.
La invención se comprenderá mejor a la luz de la descripción y de los dibujos, en los que:
- -
- la fig. 1 es un esquema sinóptico de un codificador según la norma SVC; 15
- -
- la fig. 2 es una representación simbólica del flujo codificado según la norma SVC en su descomposición en NALU;
- -
- la fig. 3 es una vista esquemática de las relaciones entre la predicción intercapa y la predicción intracapa en el
proyecto de norma SVC; 20
- -
- la fig. 4 es una vista esquemática de los flujos de codificación en la norma SVC;
- -
- la fig. 5 es una vista esquemática de una forma de realización de la invención en una codificación intercapas
comparada con la técnica anterior; 25
- -
- la fig. 6 es una vista esquemática de un mecanismo de codificación por pasadas de una capa de mejora de cuantificación según una forma de realización de la invención;
- -
- la fig. 7 es una vista esquemática de un mecanismo de codificación por pasadas en el caso de una predicción 30 intercapas según otra forma de realización de la invención; y
- -
- la fig. 8 es una vista esquemática de un ordenador en el que se puede ejecutar un programa informático para la implementación de un procedimiento de codificación según una forma de realización de la invención.
35 Se sitúa en el contexto de la codificación de una información con ayuda de una slice de tipo I, P, B, EI, EP, EB (es decir, slice no progresiva) para un nivel de calidad de cuantificación (“quality_level”) dado del codificador SVC.
La codificación de esta slice se realiza en varias pasadas, de manera que cada pasada mejora la calidad de la pasada precedente, manteniendo en todo momento el mismo nivel de calidad de cuantificación "quality_level".
40 Cada pasada se codifica, de forma preferente, como una pasada normal AVC/SVC. Las informaciones obtenidas se fusionan entonces con las informaciones de la pasada precedente.
Cada pasada de mejora, es decir, no correspondiente a la primera pasada de la slice considerada, es codificada 45 como una slice de tipo El, EP o EB. Para cada macrobloque se indica la manera en que las informaciones recién codificadas refinarán las informaciones codificadas precedentemente (por ejemplo: adición o sustitución).
Las pasadas no son así fragmentos de pasadas CGS como lo son los fragmentos FGS en modo FGS, ya que no representan necesariamente informaciones disjuntas entre las diferentes pasadas. 50 Las ventajas de un enfoque como éste son múltiples. El enfoque de las pasadas permite:
• liberarse, en un contexto de predicción intercapas, de la transmisión de informaciones que no son necesarias para
la codificación de las informaciones de la capa superior cuando se desea decodificar únicamente esta capa, 55
• tener una granularidad más fina en velocidad. Durante una codificación por slice de tipo El, EP, EB (modo no progresivo), la granularidad se limita a la de la slice. Las pasadas permiten entonces tener una granularidad más fina.
60 • tener una mejor eficacia de compresión. Por ejemplo, puede ser interesante codificar un bloque en dos modos de división que se añaden (es decir, bajas frecuencias en modo 16 x 16, y únicamente detalles de altas frecuencias en uno de los bloques 4 x 4).
Cada pasada de codificación conduce a un conjunto de datos que pueden combinarse. Cada pasada de codificación 65 se introduce en una slice en el sentido de la sintaxis SVC.
Así, en el caso de dos pasadas, los macrobloques de la imagen (cuyo soporte corresponde a la slice) podrán pertenecer parcialmente a la primera y a la segunda pasada.
Este reparto de los datos en dos pasadas permite así al decodificador realizar una combinación de las informaciones 5 de las dos pasadas:
• adición de los datos,
• concatenación de los datos (en el dominio DCT por ejemplo), 10
- •
- sobrescritura de los datos,
- •
- etc.
15 Se obtiene la codificación en varias pasadas de las informaciones presentes dentro de una slice usando una codificación con varias slices que tienen la misma posición. Las informaciones de las dos slices se combinarán (según un procedimiento suministrado en su caso como opción en el decodificador).
Esto permite separar simplemente las informaciones en varias pasadas (al menos dos) con el fin de realizar, por
20 ejemplo, una predicción intercapas adaptativa reutilizando la sintaxis existente de SVC en el marco de un perfil “main”, que asegura en caso necesario un nivel de calidad mínimo para la reconstrucción del nivel de base y/o que asegura en caso necesario la mejor predicción para el nivel superior.
La codificación se hace más eficaz en compresión simulando, por ejemplo, una codificación multicapas que optimiza 25 la codificación de la capa superior.
La codificación en varias pasadas permite asimismo una granularidad más fina en velocidad por medio de pasadas en un nivel de calidad de una capa así como una compatibilidad con el parque de decodificadores existente.
30 En una implementación sencilla de esta codificación con dos pasadas en SVC, en el marco de ILP, la primera pasada se considera "non discardable" en el sentido de la sintaxis SVC; el indicador no se incrementa. Contiene todas las informaciones que serán decodificadas por un decodificador que trabaja a una resolución superior a la del nivel actual.
35 La segunda pasada se considera "discardable" en el sentido de la sintaxis SVC (se incrementa el indicador "discardable"). Contiene todas las informaciones que sólo serán decodificadas por un decodificador que trabaja a la resolución de la capa actual. Así pues, puede ser omitida por un decodificador que trabaja a una resolución superior.
Macrobloque por macrobloque, se puede plantear entonces realizar una simple adición de los datos residuales de 40 los dos macrobloques o bien sobrescribir los datos de la primera pasada por la segunda, o etc.
La fig. 5 representa una vista esquemática de la invención aplicada a la codificación intercapas. En la parte A, un macrobloque está codificado (bloques grises) o no codificado (bloques blancos). Esto corresponde a la técnica anterior. En la parte B se representa el enfoque por pasadas de codificación: un macrobloque puede estar codificado
45 parcialmente (bloques blancos) o codificado totalmente (bloques grises).
El procedimiento de codificación de una imagen o de una secuencia de imágenes genera un flujo de datos en forma de grupos de bloques, en el que al menos un grupo de bloques agrupa bloques de imagen que tienen una resolución y un nivel de calidad de cuantificación idénticos. El procedimiento incluye al menos las etapas siguientes, para el al
50 menos un grupo de bloques, de
a. una primera codificación adaptada para que cada bloque del al menos un grupo de bloques tenga al menos un parámetro asociado indicado por un primer valor, y
55 b. una segunda codificación adaptada para indicar este parámetro asociado para al menos un bloque del al menos un grupo de bloques por un segundo valor,
de tal manera que para dicho al menos un bloque, los valores primero y segundo indicados para dicho parámetro pueden combinarse durante la decodificación para suministrar un valor atribuido a dicho parámetro.
60 Cada etapa de codificación se denomina igualmente “pasada”.
Se plantean varios modos.
65 Un primer modo consiste en la adición de los valores indicados durante las pasadas.
Un segundo modo consiste en la combinación adaptativa de los valores indicados durante las pasadas por adición o sustitución con señalización del tipo de combinación en el nivel de bloques, grupos de bloques (macrobloques) o grupos de grupos de bloques (Slice).
5 Un tercer modo consiste en la definición, en un modo aditivo, de un coeficiente que se alcanzará para la pasada (concatenación de datos). La señal de fin de bloque (EOB) se hace entonces opcional.
Las informaciones de combinación pueden ser transportadas por el encabezamiento de slice, de macrobloque o por el PPS o por el SPS.
De forma preferente, se procede de la manera siguiente:
En el contexto de predicción intercapas, se codifican dos capas de informaciones N y (N+1). Las informaciones (coeficientes) de nivel de cuantificación L de la capa N se distribuyen en las slices 1 (primera pasada) y 2 (segunda
15 pasada).
En la slice 1 se almacenan los coeficientes de los macrobloques calculados durante una primera fase de codificación, que serán usados para la predicción del nivel N+1. Puede tratarse de datos vacíos (skip de macrobloque) para una parte al menos de los datos (textura y/o movimiento) o bien son los "mejores" coeficientes de acuerdo con un criterio de calidad. En este último caso, de forma preferente, se trata de coeficientes de los bloques submuestreados del nivel N+1. Puede tratarse también de coeficientes obtenidos del nivel N que suministran la mejor predicción de nivel N+1 (calculados en el sentido de un criterio, por ejemplo, de distorsión de velocidad) o de todos los coeficientes del bloque en el nivel N o de los que procuran una calidad mínima en el nivel de base (se trata, por ejemplo, de asegurar una calidad mínima AVC).
25 Para esta slice el indicador de datos útiles (non-discardable) se pone a 0. Debe resaltarse que, si se trata de datos AVC, esta etapa a priori se omitirá.
En la slice 2 se almacenan los coeficientes de la segunda pasada de codificación. Por ejemplo, se trata de coeficientes que no se usarán para la predicción del nivel N+1 (DS =1). Puede tratarse de datos vacíos (skip de macrobloque) o de un complemento de los datos del macrobloque de la misma posición en la slice 1 o de los "mejores" coeficientes de acuerdo con un criterio de calidad SNR para la codificación del nivel N.
Para esta slice, el indicador de datos útiles (discardable) se pone a 1.
35 Para esta slice 2 se codifica un modo de combinación: adición, sustitución o combinación o etc. Este modo se sitúa, de forma preferente, en el encabezamiento de cada macrobloque, aunque puede colocarse asimismo en el encabezamiento de la slice (que indica así un mismo tipo de operación para todos los macrobloques de la slice), o en el SPS, etc.
En el contexto de pasadas múltiples sin noción de predicción intercapas, el interés se centra en la codificación de una única capa de informaciones N. Las informaciones (coeficientes) del nivel de calidad de cuantificación L para una capa N se distribuyen en K slices para al menos una unidad de acceso AU:
45 La primera pasada consiste en el tratamiento de la slice 1. En ésta se almacenan los coeficientes de los macrobloques calculados durante la primera pasada de codificación. Son preferentemente los "mejores" coeficientes para la pasada de acuerdo con un criterio de calidad. Por ejemplo, se ponen en competencia todas las combinaciones posibles de tamaños de bloques y DCT asociadas (16 x 16, 8 x 8, 4 x 4) del macrobloque y se conserva la mejor combinación en el sentido de distorsión de velocidad para una cierta calidad.
La pasada i-ésima consiste en el tratamiento de la slice i, 2<i<K. Se almacenan en la slice i los coeficientes de la iésima fase de codificación. Se trata de datos vacíos si se alcanza una calidad suficiente o un complemento de los datos del macrobloque de igual posición que en la slice 1. De forma preferente, el complemento refina los datos en un soporte diferente. Por ejemplo, el complemento DCT en bloques 4 x 4 cuando la codificación se realiza en
55 bloques 8 x 8 en la slice precedente.
Se codifica un modo de combinación: adición, sustitución o combinación o refinamiento de la división o etc. También se codifica el número de pasada. El modo se sitúa, de forma preferente, en el encabezamiento de cada macrobloque, si bien puede situarse también en el encabezamiento de la slice (que indica así un mismo tipo de operación para todos los macrobloques de la slice), o en el SPS, etc. El número de pasada se sitúa, de forma preferente, en el encabezamiento de cada slice.
A continuación se describirá una forma de realización particular.
65 La fig. 6 ilustra el principio de una codificación de un nivel de mejora de cuantificación por medio de pasadas. El nivel de mejora de cuantificación que tiene el nivel de calidad (quality_level) 1 se codifica en varias subpasadas sp0, sp1 y sp2. La codificación de un nivel de mejora de cuantificación en las pasadas puede realizarse en cualquier nivel de mejora de cuantificación, comprendido el primer nivel (denominado todavía nivel de base y para el que se tiene quality_level = 0). Cada pasada es así codificada en el contexto de SVC por una NAL unit.
5 En una variante, una NAL unit puede contener al menos una pasada de mejora de cuantificación. En esta variante, puede ser posible así realizar un truncamiento de una NAL unit codificada en modo CGS.
Esta codificación en la pasada de un nivel de mejora de cuantificación se realiza para al menos una unidad de datos en el interior de una capa de representación para al menos una unidad de acceso AU.
La codificación de un nivel de mejora de cuantificación es así la siguiente:
• establecimiento del número de pasadas usadas, y definición de los datos que se codificarán en diferentes pasadas,
15 • bucle de codificación de las diferentes pasadas de mejora de cuantificación. Para cada pasada:
- •
- codificación de las informaciones de señalización de la pasada.
- •
- codificación de los datos relacionados con la pasada actual.
La definición del número de pasadas de codificación así como de los datos que se codificarán dentro de cada pasada depende de la forma de realización particular usada. A continuación, se ilustrarán diferentes tipos de formas particulares (y no limitativas) de definición de las pasadas.
25 En una forma preferida, la codificación de las informaciones de señalización de la pasada de mejora de cuantificación consiste en identificar el índice de la pasada de cuantificación (sub_quality_level_idx) y un indicador de última pasada (last_sub_quality_level_flag). Las modificaciones de sintaxis para SVC se presentan en el anexo 1. Estas informaciones de señalización se introducen en el encabezamiento de las slices de datos SVC.
Debe observarse que estas modificaciones de sintaxis se proponen aquí a título indicativo. Para una implementación eficaz pueden ajustarse algunas restricciones suplementarias (especialmente, restricciones de sintaxis en función del número de pasada, de manera similar al número de fragmento).
En esta forma, la codificación de los datos relacionados con cada pasada se realiza de manera similar a SVC. Todos
35 los datos de los bloques codificados en un grupo de grupo de bloques (es decir, slice en la terminología SVC) son codificados. Así, la codificación de la primera pasada sigue siendo compatible con un decodificador de base (por ejemplo, un decodificador AVC para la primera pasada de la primera capa de representación de un flujo SVC, o bien de forma más general para un decodificador que implementa un nivel de perfil bajo).
Opcionalmente, se definen informaciones de tipo de combinación de las informaciones codificadas en diferentes pasadas.
La forma preferida de la invención consiste en considerar que las informaciones codificadas en las diferentes pasadas se añadirán unas a otras.
45 En una variante, se puede reutilizar los campos de predicción adaptativa intercapas para usar un modo de combinación del tipo sustitución (los datos de una pasada se sobrescriben en los datos definidos en la o las pasadas precedentes). Este tipo de combinación puede ser señalizado en cada bloque, grupo de bloque o grupo de grupo de bloque (modo preferido: en el grupo de bloque o macrobloque).
En otra variante, las informaciones codificadas en una pasada deben interpretarse como coeficientes que completan los coeficientes ya codificados, y por tanto deben concatenarse con la lista de coeficientes ya codificada en la o las pasadas precedentes. Debe observarse que, debido a la codificación de los coeficientes por barrido de tipo zigzag, una primera pasada puede codificar un primer grupo de coeficientes en el orden del recorrido y la segunda pasada
55 codifica entonces un grupo de coeficientes que aparecen a continuación en el orden de recorrido.
A continuación se presentará una forma de realización de la codificación de pasadas para la predicción intercapas.
En esta forma de realización, se codifica un nivel de mejora de cuantificación en dos pasadas con el fin de definir los datos denominados "útiles" para la predicción intercapas, y los datos denominados "no útiles".
Debido al uso de un modo de predicción intercapa adaptativo, durante la codificación de una capa de representación de un nivel superior, se indica para cada bloque si se usa o no la información que proviene de la capa que sirve para la predicción. En el caso de la no utilización de la información asociada a un bloque de la capa que sirve para la
65 predicción, esta información se denominará entonces información "no útil". Podrá ser ignorada por un decodificador que trabaja a una resolución superior a la de la capa de predicción.
La fig. 7 ilustra esta forma de realización. Las informaciones denominadas útiles son codificadas en la pasada titulada "sp0". Las informaciones denominadas "no útiles" son codificadas en la pasada titulada "sp1". Ventajosamente, la primera pasada se marca así como "non-discardable", mientras que la segunda pasada se
5 marca como "discardable" (señalización realizada por medio del elemento de sintaxis "DS_flag" definido en el encabezamiento de cada NAL SVC).
En una variante, el mecanismo de predicción intercapas definido en la actualidad en SVC puede ser adaptado para tener en cuenta el concepto de pasadas de codificación.
El elemento de sintaxis "fragment_order_base" usado en la actualidad para identificar el número de fragmento de una pasada FGS usada como punto de referencia para la predicción intercapa, deberá interpretarse entonces como el número de pasada que define el punto de referencia para la predicción intercapa.
15 El nuevo elemento de sintaxis "sub_quality_level_idx" puede usarse para los mismos fines en el caso de una NAL CGS (no progresiva).
Puede observarse que en la forma de realización preferida descrita en esta sección, no es necesario describir qué pasada define el punto de predicción, ya que el elemento sintáctico "DS_flag"' indica si una unidad de datos es usada o no para la predicción intercapa.
En una forma de realización preferida, la división entre informaciones útiles/informaciones no útiles se realiza bloque por bloque. Si un bloque es valorado como útil, sus informaciones son codificadas en la primera pasada y a continuación se codifica con un valor nulo de actualización en la segunda pasada. Si un bloque es valorado como no
25 útil, se codifica entonces una información mínima en la primera pasada (normalmente, un conjunto de valores de información nulos), y se codifica la información restante en la segunda pasada.
En una variante, se definirá la información mínima codificada para los bloques no útiles con el fin de alcanzar una calidad mínima de reconstrucción durante una decodificación que sólo tiene la primera pasada (por ejemplo, codificando sólo las informaciones de movimiento).
En una variante, la división de las informaciones entre útiles/no útiles puede realizarse mediante selección adaptativa de los coeficientes que se conservarán en un bloque (selección realizada, por ejemplo, en el sentido de un criterio de eficacia de compresión asociado a la capa superior).
35 En una variante, las informaciones denominadas útiles son definidas por medio de las informaciones que se codificarán en la capa superior (por ejemplo, por submuestreo de las informaciones que se codificarán en la capa superior); las informaciones codificadas en la segunda pasada corresponden entonces a las informaciones que permiten, después de una combinación con las informaciones de la primera pasada, tener una buena reconstrucción de la capa de representación de base.
El desarrollo de esta forma de realización es entonces el siguiente:
- -
- definición de las informaciones denominadas útiles en la predicción intercapa, 45
- -
- codificación en una primera pasada de mejora de cuantificación de las informaciones denominadas útiles en la predicción intercapa,
- -
- codificación en una segunda pasada de mejora de cuantificación de las informaciones restantes.
Este mecanismo de distribución de los datos puede aplicarse en cualquier nivel de mejora de cuantificación (comprendido el nivel de base), y puede aplicarse en varios niveles de cuantificación simultáneamente.
En una segunda forma de realización, la codificación en pasadas se usa para aumentar la finura de granularidad en 55 la velocidad.
En esta forma de realización, se realiza una codificación en varias subcapas de mejora de cuantificación para un nivel de mejora de cuantificación con el fin de limitar el "salto" en velocidad relacionado con este nivel de cuantificación.
Una forma de realización preferida consiste en definir para cada pasada un conjunto mínimo de coeficientes para codificar. Este conjunto mínimo de coeficientes puede definirse de manera que los coeficientes estén comprendidos entre dos posiciones en el orden de recorrido de los coeficientes dentro de los bloques. Este conjunto mínimo puede definirse igualmente por medio de una posición mínima que se alcanzará en el orden de recorrido de los coeficientes
65 dentro de cada bloque. Si la posición se ha alcanzado ya durante una codificación precedente, entonces se codifica una información que indica una mejora nula para este bloque.
La información de posición que se pretende alcanzar puede ser señalizada en encabezamiento de la codificación de un grupo de bloques, lo que puede permitir entonces no codificar en ciertos casos las informaciones de fin de bloque. En una variante, no se codifica ninguna información de posición, con lo que para cada bloque es preciso
5 codificar un criterio de terminación.
Una variante de esta forma de realización consiste en definir en un primer momento un conjunto de valores para codificar para el nivel de mejora de cuantificación considerado. A continuación, estas diferentes informaciones se distribuyen en el sentido de un criterio de distorsión de velocidad a través de las diferentes pasadas. Normalmente, 10 las informaciones para codificar dentro de un bloque para un nivel de mejora de cuantificación se definen por medio de la minimización de un criterio de tipo R+DQP(QL)D(QP(QL) correspondiente al parámetro de cuantificación de la mejora del nivel QL, correspondiendo R a la velocidad y D a la distorsión). La distribución de estas informaciones en diferentes pasadas puede realizarse entonces usando puntos intermedios optimizados en el sentido de distorsión de velocidad. A cada pasada se le asocia un lagrangiano por desfase del paso de cuantificación: Dsp(i) = IQP(QL)-lQP(i), y
15 después se define para cada pasada cuál es el subconjunto de coeficientes que se conservará para reducir al mínimo el compromiso de distorsión de velocidad R(sp(i)) + Dsp(j) D(sp(i)).
Otra forma de realización consiste en usar un paso de cuantificación diferente para al menos dos pasadas de un nivel de cuantificación. Normalmente, un nivel de cuantificación se define usando el parámetro de cuantificación QP 20 del nivel precedente y disminuyéndolo en 6 (lo que viene a dividir por dos el paso de cuantificación usado). Las pasadas intermedias pueden asociarse entonces al uso del paso de cuantificación intermedio.
En una tercera forma de realización de codificación en pasadas, esto se usa para aumentar la eficacia de compresión.
25 En SVC, están disponibles varios modos de codificación de las informaciones de residuo (transformación 4 x 4, transformación 8 x 8), y se realiza una elección para cada bloque con el fin de usar el modo de codificación más adaptado. En ciertas situaciones, puede ser interesante, sin embargo, usar varios modos de codificación para un mismo bloque de información para codificar. Así por ejemplo, puede ser ventajoso codificar una primera versión
30 somera de la señal usando un modo de representación basado en una transformación 8 x 8, y después codificar una información adicional con ayuda de una transformación 4 x 4.
La decodificación de una representación por pasadas de un nivel de mejora de cuantificación es la siguiente:
35 • bucle en las diferentes pasadas del nivel de mejora de cuantificación. Y, para cada pasada:
- •
- lectura de las informaciones codificadas en la pasada
- •
- combinación de las informaciones decodificadas con las informaciones previamente decodificadas.
40 En una forma de realización, al ser codificadas las informaciones codificadas en las diferentes pasadas con la sintaxis actual de SVC, su decodificación es similar a la decodificación de las informaciones de un nivel de mejora en calidad, con excepción de la lectura del indicador de índice de pasada y del indicador de última pasada (informaciones útiles para identificar el orden relativo de decodificación de las diferentes pasadas).
45 Según las diferentes variantes de realización propuestas, pueden leerse diferentes informaciones adicionales y usarse en el procedimiento de decodificación:
- -
- información del tipo de combinación que se realizará entre las diferentes pasadas (por ejemplo, adición, sustitución,
50 concatenación en la serie de coeficientes previamente codificados,...). Los campos de predicción inter-layer en la actualidad presentes en SVC en los encabezamientos de bloque, de grupo de bloques y de grupo de grupo de bloques pueden reutilizarse tal cual para disociar el modo de combinación aditiva con respecto al modo de combinación sustitutiva. En el caso del uso de un modo de combinación de tipo concatenación, se extiende entonces la dinámica de los elementos de sintaxis usada para controlar el modo de combinación con el fin de proponer otra
55 alternativa (el elemento de sintaxis res_pred_flag que se codificaba en un bit se codifica entonces en 2 bits con el fin de extender el número de modos de combinación posibles).
- -
- En una forma de realización particular, una de estas combinaciones se tomará como combinación preferida, sin
que se necesite entonces la señalización del tipo de combinación usada. Por ejemplo, se puede plantear que se use 60 sólo el modo de combinación aditiva.
Un dispositivo de codificación de una imagen o de una secuencia de imágenes genera un flujo de datos en forma de grupos de bloques, en el que al menos un grupo de bloques agrupa los bloques de imagen que tienen una resolución y un nivel de calidad de cuantificación idénticos. El dispositivo incluye al menos los medios, para el al
65 menos un grupo de bloques, de: a. una primera codificación adaptada para que cada bloque del al menos un grupo de bloques tenga al menos un parámetro asociado indicado, y
b. una segunda codificación adaptada para indicar el parámetro asociado para al menos un bloque del al menos un 5 grupo de bloques,
de tal manera que para dicho al menos un bloque, los valores primero y segundo indicados para dicho parámetro pueden combinarse durante la decodificación para suministrar un valor atribuido a dicho parámetro.
10 Para la decodificación de una imagen o de una secuencia de imágenes que provienen de un flujo de datos en forma de grupos de bloques, en el que al menos un grupo de bloques agrupa los bloques de imagen que tienen una resolución y un nivel de calidad de cuantificación idénticos, generada por el procedimiento de codificación en pasadas, un dispositivo de decodificación incluye al menos los medios, para el al menos un grupo de bloques, de:
15 a. una primera decodificación de los valores indicados por la primera codificación para el parámetro asociado para cada bloque del grupo de bloques, y
b. una segunda decodificación de los valores indicados por la segunda codificación para al menos un bloque del grupo de bloques,
20 de tal manera que el valor atribuido a cada bloque del grupo de bloques para este parámetro es una combinación de los valores decodificados para el mismo por la primera y la segunda decodificación.
El flujo de datos así codificado es transmitido por una señal de transmisión.
25 Esta es de tal forma que un encabezamiento de grupo de bloques incluye además una información que indica el tipo de combinación que se realizará entre los valores indicados por las diferentes etapas de codificación.
Debe comprenderse que el procedimiento de codificación puede implementarse mediante un producto de programa
30 informático descargable desde una red de comunicación y/o registrado en un soporte legible por ordenador y/o ejecutable por un procesador como el representado en la fig. 8 y que incluye una unidad aritmética y lógica CPU, diferentes memorias RAM y registros M0, M1, M2, M3, así como entradas/salidas I/O.
Anexo 1
35 Elementos de sintaxis del Joint Document 6 (proyecto de norma SVC) Slice layer in scalable extension syntax
A continuación se propone una sintaxis para la invención, basada en la sintaxis existente del Joint Document 6
40 Los campos nuevos están destacados y resaltados en negrita.
Claims (10)
- REIVINDICACIONES1. Procedimiento de codificación de una imagen o de una secuencia de imágenes que generan un flujo de datos en forma de grupos de bloques, en el que al menos un grupo de bloques agrupa bloques de imagen que tienen una5 resolución y un nivel de calidad de cuantificación idénticos, caracterizado porque dicho procedimiento comprende, para la codificación de dicho al menos un grupo de bloques a dicha resolución y a dicho nivel de calidad de cuantificación, un número de pasadas de codificación superior o igual a dos, correspondiendo una primera pasada a una primera etapa de codificación adaptada para generar, para cada bloque del al menos un grupo de bloques, datos codificados útiles para una predicción de un nivel de calidad de cuantificación superior, siendo los datos no útiles para una predicción de un nivel de calidad de cuantificación superior para al menos un bloque de dicho al menos un grupo de bloques codificados en el curso de al menos otra pasada, de tal manera que para al menos un bloque de dicho al menos un grupo de bloques, los datos codificados en el curso de las pasadas pueden combinarse durante la decodificación para suministrar una decodificación de dicho bloque, comprendiendo el procedimiento además la introducción de cada pasada de codificación en una slice en el sentido de la sintaxis SVC.
-
- 2.
- Procedimiento de codificación según la reivindicación 1, caracterizado porque los datos codificados en el curso de las pasadas pueden combinarse de tal manera que la combinación de los datos codificados corresponde a una adición de los mismos.
-
- 3.
- Procedimiento de codificación según la reivindicación 1, caracterizado porque los datos codificados pueden combinarse de tal manera que la combinación de los datos codificados corresponde a una sustitución de los datos codificados por la primera codificación por los datos codificados por la segunda codificación.
-
- 4.
- Procedimiento de codificación según una cualquiera de las reivindicaciones precedentes, caracterizado porque,
25 presentando los grupos de bloques del flujo de datos una estructura jerárquica de capas de datos anidadas de niveles n sucesivos, en los que n es un número entero, correspondiendo cada una de dichas capas a una resolución y a una gama de niveles de calidad de codificación predeterminadas de dichos grupos de bloques tales que la resolución y/o el nivel de calidad de codificación son crecientes con el aumento en el orden de las capas, con al menos una capa n + 1 codificada por predicción a partir de la capa inferior n, la codificación por predicción de la capa superior sólo usa los datos codificados durante la primera etapa de codificación. - 5. Procedimiento de decodificación de una imagen o de una secuencia de imágenes que provienen de un flujo de datos en forma de grupos de bloques, en el que al menos un grupo de bloques agrupa bloques de imagen que tienen una resolución y un nivel de calidad de cuantificación idénticos, incluyendo dicho flujo, para cada bloque del al 35 menos un grupo de bloques, los datos codificados por al menos dos pasadas, estando cada pasada de codificación introducida en una slice en el sentido de la sintaxis SVC; caracterizado porque habiéndose realizado una primera pasada correspondiente a una primera etapa de codificación durante la codificación de datos y habiéndose adaptado para generar datos codificados útiles para una predicción de un nivel de calidad de cuantificación superior, habiendo sido codificados datos no útiles para una predicción de un nivel de calidad de cuantificación superior para al menos un bloque de dicho al menos un grupo de bloques en el curso de al menos otra pasada, dicho procedimiento de decodificación comprende, para la decodificación de dicho al menos un grupo de bloques a dicha resolución y a dicho nivel de calidad de cuantificación, para cada pasada, para el al menos un grupo de bloques, al menos una etapa de decodificación de los datos codificados para cada bloque de dicho grupo de bloques, de tal manera que para al menos un bloque de dicho grupo de bloques, la decodificación de dicho bloque es una combinación de los45 datos decodificados para el mismo por las etapas de decodificación relacionadas con cada pasada.
- 6. Dispositivo de codificación de una imagen o de una secuencia de imágenes que generan un flujo de datos en forma de grupos de bloques, en el que al menos un grupo de bloques agrupa bloques de imagen que tienen una resolución y un nivel de calidad de cuantificación idénticos, caracterizado porque dicho dispositivo incluye, para la codificación de dicho al menos un grupo de bloques a dicha resolución y a dicho nivel de calidad de cuantificación, para un número de pasadas superior o igual a dos, al menos los medios siguientes:para el al menos un grupo de bloques, al menos medios de codificación adaptados para generar, en el curso de una primera pasada correspondiente a una primera etapa de codificación, para cada bloque del al menos un grupo de55 bloques, datos codificados útiles para una predicción de un nivel de calidad de cuantificación superior, siendo codificados datos no útiles para una predicción de un nivel de calidad de cuantificación superior en el curso de al menos otra pasada, de tal manera que para al menos un bloque de dicho al menos un grupo de bloques, los datos codificados en el curso de las pasadas pueden combinarse durante la decodificación para suministrar una decodificación de dicho bloque,medios de introducción de cada pasada de codificación en una slice en el sentido de la sintaxis SVC.
- 7. Dispositivo de decodificación de una imagen o de una secuencia de imágenes que provienen de un flujo de datos en forma de grupos de bloques, en el que al menos un grupo de bloques agrupa bloques de imagen que tienen una65 resolución y un nivel de calidad de cuantificación idénticos, incluyendo dicho flujo, para cada bloque del al menos un grupo de bloques, datos codificados por al menos dos pasadas, introduciéndose cada pasada de codificación en unaslice en el sentido de la sintaxis SVC; caracterizado porque, habiéndose realizado una primera pasada correspondiente a una primera etapa de codificación durante la codificación de datos y habiéndose adaptado para generar datos codificados útiles para una predicción de un nivel de calidad de cuantificación superior, habiéndose codificado datos no útiles para una predicción de un nivel de calidad de cuantificación superior para al menos un 5 bloque de dicho al menos un grupo de bloques en el curso de al menos otra pasada, dicho dispositivo incluye, para la decodificación de dicho al menos un grupo de bloques a dicha resolución y a dicho nivel de calidad de cuantificación, para cada bloque de dicho al menos un grupo de bloques, para cada pasada, medios de decodificación de los datos codificados en la pasada, de tal manera que para al menos un bloque de dicho al menos un grupo de bloques, la decodificación de dicho bloque es una combinación de los datos decodificados para el10 mismo por los medios de decodificación relacionados con cada pasada.
- 8. Señal de transmisión de un flujo de datos codificado por el procedimiento según una de las reivindicaciones 1 a 4, caracterizado porque un encabezamiento de grupo de bloques incluye además una información que indica el tipo de combinación que se realizará entre los datos codificados por las diferentes etapas de codificación.
- 9. Producto de programa informático descargable desde una red de comunicación y/o registrado en un soporte legible por ordenador y/o ejecutable por un procesador, caracterizado porque comprende instrucciones de código de programa para la implementación del procedimiento de codificación según una al menos de las reivindicaciones 1 a
- 4.
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR0606272 | 2006-07-10 | ||
| FR0606272 | 2006-07-10 | ||
| PCT/FR2007/051615 WO2008007006A2 (fr) | 2006-07-10 | 2007-07-06 | Dispositif et procede de codage et de decodage echelonnables de flux de donnees d'images, signal et programme d'ordinateur correspondants |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2440824T3 true ES2440824T3 (es) | 2014-01-30 |
Family
ID=37772561
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES07803994.8T Active ES2440824T3 (es) | 2006-07-10 | 2007-07-06 | Dispositivo y procedimiento de codificación y de decodificación escalables de flujo de datos de imágenes, señal y programa informático correspondientes |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US8422805B2 (es) |
| EP (1) | EP2052545B1 (es) |
| ES (1) | ES2440824T3 (es) |
| WO (1) | WO2008007006A2 (es) |
Families Citing this family (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| FR2896117A1 (fr) * | 2006-01-06 | 2007-07-13 | France Telecom | Procedes de codage et de decodage d'une sequence d'images, dispositifs , programmes d'ordinateur, et signal correspondants |
| EP2041977B1 (en) * | 2006-07-13 | 2010-08-25 | QUALCOMM Incorporated | Video coding with fine granularity scalability using cycle-aligned fragments |
| US20090210436A1 (en) * | 2007-10-30 | 2009-08-20 | General Instrument Corporation | Encoding a hierarchical multi-layer data package |
| US8219551B2 (en) | 2007-10-31 | 2012-07-10 | General Instrument Corporation | Decoding a hierarchical multi-layer data package |
| GB2484969B (en) * | 2010-10-29 | 2013-11-20 | Canon Kk | Improved reference frame for video encoding and decoding |
| US9538200B2 (en) | 2012-01-19 | 2017-01-03 | Qualcomm Incorporated | Signaling of deblocking filter parameters in video coding |
| AU2013321315C1 (en) * | 2012-09-28 | 2015-06-18 | Sony Corporation | Image processing device and method |
| KR102807030B1 (ko) * | 2013-01-04 | 2025-05-14 | 지이 비디오 컴프레션, 엘엘씨 | 효율적인 확장가능한 코딩 개념 |
| KR102127281B1 (ko) | 2013-04-08 | 2020-06-26 | 지이 비디오 컴프레션, 엘엘씨 | 효율적인 다-시점/계층 코딩을 허용하는 코딩 개념 |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20060233247A1 (en) * | 2005-04-13 | 2006-10-19 | Visharam Mohammed Z | Storing SVC streams in the AVC file format |
| US8184153B2 (en) * | 2005-09-26 | 2012-05-22 | Electronics And Telecommunications Research Institute | Method and apparatus for defining and reconstructing ROIs in scalable video coding |
| US8320450B2 (en) * | 2006-03-29 | 2012-11-27 | Vidyo, Inc. | System and method for transcoding between scalable and non-scalable video codecs |
-
2007
- 2007-07-06 ES ES07803994.8T patent/ES2440824T3/es active Active
- 2007-07-06 US US12/373,286 patent/US8422805B2/en active Active
- 2007-07-06 EP EP07803994.8A patent/EP2052545B1/fr active Active
- 2007-07-06 WO PCT/FR2007/051615 patent/WO2008007006A2/fr not_active Ceased
Also Published As
| Publication number | Publication date |
|---|---|
| WO2008007006A2 (fr) | 2008-01-17 |
| EP2052545A2 (fr) | 2009-04-29 |
| US20100322529A1 (en) | 2010-12-23 |
| EP2052545B1 (fr) | 2013-10-02 |
| US8422805B2 (en) | 2013-04-16 |
| WO2008007006A3 (fr) | 2008-09-12 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2440824T3 (es) | Dispositivo y procedimiento de codificación y de decodificación escalables de flujo de datos de imágenes, señal y programa informático correspondientes | |
| US20230345017A1 (en) | Low complexity enhancement video coding | |
| JP6169273B2 (ja) | ビデオ符号化・復号装置、方法及びコンピュータプログラム | |
| ES3010314T3 (en) | Conditional signalling of reference picture list modification information | |
| ES2767933T3 (es) | Capa de sectores en códec de vídeo | |
| KR101365596B1 (ko) | 영상 부호화장치 및 방법과 그 영상 복호화장치 및 방법 | |
| KR102397259B1 (ko) | 영상 부호화/복호화 방법 및 장치 | |
| US12250392B2 (en) | Signaling scalability information in a parameter set | |
| CN114205598A (zh) | 编解码视频中的子图片实体群组信令 | |
| EP2901702B1 (en) | Signaling scalability information in a parameter set | |
| TWI521943B (zh) | 視訊解碼方法 | |
| US9462289B2 (en) | Implicit signaling of scalability dimension identifier information in a parameter set | |
| CN105027569A (zh) | 用于视频编码和解码的装置、方法和计算机程序 | |
| US20100150224A1 (en) | Method and device for coding data in a scalable stream | |
| US9426468B2 (en) | Signaling layer dependency information in a parameter set | |
| WO2014080630A1 (en) | Signaling scalability information in a parameter set |