REGIÓN DE CODIFICACIÓN DE VIDEO H .264 ESCALABLE DE INTERÉS
Referencia Cruzada con Solicitudes Relacionadas La presente solicitud reclama el beneficio de la Solicitud
Provisional Norteamericana Serie No. 60/725,700, presentada el 12 de Octubre del 2005 y titulada "MÉTODO Y APARATO PARA CODIFICACIÓN Y DESCODI FICACIÓN DE VIDEO ESCALABLE", la cual está incorporada en su totalidad a la presente invención como referencia. Campo de la Invención La presente invención se refiere de manera general a la codificación y descodificación de video, y más particularmente, a un método y aparato para codificación y descodificación de video escalable. Antecedentes de la Invención La escalabilidad de regiones de interés (ROI) es una característica esencial para algunas aplicaciones de codificación de video escalable. Los usuarios pueden desear tener diferente escalabilidad espacial/temporal/de calidad dentro y fuera de las ROIs. La ordenación de macrobloque flexible (FMO) ha sido descrita para implementar la característica de ROI. El estándar de la Organización Internacional para Estandarización/Comisión Electrotécnica Internacional (ISO/IEC) Expertos en Películas
Animadas Grupo-4 (MPEG-4) Codificación de Video Avanzado Parte 10 (AVC)/estándar de la Unión Internacional de Telecomunicación, Sector de Telecomunicación (ITU-T) H.264 (en lo sucesivo referido el estándar "MPEG4/H.264", o simplemente el estándar "H.264") requiere que cada macrobloque en una imagen sea incluido en un grupo de recorte, y que todos los grupos de recortes sean codificados en imágenes codificadas primarias (aunque no se requiere para imágenes redundantes). El estándar H.264 no permite que falten grupos de recorte, lo cual significa que incluso para grupos de recorte que incluyen no-ROIs, aún se necesitan codificar estos grupos de recorte y enviarlos en la red. Se puede argüir que el codificador tiene la opción de controlar los bits de los macrobloques fuera de la ROI. Por ejemplo, en una implementación de la técnica anterior, el codificador puede codificar todos los macrobloques en no-ROIs para ser del modo BL_SKIP ó INTRA_BL. Incluso aunque los bits requeridos para señalar el modo BL_SKIP ó INTRA BL deben ser pequeños, aún el codificador realiza un esfuerzo extra para codificarlos. De manera más importante, la codificación no-ROIs requiere unidades NAL extra, y por lo tanto, gastos fijos de rango de bits extra. Por ejemplo, en los casos de una división ROI versus no-ROI de (1/4 versus ¾) y (1/2 versus /2) de la capa de base del formato intermedio común de un cuarto (QCIF) y la capa de aumento del formato intermedio común (CIF) (30fps), el gasto
fijo del rango de bit para transmitir el modo INTRA_BL de la región no-ROI en la capa de aumento a través del protocolo de tiempo real (RTP) se calcula aproximadamente como de 12kbps y 9kbps, respectivamente. Al mismo tiempo, incrementa la carga en el enrutador para analizar todas estas unidades NAL. Además, el descodificador aún necesita analizar dichas corrientes de bits con respecto a no-ROIs. Se deberá observar que en el Modelo de Video Escalable de Unión (JSVM) Versión 3.0, que soporta el modo INTRA_BL para todos los macrobloques en la capa de aumento sin importar los tipos de macrobloque de la capa de base, se requiere una descodificación de circuito múltiple, lo cual puede no ser permitido en algunos perfiles. Esta descripción limita el uso del modo INTRA_BL, si el codificador únicamente soporta una descodificación de circuito simple. Por lo tanto, normalmente, JSVM Versión 3.0 no permite el uso del modo INTRA BL para todos los MBs en no-ROI sin importar el circuito de descodificación simple múltiple. Breve Descripción de la Invención Estos y otros inconvenientes y desventajas de la técnica anterior son atendidos a través de la presente invención, la cual se dirige a un método y aparato para codificación y descodificación de video escalable. De acuerdo con un aspecto de la presente invención, se proporciona un codificador de video escalable. El codificador de
video escalable incluye un codificador para codificar una imagen para formar una corriente de bits de capa de base y una corriente de bits de capa de aumento. La corriente de bits de capa de base y la corriente de bits de capa de aumento se forman dividiendo la imagen en una pluralidad de bloques de imagen, agrupando la pluralidad de bloques de imagen en uno o más grupos de recorte en la corriente de bits de la capa de base y en dos o más grupos de recorte en la corriente de bits de la capa de aumento, codificando todos el uno o más grupos de recorte en la corriente de bits de la capa de base y menos de todos de los dos o más grupos de recorte en la capa de aumento, de modo que al menos un grupo de recorte de entre los dos o más grupos de recorte, sea no codificado en forma intencional en la corriente de bits de la capa de aumento, codificando un elemento de sintaxis en un encabezado para indicar el al menos un grupo de recorte no codificado intencionalmente en la capa de aumento. De acuerdo con otro aspecto de la presente invención, se proporciona un método para codificar video escalable. El método incluye codificar una imagen para formar una corriente de bits de la capa de base y una corriente de bits de la capa de aumento. El paso de codificación incluye dividir la imagen en una pluralidad de bloques de imagen. El paso de codificación también incluye agrupar la pluralidad de bloques de imagen en uno o más grupos de recorte en la corriente de bits de la capa
de base y en dos o más grupos de recorre en la corriente de bits de la capa de aumento. El paso de codificación incluye además codificar todos los uno o más grupos de recorte en la corriente de bits de la capa de base y menos de todos de los dos o más grupos de recorte en la capa de aumento, de modo que al menos un grupo de recorte de entre dos o más de los grupos de recorte sea no codificado intencionalmente en la corriente de bits de la capa de aumento. El paso de codificación incluye además codificar un elemento de sintaxis en un encabezado para indicar el al menos un grupo de recorte no codificado intencionalmente en la capa de aumento. De acuerdo aún con otro aspecto de la presente invención, se proporciona un descodificador de video escalable. El descodificador de video escalable incluye un descodificador para descodificar una corriente de bits de la capa de base y una corriente de bits de la capa de aumento. La corriente de bits de la capa de base y la corriente de bits de la capa de aumento se descodifican leyendo un elemento de sintaxis para indicar que al menos una de una pluralidad de los grupos de recorte está no codificada intencionalmente en la capa de aumento; descodificar la corriente de bits de la capa de aumento utilizando únicamente información de la capa de base para al menos una de la pluralidad de grupos de recorte indicados por el elemento de sintaxis; y descodificar cualesquiera de las pluralidades restantes de los grupos de recorte en la capa de
aumento utilizando la información en la capa de aumento. De acuerdo con aún otro aspecto de la presente invención, se proporciona un método para descodificar video escalable. El método incluye descodificar una corriente de bits de la capa de base y una corriente de bits de la capa de aumento leyendo un elemento de sintaxis que indica que al menos una de una pluralidad de grupos de recorte está no codificada intencionalmente en la capa de aumento, descodificar la corriente de bits de la capa de aumento utilizando únicamente información de la capa de base de la al menos una de la pluralidad de grupos de recorte indicado a través del elemento de sintaxis, y descodificar cualesquiera de la pluralidad de grupos de recorte restantes en la capa de aumento utilizando la información de la capa de aumento. De acuerdo con un aspecto adicional de la presente invención, se proporciona una estructura de video de señal para codificar video escalable. La estructura de señal de video incluye una imagen codificada para formar una corriente de bits de la capa de base y una corriente de bits de la capa de aumento. La corriente de bits de la capa de base y la corriente de bits de la capa de aumento se forman dividiendo la imagen en una pluralidad de bloques de imagen, agrupando la pluralidad de bloques de imagen en uno o más grupos de recorte en la corriente de bits de la capa de base y en dos o más grupos de recorte en la corriente de bits de la capa de
aumento, codificar todos los uno o más grupos de recorte en la corriente de bits de la capa de base y menos de todos de los dos o más grupos de recorre en la capa de aumento, de modo que al menos un grupo de recorte de entre los dos o más grupos de recorte sea no codificado intencionalmente en la corriente de bits de la capa de aumento, codificar un elemento de sintaxis en el encabezado para indicar el al menos un grupo de recorte no codificado intencionalmente en la capa de aumento. De acuerdo aún con un aspecto adicional de la presente invención, se proporciona un medio de almacenamiento que tiene datos de señal de video escalables codificados en el mismo. El medio de almacenamiento incluye una imagen codificada para formar una corriente de bits de la capa de base y una corriente de bits de la capa de aumento. La corriente de bits de la capa de base y la corriente de bits de la capa de aumento se forman dividiendo la imagen en una pluralidad de bloques de imagen, agrupando la pluralidad de bloques de imagen en uno o más grupos de recorte en la corriente de bits de la capa de base y en dos o más grupos de recorte en la corriente de bits de la capa de aumento, codificar el uno o más grupos de recorte en la corriente de bits de la capa de base y menos de todos de los dos o más grupos de recorte en la capa de aumento, de modo que al menos un grupo de recorte de entre los dos o más grupos de recorte sea no codificado
intencionalmente en la corriente de bits de la capa de aumento, codificando un elemento de sintaxis en el encabezado para indicar el al menos un grupo de recorte no codificado intencionalmente en la capa de aumento. Estos y otros aspectos, características y ventajas de la presente invención, podrán ser apreciados a partir de la descripción detallada de las modalidades de ejemplo que se encuentra más adelante, la cual será leída en conjunto con los dibujos que la acompañan. Breve Descripción de los Dibujos La presente invención podrá ser mejor comprendida de acuerdo con las siguientes figuras de ejemplo, en las cuales: La figura 1, muestra un diagrama de bloque de un codificador de Modelo de Video Escalable de Unión (JSVM) 3.0 al cual se pueden aplicar los principios de la presente invención; La figura 2, muestra un diagrama de bloque de un descodificador de ejemplo al cual se pueden aplicar los principios de la presente invención; La figura 3, muestra un diagrama de flujo de un método de ejemplo para codificar video escalable de unión con' regiones de interés de acuerdo con una modalidad de los principios de la presente invención; y La figura 4, muestra un diagrama de flujo de un método de ejemplo de descodificación de video escalable de unión con
regiones de interés de acuerdo con una modalidad de los principios de la presente invención. Descripción Detallada de la Invención La presente invención se dirige a un método y aparato para codificar y descodificar video escalable. La presente descripción ilustra los principios de la presente invención. Por lo tanto se podrá apreciar que los expertos en la técnica tendrán la capacidad de considerar varios ajustes, que aunque no se describan o muestran de manera explícita en la presente invención, representan los principios de la misma y están incluidos dentro de su espíritu y alcance. Los ejemplos y lenguaje condicional mencionado en la presente invención, están proyectados para propósitos pedagógicos para ayudar al lector en la comprensión de los principios de la presente invención, y los conceptos contribuidos por el inventor para ampliar la técnica, y serán construidos como sin limitación para los ejemplos y condiciones mencionadas en forma específica. Además, todas las manifestaciones que mencionan los principios, aspectos y modalidades de la presente invención, así como los ejemplos específicos de las mismas, están proyectados para comprender equivalentes tanto estructurales como funcionales de los mismos. Además, se pretende que dichas equivalentes incluyan tanto equivalentes actualmente
conocidas, así como equivalentes que se desarrollen en el futuro, es decir, cualesquiera elementos desarrollados que lleven a cabo la misma función, sin importar la estructura. Por lo tanto, por ejemplo, los expertos en la técnica podrán apreciar que los diagramas de bloque aquí presentados representan vistas conceptuarles de circuitos ilustrativos que representan los principios de la presente invención. En forma similar, se podrá apreciar que cualesquiera diagramas de flujo, gráficas de flujo, diagramas de transición de estado, pseudo-códigos y similares representan varios procesos los cuales pueden ser representados substancialmente en medios legibles en computadora y ejecutados de igual manera a través de una computadora o procesador, ya sea que la computadora o procesador se muestre de manera explícita o no. Las funciones de los diversos elementos mostradas en las figuras pueden ser proporcionadas a través del uso del hardware dedicado, así como el hardware con la capacidad da ejecutar el software en asociación con el software adecuado. Cuando se proporcione a través de un procesador, las funciones pueden ser proporcionadas por un procesador dedicado simple, a través de un procesador compartido simple, o través de una pluralidad de procesadores individuales, algunos de los cuales pueden ser compartidos. Además, el uso explícito del término "procesador" o "controlador" no debe construirse para referirse de manera exclusiva al hardware que tenga la capacidad de
ejecutar el software, y puede incluir implícitamente, sin limitación, un hardware de procesador de señal digital ("DSP"), memoria únicamente de lectura ("ROM") para almacenar software, memoria de acceso aleatorio ("RAM") y almacenamiento no volátil. También se pueden incluir otros hardware, convencionales y/o acostumbrados. En forma similar, cualesquiera conexiones mostradas en las figuras son únicamente conceptuarles. Su función puede llevarse a cabo a través de la operación de la lógica del programa, a través de la lógica dedicada, a través de la interacción del control del programa y lógica dedicada, o incluso en forma manual, siendo seleccionable la técnica particular por quien la implementa como sea comprendida de manera más específica en el contexto. En las reivindicaciones de la presente invención, cualquier elemento expresado como un medio para llevar a cabo una función específica está proyectada para comprender cualquier forma para llevar a cabo dicha función incluyendo, por ejemplo, a) una combinación de elementos de circuito que llevan a cabo dicha función, o b) software en cualquier forma, incluyendo por consiguiente, firmware, micro-código o similar, combinado con un circuito adecuado para ejecutar dicho software para que lleve a cabo la función. La presente invención tal como se define a través de las reivindicaciones, residen el hecho de que las funcionalidad es proporcionada por los diversos medios
mencionados que combinan y llevan juntas en la forma que lo indican las reivindicaciones. Por lo tanto es un aspecto que cualquier medio que pueda proporcionar dichas funciones es equivalente a los mostrados en la presente invención. Volviendo ahora a la figura 1, un codificador del Modelo de Video Escalable de Unión Versión 3.0 (en lo sucesivo "JSVM3.0") al cual se puede aplicar la presente invención se indica generalmente con el número de referencia 100. El codificador JSVM3.0 100 utiliza tres capas espaciales y filtración temporal compensada por movimiento. El codificador JSVM 100 incluye un diezmador bidimensional (2D) 104, un diezmador 2D 106 y un módulo de filtración temporal compensado por movimiento (MCTF) 108, que tiene cada uno una entrada para recibir datos de señal de video 102. Se conecta una salida del diezmador 2D 106 en comunicación de señal con una entrada de un módulo MCTF 110. Una primera salida del módulo MCTF 110 se conecta a una comunicación de señal con una entrada de un codificador de movimiento 112, y una segunda salida del módulo MCTF 110, se conecta en comunicación de señal con una entrada del módulo de anticipación 116. Una primera salida del codificador de movimiento 112 se conecta en comunicación de señal con una primera entrada de un multiplexor 114. Una segunda salida del codificador de movimiento 112 se conecta en comunicación de señal con una primera entrada de un codificador de movimiento
124. Una primera salida del módulo de anticipación 116 se conecta en comunicación de señal con una entrada de un transformador espacial 118. Una salida del transformador espacial 118 se conecta en comunicación de señal con una segunda entrada del multiplexor 114. Una segunda salida del módulo de anticipación 116 se conecta en comunicación de señal con una entrada de un interpolador 120. Una salida de interpolador se conecta en comunicación de señal con una primera entrada de un módulo de anticipación 122. Una primera salida del módulo de anticipación 122 se conecta en comunicación de señal con una entrada de un transformador espacial 126. Una salida del transformador espacial 126 se conecta en comunicación de señal con la segunda entrada del multiplexor 114. Una segunda salida del módulo de anticipación 122 se conecta en comunicación de señal con una entrada de un interpolador 130. Una salida de interpolador 130 se conecta en comunicación de señal con una primera entrada de un módulo de anticipación 134. Una salida del módulo de anticipación 134 se conecta en comunicación de señal con un transformador espacial 136. Una salida del transformador espacial se conecta en comunicación de señal con la segunda entrada de un multiplexor 114. Una salida del diezmador 2D 104 se conecta en comunicación de señal con una entrada de un módulo MCTF 128. Una primera salida del módulo MCTF 128 se conecta en
comunicación de señal con una segunda entrada del codificador de movimiento 124. Una primera salida del codificador de movimiento 124 se conecta en comunicación de señal con la primera entrada del multiplexor 114. Una segunda salida del codificador de movimiento 124 se conecta en comunicación de señal con una primera entrada de un codificador de movimiento 132. Una segunda salida del módulo MCTF 128 se conecta en comunicación de señal con una segunda entrada del módulo de anticipación 122. Una primera salida del módulo MCTF 108 se conecta en comunicación de señal con una segunda entrada del codificador de movimiento 132. Una salida del codificador de movimiento 132 se conecta en comunicación de señal con la primera entrada del multiplexor 114. Una segunda salida del módulo MCTF 108 se conecta en comunicación de señal con una segunda entrada del módulo de anticipación 134. Una salida del multiplexor 114 proporciona una corriente de bits de salida 138.
Para cada capa espacial, se lleva a cabo una descomposición temporal compensada por movimiento. Esta descomposición proporciona escalabilidad temporal. La información de movimiento de las capas espaciales inferiores se pueden utilizar para la anticipación de movimiento en las capas superiores. Para codificar la textura, la anticipación espacial entre las capas espaciales sucesivas puede aplicarse para eliminar la redundancia. La señal residual que resulta de la
intra anticipación o ínter anticipación compensada por movimiento se codifica por transformación. Un residuo de la capa de base de calidad proporciona calidad de reconstrucción mínima en cada capa espacial. Esta capa de base de calidad puede ser codificada en una corriente que cumple con el estándar H.264 sino se aplica la anticipación inter-capa. Para escalabilidad de calidad, las capas de aumento de calidad se codifican en forma adicional. Estas capas de aumento pueden ser elegidas ya sea para proporcionar escalabilidad de calidad de grano grueso o fino (SNR). Volviendo ahora a la figura 2, se indica generalmente con el número de referencia 200, un descodificador de video escalabie de ejemplo al cual puede aplicar la presente invención. Una entrada de un desmultiplexor 202 está disponible como una entrada en el descodificador de video escalabie 200, para recibir una corriente de bits escalabie. Una primera salida del desmultiplexor 202 se conecta en comunicación de señal con una entrada de un descodificador de entropía escalabie de transformación inversa espacial SNR 204. Una primera salida del descodificador de entropía escalabie de transformación inversa espacial SNR 204 se conecta en comunicación de señal con la primera entrada de un módulo de anticipación 206. Una salida del módulo de anticipación 206 se conecta en comunicación de señal con una primera entrada de un módulo MCTF inverso 208.
Una segunda salida del descodificador de entropía escalable de la transformación inversa espacial SNR 204 se conecta en comunicación de señal con una primera entrada de un descodificador de vector de movimiento (MV) 210. Una salida del descodificador MV 210 se conecta en comunicación de señal con una segunda entrada del módulo MCTF inverso 208. Una segunda salida del desmultiplexor 202 se conecta en comunicación de señal con una entrada de un descodificador de entropía escalable de transformación inversa espacial SNR 212. Una primera salida del descodificador de entropía escalable de transformación inversa espacial SNR 212 se conecta en comunicación de señal con una primera entrada de un módulo de anticipación 214. Una primera salida del módulo de anticipación 214 se conecta en comunicación de señal con una entrada de un módulo de interpolación 216. Una salida del módulo de interpolación 216 se conecta en comunicación de señal con una segunda entrada del módulo de anticipación 206. Una segunda salida del módulo de anticipación 214 se conecta en comunicación de señal con una primera entrada de un módulo MCTF inverso 218. Una segunda salida del descodificador de entropía escalable de transformación inverso espacial SNR 212 se conecta en comunicación de señal con una primera entrada de un descodificador MV 220. Una primera salida del descodificador MV 220 se conecta en comunicación de señal
con una segunda entrada del descodificador MV 210. Una segunda salida del descodificador MV 220 se conecta en comunicación de señal con una segunda entrada del módulo MCTF inverso 218. Una tercera salida del desmultiplexor 202 se conecta en comunicación de señal con una entrada de un descodificador de entropía escalable de transformación inversa espacial SNR 222. Una primera salida del descodificador de entropía escalable de transformación inversa espacial SNR 222 se conecta en comunicación de señal con una entrada del módulo de anticipación 224. Una primera salida del módulo de anticipación 224 se conecta en comunicación de señal con una entrada del módulo de interpolación 226. Una salida del módulo de interpolación 226 se conecta en comunicación de señal con una segunda entrada del módulo de anticipación 214. Una segunda salida del módulo de anticipación 224 se conecta en comunicación de señal con una primera entrada de un módulo MCTF inverso 228. Una segunda salida del descodificador de entropía escalable de transformación inversa espacial SNR 222 se conecta en comunicación de señal con una entrada de un descodificador MV 230. Una primera salida del descodificador MV 230 se conecta en comunicación de señal con una segunda entrada del descodificador MV 220. Una segunda salida del descodificador MV 230 se conecta en comunicación de señal con una segunda entrada del módulo
MCTF inverso 228. Una salida del módulo MCTF inverso 228 está disponible como una salida del descodificador 200, para producir una señal de capa 0. Una salida del módulo MCTF inverso 218 está disponible como una salida del descodificador 200, para producir una señal de capa 1. Una salida del módulo MCTF inverso 208 está disponible como una salida del descodificador 200, para producir una señal de capa 2. Se ha descrito FMO (ordenación del macrobloque flexible) para implementar la característica de escalabilidad ROI (región de interés). La especificación H.264/AVC no permite que falten cualesquiera grupos de recorte, lo cual significa que incluso los grupos de recorte que no incluyen no-ROIs aún necesitan ser codificados y enviarse en una red. De acuerdo con una modalidad de los principios de la presente invención, este requerimiento se relaja y se permite que falten grupos de recorte en capas de aumento, y se define un comportamiento normativo para que falten intencionalmente recortes. La capa de base permanece compatible con el estándar H.264. Por lo tanto, de acuerdo con una modalidad de los principios de la presente invención, proponemos relajar los requerimientos del estándar H.264 para permitir que falten grupos de recorte en la capa de aumento para la aplicación de ROI. Este método proporciona al menos las siguientes ventajas: (a) ahorra rango de bits; (b) reduce la carga en el enrutador; (c)
simplifica el análisis del descodificador; y (d) ahorra codificación del codificador para regiones no ROI. Si se permite que falten grupos de recorte en la capa de aumento, un aspecto inmediato que surge es como el descodificador puede determinar si un grupo de recorte faltante está intencionalmente no codificado por el codificador, o ha caído debido a errores en la red. Si un grupo de recorte es omitido intencionalmente, entonces de acuerdo con los principios de la presente invención, el descodificador proporciona un comportamiento normativo, de modo que el descodificador aún pueda tener la capacidad de descodificar toda la imagen (ROI + no-ROI), la salida del proceso de descodificación se comporta de manera consistente entre los diferentes descodificadores, y se puede mantener la exactitud de bits del codificador/descodificador. Sin embargo, si un grupo de recorte cae debido a un error en la red, se puede aplicar una consideración de error no-normativo, la cual depende de la aplicación. Para aclarar la ambigüedad de si un grupo de recorte está faltando de manera intencional o no, proponemos agregar una etiqueta en sequence_parameter_set(), es decir, missing_slice_groups_allowed_flag, tal como se muestra en la tabla 1. En particular, la tabla 1 ¡lustra la sintaxis RBSP de ajuste del parámetro de secuencia. Para soportar todos los slice_group_map_types, necesitamos indicar que grupos de
recorte están faltando para slice_group_map_type igual a 0, 1 y 6. Para otros casos, siempre podemos presumir que únicamente el último grupo de recorte está faltando, de modo que no se requiere sintaxis adicional. Para el caso más comúnmente esperado de escalabilidad ROI rectangular, slice_group_map_type == 2 será seleccionado y por lo tanto, se agrega poca sintaxis en picture_parameter_set(). En la tabla 2 se muestra una sintaxis completa.
TABLA 1
Seq_parameter_set_rbsp( ) { C Descriptor profíle_idc 0 u(8)
num_ref_frames 0 ue(v) gaps_in_frame_num_value_alIowed_flag 0 u(l) if ( profilejdc = = 83 ) missing_slice_groups_allowed_flag 0 u(l) ... 0 u(l)
)
T A B L A 2
pic_parameter_set_rbsp( ) f c Descriptor pic_parameter_set_id 1 ue(v) seq_parameter_set_id 1 ue(v) entropy_coding_mode_flag 1 u( l) pic_order_present_flag 1 u( l) num_slice_groups_m¡nusl 1 ue(v) if( num_slice_groups_minus l > 0 ) { slice_group_map_ty e 1 ue(v) if( slice_group_map_t pe = = 0 ) for( iGroup = 0; iGroup <= num_slice_groups_minusl ; iGroup++ ) run_length_minusl[ iGroup ] 1 ue(v) else if( slice_group_map_type = = 2 ) for( iGroup = 0; iGroup < num_slice_groups_minusl ; iGroup++ ) { top_lef![ iGroup ] 1 ue(v) bottom_right[ iGroup ] 1 ue(v) ) else if( slice_group_map_t pe = = 3 1 1 s!ice_group_map_type = = 4 j | slice_group_map_type = = 5 ) { slice_group_change_direction_flag 1 u( D slice_group_change_rate_minusl 1 ue(v)
) else if( slice_group_map_type = = 6 ) { pic_size_in_map_units_minusl 1 ue(v) for( i = 0; i <= pic_size_in_map_units_minusl ; i++ ) slice_group_id[ i ] 1 U(V)
} ) if ( ( profile_idc = = 83 ) && (missing_slice_groups_allowed_flag ) && (num_slice_group_minusl > 0) ) { num_m¡ssing_slice_group 1 ue(v) if (num_missing_slice_group > 0) { if ( slice_group_map_type = = 0 1 1 slice_group_map_type = = l 1 1 slice_group_map_type = = 6 ) { for ( i = 0: i < num_missing_slice_group; i++) { missing_sl¡ce_group_id[ i ] 1 u(v) ) ) ) I
}
miss¡ng_slice_groups_allowed_flag específica la concesión de grupos de recorte faltantes en la corriente de bits. Cuando no se encuentra missing_slice_groups_allowed_flag, deberá deducirse que es igual a 0. Cuando missing_slice_groups_allowed_flag es igual a 1, entonces el "mapeo del mismo grupo de recorte" tiene que existir entre la capa de base y la capa de aumento. El "mapeo del mismo grupo de recorte" significa el mismo num_slice_groups_minus_1 y el mismo slice_group_map_type. num_missing_slice_groups específica el número de grupos de recorte faltantes de una imagen. missing_slice_group_id[ i ] identifica un grupo de recorte faltante de la unidad del mapa del grupo de recorte faltante i-th en orden de escáneo de rectángulo que sirve para recorrer buscando las estaciones (ráster (rectángulo que sirve para buscar estaciones en una televisión)). Con la nueva sintaxis proporcionada, el descodificador puede decidir si un grupo de recorte en la capa de aumento está faltando intencionalmente o más bien ha caído debido a un error en la red. En la decisión que debe ser un comportamiento normativo del procesamiento de descodificación para un grupo faltante intencionalmente, se puede considerar lo siguiente: (1) ya que se aplica un grupo de recorte faltante a un no-ROI en la capa de aumento, la calidad no necesita ser muy alta, aunque la calidad debe ser aceptable; y (2) la complejidad debe
mantenerse baja y el descodificador debe re-utilizar la funcionalidad disponible en el diseño SVC actual. Proponemos dos posibles soluciones que pueden utilizar diseño SVC corriente: (1) uso de modo INTRA_BL sin residuo, es decir, copiar o mostrar la imagen base_layer; y (2) utilizar el modo BL_SKIP sin residuo. En consecuencia, elegimos comportamientos normativos utilizando cualesquiera de los métodos anteriores para descodificar un grupo de recorte faltante intencionalmente. Volviendo ahora a la figura 3, un método de ejemplo para codificación de video escalable por unión con regiones de interés se indica generalmente con el número de referencia 300. El método incluye un bloque de inicio 305 que inicia codificando con una información de la región de interés (ROI), y pasa el control a un bloque de función 310. El bloque de función 310 crea grupos de recorte dependiendo de la información ROI, y pasa el control a un bloque de decisión 315. El bloque de decisión 315 determina si la capa actual que será codificada es o no la capa de base. Si es así, entonces el control pasa a un bloque de función 320. De lo contrario, el control pasa a un bloque de función 325. El bloque de función 320 codifica todos los grupos de recorte (en la capa de base), y pasa el control a un bloque de extremo 370. El bloque de función 325 mapea los grupos de recorte de
la capa de base a los grupos de recorte de la capa de aumento, y pasa el control a un bloque de función 330. El bloque de función 330 missing_slice_groups_allowed_flag igual a uno, y pasa el control a un bloque de decisión 335. El bloque de decisión 335 determina si el grupo de recorte de ese momento pertenece o no a una región de interés. Si es así, entonces el control pasa a un bloque de función 340. De lo contrario, el control pasa a un bloque de función 355. El bloque de función 340 codifica al grupo de recorte de ese momento utilizando la anticipación de inter-capa, y pasa el control a un bloque de decisión 345. El bloque de función 355 no codifica el grupo de recorte de ese momento, y pasa el control al bloque de función 360. El bloque de función 360 incrementa num_missing_slice_groups, y pasa el control al bloque de decisión 345. El bloque de decisión 345 determina si num_missing_slice_groups es mayor o no a uno. Si es así, entonces el control pasa a un bloque de función 350. De lo contrario, el control pasa al bloque final 370. El bloque de función 350, para cada grupo i de recorte faltante, indica missing_slice_groups_id[i], y pasa el control al bloque final 370. Volviendo ahora a la figura 4, un método de ejemplo para descodificación de video escalable de unión con las regiones de interés, se indica generalmente con el número de referencia
400. El método incluye un bloque de inicio 405 que inicia descodificando la capa de aumento, y pasa el control a un bloque de función 410. El bloque de función 410 se obtiene missing_slice_groups_allowed_flag, y pasa el control a un bloque de función 415. El bloque de función 415, para cada grupo i de recorte faltante, indica missing_slice_group_id[i], y pasa el control a un bloque de función 420. El bloque de función 420 se obtiene num_missing_slice_groups, y pasa el control a un bloque de decisión 425. El bloque de decisión 425 determina si num_missing_slice_groups son mayores o no a uno. Si es así, entonces el control pasa a un bloque de función 430. De lo contrario, el control pasa a un bloque de decisión 435. El bloque de función 430, para cada grupo i de recorte, lee missing_slice_group_id[i], y pasa el control a un bloque de decisión 435. El bloque de decisión 435 determina si únicamente descodifica o no la región ROI. Si es así, entonces el control pasa a un bloque de decisión 440. De lo contrario, el control pasa a un bloque de decisión 450. El bloque de decisión 440 determina si el grupo de recorte está faltando intencionalmente o no (este incluye la región ROI). Si es así, entonces el control pasa a un bloque de función 445. De lo contrario, el control pasa a un bloque de función 460.
El bloque de función 445 descodifica el siguiente grupo de recorte ROI, y pasa el control a un bloque final 480. El bloque de función 460 concilla el grupo de recorte ROI perdido, y pasa el control al bloque final 480. El bloque de decisión 450 determina si el grupo de recorte pertenece o no a una ROI. Si es así, entonces el control pasa a un bloque de función 455. De lo contrario, el control pasa a un bloque de decisión 465. El bloque de función 455 descodifica el grupo de recorte ROI, y pasa el control al bloque final 480. El bloque de decisión 465 determina si el grupo de recorte está faltando o no intencionalmente. Si es así, entonces el control pasa a un bloque de función 470. De lo contrario, el control pasa al bloque de función 460. El bloque de función 470 descodifica este grupo de recorte en la capa de base, y pasa el control a un bloque de función 475. El bloque de función 475 utiliza el modo INTRA_BL o el modo BL_SKIP sin residuo para descodificar este grupo de recorte en la capa de aumento, y pasa el control a un bloque final 480. A continuación se proporciona una descripción de parte de algunas de la muchas ventajas/características de la presente invención, algunas de las cuales han sido mencionadas anteriormente. Por ejemplo, una ventaja/característica es un codificador de video escalable. El codificador de video
escalable incluye un codificador para codificar una imagen para formar una corriente de bits de capa de base y una corriente de bits de capa de capa de aumento. La corriente de bits de capa de base y la corriente de bits de capa de aumento se forman dividiendo la imagen en una pluralidad de bloques de imagen, agrupando la pluralidad de bloques de imagen en uno o más grupos de recorte en la corriente de bits de la capa de base y en dos o más grupos de recorte en la corriente de bits de la capa de aumento, codificando todos los uno o más grupos de recorte en la corriente de bits de la capa de base y menos de los dos o más grupos de recorte en la capa de aumento, de modo que al menos un grupo de recorte de entre los dos o más grupos de recorte sea no codificado intencionalmente en la corriente de bits en la capa de aumento, codificando un elemento de sintaxis en un encabezado para indicar el al menos un grupo de recorte no codificado intencionalmente en la capa de aumento. Otra ventaja/característica es el codificador de video escalable tal como se describió anteriormente, en donde la corriente de bits de la capa de aumento se forma para soportar al menos una región de la aplicación de interés, de modo que cualesquiera de los dos o más grupos de recorte en la capa de aumento que incluyen las regiones de interés sean codificados en la corriente de bits de la capa de aumento, en tanto que cualesquiera de los dos o más grupos de recorte en la capa de
aumento que están sin regiones de interés, sean no codificados intencionalmente. Aún otra ventaja/característica es el codificador de video escalable tal como se describió anteriormente, en donde el codificador agrega el elemento de sintaxis agregando un campo missing_slice_groups_allowed_flag en un conjunto de parámetro de secuencia que corresponde a la corriente de bits de la capa de aumento. Así mismo, otra ventaja/característica es el codificador de video escalable que agrega el elemento de sintaxis tal como se describió anteriormente, en donde existe el mapeo del mismo grupo de recorte entre la corriente de bits de la capa de aumento y la corriente de bits de la capa de base, en donde el campo missing_slice_groups_allowed_flag es igual a 1, el mapeo del mismo grupo de recorte se refiere a un campo num_slice_groups_minus_1 y a un campo slice_group_map_type respectivamente que tiene un mismo valor para la corriente de bits de la capa de base y la corriente de bits de la capa de aumento. Además, otra ventaja/característica es el codificador de video escalable tal como se describió anteriormente, en donde el codificador agrega un campo num_missing_slice_groups en un ajuste de parámetro de imagen que corresponde a la corriente de bits de la capa de aumento para especificar una cantidad de grupos de recorte que son intencionalmente no
codificados para la imagen. Además, otra ventaja/característica es el codificador de video escalable que agrega el campo num_missing_slice_groups, tal como se describió anteriormente, en donde el codificador agrega un campo missing_slice_group_id[ i ] en un ajuste de parámetro de imagen que corresponde a la corriente de bits de la capa de aumento para identificar en la misma el al menos un grupo de recorte i ntencional mente no codificado de una unidad de mapa de grupo de recorte intencionalmente omitida i-th en orden de escáneo ráster (rectángulo que sirve para buscar estaciones en una televisión) para un campo slice_group_map igual a cualquiera de 0, 1 y 6. Además, otra ventaja/característica es el codificador de video escalable que agrega el campo num_missing_slice_groups tal como se describió anteriormente, en donde el codificador ajusta un campo slice_group_map igual a cualquiera de 2, 3, 4 y 5 para indicar qué el último grupo de recorte en la corriente de bits de la capa de aumento es al menos un grupo de recorte intencionalmente no codificado. Estas y otras características y ventajas de la presente invención podrán ser fácilmente confirmadas por un experto en la técnica a la que pertenece la presente invención con base en las enseñanzas aquí descritas. Quedará entendido que las enseñanzas de la presente invención pueden ser implementadas
en varias formas de hardware, software, firmware, procesadores para propósitos especiales o combinaciones de los mismos. Más preferentemente, las enseñanzas de la presente invención se implementan con una combinación de hardware y software. Además, el software puede ser implementado como un programa de aplicación representado en forma tangible en una unidad de almacenamiento de programa. El programa de aplicación puede ser cargado, y ejecutado por una máquina que comprende cualquier arquitectura adecuada. Preferentemente, la máquina se implementa en una plataforma de cómputo que tiene hardware tal como una o más unidades de procesamiento central ("CPU"), una memoria de acceso aleatorio ("RAM"), e interfases de entrada/salida ("l/O"). La plataforma de cómputo también puede incluir un sistema de operación y un código de micro-instrucción. Los diversos procesos y funciones aquí descritos pueden ser ya sea parte del código de micro-instrucción o parte del programa de aplicación, o cualquier combinación de los mismos, la cual se puede ejecutar a través de un CPU. Además, otras varias unidades periféricas pueden ser conectadas a la plataforma de cómputo tal como una unidad de almacenamiento de datos adicional y una unidad de impresión. Quedará entendido que, debido a que algunos componentes constituyentes del sistema y métodos ilustrados en los dibujos que acompañan la presente invención son
implementados preferentemente en software, las conexiones reales entre los componentes del sistema o los bloques de función del proceso pueden diferir dependiendo de la forma en la cual se programe la presente invención. Debido a las enseñanzas de la presente invención, un experto en la técnica tendrá la capacidad de contemplar estas implementaciones o configuraciones así como otras similares de la presente invención. Aunque las modalidades ilustrativas han sido descritas con referencia a los dibujos que la acompañan, quedará entendido que la presente invención no se limita a las modalidades precisas, y que varios cambios y modificaciones pueden efectuarse en la presente invención a través de un experto en la técnica sin apartarse del alcance o espíritu de la misma. Todos de dichos cambios y modificaciones están proyectados para estar incluidos dentro del alcance de la presente invención tal como se establece a través de las reivindicaciones adjuntas.