REFERÊNCIA CRUZADA A PEDIDOS RELACIONADOS
Este pedido reivindica o beneficio do Pedido US Provisório de No. de Série 60/725.700, depositado em 12 de outubro de 2005 e intitulado "METHOD AND APPARATUS FOR SCALABLE VIDEO ENCODING AND DECODING", incorporado a este documento na integra e a titulo de referenda.
CAMPO DA INVENÇÃO
Em geral, a presente invenção refere-se à codificação e decodificação de videos, mais especificamente, a urn método e aparelho para codificação e decodificação de video escalonável.
ANTECEDENTES DA INVENÇÃO
A escalabilidade de regiões de interesse (ROI) é uma característica essencial para algumas aplicações de co- dificaçào/decodificação de video escalonável. Os usuários podem desejar ter diferentes escalabilidades espaci- al/temporal/de qualidade dentro e fora das ROIs.
A ordenação de macroblocos flexível (FMO) foi discutida para implementar o recurso de ROI. O padrão de Codi- ficação/Decodificação de Vídeo Avançada (AVC) Parte 10 do Grupo de Peritos em Imagens em Movimento-4 (MPEG-4) da Organização Internacional de Normalização Técnica/Comissão Internacional Eletrotécnica (ISO/IEC)/padrão H.264 da União Internacional de Comunicações, Setor de Comunicações (ITU-T) (doravante referido como "padrão MPEG4/H.264" ou simplesmente "padrão H.264") exige que cada macrobloco na imagem seja incluído em um grupo de fatias, e que todos os grupos de fatias sejam codificados/decodificados em imagens codificadas primárias (embora não seja necessário para imagens redundantes) . O padrão H.264 não permite a ausência de quaisquer grupos de fatias, o que significa que, mesmo para os grupos de fatias que não incluem ROIs, ainda precisamos codificar esses grupos de fatias e enviá-los para a rede. Pode-se a- firmar que o codificador possui a opção de controlar os bits para os macroblocos fora da ROI. Por exemplo, em uma imple-mentação da técnica anterior, o codificador pode codificar todos os macroblocos fora de ROIs para serem do modo BL__SKIP ou INTRA_BL. Embora os bits necessários para sinalizar o modo BL-SKIP ou INTRA_BL possam ser pequenos, o codificador ainda tem esforço extra para codificá-los. Com maior importância, a codificação de não-ROIs requer unidades NAL. extras e, consequentemente, sobrecarga extra da taxa de bits. Por exemplo, nos casos de uma divisão ROI versus não-ROI de (1/4 contra %) e contra *á) para uma camada de base de um quarto de formato intermediário comum (QCIF) e uma camada de a- perfeiçoamento de formato intermediário comum (CIF) (30fps), a sobrecarga de taxa de bits para transmitir o modo INTRA_BL para a região não-ROI na camada de aperfeiçoamento pelo pro-tocolo de transporte em tempo real (RTP) é aproximadamente calculada em 12kbps e 9kbps, respectivamente. Ao mesmo tempo, ela aumenta a carga sobre o roteador para analisar todas essas unidades NAL. Além disso, o decodificador ainda preci-sa analisar os fluxos de bits para não-ROIs. Deve-se observar que, no Joint Scalable Video Model (JSVM) Versão 3.0, suportando o modo INTRA_BL para todos os macroblocos na camada de aperfeiçoamento, independente dos tipos dos macrob-locos na camada de base, é necessária a decodificação em múltiplos laços, que pode não ser permitida para alguns perfis. Essas restrições limitam o uso do modo INTRA_BL, caso o codificador suporte apenas a decodificação em único laço. Sendo assim, no presente momento, o JSVM Versão 3.0 não permite o uso do modo INTRA_BL para todos os MBs em não-ROI, seja em decodificação em múltiplos o em único laço.
SUMÁRIO DA INVENÇÃO
Esses e outros obstáculos e desvantagens da técnica anterior são tratados pela presente invenção, que é direcionada a um método e aparelho para codificação e decodificação de video escalonável.
De acordo com um aspecto da presente invenção, é proposto um codificador de video escalonável. 0 codificador de video escalonável inclui um codificador para codificar uma imagem a fim de formar um fluxo de bits de camada de base e um fluxo de bits de camada de aperfeiçoamento. O fluxo de bits da camada de base e o fluxo de bits da camada de a- perfeiçoamento são formados dividindo a imagem em vários blocos de imagem, agrupando os vários blocos de imagem em um ou mais grupos de fatias no fluxo de bits da camada de base e em dois ou mais grupos de fatias no fluxo de bits da camada de aperfeiçoamento, codificando todos do um ou mais grupos de fatias no fluxo de bits da camada de base e menos do que todos dos dois ou mais grupos de fatias na camada de a- perfeiçoamento, de modo que pelo menos um grupo de fatias dentre os dois ou mais grupos de fatias seja intencionalmente não-codificado no fluxo de bits da camada de aperfeiçoa-mento, codificando um elemento de sintaxe em um cabeçalho para indicar o pelo menos um grupo de fatias intencionalmente não-codifiçado na camada de aperfeiçoamento.
De acordo com outro aspecto da presente invenção, é proposto um método para codificação de video escalonável. O método inclui codificar uma imagem a fim de formar um fluxo de bits de camada de base e um fluxo de bits de camada de aperfeiçoamento. A etapa de codificação inclui dividir a i- magem em vários blocos de imagem. A etapa de codificação também inclui agrupar os vários blocos de imagem em um ou mais grupos de fatias no fluxo de bits da camada de base e em dois ou mais grupos de fatias no fluxo de bits da camada de aperfeiçoamento. A etapa de codificação inclui ainda codificar todos do um ou mais grupos de fatias no fluxo de bits da camada de base e menos do que todos dos dois ou mais grupos de fatias na camada de aperfeiçoamento, de modo que pelo menos um grupo de fatias dentre os dois ou mais grupos de fatias seja intencionalmente não-codificado no fluxo de bits da camada de aperfeiçoamento. A etapa de codificação adicionalmente inclui codificar um elemento de sintaxe em um cabeçalho a fim de indicar o pelo menos um grupo de fatias intencionalmente não-codificado na camada de aperfeiçoamento .
De acordo com ainda outro aspecto da presente invenção, é proposto um decodificador de video escalonável. 0 decodificador de video escalonável inclui um decodificador para decodificar um fluxo de bits da camada de base e um fluxo de bits da camada de aperfeiçoamento. O fluxo de bits da camada de base e o fluxo de bits da camada de aperfeiçoamento são decodificados pela leitura de um elemento de sintaxe que indica que pelo menos um de vários grupos de fatias é intencionalmente não-codifiçado na camada de aperfeiçoamento; pela decodificação do fluxo de bits da camada de a- perfeiçoamento usando apenas informações da camada de base para o pelo menos um de vários grupos de fatias indicados pelo elemento de sintaxe; e pela decodificação de quaisquer dos vários grupos de fatias restantes na camada de aperfeiçoamento usando informações da camada de aperfeiçoamento.
De acordo com ainda outro aspecto da presente invenção,. é proposto um método para decodificação de video es- calonável. O método inclui decodificar um fluxo de bits da camada de base e um fluxo de bits da camada de aperfeiçoa-mento pela leitura de um elemento de sintaxe que indica que pelo menos um de vários grupos de fatias é intencionalmente não-codifiçado na camada de aperfeiçoamento; pela decodifi- cação do fluxo de bits da camada de base usando apenas informações da camada de base para o pelo menos um de vários grupos de fatias indicados pelo elemento de sintaxe; e pela decodificação de quaisquer dos vários grupos de fatias restantes na camada de aperfeiçoamento usando informações da camada de aperfeiçoamento.
De acordo com um aspecto adicional da presente invenção, é proposta uma estrutura de sinal de video para codificação de video escalonável. A estrutura de sinal de vi- deo inclui uma imagem codificada a fim de formar um fluxo de bits da camada de base e um fluxo de bits da camada de aperfeiçoamento. 0 fluxo de bits da camada de base e o fluxo de bits da camada de aperfeiçoamento são formados dividindo a imagem em vários blocos de imagem, agrupando os vários blocos de imagem em um ou mais grupos de fatias no fluxo de bits da camada de base e em dois ou mais grupos de fatias no fluxo de bits da camada de aperfeiçoamento, codificando todos do um ou mais grupos de fatias no fluxo de bits da camada de base e menos do que todos dos dois ou mais grupos de fatias na camada de aperfeiçoamento, de modo que pelo menos um grupo de fatias dentre os dois ou mais grupos de fatias seja intencionalmente não-codificado no fluxo de bits da camada de aperfeiçoamento, codificando um elemento de sintaxe em um cabeçalho para indicar o pelo menos um grupo de fatias intencionalmente não-codificado na camada de aperfeiçoamento.
De acordo com outro aspecto adicional da presente invenção, é proposto um meio de armazenamento com dados de sinal de vídeo escalonável codificados nele. 0 meio de armazenamento inclui uma imagem codificada a fim de formar um fluxo de bits da camada de base e um fluxo de bits da camada de aperfeiçoamento. 0 fluxo de bits da camada de base e o fluxo de bits da camada de aperfeiçoamento são formados dividindo a imagem em vários blocos de imagem, agrupando os vários blocos de imagem em um ou mais grupos de fatias no fluxo de bits da camada de base e em dois ou mais grupos de fatias no fluxo de bits da camada de aperfeiçoamento, codi- ficando todos do um ou mais grupos de fatias no fluxo de bits da camada de base e menos do que todos dos dois ou mais grupos de fatias na camada de aperfeiçoamento, de modo que pelo menos um grupo de fatias dentre os dois ou mais grupos de fatias seja intencionalmente não-codifiçado no fluxo de bits da camada de aperfeiçoamento, codificando um elemento de sintaxe em um cabeçalho para indicar que o pelo menos um grupo de fatias intencionalmente não-codifiçado na camada de aperfeiçoamento.
Esses e outros aspectos, características e vantagens da presente invenção transparecerão por meio da descrição detalhada das concretizações exemplificativas a seguir, que deverá ser lida junto com os desenhos em anexo.
BREVE DESCRIÇÃO DOS DESENHOS
A presente invenção pode ser melhor compreendida de acordo com as figuras exemplificativas a seguir, nas quais:
A FIG. 1 ilustra um diagrama de blocos para um codificador Joint Scalable Video Model (JSVM) 3.0, ao qual os presentes princípios podem ser aplicados;
A FIG. 2 ilustra um diagrama de blocos para um de- codificador exemplificativo, ao qual os presentes princípios podem ser aplicados;
A FIG. 3 ilustra um diagrama de fluxo de dados para um método exemplificative para codificação de vídeo escalonável conjunta com regiões de interesse de acordo com uma concretização dos presentes princípios; e
A FIG. 4 ilustra um diagrama de fluxo de dados para um método exemplificativo para decodificação de vídeo es- calonável conjunta com regiões de interesse de acordo com uma concretização dos presentes princípios.
DESCRIÇÃO DETALHADA
A presente invenção está voltada para um método e aparelho para codificação e decodificação de vídeo escaloná- vel.
A presente descrição ilustra os princípios da presente invenção. Sendo assim, apreciar-se-á que os versados na técnica serão capazes de descobrir várias combinações que, embora não explicitamente descritas ou ilustradas neste documento, concretizam os princípios da invenção e estão incluídas dentro de sua essência e âmbito.
Todos os exemplos e linguagens condicionais relatados no presente documento são concebidos para, propósitos pedagógicos a fim de auxiliar o leitor a compreender os princípios da invenção e os conceitos contribuídos pelo inventor para favorecer a técnica, e devem ser interpretados sem restrições a tais exemplos e condições especificamente relatados.
Além disso, todas as declarações, neste documento, relatando princípios, aspectos e concretizações da invenção, bem como exemplos específicos dela, devem abranger tanto e- quivalentes estruturais quanto funcionais dela. Além disso, pretende-se que tais equivalentes incluam tanto equivalentes atualmente conhecidos quanto equivalentes desenvolvidos no futuro, isto é, quaisquer elementos desenvolvidos que desempenhem a mesma função, independente da estrutura.
Sendo assim, por exemplo, será apreciado pelos versados na técnica que os diagramas de blocos apresentados neste documento representam visualizações conceituais do sistema de circuitos ilustrativo que concretiza os princípios da invenção. De maneira semelhante, apreciar-se-á que quaisquer fluxogramas, diagramas de fluxo de dados, diagramas de transição de estados, pseudocódigos, entre outros, representam vários processos que podem ser substancialmente representados em meios legíveis por computador e, portanto, executados por um computador ou processador, quer tal computador ou processador seja ilustrado explicitamente ou não.
As funções dos vários elementos ilustrados nas figuras podem ser realizadas pelo uso de hardware dedicado, bem como de hardware capaz de executar softwares relacionados ao software apropriado. Quando realizadas por um proces-sador, as funções podem ser realizadas por um único processador dedicado, por um único processador compartilhado ou por vários processadores individuais, alguns dos quais podem ser compartilhados.
Além disso, o uso explícito do termo "processador" ou "controlador" não deve ser interpretado como referência exclusiva a hardware capaz de executar softwares e pode incluir implicitamente, sem restrição, hardware processador de sinais digitais ("DSP"), memória somente para leitura ("ROM") para armazenar softwares, memória de acesso aleatório ("RAM") e armazenamentos não voláteis.
Também podem ser incluídos outros hardwares, convencionais e/ou personalizados. De maneira semelhante, quaisquer botões ilustrados nas figuras são meramente conceituais. Sua função pode ser realizada pela operação de ló-gica de programa, por meio de lógica dedicada, pela interação de controle de programa e lógica dedicada, ou até mesmo manualmente, a técnica especifica sendo selecionável pelo implementador como mais especificamente compreendido com ba-se no contexto.
Nas reivindicações deste documento, qualquer elemento expresso como um meio para desempenhar uma função específica tem a intenção de abranger qualquer forma de desempenhar tal função, incluindo, por exemplo: a) uma combinação de elementos de circuito que desempenham tal função ou b) softwares de qualquer forma, incluindo, portanto, firmwares, microcódigos ou similares, combinados com o sistema de circuitos apropriado para executar tal software para desempenhar a função. A invenção, conforme definida por tais reivindicações, consiste no fato de que as funcionalidades oferecidas pelos vários meios relatados são combinadas e unidas da maneira que as reivindicações prescrevem. Assim, considera-se que qualquer meio capaz de oferecer tais funcionalidades é equivalente aos ilustrados no presente documento.
Com relação à FIG. 1, um codificador Joint Scalable Video Model Versão 3.0 (doravante referido como "JSVM3.0") exemplificativo, ao qual a presente invenção pode ser aplicada, é, em geral, indicado pelo número de referência 100. O codificador JSVM3.0 100 usa três camadas espaciais e filtragem temporal com compensação de movimento. O codificador JSVM 100 inclui um decimador bidirecional (2D) 104, um decimador 2D 106 e um módulo de filtragem temporal com compensação de movimento (MCTF) 108, cada um contendo uma entrada para receber dados de sinal de video 102.
Uma saída do decimador 2D 106 é conectada, em comunicação de sinais, a uma entrada de um módulo MCTF 110. Uma primeira saída do módulo MCTF 110 é conectada, em comunicação de sinais, a uma entrada de um codificador de movi-mento 112 e uma segunda saída do módulo MCTF 110 é conectada, em comunicação de sinais, a uma entrada de um módulo de predição 116. Uma primeira saída do codificador de movimento 112 é conectada, em comunicação de sinais, a uma primeira entrada de um multiplexador 114. Uma segunda saída do codificador de movimento 112 é conectada, em comunicação de sinais, a uma primeira entrada de um codificador de movimento 124. Uma primeira saída do módulo de predição 116. é conectada, em comunicação de sinais, a uma entrada de um transformador espacial 118. Uma saída do transformador espacial 118 é conectada, em comunicação de sinais, a uma segunda entrada do multiplexador 114. Uma segunda saída do módulo de predição 116 é conectada, em comunicação de sinais, a uma entrada de um interpolador 120. Uma saída do interpolador é conectada, em comunicação de sinais, a uma primeira entrada de um módulo de predição 122. Uma primeira saída do módulo de predição 122 é conectada, em comunicação de sinais, a uma entrada de um transformador espacial 126. Uma saída do transformador espacial 126 é conectada, em comunicação de sinais, à segunda entrada do multiplexador 114. Uma segunda saída do módulo de predição 122 é conectada, em comunicação de si- nais, a uma entrada de um interpolador 130. Uma saida do in- terpolador 130 é conectada, em comunicação de sinais, a uma primeira entrada de um módulo de predição 134. Uma saida do módulo de predição 134 é conectada, em comunicação de sinais, a um transformador espacial 136. Uma saida do transformador espacial é conectada, em comunicação de sinais, à segunda entrada de um multiplexador 114.
Uma saída do decimador 2D 104 é conectada, em comunicação de sinais, a uma entrada de um módulo MCTF 128. Uma primeira saída do módulo MCTF 128 é conectada, em comunicação de sinais, a uma segunda entrada do codificador de movimento 124. Uma primeira saída do codificador de movimento 124 é conectada, em comunicação de sinais, à primeira entrada do multiplexador 114. Uma segunda saída do codificador de movimento 124 é conectada, em comunicação de. sinais, a uma primeira entrada de um codificador de movimento 132. Uma segunda saída do módulo MCTF 128 é conectada, em comunicação de sinais, a uma segunda entrada do módulo de predição 122.
Uma primeira saída do módulo MCTF 108 é conectada, em comunicação de sinais, a uma segunda entrada do codificador de movimento 132. Uma saída do codificador de movimento 132 é conectada, em comunicação de sinais, à primeira entrada do multiplexador 114. Uma segunda saída do módulo MCTF 108 é conectada, em comunicação de sinais, a uma segunda entrada do módulo de predição 134. Uma saída do multiplexador 114 fornece um fluxo de bits de saída 138.
Para cada camada espacial, é realizada uma decom posição temporal com compensação de movimento. Essa decompo- sição propicia escalabilidade temporal. As informações de movimento das camadas espaciais inferiores podem ser usadas para predição de movimento nas camadas superiores. Para a codificação de textura, a predição espacial entre camadas espaciais sucessivas pode ser aplicada para remover redundâncias. O sinal residual resultante da predição intra ou da predição inter com compensação de movimento é codificado em transformada. Um residual da camada de base de qualidade o- ferece qualidade de reconstrução minima em cada camada espacial. Essa camada de base de qualidade pode ser codificada em um fluxo compativel com o padrão H.264, se nenhuma predição intercamadas for aplicada. Para escalabilidade de qualidade, as camadas de aperfeiçoamento de qualidade são adicionalmente codificadas. Essas camadas de aperfeiçoamento podem ser escolhidas tanto para oferecer escalabilidade de qualidade de granularidade (SNR) fina ou grossa.
Voltando-se para a FIG. 2, um codificador de video escalonável exemplificative, ao qual a presente invenção pode ser aplicada, é indicado, em geral, pelo número de referência 200. Uma entrada de um demultiplexador 202 é disponível como uma entrada para o decodificador de video escalonável 200 para receber um fluxo de bits escalonável. Uma primeira saida do demultiplexador 202 é conectada, em comunicação de sinais, a uma entrada de um decodificador de entropia escalonável SNR de transformada espacial inversa 204. Uma primeira saida do decodificador de entropia escalonável SNR de transformada espacial inversa 204 é conectada, em comunicação de sinais, a uma primeira entrada de um módulo de pre- dição 206. Uma saída do módulo de predição 206 é conectada, em comunicação de sinais, a uma primeira entrada de um módulo MCTF inverso 208.
Uma segunda saída do decodificador de entropia es- calonável SNR de transformada espacial inversa 204 é conectada, em comunicação de sinais, a uma primeira entrada de um decodificador de vetor de movimento (MV) 210. Uma saída do decodificador MV 210 é conectada, em comunicação de sinais, a uma segunda entrada de um módulo MCTF inverso 208.
Uma segunda saída do demultiplexador 202 é conectada, em comunicação de sinais, a uma entrada de um decodificador de entropia escalonável SNR de transformada espacial inversa 212. Uma primeira saída do decodificador de entropia escalonável SNR de transformada espacial inversa 212 é conectada, em comunicação de sinais, a uma primeira entrada de um módulo de predição 214. Uma primeira saída do módulo de predição 214 é conectada, em comunicação de sinais, a uma entrada de um módulo de interpolação 216. Uma saída do módulo de interpolação 216 é conectada, em comunicação de sinais, a uma segunda entrada do módulo de predição 206. Uma saída do módulo de predição 214 é conectada, em comunicação de sinais, a uma primeira entrada de um módulo MCTF inverso 218.
Uma segunda saída do decodificador de entropia escalonável SNR de transformada espacial inversa 212 é conectada, em comunicação de sinais, a uma primeira entrada de um decodificador MV 220. Uma primeira saída do decodificador MV 220 é conectada, em comunicação de sinais, a uma segunda en- trada do decodificador MV 210. Uma segunda saida do decodi- ficador MV 220 é conectada, em comunicação de sinais, a uma segunda entrada do módulo MCTF inverso 218.
Uma terceira saida do demultiplexador 202 é conectada, em comunicação de sinais, a uma entrada de um decodi- ficador de entropia escalonável SNR de transformada espacial inversa 222. Uma primeira saída do decodificador de entropia escalonável SNR de transformada espacial inversa 222 é conectada, em comunicação de sinais, a uma entrada de um módulo de predição 224. Uma primeira saída do módulo de predição 224 é conectada, em comunicação de sinais, a uma entrada de um módulo de interpolação 226. Uma saída do módulo de interpolação 226 é conectada, em comunicação de sinais, a uma segunda entrada do módulo de predição 214.
Uma saída do módulo de predição 224 é conectada, em comunicação de sinais, a uma primeira entrada de um módulo MCTF inverso 228. Uma segunda saída do decodificador de entropia escalonável SNR de transformada espacial inversa 222 é conectada, em comunicação de sinais, a uma entrada de um decodificador MV 230. Uma primeira saída do decodificador MV 230 é conectada, em comunicação de sinais, a uma segunda entrada do decodificador MV 220. Uma segunda saída do deco- dificador MV 230 é conectada, em comunicação de sinais, a uma segunda entrada do módulo MCTF inverso 228.
Uma saída do módulo MCTF inverso 228 é disponível como uma saída do decodificador 200 para emitir um sinal de camada 0. Uma saída do módulo MCTF inverso 218 é disponível como uma saída do decodificador 200 para emitir um sinal de camada 1. Uma saída do módulo MCTF inverso 208 é disponível como uma saída do decodificador 200 para emitir um sinal de camada 2.
A FMO (ordenação de macroblocos flexível) foi discutida para implementar o recurso de escalabilidade ROI (região de interesse). A especificação H.264/AVC não permite a ausência de qualquer grupo de fatias, o que significa que até mesmo grupos de fatias que incluem não-ROIs ainda preci-sam ser codificados e enviados para uma rede. De acordo com uma concretização dos presentes princípios, esse requisito é reduzido e passamos a permitir a ausência de grupos de fatias nas camadas de aperfeiçoamento, bem como definimos um comportamento padronizado para fatias intencionalmente ausentes . A camada de base continua compatível com o padrão H.264 .
Sendo assim, de acordo com uma concretização dos presentes princípios, propomos reduzir os requisitos do padrão H.264 a fim de permitir grupos de fatias ausentes na camada de aperfeiçoamento para a aplicação de ROI. Essa a- bordagem oferece pelo menos as seguintes vantagens: (2) economia de taxa de bits; (b) redução da carga sobre o roteador; (c) simplificação da análise para o decodificador; e (d) economia de codificação para o codificador para regiões não-ROI.
Se permitirmos grupos de fatias ausentes na camada de aperfeiçoamento, um problema imediato que ocorre é de que forma o decodificador pode determinar se um grupo de fatias ausente está intencionalmente não-codifiçado pelo codifica- dor ou está ausente devido a falhas de rede. Se um grupo de fatias é intencionalmente omitido, então, de acordo com os presentes princípios, o decodificador oferece um comportamento padronizado, de modo que o decodificador ainda possa ter a capacidade de decodificar a imagem inteira (ROI + não- ROI) , a saída do processo de decodificação se comporta de maneira consistente entre diferentes decodíficadores, e a exatidão de bits do codificador/decodificador pode ser mantida. No entanto, se um grupo de fatias estiver ausente devido à falhas de rede, é possível aplicar um encobrimento de falha não-padronizado, que depende da aplicação.
Para esclarecer a ambiguidade de se um grupo de fatias é voluntária ou involuntariamente ausente, propomos adicionar um sinalizador no sequence_parameter_set(), a saber, missing_slice_groups_allowed_flag, conforme ilustrado na TABELA 1. Em particular, a TABELA 1 ilustra a sintaxe RBSP do conjunto de parâmetros de sequência. A fim de suportar todos os slice_group_map_types, precisamos indicar quais grupos de fatias estão faltando para slice_group__map_type igual a 0,1 e 6. Para outros casos, podemos sempre pressupor que apenas o último grupo de fatias está ausente, sendo assim, não é necessária nenhuma sintaxe adicional. Para o caso mais comumente esperado de escalabilidade ROI retangular, slice_group_map_type = = 2 será selecionado e, então, é adicionada uma pequena sintaxe em picture_parameter_set(). Uma sintaxe completa é ilustrada na TABELA 2. TABELA 1
TABELA 2
missão de grupos de fatias ausentes no fluxo de bits. Quando missing_slice_groups_allowed_flag não está presente, deve-se pressupor que ele é igual a 0. Quando mis- sing_slice_groups_allowed_flag é igual a 1, então o "mesmo mapeamento de grupo de fatias" tem de existir entre a camada de base e a camada de aperfeiçoamento. O "mesmo mapeamento de grupo de fatias" significa o mesmo num_slice_groups_minus_l e o mesmo slice_group_map_type. num_missing_slice__groups especifica o número de grupos de fatias ausentes para uma imagem. missing_slice_group_id[ i ] identifica um grupo de fatias ausente da i-ésima unidade de mapa de grupo de fatias ausente em ordem de varredura por rastreio.
Com a nova sintaxe proposta, o decodificador pode decidir se um grupo de fatias na camada de aperfeiçoamento está intencionalmente ausente ou, em vez disso, está ausente devido a uma falha de rede. Ao decidir qual deve ser o comportamento padrão do processo de decodificação para um grupo intencionalmente ausente, deve-se considerar o seguinte: (1) uma vez que um grupo de fatias ausente é aplicado a nâo-ROI na camada de aperfeiçoamento, a qualidade não precisa ser muito alta, mas a qualidade deve ser aceitável; e (2) a complexidade deve ser mantida baixa e o decodificador deve reutilizar a funcionalidade disponível no projeto SVC atual.
Propomos duas possíveis soluções que podem usar o projeto SVC atual: (1) o uso do modo INTRA_BL sem resíduo, isto é, copiar ou aumentar a qualidade da imagem da camada de base; e 2) o uso do modo BL_SKIP sem resíduo. Como consequência, podemos escolher comportamentos padronizados usando qualquer um dos métodos acima para decodificar um grupo de fatias intencionalmente ausente.
Voltando-se para a FIG. 3, um método exemplificative para codificação de video escalonável conjunta com regiões de interesse é indicado, em geral, pelo número de referência 300. O método inclui um bloco inicial 305 que inicia a codificação com as informações de região de interesse (ROI), e passa o controle para um bloco de função 310. O bloco de função 310 cria grupos de fatias dependendo das in-formações ROI, e passa o controle para um bloco de decisão 315. O bloco de decisão 315 determina se a camada atual a ser codificada é ou não é a camada de base. Se a resposta for positiva, então o controle passa para um bloco de função 320. Caso contrário, o controle passa para um bloco de função 325.
O bloco de função 320 codifica todos os grupos de fatias (na camada de base), e passa o controle para um bloco final 370.
O bloco de função 325 mapeia grupos de fatias da camada de base para grupos de fatias da camada de aperfeiço- amento, e passa o controle para um bloco de função 330. 0 bloco de função 330 define missing_slice_groups_allowed_flag igual a um, e passa o controle para um bloco de decisão 335. O bloco de decisão 335 determina se o grupo de fatias atual pertence ou não a uma região de interesse. Se a resposta for positiva, então o controle passa para um bloco de função 340. Caso contrário, o controle passa para um bloco de fun-ção 355.
O bloco de função 340 codifica o grupo de fatias atual usando predição intercamadas, e passa o controle para um bloco de decisão 345.
O bloco de função 355 não codifica o grupo de fatias atual, e passa o controle para um bloco de função 360. O bloco de função 360 incrementa num_missing_slice_groups, e passa o controle para o bloco de decisão 345.
O bloco de decisão 345 determina se num_missing__slice_groups é ou não maior do que um. Se a resposta for positiva, então o controle passa para um bloco de função 350. Caso contrário, o controle passa para o bloco final 370.
O bloco de função 350, para cada grupo de fatias ausente i, indica missing_slice__groups_id [i] , e passa o controle para o bloco final 370.
Voltando-se para a FIG. 4, um método exemplificative para decodificação de video escalonável conjunta com regiões de interesse é indicado, em geral, pelo número de referência 400. O método inclui um bloco inicial 405 que i- nicia a decodificação da camada de aperfeiçoamento, e passa o controle para um bloco de função 410. 0 bloco de função 410 obtém o missing_slice_groups_allowed_flag, e passa o controle para um bloco de função 415. 0 bloco de função 415, para cada grupo de fatias ausente i, indica mis- sing_slice_groups_id[i], e passa o controle para um bloco de função 420. O bloco de função 420 obtém num__missing_slice_groups, e passa o controle para um bloco de decisão 425. 0 bloco de decisão 425 determina se num_missing_slice_groups é ou não maior do que um. Se a resposta for positiva, então o controle passa para um bloco de função 430. Caso contrário, o controle passa para um bloco de decisão 435.
O bloco de função 430, para cada grupo de fatias ausente i, lê missing_slice_groups_id[i] , e passa o controle para o bloco de decisão 435.
O bloco de decisão 435 determina se irá ou não decodificar apenas a região ROI. Se a resposta for positiva, então o controle passa para um bloco de decisão 4 4 0. Caso contrário, o controle passa para um bloco de decisão 450.
O bloco de decisão 440 determina se um grupo de fatias (que inclui a região ROI) é intencionalmente ausente ou não. Se a resposta for positiva, então o controle passa para um bloco de função 445. Caso contrário, o controle passa para um bloco de função 460.
O bloco de função 445 decodifica o próximo grupo de fatias ROI, e passa o controle para um bloco final 480.
O bloco de função 460 oculta o grupo de fatias ROI perdido, e passa o controle para o bloco final 480.
O bloco de decisão 450 determina se o grupo de fatias pertence ou não a uma ROI. Se a resposta for positiva, então o controle passa para um bloco de função 455. Caso contrário, o controle passa para um bloco de decisão 465.
O bloco de função 455 decodifica o grupo de fatias ROI, e passa o controle para um bloco final 480.
O bloco de decisão 465 determina se o grupo de fatias é intencionalmente ausente ou não. Se a resposta for positiva, então o controle passa para um bloco de função 470. Caso contrário, o controle passa para o bloco de função 460.
O bloco de função 470 decodifica esse grupo de fatias na camada de base, e passa o controle para um bloco de função 475. O bloco de função 475 usa o modo INTRA_BL ou o modo BL_SKIP sem resíduo para decodificar esse grupo de fatias na camada de aperfeiçoamento, e passa o controle para o bloco final 480.
Agora será feita uma descrição.de algumas das muitas vantagens/características concomitantes da presente invenção, algumas das quais foram mencionadas acima. Por exemplo, uma vantagem/característica é um codificador de vídeo escalonável. O codificador de vídeo escalonável inclui um codificador para codificar uma imagem a fim de formar um fluxo de bits da camada de base e um fluxo de bits da camada de aperfeiçoamento. O fluxo de bits da camada de base e o fluxo de bits da camada de aperfeiçoamento são formados dividindo a imagem em vários blocos de imagem, agrupando os vários blocos de imagem em um ou mais grupos de fatias no fluxo de bits da camada de base e em dois ou mais grupos de fatias no fluxo de bits da camada de aperfeiçoamento, codificando todos do um ou mais grupos de fatias no fluxo de bits da camada de base e menos do que todos dos dois ou mais grupos de fatias na camada de aperfeiçoamento, de modo que pelo menos um grupo de fatias dentre os dois ou mais grupos de fatias seja intencionalmente não-codifiçado no fluxo de bits da camada de aperfeiçoamento, codificando um elemento de sintaxe em um cabeçalho para indicar o pelo menos um grupo de fatias intencionalmente não-codifiçado na camada de aperfeiçoamento.
Outra vantagem/caracteristica é o codificador de video escalonável conforme descrito acima, em que o fluxo de bits da camada de aperfeiçoamento é formado para suportar pelo menos uma aplicação de região de interesse, de modo que qualquer um dos dois ou mais grupos de fatias na camada de aperfeiçoamento que incluem regiões de interesse seja codificado no fluxo de bits da camada de aperfeiçoamento, ao passo que qualquer um dos dois ou mais grupos de fatias na camada de aperfeiçoamento que estão sem regiões de interesse seja intencionalmente não-codifiçado.
Ainda outra vantagem/caracteristica é o codificador de video escalonável conforme descrito acima, em que o codificador adiciona o elemento de sintaxe com a adição de um campo missing_slice_groups_allowed_flag em um conjunto de parâmetros de seqüência correspondente ao fluxo de bits da camada de aperfeiçoamento.
Além disso, outra vantagem/caracteristica é o co- dificador de vídeo escalonável que adiciona o elemento de sintaxe, conforme descrito acima, em que um mesmo mapeamento de grupos de fatias existe entre o fluxo de bits da camada de aperfeiçoamento e o fluxo de bits da camada de base, quando o campo missing_slice_groups_allowed_flag é igual a 1, o mesmo mapeamento de grupos de fatias relacionado a um campo num_slice_groups_minus_l e slice_group_map_type, res-pectivamente, contendo o mesmo valor para o fluxo de bits da camada de base e o fluxo de bits da camada de aperfeiçoamento .
Ademais, outra vantagem/caracteristica é o codificador de video escalonável, conforme descrito acima, em que o codificador adiciona um campo num_missing_slice_groups em um conjunto de parâmetros de sequência correspondendo ao fluxo de bits da camada de aperfeiçoamento para especificar uma quantidade de grupos de fatias que são intencionalmente não-codificados para a imagem.
Além do mais, outra vantagem/caracteristica é o codificador de video escalonável que adiciona o campo num_missing_slice_groups, conforme descrito acima, em que o codificador adiciona um campo missing_slice_group_id[ i ] em um conjunto de parâmetros de imagem correspondente ao fluxo de bits da camada de aperfeiçoamento a fim de identificar nela pelo menos o grupo de fatias intencionalmente não- codificado de uma i-ésima unidade de mapa do grupo de fatias intencionalmente omitido em ordem de varredura por rastreio para um campo slice_group_map igual a qualquer um dentre 0,1 e 6.
Além disso, outra vantagem/característica é o codificador de video escalonável que adiciona o campo num_missing_slice_groups, conforme descrito acima, em que o codificador atribui a um campo slice_group_map um valor i- gual a qualquer um dentre 2, 3, 4 e 5 a fim de indicar que o último grupo de fatias no fluxo de bits da camada de aperfeiçoamento é o pelo menos um grupo de fatias intencionalmente nâo-codificado.
Essas e outras características e vantagens da presente invenção podem ser facilmente verificadas pelos versados na técnica pertinente com base nos ensinamentos deste documento. Deve-se compreender que os ensinamentos da presente invenção podem ser implementados em várias formas de hardware, software, firmware, processadores de uso especifico ou combinações desses.
Mais preferivelmente, os ensinamentos da presente invenção são implementados como uma combinação de hardware e software. Ademais, o software pode ser implementado como um programa aplicativo incorporado de forma tangível a uma unidade de armazenamento de programas. 0 programa aplicativo pode ser carregado para, e executado por, uma máquina compreendendo qualquer arquitetura adequada. De preferência, a máquina é implementada em uma plataforma de computador com hardwares tal como uma ou mais unidades centrais de processamento ("CPU"), uma memória de acesso aleatório ("RAM") e interfaces de entrada/saída ("I/O"). A plataforma de computador também pode incluir um sistema operacional e código de micro-instrução. Os vários processos e funções descritos neste documento podem ser parte ou do código de micro- instrução ou do programa aplicativo, ou qualquer combinação desses, que pode ser executada por uma CPU. Além disso, várias outras unidades periféricas podem ser conectadas à plataforma de computador, tal como uma unidade de armazenamento de dados adicional e uma unidade de impressão.
Também deve ser compreendido que, já que alguns dos componentes e métodos constituintes do sistema representados nos desenhos em anexo são preferencialmente implementados em software, as conexões reais entre os componentes do sistema ou os blocos de função de processo podem divergir, dependendo da maneira na qual a presente invenção é programada . Dados os ensinamentos neste documento, os versados na técnica pertinente serão capazes de contemplar essas implementações ou configurações, bem como implementações ou configurações similares, da presente invenção.
Embora as concretizações ilustrativas tenham sido descritas com referência aos desenhos em anexo, deve-se compreender que a presente invenção não se restringe a essas concretizações exatas, e que várias alterações e modificações podem ser realizadas pelos versados na técnica pertinente sem divergir do âmbito e da essência da presente invenção. Todas essas alterações e modificações devem ser in- cluidas dentro do âmbito da presente invenção, conforme estabelecido nas reivindicações em anexo.