"MÉTODO E APARELHO PARA ARMAZENAR ADAPTATIVAMENTE DADOS DE GUIA DE PROGRAMAS" REFERENCIAS REMISSIVAS A PEDIDOS CORRELATOS
Esse pedido reivindica o benefício do Pedido de Patente Provisional US N° de Série 60/318.040, depositado em 7 de setembro de 2001, que é integralmente incorporado aqui como referência. Esse pedido é relacionado a outros pedidos de patente US simultaneamente depositados, cada um deles tendo um cessionário comum. Os pedidos correlatos e simultaneamente depositados são "Method and Apparatus For Adapti-vely Storing Program Guide Data", N° de Série 10/091.816, depositado em 6 de março de 2 0 02, e "Method and Apparatus For Adaptively Storing Program Guide Data", N° de Série 10/092.213, depositado em 6 de março de 2002, ambos incorporados integralmente aqui como referência.
CAMPO DA INVENÇÃO
Esta invenção se refere a guias eletrônicos de programas para televisões e receptores.
FUNDAMENTOS DA INVENÇÃO
Telespectadores, especialmente associados aos serviços especiais de programação a cabo e via satélite, frequentemente utilizam um guia eletrônico de programa para selecionar um programa para assistir a partir de um provedor de serviço, ou centro de transmissão. Por exemplo, o espectador pode utilizar o guia de programas para solicitar uma seleção pay-per-view a partir de um provedor de filmes. Similarmente, o assistente pode selecionar uma categoria específica de programação, tal como "Esportes", e selecionar o programa para assistir dentre aqueles oferecidos nessa categoria. Tais guias de programa são geralmente providos utilizando um receptor de vídeo acoplado a um dispositivo de exibição, por exemplo, um aparelho de televisão. Exemplos de um típico receptor de vídeo incluem um terminal de conversor de sinal de freqüência, um receptor de Satélite de Transmissão Digital (DBS), um Receptor-Decodificador Integrado (IRD), e outros tipos de receptores de televisão.
Para manter uma programação atual no guia de programas, o receptor recebe periodicamente informação de guia de programas para uma programação. Especificações atuais para um Guia Avançado de Programas (APG) exigem o armazenamento de toda informação de guia de programas recebida dentro de uma memória do receptor de vídeo. Tal memória é, tipicamente, limitada em tamanho.
SUMÁRIO DA INVENÇÃO Método e aparelho adequados para uso dentro de um receptor de televisão para armazenar informação de guia de programas, em que uma lista de varredura identifica uma pluralidade de canais disponíveis para assistência, canais não incluídos dentro da lista de varredura têm dados correspondentes de guia de programas deletados a partir de um banco de dados de guia de programas. O banco de dados de guia de programas pode ser arranjado como uma pluralidade de objetos incluindo objetos de canal.
Um método de acordo com uma modalidade da invenção para adaptar o armazenamento de informação de guia de programas para uma pluralidade de programas em um receptor com- preende determinar se um canal está incluído em uma lista de varredura compreendendo uma pluralidade de canais disponíveis para assistência, e deletar informação de guia de programas associado ao canal se o canal não estiver incluído na lista de varredura.
DESCRIÇÃO RESUMIDA DOS DESENHOS
Os ensinamentos da presente invenção podem ser facilmente entendidos ao se considerar a descrição detalhada que se segue em conjunto com os desenhos anexos, nos quais: A Figura 1 ilustra um diagrama de blocos de alto nível de um sistema de transmissão; A Figura 2 ilustra um diagrama de blocos de um receptor adequado para uso no sistema da Figura 1; A Figura 3 ilustra imagem de tela exemplar de guia de programas; A Figura 4 ilustra uma modalidade de um banco de dados de guia de programas; A Figura 5 ilustra uma modalidade de um banco de dados de guia de programas; e A Figura 6 ilustra um fluxograma de um método para alocar uma memória em um receptor.
Para facilitar o entendimento, foram usados, onde possível, numerais de referência idênticos para designar e-lementos idênticos que são comuns às figuras.
DESCRIÇÃO DETALHADA A Figura 1 ilustra um diagrama de blocos de alto nível de um sistema de transmissão 100 para prover um guia de programas a um assistente de um terminal de conversor de sinal de freqüência de receptor de televisão (STT) ou outro receptor. 0 sistema 100, da Figura 1, compreende uma fonte 102 de programas, um satélite 104, um receptor 106 e um dispositivo de exibição 108. Embora uma fonte 102 de programas, um satélite 104 e um receptor 106 de televisão sejam ilustrados na Figura 1, o sistema 100 pode compreender múltiplas fontes 102 de programas, múltiplos satélites 104 e múltiplos receptores 106. Adicionalmente, o sistema 100 de transmissão de vídeo não é limitado à transmissão de sinais de vídeo por satélites. Por exemplo, o sistema 100 pode implementar estações terrestres para transmitir sinais de vídeo. A fonte 102 de programas transmite um ou mais sinais de vídeo, áudio, audiovisuais e/ou de dados através de uma antena 110. No caso de um programa compreendendo sinais de vídeo, áudio ou audiovisuais, o programa é transmitido de acordo com uma programação. A programação define o horário e o canal de transmissão usado para transmitir o programa para uma ou mais áreas geográficas de assistência. Em uma modalidade, os sinais podem compreender um programa na forma de um fluxo de dados formatados em MPEG. O programa pode compreender um programa de televisão, um filme, uma transmissão ao vivo, um anúncio, ou alguma outra forma de sinal audiovisual . O satélite 104 recebe os sinais a partir da fonte 102 de sinais e retransmite os sinais para uma área geográfica de assistência, predefinida. Adicionalmente, o satélite 104 pode receber uma solicitação a partir de um receptor 106 de vídeo para transmitir "informação de guia de programas".
Em uma modalidade, a informação de guia de programas pode compreender informação de Guia Avançado de Programas (APG). O receptor 106 recebe a informação de guia de programas através de uma antena 112 e armazena a informação recebida em uma memória. O receptor 106 utiliza a informação de guia de programas para prover um guia de programas em um dispositivo de exibição ou alguma outra forma de dispositivo de saída. O guia de programas contém uma listagem de programas programados para transmissão através de cada canal que pode ser acessado pelo receptor 106. Imagem exemplar de exibição de guia de programas é descrita abaixo com relação à Figura 3.
Programas são programados para transmissão de a-cordo com uma programação de um quadro de tempo ou duração de programação predeterminada. O guia de programas exibe a-penas uma parte atual da programação. O restante da programação é retido como informação de guia de programas armazenada na memória do receptor. A parte restante da programação é aquela parte do guia de programas programada para exibição no futuro. Como tal, para manter um guia de programas atual, o receptor 106 deve obter periodicamente informação de guia de programas.
Um espectador do guia de programas pode selecionar um programa exibido no mesmo. Quando isso ocorre, o receptor 106 sintoniza no satélite 104 (ou transponder/canal de satélite) transmitindo o programa selecionado. 0 programa é, então, recebido no receptor 106 e provido ao dispositivo 108 de exibição. 0 receptor 106 é descrito adicionalmente abaixo com relação à Figura 2. A Figura 2 ilustra um diagrama de blocos do receptor 106 no sistema 100 de vídeo da Figura 1. Em uma modalidade, o receptor 106 de video compreende um terminal de conversor de sinal de freqüência (STT) ou receptor de televisão. 0 receptor 106, da Figura 2, compreende um processador 202, uma memória 204, um sintonizador 206, um demodulador 208 e um decodificador 210. 0 receptor 106 também pode compreender uma interface 212 de entrada/saída e vários circuitos de suporte (não mostrados). O sintonizador 206 recebe uma pluralidade de sinais a partir do satélite 104 e seleciona o sinal apropriado, ou canal de interesse. 0 demodulador 208 demodula o sinal selecionado. Formas comuns de demodulação incluem QAM (Modulação de Amplitude de Quadratura), QPSK (Chaveamento de Deslocamento de Fase de Quadratura), e semelhante. O decodi-ficador 210 decodifica fluxo de programa ou informação de guia de programas dentro do sinal demodulado. O decodificador 210 pode realizar correção de erro tal como correção antecipada de erro (FEC) como sabido por aqueles versados na técnica. A memória 204 armazena estruturas de dados e software para operação do receptor 106. Em uma modalidade, a memória 204 armazena uma aplicação 216 de guia de programas, software (aplicação) 218 de alocação de memória e um banco de dados 220 de guia de programas. A memória 204 pode compreender uma combinação de dispositivos de memória incluindo memória de acesso aleatório (RAM), memória não-volátil ou auxiliar (por exemplo, memórias programáveis ou flash, memórias de leitura (ROM), e semelhante). A aplicação 216 de guia de programas compreende programas de software tendo instruções as quais, quando executadas pelo processador 202, proporcionam funcionalidade de guia de programas no sistema 100 de televisão. Em uma modalidade, a aplicação 216 de guia de programas pode incluir um programa de software operativo para monitorar hábitos de assistência de um usuário, ou espectador. Os hábitos de assistência, ou histórico, podem incluir um histórico de seleções de programa ou um histórico de selecionar um gênero específico de programa, por exemplo, esporte, romance, comédia, drama, e semelhante. A aplicação 216 de guia de programas utiliza, então, os hábitos de assistência para sugerir ou avaliar programas, ou os tipos de programas, que é provável que o espectador assista ou que não é provável que assista. 0 software 218 de alocação de memória compreende um programa de software com instruções para alocar o armazenamento de informação de guia de programas na memória 204. O banco de dados 220 de guia de programas contém informação de guia de programas relacionada a canais, horários e programas na programação. Uma modalidade do banco de dados 220 de guia de programas é descrita adicionalmente com relação à Figura 4. Nessa modalidade, um banco de dados 220 de guia de programas compreende uma pluralidade de objetos incluindo objetos de canal, objetos de programação e objetos de programa. Cada um desses objetos de banco de dados inclui respectivamente atributos associados a dados de canal, dados de pro- gramação e dados de programa, respectivamente. A lista 222 de varredura armazenada na memória 204 compreende, ilustrativamente, uma estrutura de dados contendo canais que são de interesse para um assistente, isto é, canais preferidos. Em uma modalidade, a lista 222 de varredura contém canais a serem exibidos como parte da imagem de guia de programas. Como tal, se um canal não mais for de interesse para um usuário (isto é, um canal não preferido), o canal é removido da lista 222 de varredura e, portanto, removido da imagem de guia de programas de exibição. Se um u-suário decidir assistir, outra vez, programas providos a-través daquele canal, o canal é, então, adicionado de volta à lista 222 de varredura e à imagem de guia de programas.
Cada canal provê programas de acordo com uma programação. Informação pertencente ao canal, à programação, e aos programas a serem providos, é armazenada na memória 204. A presente invenção opera para remover informação de canal, programação e programa a partir da memória 2 04, se tal informação for recebida a partir da lista 222 de varredura. Contudo, se a informação também estiver associada a um outro canal que permanece na lista 222 de varredura, então a informação de programa e de programação não é removida da memória 204. A lista 222 de varredura é usada para determinar qual informação de guia de programas deve ser armazenada na memória 204. Mediante remoção da informação de guia de programas a partir da memória 204 (através da remoção de informação de canal a partir da lista 222 de varredura), partes da memória 204 são liberadas para outros usos. Tais outros usos podem compreender, por exemplo, o armazenamento de informação adicional para outros canais e/ou outras fatias de tempo. A informação pode proporcionar detalhe adicional, tal como informação extensa de programa ou pode compreender fatias de tempo adicionais. O processador 202 executa instruções contidas na aplicação 216 de guia de programas para permitir que o receptor 106 proporcione uma função de guia de programas e outra funcionalidade como descrito aqui. Adicionalmente, o processador 202 executa instruções contidas no software 218 de alocação de memória para habilitar o receptor 106 a implementar várias modalidades da presente invenção. A interface 212 de entrada/saída compreende controladores utilizados para acoplar o processador 202 ao dispositivo 214 de entrada e ao dispositivo 108 de exibição. A interface 212 de entrada/saída permite que o processador 202 receba comandos a partir do dispositivo 214 de entrada e proporcione o guia de programas e o programa selecionado ao dispositivo 108 de exibição. A interface 212 pode compreender, por exemplo, um dispositivo de apresentação NTSC, PAL, SECAM ou HDTV. 0 dispositivo 214 de entrada pode compreender qualquer dispositivo utilizado para proporcionar entrada ao receptor 102, por exemplo, para acessar informação de programa para um programa mostrado no guia de programas, ou para selecionar um programa de televisão em um canal. Exemplos do dispositivo 214 de entrada incluem um controle remoto, um teclado, um microfone, uma tela de toque, e semelhantes.
Aqueles programas que provavelmente serão assistí- dos por um usuário são considerados como sendo programas preferidos, enquanto que aqueles programas que provavelmente não serão assistidos por um espectador são considerados como programas não preferidos. A invenção opera para reduzir a quantidade de memória usada para armazenar informação de guia de programas pertencendo a programas não preferidos de modo que informação de guia de programas, pertencendo a um número maior de programas, possa ser armazenada, ou que a informação de guia de programas, associada aos programas preferidos, possa ser ampliada em termos de descrição de programa e outros parâmetros.
Em uma modalidade, informação de guia de programas compreende "informação básica de programa" e "informação extensa de programa". Informação básica de programa inclui informação de canal, horário e programação que pode ser exibida no guia de programas. Informação extensa de programa compreende informação adicional sobre o programa que pode ser acessada através do guia de programas. O receptor 106 minimiza a quantidade de informação de guia de programas armazenada na memória 204 para programas que não são de interesse do espectador mediante ação de descartar ou deletar parte, ou toda a informação extensa, correspondente, do guia de programas. Mediante ação de deletar essa informação, a memória 204 dessa forma preservada pode ser utilizada para ampliar a informação extensa de guia de programas associada à programação preferida, ou aumentar o tamanho da fatia de tempo para a informação armazenada de guia de programas. Adicionalmente, o receptor 106 pode usar níveis diferentes de armazenamento de informação de programa na memória. Por exemplo, o receptor 106 pode armazenar parte (ou tipos predeterminados) de informação extensa de programa para programas de níveis de interesse diferentes. A Figura 3 ilustra imagem exemplar de tela de guia de programas. Especificamente, a imagem 300 de tela de guia de programas da Figura 3 pode ser gerada pelo receptor 106 para exibição no dispositivo 108 de exibição. A imagem 300 de guia de programas ilustra uma tabela de vários programas disponíveis em diferentes canais 302i, 3022,..., 302n (coletivamente, canais 3 02) . Os programas são exibidos por um quadro de tempo ou duração de programação predeterminada, ilustrativamente duas horas. Embora o guia 300 de programas da Figura 3 relacione programas para nove canais, será considerado que o guia 3 00 de programas pode relacionar qualquer número de canais para horários diferentes .de programação .
Em uma modalidade, o guia 300 de programas representa cada programa como um botão que pode ser acessado por um espectador. 0 espectador pode utilizar o dispositivo 214 de entrada, por exemplo, um controle remoto, para acessar o botão através de um cursor ou realce. Se o espectador acessar o botão, o guia 300 de programas pode exibir informação adicional sobre um programa correspondente. A informação a-dicional pode compreender "informação extensa" tal como descrição de um episódio, nomes de atores, nomes de diretores, e semelhante. A Figura 4 ilustra uma modalidade de um banco de dados 220 de guia de programas armazenado na memória 204 do receptor 106. Em uma modalidade, o banco de dados 220 de guia de programas compreende uma pluralidade de registros 402!, 4022/ 4023, 4024, 4025, . . . , 402n (geralmente referidos aqui como registros 402). Cada registro 402 compreende informação de canal, informação de programação e informação de programa para um programa específico. Cada registro 402 compreende informação 404 básica de programação e, opcionalmente, informação 406 extensa de programação. Múltiplas entradas 402 de um programa podem existir no banco de dados 220 se um programa for relacionado múltiplas vezes na programação .
Em uma modalidade, a informação 404 básica de programação compreende qualquer informação de canal, horário e programação que pode ser exibida no guia 300 de programas. Por exemplo, a informação 404 básica de programa pode compreender o canal mostrando o programa, o horário de início do programa no canal, o horário de término do programa no canal, e o título do programa. Informação básica de programa também pode incluir uma categorização de um programa, ou um tipo ou classificação do programa. A informação 406 extensa de programa compreende informação adicional sobre o programa. Por exemplo, a informação 406 extensa de programa pode compreender uma descrição do programa, nomes de atores no programa e o nome do diretor do programa. Informação 406 extensa de programa também pode incluir uma visão geral do programa ou uma descrição do programa em uma linguagem diferente . A Figura 5 ilustra uma modalidade de um banco de dados 220 de guia de programas armazenado na memória 204 do receptor 106. Especificamente, o banco de dados 220 de guia de programas, da Figura 5, compreende uma pluralidade de objetos 502 de canal, objetos 504 de programação e objetos 506 de programa.
Cada um dos objetos 502 de canal tem associado a ele um ou mais objetos de programação. Por exemplo, o objeto 5023. de canal tem associado a ele os objetos 504χ e 5042 de programação; o objeto 5022 de canal tem associado a ele os objetos 5043 e 5044 de programação; o objeto 5023 de canal tem associado a ele os objetos 5044 e 5045 de programação. Observa-se que um número maior ou menor de objetos de programação pode ser associado a cada objeto de canal, e que objetos de programação podem ser compartilhados por múltiplos objetos de canal (como com o objeto 5044 de programação) .
Cada um dos objetos 504 de programação tem associado a ele pelo menos algum objeto 506 de programa. Especificamente, o objeto 504χ de programação tem associado a ele objetos 506χ e 5062 de programa; o objeto 5042 de programação tem associado a ele o objeto 5063 de programa; o objeto 5043 de programação tem associado a ele os objetos 5064 e 5065 de programa; objeto 5044 de programação tem associado a ele o objeto 5065 de programa; o objeto 504s de programação tem associado a ele os objetos 5066 e 5067 de programa. Observa-se que os objetos 506 de programa podem ser compartilhados por múltiplos objetos de programação e, também, ser associa- dos aos objetos 502 de canal. Por exemplo, o objeto 5023 de canal tem associado a ele o objeto 5068 de programa.
Objetos 502 de canal contêm informação pertencendo a um canal que pode ser apresentado (por exemplo, que pode ser assistido). Tal informação pode incluir, por exemplo, o nome do canal, parâmetros de sintonização, informação de código de acesso e semelhante. Informação de objeto de canal varia dependendo do tipo de canal a ser selecionado, tal como canais de televisão analógicos ou de difusão, canais de televisão transportados a cabo, ou canais distribuídos através de outros meios.
Objetos 504 de programação contêm informação pertencendo a uma parte da programação de guia de programas. Por exemplo, um objeto 504 de programação pode conter um tempo de início de um programa programado, e um tempo de término do programa programado, uma duração ou período de tempo para o programa programado e qualquer informação deslocada adequada para uso no guia de programas. Objetos 506 de programa contêm informação pertencendo a um único programa; tal como um programa de televisão, uma transmissão ao vivo, um anúncio, ou alguma outra forma de sinal (tipicamente) audiovisual transmitido ou transportado para o receptor. Em uma modalidade, o objeto de programa pode compreender "informação básica de descrição" e, opcionalmente, "informação extensa de descrição", tal como descrito acima com relação às Figuras 1-4. A Figura 6 ilustra um fluxograma de um método 600 para alocar a memória 204 no receptor 106. O método 600 atu- aliza os bancos de dados 220 de guia de programas em resposta à remoção de canais a partir da lista 222 de varredura. Especificamente, o método 600 começa na etapa 602 e prossegue para etapa 604 onde é processada uma ação a partir do usuário ou espectador. Na etapa 606, uma consulta determina se a ação de usuário é a de remover um canal da lista 222 de varredura. Se a ação de usuário não for a de remover um canal da lista 222 de varredura, o método 600 retorna para a etapa 604 onde é processada a próxima ação de usuário.
Se a ação de usuário for a de remover um canal da lista 222 de varredura, o método 600 prossegue para etapa 608 onde uma consulta determina se um objeto 502 de canal, para o canal, aponta para qualquer, isto é, pelo menos um, objeto 504 de programação. Se o canal apontar para pelo menos um objeto 504 de programação, o método prossegue para a etapa 610 onde cada objeto 504 de programação é processado. Na etapa 612, uma consulta determina se o objeto 504 de programação está apontado por um outro objeto 612 de canal. Isto é, a etapa 612 determina se a programação para o objeto 504 de programação é usada por um outro canal. Se o objeto 504 de programação for apontado por um outro objeto 502 de canal, então na etapa 610, o próximo objeto 610 de programação (se aplicável) é processado. Se o objeto 504 de programação não for apontado por um outro objeto 502 de canal, então, na etapa 614 uma consulta determina se o objeto 504 de programação aponta para qualquer objeto 506 de programa. Se o objeto 504 de programação não apontar para qualquer objeto 506 de programa, então na etapa 616 o objeto 504 de progra- mação é deletado da memória 204. O método 600 retorna, então, para etapa 610.
Se, na etapa 612, o objeto 504 de programação a-pontar para qualquer objeto 506 de programa, o método 600 prossegue para etapa 618 onde cada objeto 618 de programação apontado pelo objeto 504 de programação é processado. Na e-tapa 620, uma consulta determina se o objeto 506 de programa é apontado por um outro objeto, isto é, quer seja um objeto 504 de programação ou um objeto 502 de canal. Se o objeto 506 de programa for apontado por um outro objeto, o método 600 retorna para a etapa 618 onde o próximo objeto 506 de programa é processado. Se o objeto 506 de programa não for apontado por um outro objeto, o método 600 prossegue para a etapa 622 onde o objeto 504 de programa é deletado da memória. 0 método 600 retorna para a etapa 618 onde o próximo objeto 506 de programa é processado. Quando todos os objetos 506 de programa forem processados para o objeto 504 de programação, o método 600 retorna para a etapa 620 onde o próximo objeto 504 de programação é processado. Quando todos os objetos 504 de programação para o objeto 502 de canal forem processados, o método 600 prossegue para etapa 602.
Retornando à etapa 608, se o objeto 502 de canal não apontar qualquer objeto 504 de programação, o método 600 prossegue para a etapa 604 onde uma consulta determina se o objeto 502 de canal aponta diretamente para qualquer objeto 506 de programa. Um objeto 502 de canal pode apontar diretamente para um objeto 506 de programa se não houver objeto 504 de programação ou se o programa para o objeto 506 de programa não estiver em uma programação para o canal. Se o objeto 502 de canal não apontar diretamente para qualquer objeto 506 de programa, o método 600 prossegue para a etapa 632 .
Se o objeto 502 de canal apontar diretamente para um objeto 506 de programa, o método 600 prossegue para a e-tapa 626 onde cada objeto 506 de programa diretamente apontado pelo objeto 502 de canal é processado. Na etapa 628, uma consulta determina se o objeto 506 de programa é apontado por um outro objeto para um canal diferente. Se o objeto 506 de programa for apontado por um outro objeto, o método 600 prossegue para processar o próximo objeto 506 de programa diretamente apontado pelo objeto 502 de canal. Se o objeto 506 de programa não for apontado por um outro objeto, o objeto 506 de programa é deletado da memória 204.
Quando todos os objetos 506 de programa apontados pelo objeto 502 de canal forem processados, o método 600 prossegue para a etapa 632 onde o objeto 502 de canal, para o canal selecionado, é deletado da memória 204. 0 método 600 retorna, então, para a etapa 604 onde é processada a próxima ação de usuário.
Embora várias modalidades que incorporam os ensinamentos da presente invenção tenham sido mostradas e descritas aqui, em detalhe, aqueles versados na técnica facilmente poderão conceber muitas outras modalidades variadas que incorporarão, ainda, esses ensinamentos.
REIVINDICAÇÕES