"DECODIFICADOR PARA UM SISTEMA DE TRANSMISSÃO AUDIOVISUAL DIGITAL E MÉTODO DE PROCESSAR IMAGENS DIGITAIS EM UM DECODIFICADOR PARA UM SISTEMA DE TRANSMISSÃO AUDIOVISUAL DIGITAL".
[1] A presente invenção se refere a um decodificador para um sistema de transmissão audiovisual digital, o decodificador compreendendo um meio processador para descomprimir e exibir dados digitais de imagem comprimidos e um meio de memória.
[2] A transmissão difundida de dados digitais é bem conhecida no campo de sistemas de TV paga, na qual as informações audiovisuais amontoadas são enviadas, usualmente por uma ligação por satélite ou satélite / cabo, a vários assinantes, cada assinante possuindo um decodificador capaz de desamontoar o programa transmitido para visualização subseqüente. Os sistemas de difusão digitais terrestres também são conhecidos. Os sistemas recentes têm usado a ligação por difusão para transmitir outros dados, além dos, ou bem como, dados audiovisuais, tais como programas de computador ou aplicações interativas.
[3] No nível de funcionalidade mais básico desses sistemas, os dados digitais de áudio e vídeo relativos ao programa televisionado são transmitidos em um formato comprimido, por exemplo, de acordo com o padrão de compressão MPEG-2. O decodificador recebe e descomprime esses dados para regenerar o programa televisionado.
[4] Além dos simples dados de programas televisionados, está se tornando crescentemente comum que o decodificador seja instado a tratar outros dados de imagem ou gráficos comprimidos. Por exemplo, no caso no qual o decodificador inclui capacidades de pesquisa na rede, o processador do decodificador pode ser instado a receber e descomprimir dados digitais de imagem baixados, por exemplo, imagens de vídeo imóveis, ícones gráficos, etc. Essas informações de imagem podem ser exibidas sobre as imagens de programas televisionados normais.
[5] Esses dados de imagem parada ou móvel pode ser recebidos, tipicamente, em um de quaisquer dos vários formatos que são atualmente usados no contexto dos pesquisadores de rede à base de PC. Por exemplo, uma imagem pode ser formatada e comprimida de acordo com os padrões GIF ou PNG bem conhecidos, em que uma imagem é descrita por uma tabela de conferência de cores, que define uma tabela de cores, e uma matriz de valores de pixel referentes a essa tabela, os dados da matriz sendo comprimidos de acordo com um procedimento de compressão conhecido para preparar a imagem GIF/PNG. Alternativamente, a imagem pode ser formatada e comprimida como uma imagem MPEG ou JPEG imóvel, na qual cada pixel é diretamente associado com um valor de cor vermelha / verde / azul.
[6] É um objeto da presente invenção proporcionar um meio de tratamento eficiente desses arquivos de imagem parada baixados.
[7] De acordo com a presente invenção, proporciona-se um decodificador para um sistema de transmissão audiovisual digital, o decodificador incluindo um processador para descomprimir e exibir dados de imagem parada comprimidos e uma memória, caracterizado pelo fato de que a memória compreende uma memória de armazenamento alocada para receber dados descomprimidos do processador, representando uma pluralidade de imagens paradas de quadros, e pelo menos um memória para exibição adaptada para manter dados que representam imagens paradas de quadros múltiplas legíveis pelo processador antes de exibição, os dados representando a pluralidade de imagens paradas de quadros sendo copiada da memória de armazenamento para a memória de exibição para exibição subseqüente.
[8] Essa divisão da memória em áreas de memória de armazenamento e de exibição introduz um grau de flexibilidade na exibição de dados de imagem parada, em particular por permitir que os dados que representam uma determinada imagem de figura parada seja mantida ao mesmo tempo nos meios de armazenamento e de exibição. Os dados que representam uma ou mais imagens paradas podem ser mantidos indefinidamente na memória de armazenamento, desde que haja uma possível necessidade para esses dados, mesmo após a imagem ter sido removida da tela por apagamento dos dados da memória de exibição.
[9] Em alguns casos, os dados de imagem descomprimidos podem ser simplesmente copiados "como são" na memória de exibição. No entanto, em alguns casos, os dados digitais de imagem copiados da memória de armazenamento na memória de exibição sejam modificados ou duplicados durante a etapa de cópia, por exemplo, para redimensionar a imagem digital ou copiar a mesma imagem várias vezes na memória de exibição.
[10] De preferência, o meio processador é adaptado para processar dados de imagem na memória de exibição, como uma camada em meio de uma pluralidade de camadas superpostas umas sobre as outras, quando exibida.
[11] Como discutido acima, os dados de imagem podem ser superpostos em uma camada mais alta sobre, por exemplo, informações audiovisuais que representam imagens de televisão televisionadas. No entanto, em uma modalidade, os dados de imagem na memória de exibição podem ser exibidos em uma camada normalmente usada pelo meio processador para exibir informações audiovisuais difundidas. Esse pode ser o caso, por exemplo, quando o decodificador muda de um modo de "televisão", no qual é exibida uma emissão difundida, para um modo "pesquisador de rede", no qual os dados de imagem baixados da Internet são exibidos em lugar dos programas normais televisionados.
[12] Vantajosamente, a memória compreende uma segunda memória de exibição legível pelo meio processador gráfico e correspondendo a uma segunda camada de dados de imagem exibidos, os dados sendo copiados da memória de armazenamento para a segunda memória de exibição para exibição subseqüente na segunda camada dos dados de imagem.
[13] De novo, como antes, os dados digitais de imagem copiados da memória de armazenamento para a segunda memória de exibição podem ser modificados durante a etapa de cópia.
[14] Em uma modalidade, por exemplo, quando o decodificador muda entre um modo de televisão e de pesquisador, os dados de imagem na segunda memória de exibição podem ser exibidos na camada de fundo mais baixa normalmente usada pelo meio processador para exibir informações audiovisuais paradas difundidas.
[15] De preferência, os dados de imagem parciais são copiados da memória de armazenamento para uma memória de exibição, sob o controle de uma aplicação que está sendo processada dentro do decodificador, de modo a permitir a exibição de parte de uma imagem. Isso pode ser desejável, por exemplo, quando a descompressão e a baixa de uma imagem na memória de armazenamento pelo processador se dá em vários estágios.
[16] Em uma modalidade, os dados de imagem são copiados da memória de armazenamento em uma primeira ou segunda memória de exibição, sob o controle de uma aplicação de nível alto que está sendo processada no processador. Alternativamente, esse processo pode ser tratado automaticamente por uma aplicação de nível mais baixo, por exemplo, com o tratamento geral dos dados de imagem recebidos.
[17] Os dados digitais de imagem comprimidos são, de preferência, armazenados em uma memória buffer, antes da descompressão pelo processador. Não é necessário que esse meio buffer seja um bloco de memória integral único, particularmente, se os dados chegam em vários blocos de informações. Em particular, em uma modalidade, o buffer compreende uma pluralidade de elementos de memória buffer. Cada elemento de memória pode corresponder, por exemplo, a um bloco de dados baixados no decodificador.
[18] De preferência, a descompressão e a transferência de dados de imagem dos elementos de memória buffer para a memória de armazenamento, e da memória de armazenamento para uma memória de exibição, são controladas pelo processador, de modo que as informações de imagem presentes na memória de armazenamento são transferidas para a memória de exibição ao final da descompressão do conteúdo de cada elemento buffer.
[19] Pode ser o caso, por exemplo, que as informações correspondentes a uma imagem vão ser disseminadas por vários elementos buffer. Na medida em que cada buffer é esvaziado e descomprimido, as informações prontas para exibição são imediatamente transferidas para a memória de exibição, possibilitando uma exibição parcial da imagem completa.
[20] Além disso, ou alternativamente, a descompressão e a transferência de um grupo de imagens em um único arquivo de imagem da memória buffer para a memória de armazenamento, e da memória de armazenamento para uma memória de exibição, são controladas pelo processador, de modo que as informações de imagem são transferidas da memória de armazenamento para a memória de exibição ao final da descompressão de cada imagem no arquivo de imagem.
[21] Como discutido acima, os dados de imagem podem ser enviados em qualquer número de formatos. Em uma modalidade, o processador é adaptado para descomprimir os dados de imagem enviados em um padrão de compressão, tal como GIF ou PNG, que usa uma tabela de conferência de cores.
[22] Além disso, ou alternativamente, o processador é adaptado para descomprimir os dados de imagem enviados em um padrão de compressão, tal como MPEG ou JPEG, que usa um valor de cor vermelha / azul / verde associada com cada pixel.
[23] Todas as funções de descompressão, exibição, etc., podem ser integradas em um único processador. Alternativamente, o processador no decodificador não precisa ser, necessariamente, representado em um único chip, mas pode ser dividido, por exemplo, em um processador geral tratando dados de descompressão e um processador gráfico para preparar os dados descomprimidos para exibição.
[24] Similarmente, ainda que a aplicação possa se referir a uma memória de armazenamento, uma memória de exibição, etc., deve-se entender que essas não precisam corresponder a dispositivos de memória separados fisicamente (RAM, ROM, FLASH, etc), mas podem corresponder a uma ou mais áreas alocadas para essa finalidade por uma aplicação de controle e dividida entre um ou mais dispositivos físicos de memória.
[25] A presente invenção foi discutida acima em relação a um aparelho decodificador. A presente invenção abrange, igualmente, um método de processamento de imagens digitais dentro de um decodificador, correspondente aos aspectos gerais e preferidos da invenção discutida acima.
[26] No contexto da presente aplicação, o termo "sistema de transmissão audiovisual digital" se refere a todos os sistemas de transmissão para transmitir ou difundir, basicamente, dados digitais audiovisuais ou multimídia. Ainda que a presente invenção seja particularmente aplicável a um sistema de televisão digital difundido, a presente invenção pode ser igualmente usada na filtração de dados enviados por uma rede de telecomunicações fixa para aplicações multimídia de Internet, etc.
[27] Similarmente, o termo "decodificador" é usado para aplicar-se a um conjunto receptor / decodificador integrados, para receber e descriptografar uma transmissão criptografada, os elementos receptor e decodificador desse sistema considerados separadamente, bem como a um receptor capaz de receber difusões não criptografadas. O termo cobre, igualmente, decodificadores incluindo outras funções, tais como pesquisadores de rede, juntamente com sistemas decodificadores integrados com outros dispositivos, por exemplo, dispositivos VHS / decodificador integrados ou assemelhados.
[28] O termo MPEG se refere aos padrões de transmissão de dados desenvolvidos pelo grupo de trabalho da Organização de Padrões Internacionais "Grupo Especialista em Imagens em Movimento" e, em particular, mas não exclusivamente, ao padrão MPEG-2 desenvolvido para aplicações de televisão digital e apresentado nos documentos ISO 13818-1, ISO 13818-2, ISO 13818-3 e ISO 13818-4. No contexto do presente pedido de patente, o termo inclui todas as variantes, modificações ou desenvolvimentos dos formatos MPEG aplicáveis ao campo da transmissão de dados digitais.
[29] Vai-se descreve a seguir, apenas por meio de exemplo, uma modalidade preferida da presente invenção, com referência às figuras em anexo, em que: [30] A Figura 1 mostra uma visão geral de um sistema de televisão digital;
[31] A Figura 2 mostra os elementos do conjunto receptor / decodificador da Figura 1;
[32] A Figura 3 mostra um diagrama de blocos do sistema computadorizado do conjunto receptor / decodificador;
[33] A Figura 4 mostra em forma de camada os dados de imagem processados pelo processador gráfico da Figura 2;
[34] A Figura 5 mostra as operações conduzidas na memória para os dados de imagem a serem exibidos na camada MPEG da Figura 4; e [35] A Figura 6 mostra as operações conduzidas na memória para exibição parcial dos dados de imagem na camada MPEG.
[36] Uma visão geral de um sistema de televisão digital 1 de acordo com a presente invenção é mostrada na Figura 1. A invenção inclui um sistema de televisão digital 2 em grande parte convencional, que usa o sistema de compressão MPEG-2 conhecido para transmitir dados digitais comprimidos. Em mais detalhes, o compressor MPEG-2 3 recebe em um centro de difusão um fluxo de sinais digitais (tipicamente, um fluxo de sinais de vídeo). O compressor 3 é ligado a um multiplexador e amontoador 4 pela ligação 5.
[37] O multiplexador 4 recebe uma pluralidade de outros sinais de entrada, monta o fluxo de transporte e transmite os sinais digitais comprimidos para um transmissor 6 do centro de difusão, via a ligação 7, que pode, naturalmente, tomar uma ampla variedade de formas, incluindo ligações de telecomunicações. O transmissor 6 transmite sinais eletromagnéticos, via a ligação superior 8, para um transponder de satélite 9, no qual são processados e difundidos eletronicamente, via uma ligação inferior nocional 10, para o receptor em terra 12, convencionalmente, na forma de uma antena parabólica de propriedade do, ou alugada pelo, usuário final. Os sinais recebidos pelo receptor 12 são transmitidos para um conjunto receptor / decodificador integrados 13, de propriedade do, ou alugado pelo, usuário final e conectado ao aparelho de televisão do usuário final 14. O conjunto receptor / decodificador 13 decodifica o sinal MPEG-2 comprimido em um sinal de televisão para o aparelho de televisão 14.
[38] Outros canais de transporte para transmissão dos dados são, naturalmente, possíveis, tais como difusão terrestre, transmissão a cabo, ligações via satélite / cabo combinadas, redes telefônicas, etc.
[39] Em um sistema de canais múltiplos, o multiplexador 4 trata as informações de áudio e vídeo recebidas de várias fontes paralelas e interage com o transmissor 6 para difundir as informações por um número de canais correspondente. Além das informações audiovisuais, as mensagens ou aplicações ou qualquer outro tipo de dados digitais podem ser introduzidas em alguns ou em todos esses canais com as informações digitais de áudio e vídeo transmitidas.
[40] Um sistema de acesso condicional 15 é conectado ao multiplexador 4 e ao conjunto receptor / decodificador 13 e é localizado parcialmente no centro de difusão e parcialmente no decodificador. Possibilita que o usuário final tenha acesso às difusões de televisão digital de um ou mais fornecedores de difusão. Um cartão inteligente, capaz de decodificar mensagens relativas às ofertas comerciais (isto é, um ou mais programas de televisão vendidos pelo fornecedor de difusão), pode ser inserido no conjunto receptor / decodificador 12. Usando o decodificador 12 e o cartão inteligente, o usuário final pode adquirir ofertas em um modo de assinatura ou em um modo pay-per-view.
[41] Como mencionado acima, os programas transmitidos pelo sistema são amontoados no multiplexador 4, as condições e as chaves de criptografação aplicadas a uma determinada transmissão sendo determinadas pelo sistema de controle de acesso 15. A transmissão desse modo de dados amontoados é bem conhecida no campo dos sistemas de TV pagos. Tipicamente, os dados amontoados são transmitidos juntamente com uma palavra de controle para desamontoamento dos dados, a própria palavra de controle sendo criptografada por uma denominada chave de exploração e transmitida na forma criptografada.
[42] Os dados amontoados e a palavra de controle criptografada são depois recebidos pelo decodificador 13, que tem acesso a um equivalente da chave de exploração armazenada em um cartão inteligente inserido no decodificador para descriptografar a palavra de controle criptografada e, depois, desamontoar os dados transmitidos. Um assinante em dia vai receber, por exemplo, em uma ECM (Mensagem de Controle de Habilitação) difundida mensalmente a chave de exploração necessária para descriptografar a palavra de controle criptografada, de modo a permitir a visualização da transmissão.
[43] Um sistema interativo 16, também ligado ao multiplexador 4 e ao conjunto receptor / decodificador 13, e de novo localizado parcialmente no centro de difusão e parcialmente no decodificador, possibilita que o usuário final interaja com várias aplicações, via um canal de retorno por modem 16. O canal de retorno por modem também pode ser usado para as comunicações usadas no sistema de acesso condicional 15. Um sistema interativo pode ser usado, por exemplo, para permitir que o espectador se comunique imediatamente com o centro de transmissão para demandar a autorização para assistir um evento particular, baixar uma aplicação, etc.
[44] Com referência à Figura 2, os elementos do conjunto receptor / decodificador 13 ou da caixa de posicionamento superior, adaptados para serem usados na presente invenção, vão ser descritos a seguir. Os elementos mostrados nessa figura vão ser descritos em termos de blocos funcionais.
[45] O decodificador 13 compreende um processador central 20, incluindo elementos de memória associados e adaptados para receber dados de entrada de uma interface serial 21, uma interface paralela 22, um modem 23 (conectado ao canal de retorno via modem 17 da Figura 1) e contatos de chave 24 no painel frontal do decodificador.
[46] O decodificador é adicionalmente adaptado para receber entradas de um controle remoto de infravermelho 25 via uma unidade de controle 26 e também possui duas leitoras de cartão inteligente 27, 28 adaptadas para ler cartões inteligentes de banco ou de assinatura 29, 30, respectivamente. A leitora de cartão inteligente de banco 28 é acoplada a um cartão de assinatura inserido 30 e com uma unidade de acesso condicional 29 para suprir a palavra de controle necessária a um desmultiplexador / desamontoador 30, para permitir que o sinal difundido criptografado seja desamontoado. O decodificador também inclui um sintonizador 31 e um desmodulador 32 convencionais, para receber e desmodular a transmissão via satélite antes de ser filtrada e desmultiplexada pela unidade 30.
[47] O processamento dos dados dentro do decodificador é geralmente feito pelo processador central 20. A arquitetura do software do processador central corresponde a uma máquina virtual interagindo, via uma camada de interface, com um sistema operacional em um nível mais baixo implementado nos componentes de hardware do decodificador. Esse vai ser descrito a seguir com referência à Figura 3.
[48] Para os propósitos desta descrição, uma aplicação é um pedaço de código de computador para controlar as funções de nível alto do conjunto receptor / decodificador 13. Por exemplo, quando o usuário final posiciona o foco de um controlador remoto em um objeto botão visto na tela do aparelho de televisão e aperta uma chave de validação, a seqüência de instruções associada com o botão é processada.
[49] Uma aplicação interativa propõe menus e executa comandos por solicitação do usuário final e proporciona os dados relativos à finalidade da aplicação. As aplicações podem ser aplicações residentes, isto é, armazenadas na ROM (ou FLASH ou em outra memória não volátil) do conjunto receptor / decodificador 13, ou difundida e baixada na memória RAM ou FLASH do conjunto receptor / decodificador 13.
[50] As aplicações são armazenadas em locais de memória no conjunto receptor / decodificador 13 e representadas como arquivos de recursos. Os arquivos de recursos compreendem arquivos unitários de descrição de objeto gráfico, arquivos unitários de blocos variáveis, arquivos de seqüência de instruções, arquivos de aplicação e arquivos de dados.
[51] O conjunto receptor / decodificador contém memória dividida em um volume RAM, um volume FLASH e um volume ROM, mas essa organização física é distinta da organização lógica. A memória pode ser ainda dividida em volumes de memória associados com as várias interfaces. De um ponto de vista, a memória pode ser considerada como parte do hardware; de outro ponto de vista, a memória pode ser considerada como suportando ou contendo todo o sistema mostrado à parte do hardware.
[52] Com referência à Figura 3, o sistema computadorizado pode ser considerado como centralizado em um mecanismo de processamento (RTE) 40, que forma parte de uma máquina virtual 41. Essa é acoplada às aplicações em um lado (o lado de "nível alto"), e, no outro lado (o lado de "nível baixo"(, via várias unidades lógicas intermediárias discutidas abaixo, ao hardware do conjunto receptor / decodificador 42. O hardware do conjunto receptor / decodificador pode ser considerado como incluindo várias portas correspondentes aos blocos funcionais discutidos em relação à Figura 2, (a interface 26 para o monofone 25, a interface do fluxo MPEG 30, a interface serial 21, a interface paralela 22, as interfaces para as leitoras de cartão 27, 28, e a interface 23 para o canal de retorno via modem 17).
[53] Várias aplicações 43 são acopladas à máquina virtual 41. Algumas das aplicações mais comumente usadas podem ser mais ou menos residentes permanentemente no sistema, como indicado em 44, enquanto que outras vão ser baixadas no sistema, por exemplo, do fluxo de dados MPEG ou de outras portas, como requerido.
[54] A máquina virtual 41 inclui, além do mecanismo de processamento 40, algumas funções de biblioteca 45 residentes, que incluem uma caixa de ligações 46. A biblioteca contém várias funções em linguagem C usadas pelo mecanismo 40. Essas incluem a manipulação de dados, tal como compressão, expansão ou comparação de estruturas de dados, desenho de linhas, etc. A biblioteca 45 também inclui informações sobre os conectores de dispositivos 49 no suporte lógico inalterável do conjunto receptor / decodificador, tais como os números de versão do hardware e do software e o espaço RAM disponível, e uma função usada quando da baixa de um novo dispositivo 47. As funções podem ser baixadas na biblioteca e armazenadas na memória FLASH ou RAM.
[55] O mecanismo de processamento 40 é acoplado a um gerenciador de dispositivo 48, que é acoplado a um conjunto de dispositivos 47, que são acoplados aos conectores de dispositivos 49, que são, por sua vez, acoplados às portas ou interfaces. Em termos gerais, um conector de dispositivo pode ser considerado como definindo uma interface lógica, de modo que dois diferentes conectores de dispositivos podem ser acoplados a uma porta física comum. Um dispositivo vai ser normalmente acoplado a mais do que um conector de dispositivo; se um dispositivo é acoplado a um único conector de dispositivo, o dispositivo vai ser normalmente elaborado para incorporar a funcionalidade integral requerida para comunicação, de modo que a necessidade para um conector de dispositivo separado é eliminada. Certos dispositivos podem se comunicar entre eles.
[56] Como vai ser descrito abaixo, há três formas de comunicação dos dispositivos 47 com o mecanismo de processamento: por meio de variáveis, buffers e eventos que são passados para um conjunto de filas de eventos.
[57] Cada função do conjunto receptor / decodificador é representada como um dispositivo 47. Os dispositivos podem ser locais ou remotos. Os dispositivos locais incluem cartões inteligentes, sinais de conector SCART, modens, interfaces seriais e paralelas, um reprodutor de vídeo e áudio MPEG e uma seção MPEG e um extrator de tabela. Os dispositivos remotos executados em um local remoto diferem dos dispositivos locais pelo fato de que uma porta e um procedimento devem ser definidos pela autoridade ou projetista do sistema, em vez de por um dispositivo e um conector de dispositivo proporcionado e projetado pelo fabricante do conjunto receptor / decodificador.
[58] O mecanismo de processamento 40 roda sob o controle do microprocessador e uma interface de programação de aplicação comum. São instalados em cada conjunto receptor / decodificador, de modo que todos os conjuntos receptores / decodificadores são idênticos do ponto de vista da aplicação.
[59] O mecanismo 40 processa as aplicações 43 no conjunto receptor / decodificador. Executa aplicações interativas e recebe eventos de fora do conjunto receptor / decodificador, apresenta gráficos e texto, chama dispositivos para serviços e usa as funções da biblioteca 45 conectada ao mecanismo 40 para computação específica.
[60] O mecanismo de processamento 40 é um código executável instalado em cada conjunto receptor / decodificador e inclui um interpretador para interpretar e rodar as aplicações. O mecanismo é adaptável a qualquer sistema operacional, incluindo um sistema operacional de tarefa única (tal como MS-DOS). O mecanismo é baseado em unidades seqüenciadoras de processo (que toma vários eventos, tais como aperto de tecla, para conduzir as várias ações) e contém o seu próprio escalonador para gerenciar as filas de eventos das diferentes interfaces de hardware. Também gerencia a exibição de gráficos e texto. Uma unidade seqüenciadora de processo compreende um conjunto de grupos de ação. Cada evento faz com que a unidade seqüenciadora de processo se movimente do seu grupo de ação atual para um outro grupo de ação, na dependência do caractere do evento, e executar as ações do novo grupo de ação.
[61] O mecanismo 40 compreende um carregador de código para carregar e baixar aplicações 43 na memória do conjunto receptor / decodificador. Apenas o código necessário é carregado na memória RAM ou FLASH para assegurar um uso otimizado. Os dados baixados são verificados por um mecanismo de autenticação, para evitar qualquer modificação de uma aplicação 43 ou a execução de qualquer aplicação desautorizada. O mecanismo 40 compreende ainda um descompressor. Como o código de aplicação (uma forma de código intermediário) é comprimido para economizar espaço e baixar rapidamente do fluxo MPEG, ou via um modo de conjunto receptor / decodificador embutido, o código deve ser descomprimido antes de ser carregado na RAM. O mecanismo 40 também comprime um interpretador, para interpretar o código de aplicação para atualizar os vários valores variáveis e determinar as mudanças de estado, e um verificador de erro.
[62] Antes de usar os serviços de qualquer dispositivo 47, um programa (tal como uma seqüência de instruções de aplicação), tem que ser declarado como um "cliente", isto é, um caminho de acesso lógico para o dispositivo 47 ou para o gerenciador de dispositivo 48. O gerenciador fornece ao cliente um número de cliente que é referido em todos os acessos ao dispositivo. Um dispositivo 47 tem vários clientes, o número de clientes para cada dispositivo 47 sendo especificado na dependência do tipo de dispositivo. Um cliente é introduzido no dispositivo 47 por um procedimento "Device: Open Channel". Esse procedimento atribui um número de cliente ao cliente. Um cliente pode ser tirado da lista de clientes do gerenciador de dispositivo 48 por um procedimento "Device: Close Channel".
[63] O acesso aos dispositivos 47 proporcionados pelo gerenciador de dispositivo 48 pode ser síncrono ou assíncrono. Para o acesso síncrono, um procedimento "Device: Call" é usado. Esse é um meio de acesso aos dados, que é imediatamente disponível ou uma funcionalidade que não envolve a espera para a resposta desejada. Para o acesso síncrono, um procedimento "Device: l/O" é usado. Esse é um meio de acesso de dados que envolve a espera por uma resposta, por exemplo, varrendo as freqüências do sintonizador para encontra um multiplex ou recuperar uma tabela do fluxo MPEG. Quando o resultado solicitado está disponível, um evento é colocado na fila do mecanismo para sinalizar a sua chegada. Um outro procedimento "Device: Event" proporciona um meio de gerenciar eventos inesperados.
[64] Como verificado acima, o laço principal do mecanismo de processamento é acoplado a uma variedade de unidades seqüenciadoras de processo e quando o laço principal encontra um evento apropriado, o controle é transferido temporariamente para uma das unidades seqüenciadoras de processo.
[65] Desse modo, pode-se notar que o sistema computadorizado implementado no processador 20 proporciona uma plataforma tendo uma flexibilidade considerável em possibilitar que uma aplicação se comunique com vários dispositivos.
[66] Retornando à Figura 2, o processamento de dados de som e imagem por cada um dos processadores associados vai ser descrito a seguir em detalhes. No caso de sinais de áudio e vídeo recebidos, os pacotes MPEG contendo esses sinais vão ser desmultiplexados e filtrados de modo a passar dados de áudio e vídeo em tempo real, na forma de um fluxo elementar compactado (PES) de dados de áudio e vídeo, para processadores ou decodificadores de áudio e vídeo dedicados 33, 34. A saída convertida do processador de áudio 33 passa para um pré-amplificador 35 e depois via a saída de áudio do conjunto receptor / decodificador. A saída convertida do processador de vídeo 34 passa, via um processador gráfico 36 e codificador PAL / SECAM 37, para a saída de vídeo do conjunto receptor / decodificador. O processador de vídeo pode ser de um tipo convencional, tal como o ST 3520 A da SGS Thomson.
[67] O processador gráfico 36 recebe, adicionalmente, dados gráficos para exibição (tais como imagens geradas, etc.) do processador central 20 e combina essas informações com as informações recebidas do processador de vídeo 34, para gerar uma exibição em tela que combina imagens móveis juntamente com texto sobreposto ou outras imagens sobrepostas. Um exemplo de um processador gráfico adaptado para conduzir esse tipo de operação é o CL 9310 da C-CUBE.
[68] No caso de dados de teletexto e/ou de subtítulo recebidos, a conversão dos dados PES em tempo real, para gerar as imagens apropriadas, também pode ser tratada por processadores dedicados. No entanto, nos sistemas mais convencionais, essa é tratada pelo processador geral 20.
[69] Na verdade, muitas das funções associadas com os elementos, tal como o processador gráfico 36, decodificador de vídeo 34, processador central 20, etc., podem ser combinadas ou divididas em vários modos, por exemplo, para integrar os processadores central e gráfico para formar um único meio processador, etc.
[70] Com referência agora à Figura 4, a funcionalidade do processador gráfico 36 vai ser descrita a seguir. Como discutido acima, o processador gráfico recebe e processa dados de vídeo em tempo real do decodificador de vídeo 34, juntamente com os dados gráficos recebidos do processador geral 20, para gerar um exibição de tela sobreposta.
[71] Como mostrado na Figura 4, o processador gráfico 36 é adaptado para processar dados de entrada divididos em quatro camadas distintas; uma camada de fundo 50, uma camada MPEG 51, uma camada gráfica 52 e uma camada de cursor 53. Como vai ser entendido, a camada de fundo 50 corresponde à camada mais baixa da exibição da tela, as outras camadas sendo progressivamente sobrepostas com os vários graus de translucidez ou de opacidade por essa camada.
[72] No caso no qual o decodificador é configurado para exibir um sinal de vídeo difundido, as camadas de fundo e MPEG 50, 51 correspondem ao fluxo de dados recebidos do decodificador de vídeo 34, a camada 50 correspondendo às imagens paradas MPEG recebidas do decodificador 34, e a camada 51 correspondendo a um sinal MPEG de vídeo móvel recebido do decodificador. A divisão de um sinal de vídeo em uma parte fixa e variável é uma característica conhecida da compressão MPEG.
[73] Outras configurações do decodificador são possíveis, por exemplo, quando as camadas de fundo e MPEG 50, 51 são completadas por dados de imagem em um número qualquer de formatos recebidos do processador 20. Por exemplo, no caso no qual o decodificador está agindo em uma configuração de pesquisador de rede, o processador 20 pode fornecer dados de imagem parada e/ou móvel para completar as camadas 50, 51. A camada 50 pode corresponder, igualmente, por exemplo, a uma cor de fundo e a camada 51 a uma ou mais janelas exibidas sobre o fundo e contendo, por exemplo, informações, ícones móveis ou assemelhados. A operação do sistema em tratar dados de imagem vai ser discutida adicionalmente com referência às Figuras 5 e 6.
[74] Os dados de imagem parada e móvel das camadas de fundo e MPEG 50, 51 são misturados em conjunto pelo processador gráfico 36, representado pelo elemento 54, e uma saída combinada proporcionada. A mistura das informações da camada MPEG 51 sobre a camada de fundo 50 pelo processador gráfico podem ser conduzidas usando um fator de mistura denominado alfa, para permitir um grau maior ou menor de translucidez dos pixels na imagem da camada MPEG. No caso de uma imagem de vídeo móvel recebida do decodificador de vídeo 34, o mesmo fator de mistura é usado para todos os pixels dentro da seqüência de vídeo. No caso de dados de imagem do processador central 20, o valor do fator de mistura para a camada 51 pode ser diferente para as diferentes partes da tela.
[75] A camada gráfica 52 é usada para textos, formas, ícones, etc, que vão ser exibidos na tela sobre as imagens tomadas das camadas 50, 51, para permitir, por exemplo, a exibição de um ícone móvel ou assemelhados gerado pelo processador 20 sobre uma seqüência de vídeo em tempo real tomada do decodificador de vídeo 34.
[76] Em uma maneira similar à mistura conduzida para as camadas 50, 51, o elemento 55 conduz uma mistura da camada gráfica 52 com a saída combinada das camadas 50, 51. As diferentes regiões dentro da camada gráfica 52 podem receber um fator de mistura diferente e um nível de translucidez diferente correspondente, dependendo das características dos dados dentro de cada região.
[77] Uma camada final, a camada do cursor, é mostrada em 53 e representa uma imagem de cursor opaca, gerada por hardware sob o controle do processador central 20 e superposta sobre todas as camadas anteriores. Como mostrado em 56, esta camada é combinada com a saída somada da combinação de todas as camadas anteriores para gerar uma saída combinada final 57 enviada para o codificador 37 para exibição subseqüente. Diferentemente das camadas anteriores, o cursor apresenta uma aparência continuamente opaca e é superposto sobre as camadas combinadas sem qualquer mistura.
[78] Com referência às Figuras 5 e 6, a operação de um dispositivo 47 do tipo mostrado na Figura 3 e adaptado para descomprimir e exibir imagens de figura baixadas na camada MPEG 51 vai ser descrita a seguir. Na descrição a seguir, o termo imagem é usado para descrever uma imagem digital comprimida. Tipicamente, os tipos de formatos de imagem usados podem incluir imagem parada MPEG, imagem de formato JPEG, imagem de formato PNG, imagem de formato GIF, etc.
[79] Ainda que a descrição a seguir vá se concentrar no processamento e exibição de uma única imagem, uma seqüência de imagens paradas pode ser exibida uma após a outra, para gerar uma seqüência de imagens em movimento.
[80] Com referência à Figura 5, os dados de imagem comprimidos baixados 60, 61, 62 são armazenados inicialmente em uma seção de buffer da memória RAM do decodificador indicado em 63. Essa memória buffer pode ser do tipo inicializado e gerenciado por uma aplicação de nível alto 43, responsável pela decodificação e exibição de imagens, ou uma área de memória tratada pelo gerenciador de dispositivo 48 mostrado na Figura 3.
[81] Cada tipo de arquivo de imagem ou grupo de arquivos de imagem inclui um cabeçalho indicando o formato do arquivo de imagem (GIF, MPEG, etc), bem como as informações necessárias para descomprimir o arquivo de imagem. Por exemplo, um arquivo de formato GIF 62, compreendendo mais do que uma imagem tem um cabeçalho global que descreve o tamanho de toda a área quando duas imagens descomprimidas vão ser exibidas e um cabeçalho específico para cada imagem que descreve o seu tamanho e as coordenadas de localização dentro da área global.
[82] Seguinte à baixa de uma imagem comprimida na seção do buffer 63 da memória, uma descompressão dos dados de imagem vai ser feita pelo dispositivo em resposta a um comando PICTURE_DESCOMPRESS recebido da aplicação. Os dados de imagem subseqüentemente descomprimidos 63, 64, 65 são armazenados em uma seção de armazenamento separada da memória RAM indicada em 66 e reservada para dados de imagem eventualmente para serem exibidos na camada MPEG. Cada imagem ou seqüência de imagens descomprimida recebe uma referência de identidade de imagem Id1, Id2, Id3 pelo dispositivo, esse valor de ID sendo fornecido à aplicação de nível alto e usado para todas as operações subseqüentes a serem conduzidas nesses dados.
[83] Diferentemente dos dados de imagem comprimidos mantidos temporariamente no buffer da aplicação 63, os dados de imagem descomprimidos 63, 64, 65 podem ser mantidos indefinidamente na memória de armazenamento 66, até o momento em que a aplicação decide apagar as informações.
[84] O armazenamento de dados de imagem descomprimidos em uma área de memória atribuída distinta permite que os dados sejam manipulados de várias maneiras antes da exibição. Por exemplo, um redimensionamento da imagem pode ser conduzido pelo próprio dispositivo, o gerenciador de dispositivo ou por uma aplicação de nível alto. Igualmente, a imagem pode ser duplicada para ser exibida em várias posições na tela. A conversão de dados de cor associados à imagem para, por exemplo, compensar as limitações na funcionalidade do processador gráfico, também podem ser conduzidas na imagem.
[85] Os dados modificados ou não modificados armazenados na memória 66 são passados, em resposta a um comando PICTURE_DISPLAY da aplicação em uma seção de memória RAM separada 67, atribuída para as imagens a serem exibidas na camada MPEG 51 (consultar a Figura 2). O tamanho da memória de exibição 67 corresponde à área da tela. Como mostrado, as imagens Id1 e Id2 são exibidas em 68 e 69, ainda que a imagem ou a seqüência de imagens Id3 seja duplicada e exibida nas posições 70, 71. As informações na seção da memória 67 são alimentadas ao processador gráfico 36 para criar a camada MPEG 51, como mostrado na Figura 2.
[86] Além da transferência das informações de imagem entre a área de armazenamento 66 e a área de exibição 67, uma segunda transferência também pode ser conduzida para copiar as informações mantidas na área de armazenamento 66 para uma área de memória (não mostrada) associada com a exibição de imagens na camada de fundo 40 da Figura 2. Por exemplo, uma única imagem pode ser repetida e exibida várias vezes na camada de fundo, para cobrir a tela em uma maneira de revestimento. As informações armazenadas na área de memória associadas com a camada de fundo são acessadas pelo processador gráfico da mesma maneira que a área de exibição MPEG 67.
[87] Como vai ser entendido, as seções de memória 63, 64, 65 não precisam corresponder, fisicamente, às zonas de memória não interrompidas em um único elemento de memória RAM ou outro. Em particular, a área de memória 63 pode ser dividida entre vários buffers. A Figura 6 mostra as etapas associadas com a descompressão de um arquivo 80 contendo duas imagens comprimidas 81, 82 baixadas, previamente, em quatro elementos de buffer associados ou as listas de buffers 83, 84, 85, 86.
[88] Cada lista de buffers corresponde às áreas de buffer nas quais um bloco de dados foi baixado do fluxo MPEG. A própria lista de buffers pode designar várias áreas de buffer separadas dependendo da disponibilidade quando as informações são baixadas.
[89] Na etapa 87, a aplicação envia um comando PICTURE_DECOMPRESS 87 para iniciar o processo de descompressão. O dispositivo aloca um Id de imagem de grupo e começa a ler os buffers. Uma vez que o início de uma imagem é encontrado na etapa 88, o dispositivo atribui um Id de imagem e inicia a descompressão da imagem. Na etapa 89, o final da primeira lista de buffers é atingido e a aplicação envia um comando PICTURE_ADD_DATA na etapa 90 para comandar o dispositivo para ler a lista de buffers seguinte na série.
[90] Nesse ponto, apenas parte da primeira imagem 81 tinha sido descomprimida e armazenada na área de armazenamento de memória 66. Não obstante, a aplicação pode decidir transferir, imediatamente, a imagem parcial para a área da memória de exibição 67.
[91] A descompressão da parte remanescente da imagem 81 continua então até que o início da imagem seguinte seja encontrado em 91. Nesse ponto, toda a primeira imagem 81 tinha sido descomprimida e armazenada na área de memória 66. A aplicação pode atualizar depois o conteúdo da área da memória de exibição 67, por cópia da imagem completa na área de exibição 67. Desse modo, toda a primeira imagem 81 pode ser exibida antes que a segunda imagem tenha sido descomprimida.
[92] Na etapa 92, o dispositivo informa à aplicação do final da segunda lista de buffers 84 e a aplicação envia um segundo comando PICTURE_ADD_DATA 93 para iniciar a leitura da lista de buffers 85 seguinte. O processo é repetido ao final da terceira lista de buffers 85 e no início da quarta lista de buffers 86 por meio das etapas 94, 95. De novo, cada vez em que se atinge o final de um buffer em 92, 94, a aplicação pode copiar os dados que já tinham sido descomprimidos da área de armazenamento 66 para a área de exibição 67.
[93] Na etapa 96, o fim do arquivo é atingido e ambas as imagens 81, 82 tinham sido descomprimidas e carregadas na memória de armazenamento 66. Nesse ponto, o dispositivo informa à aplicação da descompressão bem-sucedida de todo o arquivo e a aplicação copia novamente o conteúdo da memória de armazenamento 66 para a memória de exibição 67 para exibir com conjunto de imagens completo.
REIVINDICAÇÕES