INDICACIÓN DE DEPENDENCIA DE CODIFICACIÓN EN CODIFICACIÓN DE VIDEO ESCALABLE
CAMPO DE LA INVENCIÓN La presente invención se refiere a la codificación de video escalable, y más particularmente a la indicación de dependencias de codificación en la codificación de video escalable.
ANTECEDENTES DE LA INVENCIÓN Algunos sistemas de codificación de video emplean codificación escalable, en la cual algunos elementos o grupos de elementos de una secuencia de video se pueden eliminar sin afectar la reconstrucción de otras partes de la secuencia del video. La codificación de video escalable es una característica deseable para muchas aplicaciones y servicios de medios múltiples utilizados en sistemas que emplean decodificadores con una amplia gama de energía de procesamiento. Se pueden utilizar flujos de bits escalables, por ejemplo, para la adaptación de la velocidad de los flujos de transmisión única precodificada en un servidor de flujo y para la transmisión de un flujo de bits simple a las terminales que tienen diferentes capacidades y/o con diferentes condiciones de red. La escalabilidad comúnmente se implementa mediante el agrupamiento de los cuadros de imagen en un número de capas jerárquicas. Los cuadros de imagen codificados en los cuadros de imagen de la capa base comprenden sustancialmente solamente los que son obligatorios para la decodificación de la información de video al final de la recepción. Una o varias capas de mejoramiento se pueden determinar antes de la capa base, cada una de las capas mejora la calidad del video decodificado en comparación con una capa inferior. Sin embargo, se puede producir una representación decodificada significativa mediante la decodificación de solamente ciertas partes de un flujo de bits, escalable. Una capa de mejoramiento puede mejorar la resolución temporal (por ejemplo, la velocidad de cuadro) , la resolución espacial, o sólo la calidad. En algunos casos, los datos de una capa de mejoramiento se pueden truncar después de una cierta posición, incluso en posiciones arbitrarias, con lo cual cada posición de truncamiento con algunos datos adicionales representa el incremento de la calidad visual mejorada. Tal escalabilidad de denomina escalabilidad de grano fino (granularidad) (FGS por sus siglas en inglés) . En contraste a FGS, la escalabilidad proporcionada por una capa de mejoramiento de la calidad que no proporciona escalabilidad de grano fino se denomina escalabilidad de grano grueso (CGS por sus siglas en inglés) . Uno de los proyectos actuales de desarrollo en el campo de la codificación de video escalable es la norma de Codificación de Video Escalable (SVC por sus siglas en inglés) , que posteriormente se convertirá en la extensión escalable para la norma de codificación de video ITU-T H.264 (también conocido como ISO/IEC MPEG-4 AVC). De acuerdo al borrador de la norma SVC, un cuadro codificado en una capa de mejoramiento SGC o espacial incluye una indicación de la base de predicción intercapa. La predicción intercapa incluye predicción de uno o varios de los siguientes tres parámetros: modo de codificación, información de movimiento y residuo de muestra. El uso de la predicción intercapa puede mejorar significativamente la eficiencia de codificación de las capas de mejoramiento. La predicción intercapa siempre proviene de capas inferiores, es decir, una capa superior nunca se requiere al decodificar de una capa inferior. En un flujo de bits de video escalable, para un cuadro de capa de mejoramiento, se puede seleccionar un cuadro de cualquier capa inferior para la predicción intercapa. Por consiguiente, si el flujo de video incluye múltiples capas escalables, éste puede incluir cuadros en capas intermedias, que no son necesarios en la decodificación y la reproducción de una capa superior completa. Tales cuadros se denominan como cuadros no requeridos (para la decodificación de la capa superior completa) . No obstante, los métodos de video escalable de la técnica anterior tienen la seria desventaja de que no existen medios para indicar tal información de dependencia antes de la decodificación de los cuadros no requeridos. Por lo tanto, el decodificador tiene que decodificar los cuadros no requeridos, lo que es un despilfarro en términos de carga computacional, y tiene que almacenar en búfer los cuadros decodificados correspondientes, que es un despilfarro en términos de consumo de memoria. Alternativamente, si el cuadro no requerido en una posición temporal particular es un cuadro sin referencia, el decodificador puede esperar la llegada del cuadro en esa posición temporal en la capa escalable deseada para la reproducción y después analizar la información de dependencia. Sin embargo, esto provoca demora incrementada de extremo a extremo, que no es aceptable para las aplicaciones visuales en tiempo real.
SUMARIO DE LA INVENCIÓN Ahora se ha inventado un método mejorado y equipo técnica que implementa el método, mediante el cual los cuadros no requeridos se pueden indicar al decodificador antes de su decodificación. Varios aspectos de la invención incluyen un método de codificación y uno de decodificación, un codificador, un decodificador, un dispositivo de codificación de video, un dispositivo de decodificación de video, programas de computadora para realizar la codificación y la decodificación, y una estructura de datos, cuyos aspectos están caracterizados por lo que se establece enseguida. Se describen varias modalidades de la invención. De acuerdo a un primer aspecto, un método de acuerdo a la invención se basa en la idea de codificar un flujo de datos de video escalable, que comprende una capa base y al menos una capa de mejoramiento, en donde un flujo de datos escalable, que incluye al menos un cuadro no requerido en una posición temporal de una capa en donde la decodificación de cuadros en una capa superior que está en y que sigue a la posición temporal en el orden de decodificación no requiere el cuadro no requerido, y la información de al menos un cuadro no requerido se señala en el flujo de datos de video escalables. De acuerdo a una modalidad, una o varias capas de mejoramiento comprende una o varias capas de mejoramiento de escalabilidad de granularidad fina (FGS) , de calidad, o espacial . De acuerdo a una modalidad, la señalización se realiza dentro de una porción de flujo de datos escalable. De acuerdo a una modalidad, la señalización se realiza en un mensaje de Información de Mejoramiento Suplementario (SEl por sus siglas en inglés) . De acuerdo a un segundo aspecto, se proporciona un método de decodificación de un flujo de datos de video escalable, que comprende una capa base y al menos una capa de mejoramiento, el método comprende: decodificar información de señalización recibida con un flujo de datos escalable, la información de señalización incluye información respecto al menos a un cuadro no requerido en una posición temporal de una capa; y decodificar cuadros en una capa arriba del cuadro no requerido que está en y que sigue a la posición temporal en el orden de decodificación, sin decodificar el cuadro no requerido. La configuración de acuerdo a la invención proporciona ventajas significativas. La información de indicación de los cuadros no requeridos, que se señala en relación con el flujo de video escalable, hace posible que el decodificador determine los cuadros no requeridos antes de la decodificación, así se evita cualquier decodificación y almacenamiento en béfer innecesario de los cuadros no requeridos. Esto disminuye la carga computacional y el consumo de memoria del proceso de decodificación. Además, la configuración de acuerdo a la invención hace posible el mantenimiento de una demora mínima de extremo a extremo . Los aspectos adicionales de la invención incluyen varios aparatos configurados para llevar a cabo los pasos inventivos de los métodos anteriores .
BREVE DESCRIPCIÓN DE LOS DIBUJOS Enseguida, se describirá varias modalidades de la invención con mayor detalle, con referencia a los dibujos anexos, en los cuales La figura 1 muestra la estructura conceptual del diseño H.264; La figura 2 muestra un ejemplo de jerarquía de dependencia de codificación de un flujo de video escalable; La figura 3 muestra otro ejemplo de jerarquía de dependencia de codificación de un flujo de video escalable; La figura 4 muestra un ejemplo de jerarquía de dependencia de codificación de un flujo de video escalable, en donde están implicadas capas FGS; La figura 5 muestra un ejemplo de jerarquía de dependencia de codificación de un flujo de video escalable como una variación de la jerarquía de dependencia de la figura 4; La figura 6 muestra otro ejemplo de jerarquía de dependencia de codificación de un flujo de video escalable; La figura 7 muestra un dispositivo de codificación de acuerdo a una modalidad, en un diagrama de bloques simplificado; La figura 8 muestra un dispositivo de decodificación de acuerdo a una modalidad, en un diagrama de bloques simplificado; La figura 9 muestra un diagrama de bloques de un dispositivo de comunicación móvil de acuerdo a una modalidad preferida; y La figura 10 muestra un sistema de comunicación de video, en donde es aplicable la invención.
DESCRIPCIÓN DETALLADA DE LA INVENCIÓN La invención es aplicable a todos los métodos de codificación de video que utilizan la codificación de video escalable. Las normas de codificación de video incluyen ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 ó ISO/IEC MEPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual y ITU-T H.264 (también conocido como ISO/IEC MPEG-4 AVC) . Además, existen esfuerzos enfocados en las nuevas normas de codificación de video. Uno es el desarrollo de la norma de codificación de video escalable (SVC) , que se convertirá en la extensión escalable para H.264/AVC. La norma SVC es la que se está desarrollando actualmente bajo el nombre JVT, el equipo de video conjunto formado por ITU-T VCEG e ISO/IEC MPEG. El segundo esfuerzo es el desarrollo de las normas de codificación de video de China, organizadas por el Grupo de Trabajo de Normas de codificación Audio Visual (AVS) de China. La siguiente es una ilustración ejemplar de la invención que utiliza la codificación de video H.264 como un ejemplo. La codificación H.264 se describirá a un nivel de detalle considerado satisfactorio para la comprensión de la invención y sus modalidades preferidas. Para una descripción más detallada de la implementación de H.264, se hace referencia a la norma H.264, cuya última especificación se describe en JVT-N050dl, "Draft of Versión 4 of H.264/AVC", 14a Junta de JVT, Hong Kong, China, 18-21 Enero, 2005. De acuerdo a la figura 1, H.264/AVC distingue entre dos diferentes capas conceptuales, la capa de codificación de video (VCL) y la capa de abstracción de red
(NAL) . Tanto la VCL como la NAL son parte de la norma
H.264/AVC. La VCL especifica una representación eficiente para la señal de video codificada. La NAL de H.264/AVC define la interfaz entre la codificación de video misma y el mundo exterior. Ésta opera en unidades NAL, que dan soporte para el procedimiento basado en paquetes de la mayoría de las redes existentes. En la interfaz del decodificador NAL, se asume que las unidades NAL se entregan en orden de decodificación y que los paquetes son ya sea recibidos correctamente, perdidos, o en el encabezado de unidad NAL se puede levantar un indicador de error si la carga útil contiene errores de bits. La última característica no forma parte de la norma, ya que el indicador se puede utilizar para diferentes propósitos. Sin embargo, éste proporciona una manera para señalar una indicación de error a través de toda la red. Adicionalmente, se requieren especificaciones de interfaz para diferentes protocolos de transporte que se especificarán por las entidades de normalización responsables. El transporte exacto y la encapsulación de unidades NAL para diferentes sistemas de transporte, como H.320, sistemas MPEG-2, y RTP/IP, también están fuera del alcance de la normalización H.264/AVC. La interfaz de decodificador NAL se define normativamente en la norma, mientras que la interfaz entre la VCL y la NAL es conceptual y ayuda a describir y separar las tareas de la VCL y la NAL. La redacción del trabajo de la extensión escalable (SVC) para H.264/AVC actualmente hace posible la codificación de múltiples capas escalables. El último borrador se describe en JVT-O202 Anexo S, "Scalable video coding - working draft 2", 15a Junta de JVT, Corea del Sur Abril 2005. En esta codificación de múltiples capas escalables, la variable dependencyid señalada en el flujo de bits se utiliza para indicar las dependencias de codificación de diferentes capas escalables. Un flujo de bits escalable contiene al menos dos capas de escalabilidad, la capa base y una o varias capas de mejoramiento. Si un flujo de bits, escalable contiene una pluralidad de capas de escalabilidad, éste tiene el mismo número de alternativas para decodificar y reproducir. Cada capa es una alternativa de decodificación. La capa (0), la capa base, es la primera alternativa de decodificación. La capa (1) , la primera capa de mejoramiento, es la segunda alternativa de decodificación, etc. Este patrón continúa con las capas subsiguientes. Comúnmente, una capa inferior está contenida en las capas superiores. Por ejemplo, la capa 0 está contenida en la capa (1) , y la capa (1) , está contenida en la capa (2) . Un cuadro en una capa inferior puede no necesariamente necesitarse en la decodificación y la reproducción de una capa superior completa. Tales cuadros se denominan cuadros no requeridos (para decodificar la capa superior completa) . Un inconveniente significativo en la codificación SVC, así como en otros métodos de codificación de video, escalables, es que no existen medios para indicar los cuadros no requeridos al decodificador antes de que se decodifiquen los cuadros no requeridos. La decodificación de los cuadros no requeridos provoca carga computacional innecesaria, y el almacenamiento búfer de los cuadros decodificados no requeridos reserva espacio de memoria de manera innecesaria. La variable dependency_id señalada en el flujo de bits solamente se utiliza para indicar las dependencias de codificación de diferentes capas escalables, pero no de los cuadros no requeridos. La variable de dependency_id solamente se puede utilizar para determinar el cuadro no requerido en tal situación, en donde el decodificador espera la llegada del cuadro en una posición temporal particular en la capa escalable, que se selecciona para la reproducción, y después el decodificador obtiene la información de dependencia, incluida en la variable de dependency_id después de que la variable dependency_id se ha analizado y decodificado. Sin embargo, esto provoca una demora de extremo a extremo considerable, que no es aceptable para aplicaciones de video de poco tiempo de espera en tiempo real, como la telefonía de video o las conferencias en video. Ahora, de acuerdo a un aspecto de la invención, se forma un flujo de video escalable que comprende al menos dos capas, mediante el cual se crea una indicación de los cuadros no requeridos, que no se necesitan para la decodificación de al menos una capa. La información de indicación de los cuadros no requeridos se señala en relación con el flujo de video escalable, de manera que el decodificador puede determinar los cuadros no requeridos antes de su decodificación y así se evita la decodificación y el almacenamiento en búfer de los cuadros no requeridos . La información de indicación de los cuadros no requeridos se puede señalar en el flujo de bits del flujo de video escalable. La norma H.264/AVC incluye un mecanismo de señalización denominado Información de Mejoramiento Suplementario (SEl por sus siglas en inglés) para ayudar en la decodificación y en el despliegue de la secuencia de video. Los mensajes SEl se transfieren sincrónicamente con el contenido de datos de video. Una pluralidad de mensajes SEl se define en el Anexo D de la norma H.264/AVC: JVT-N050dl, "Draft of Versión 4 of H.264/AVC". De acuerdo a una modalidad preferida, se transfiere una indicación de la información de cuadro no requerido utilizando un nuevo mensaje SEl, en donde los nuevos campos se definen para la indicación de la información de cuadro no requerido. De acuerdo a una modalidad preferida, la información de cuadros no requeridos se comunica en un mensaje SEl de acuerdo a la siguiente sintaxis y semántica:
Sintaxis de mensaje SEl de información de dependencia intercapa
La información comunicada en este mensaje SEl se refiere a una unidad de acceso, que incluye los segmentos codificados y las particiones de datos en segmentos codificadas de todas las capas escalables en la misma posición temporal. Cuando está presente, este mensaje SEl aparecerá antes de cualquier unidad NAL de segmento codificada o unidad NAL de partición de dato por segmento codificada de la unidad de acceso correspondiente. Las semánticas de este mensaje SEl son como sigue: num_info_entries_minusl más 1 indica el número de las entradas de información siguientes. entry_dependency_id [ i ] indica el valor dependency_id del cuadro objeto, cuya información de cuadros no requeridos se describe por los siguientes elementos de sintaxis. El valor quality_level del cuadro objeto siempre es cero. Esto se debe al hecho de que un cuadro que tenga quality_level mayor de 0 es un cuadro FGS cuya fuente de referencia de interpredicción siempre es fija. Por lo tanto, la información de cuadros no requeridos es la misma que el cuadro que tiene el mismo valor dependency_id como el cuadro FGS y quality_level igual a 0. Un cuadro no requerido del cuadro objeto tampoco se requiere en la decodificación de algunos otros cuadros en la secuencia de video codificada y que tienen el mismo valor dependency_id y el valor quality_level que el cuadro objeto. n m_ non_required_pics_minusl [ i ] más 1 indica el número de cuadros no requeridos, señalados explícitamente para el cuadro objeto que tiene el valor dependency_id igual a entry_dependency_id [ i ] y el valor quality_level es igual a 0. Además de los cuadros no requeridos señalados explícitamente, también pueden existir cuadros no requeridos adicionales, derivados como se especifica enseguida. non_required_pic_dependency_id [ i ] [ j ] indica el valor dependency_id del cuadro no requerido jéslmo señalado explícitamente para el cuadro objeto que tiene el valor dependency_id igual a entry_ dependency_id [ i ] y el valor quality_level es igual a 0.
non_required_pic_quali ty_level [ i ] [ j ] indica el valor quality_level del cuadro jés?mo no requerido señalado explícitamente para el cuadro objeto que tiene el valor dependency_id igual a entry_dependency_id [ i ] y el valor quality_level igual a 0. Además, esos cuadros que tienen dependency_id igual a non_required_pic_dependency_id [i ] [j] y quality_level mayor que non_required_pic_quality_level [i] [j] son también cuadros no requeridos para el mismo cuadro objeto. La implementación del mensaje SEl y semántica anteriores se ilustra adicionalmente con los siguientes ejemplos. En primer lugar supongamos que un flujo de video comprende tres capas, base_layer_0, CGS_layer_l, y spatial_layer_2 , y éstas tienen la misma velocidad de cuadro. La jerarquía de dependencia de predicción intercapa se muestra en la figura 2, en donde una flecha indica que el objeto señalado hacia utiliza el objeto señalado desde para la referencia de predicción intercapas, y el par de valores a la derecha de cada capa en la figura representa los valores de dependency_id y quality_level . En este ejemplo, un cuadro en la CGS_layer_l utiliza la base_layer_0 para la predicción intercapas. Además, un cuadro en spatial_layer_2 utiliza base_layer_0 (es decir no la CGS_layer_l siguiente a ésta) para la predicción intercapas. Por consiguiente, el cuadro CGS_layer_l (dependency_id=l, quality_level=0) es un cuadro no requerido para la decodificación del cuadro spatial_layer_2. Entonces, asumamos que el cuadro CGS_layer_l mostrado también no se necesita en la decodificación de alguno de los cuadros spatial_layer_2 siguientes al cuadro spatial_layer_2 mostrado en el orden de decodificación, de acuerdo a la sintaxis semántica SEl anteriores, los valores señalados para el ejemplo de la figura 2 serían:
num_info_entxies_minusl = 0 { entry _dependency_id[ 0 ] = 2 num_non_required_pics_minusl[ 0 ] = 0 { non_required_pic_dependency_id[ 0 ][ 0 ] = 1 non_required_pic_quality_level[ 0 ][ 0 ] = 0 } }
Además, es posible que un cuadro en spatial_layer_2 utilice base_layer_0 para la predicción intercapa, mientras estén en la misma posición temporal, el cuadro en CGS_layer_l no utiliza predicción intercapas del todo, como se muestra en la jerarquía de dependencia de la figura 3. Por lo tanto, el cuadro CGS_layer_l (dependency_id=l, quality_level=0) es un cuadro no requerido para la decodificación del cuadro spatial_layer_2, y el cuadro base_layer_0 (dependency_id=0, quality_level=0) es un cuadro no requerido para la decodificación del cuadro CGS_layer_l . Nuevamente, asumamos que el cuadro CGS_layer_l mostrado no se necesita en la decodificación de alguno de los cuadros spatial_layer_2 que siguen al cuadro spatial_layer_2 mostrado en el orden de decodificación, y que el cuadro base_layer_0 mostrado también no se necesita en la decodificación de alguno de los cuadros CGS_layer_l que siguen al cuadro CGS_layer_l mostrado en el orden de decodificación, los valores señalados para el ejemplo de la figura 3 serían:
num_info_entries_minusl = 1 { entry _dependency_id[ 0 ] = 1 num_non_required_pics_minusl[ 0 ] = 0 { non_required_pic_dependency_id[ 0 ][ 0 ] = 0 non_required_pic_quality_level[ 0 ][ 0 ] = 0 } entry _dependency_id[ 0 ] = 2 num_non_required_pics_minusl[ 0 ] = 0 { non_required_pic_dependency_id[ 0 ][ 0 ] = 1 non_required_pic_quality_level[ 0 ][ 0 ] = 0 } } Cuando están implicadas capas FGS, la predicción intercapa para el modo de codificación y la información de movimiento pueden provenir de una capa base diferente a la predicción intercapas para el residuo de muestras. Un ejemplo de esto se muestra en la figura 4, en donde para el cuadro spatial_layer_2, la predicción intercapas para el modo de codificación y la información de movimiento proviene del cuadro CGS_layer_l, mientras que la predicción intercapa para el residuo de muestra proviene del cuadro FGS_layer_l_0. Por consiguiente, el cuadro FGS_layer_l_l
(dependency_id=l, quality_level=2) es un cuadro no requerido para la decodificación del cuadro spatial_layer_2. Nuevamente, asumamos que el cuadro
FGS_layer_l_l mostrado tampoco se necesita en la decodificación de alguno de los cuadros spatial_layer_2 que siguen al cuadro spatial_layer_2 mostrado en el orden de decodificación, los valores señalados para el ejemplo de la figura 4 serían:
num_info_entries_minusl = 0 { entry_dependency_id[ 0 ] = 2 num_non_required_pics_minusl[ 0 ] = 0 { non_required_pic_dependency_id[ 0 ][ 0 ] = 1 non_required_pic_quality_level[ 0 ][ 0 ] = 2 } } La figura 5 ilustra una variación de la jerarquía de dependencia de la figura 4. Aquí, todos los aspectos de la predicción intercapa, es decir el modo de codificación, la información de movimiento y el residuo de muestra, para el cuadro spatial_layer_2 provienen del cuadro CGS_layer_l . Por consiguiente, tanto el cuadro FGS_layer_l_0 (dependency_id=l, quality_level=l) y el cuadro FGS_layer_l_l (dependency_id=l , quality_level=2) son cuadros no requeridos para la decodificación del cuadro spatial_layer_2. Nuevamente, asumamos que ni el cuadro FGS_layer_l_0 ni el cuadro FGS_layer_l_l se necesitan en la decodificación de alguno de los cuadros spatial_layer_2 que siguen al cuadro spatial_layer_2 mostrado en el orden de decodificación, los valores señalados para el ejemplo de la figura 5 serían:
num_info_entries_minusl = 0 { entry _dependency_id[ 0 ] = 2 num_non_required_pics_minusl[ 0 ] = 0 { non_required_pic_dependency_id[ 0 ][ 0 ] = 1 non_required_pic_quality_level[ 0 ][ 0 ] = 1 } }
Aquí nótese que solamente se requiere para indicar el cuadro FGS_layer_l_0 (dependency_id=l, quality_level=l) como un cuadro no requerido, ya que el cuadro FGS_layer_l_l depende solamente del cuadro FGS_layer_l_0, así el cuadro FGS_layer_l_l también evidentemente es un cuadro no requerido. Para la interpretación de la semántica del mensaje SEl definido anteriormente, existen algunas situaciones adicionales, que habría de tomarse en cuenta.
Si la capa deseada para la reproducción tiene dependency_id (A' que no es igual a alguno de los valores entry_dependency_id [ i ] señalados en el mensaje SEl, entonces se busca la nés?ma entry_dependency_id [ i ] que tiene la entry_dependency_id [ i ] más grande, pero más pequeña que 'A' . El cuadro que tiene la dependency_id = ?A' tendrá los mismos cuadros no requeridos como se especifica en la nés?ma entrada. Si no existe entrada que tenga la entry_dependency_id [ i ] más pequeña que ?A' , entonces no existen cuadros no requeridos en la unidad de acceso correspondiente (es decir en la posición temporal correspondiente al mensaje SEl) para el cuadro que tiene dependency_id = XA' . Si un cuadro tiene dependency_id = XA' no es un cuadro no requerido para el cuadro que tiene dependency_id = ?B' , en donde 'B' es mayor que o igual a ?A' , entonces todos los cuadros no requeridos para el cuadro que tiene dependency_id = ?A' también son cuadros no requeridos para el cuadro que tiene dependency_id = ?B' . Un ejemplo se da en la figura 6, en donde un flujo de video comprende cinco capas, base_layer_0, CGS_layer_l, spatial_layer_2 , spatial_layer_3 y spatial_layer_4 , y éstas tienen la misma velocidad de cuadro. Un cuadro en la CGS_layer_l utiliza la base_layer_0 para la predicción intercapa. Un cuadro en spatial_layer_2 utiliza base_layer_0 (es decir, no la CGS_layer_l junto a ésta) para la predicción intercapa. Un cuadro en spatial_layer_3 utiliza spatial_layer_2 para la predicción intercapa. Finalmente, un cuadro en spatial_layer_4 utiliza solamente spatial_layer_2 para la predicción intercapa. Por consiguiente, el cuadro CGS_layer_l (dependency_id=l, quality_level=0) es un cuadro no requerido para la decodificación del cuadro spatial_layer_2, y el cuadro spatial_layer_3 (dependency_id=3 , quality_level=0) es un cuadro no requerido para la decodificación del cuadro spatial_layer_4. De acuerdo a la regla anterior, el cuadro CGS_layer_l es un cuadro no requerido para la decodificación del cuadro spatial_layer_3 y el cuadro spatial_layer_4 también, ya que sus valores dependency_id (3 y 4) son mayores a aquel del cuadro spatial_layer_2 (dependency_id=2) y el cuadro spatial_layer_2 no es un cuadro no requerido para el cuadro spatial_layer_3 y el cuadro spatial_layer_4. Nuevamente, asumamos que las relaciones de dependencia intercapa en las siguientes unidades de acceso en orden del decodificador son las mismas, los valores señalados para el ejemplo de la figura 6 serían: num_info_entries_minusl = 1 { entry_dependency_id[ 0 ] = 2 num_non_required_pics_minusl [ O ] = O { non_required_pic_dependency_id[ O ][ O ] = 1
non_required_pic_quality_level[ O ][ O ] = O } entr _dependency_id[ O ] = 4 num_non_required_pics_minusl[ O ] = O { non_required_pic_dependency_id[ O ][ O ] = 3 non_required_pic_quality_level[ O ][ O ] = O } }
La figura 7 se ilustra un dispositivo de codificación de acuerdo a una modalidad, en donde el dispositivo de codificación (700) recibe un flujo de datos en bruto (702) , que se codifica y produce una o varias capas por el codificador de datos escalable (704) del codificador (700) . El codificador de datos escalable (704) deduce los cuadros no requeridos mientras codifica el flujo de datos e inserta la información de indicación de los cuadros no requeridos a una unidad formadora de mensaje (706), que puede ser por ejemplo un compositor de unidad de acceso. El flujo de datos codificado (708) se produce del codificador (700) , permitiendo así que un decodificador determine los cuadros no requeridos, antes de su decodificación y se evite la decodificación innecesaria y el almacenamiento en búfer de los cuadros no requeridos. La figura 8 ilustra un dispositivo de decodificación de acuerdo a una modalidad, en donde el dispositivo de decodificación (800) recibe el flujo de datos codificados (802) a través de un receptor (804) . La información de indicación de los cuadros no requeridos se extrae del flujo de datos en una unidad deformadora de mensaje (806) , que puede ser por ejemplo un descompositor de unidad de acceso. Un decodificador (808) entonces decodifica la capa seleccionada del flujo de datos codificado de acuerdo a la información de indicación de los cuadros no requeridos, de manera que los cuadros no requeridos no se decodifican o se almacenan en búfer. El flujo de datos decodificados (810) se produce del decodificador (800) . Las diferentes partes de los sistemas de comunicación a base de video, particularmente terminales, pueden comprender propiedades para hacer posible la transferencia bidireccional de flujos de medios múltiples, es decir la transferencia y recepción de flujos. Esto permite que el codificador y el decodificador se implemente como un codee (codificador-decodificador) de video que comprende las funcionalidades tanto de un codificador como de un decodificador. Se debe notar que los elementos funcionales de la invención en el codificador de video, decodificador de video y terminal, anteriores se pueden implementar de preferencia como software, hardware o una combinación de los dos. Los métodos de codificación y decodificación de la invención son particularmente muy adecuados para implementarse como software de computadora que comprende comandos legibles en computadora para llevar a cabo los pasos funcionales de la invención. El codificador y el decodificador de preferencia se pueden implementar como un código de software, almacenado en medio de almacenamiento y ejecutable por un dispositivo similar a computadora, como una computadora personal (PC) o una estación móvil (MS) , para lograr las funcionalidades de codificación/decodificación con el dispositivo. Otros ejemplos de dispositivos electrónicos, a los cuales se pueden aplicar tales funcionalidades de codificación/decodificación, son los dispositivos asistentes digitales personales (PDA) , cajas para colocarse en la parte superior del aparato para sistemas de televisión digital, consolas de juegos, reproductores de medios y televisiones. La figura 9 muestra un diagrama de bloques de un dispositivo de comunicación móvil MS de acuerdo a la modalidad preferida de la invención. En el dispositivo de comunicación móvil, una Unidad de Control Maestro o MCU controla los bloques responsables de las diversas funciones del dispositivo de comunicación móvil: una Memoria de Acceso Aleatorio o RAM, una parte de Radio Frecuencia o RF, una Memoria de Sólo Lectura o ROM, codee de video CODEC y una Interfaz de Usuario Ul . La interfaz de usuario comprende un teclado o KB, una pantalla o DP, un altavoz o SP y un micrófono o MF. El MCU es un microprocesador, o en modalidades alternativas, algún otro tipo de procesador, por ejemplo un Procesador de Señales Digitales. Ventajosamente, las instrucciones de operación del MCU se han almacenado previamente en la memoria ROM. De acuerdo con sus instrucciones, (por ejemplo un programa de computadora) , el MCU utiliza el bloque RF para transmitir y recibir datos sobre un trayecto de radioeléctrico a través de una antena AER. El codee de video puede ser ya sea basado en hardware o a base de software parcial o totalmente, en cuyo caso el CODEC comprende programas de computadora para controlar el MCU, para que realice las funciones de codificación y decodificación de video, como se requiera. El MCU utiliza la RAM como su memoria de trabajo. El dispositivo de comunicación móvil puede capturar video en movimiento por la cámara de video, codificar y formar en paquete el video de movimiento utilizando el MCU, la RAM y el software a base de CODEC. El bloque de RF entonces se utiliza para intercambiar video codificado con otras partes. La figura 10 muestra el sistema de comunicación de video (100) que comprende una pluralidad de dispositivos de comunicación móvil MS, una red de telecomunicaciones móviles (110) , Internet (120) , un servidor de video (130) y una PC fija conectada a Internet. El servidor de video tiene un codificador de video y puede proporcionar flujos de video a demandas como los pronósticos del clima o las noticias . Debe ser evidente que la presente invención no está limitada solamente a las modalidades anteriormente presentadas, sino que se puede modificar dentro del alcance de las reivindicaciones anexas .