BRPI0608977A2 - métodos e equipamento para empacotamento de conteúdo para transmissão através de uma rede - Google Patents
métodos e equipamento para empacotamento de conteúdo para transmissão através de uma rede Download PDFInfo
- Publication number
- BRPI0608977A2 BRPI0608977A2 BRPI0608977-1A BRPI0608977A BRPI0608977A2 BR PI0608977 A2 BRPI0608977 A2 BR PI0608977A2 BR PI0608977 A BRPI0608977 A BR PI0608977A BR PI0608977 A2 BRPI0608977 A2 BR PI0608977A2
- Authority
- BR
- Brazil
- Prior art keywords
- content
- sync
- layer
- packets
- header
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/66—Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1101—Session protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/612—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/70—Media network packetisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/28—Timers or timing mechanisms used in protocols
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- General Business, Economics & Management (AREA)
- Business, Economics & Management (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
MéTODOS E EQUIPAMENTO PARA EMPACOTAMENTO DE CONTEúDO PARA TRANSMISSãO ATRAVéS DE UMA REDE. Métodos e equipamento para empacotamento de conteúdo para a transmissão através de uma rede. é.provido um método que inclui gerar um ou mais pacotes de conteúdo a partir do conteúdo de multimedia, em que os pacotes de conteúdo são assocjados a uma referência de tempo, e adicionar um caneçalho de sincronização a um ou mais pacotes de conteúdo nara formar um ou mais pacotes de camada de aplicação, respectivamente, em que o cabeçalho de sincronização compreende um indicador de tempo que indica o tempo em relação â referência de tempo. Um equipamento inclui codificar lógica configurada para gerar um ou mais pacotes de con:eudo a partir do conteúdo de multimídia, em que os pacotes de conteúdo são associados a uma referência de tempo, e a lógica de empacotamento configurada para adicionar um cabeçalho de sincronização a um ou mais pacotes de con:eúdo para formar um ou mais pacotes de camada de aplicação, respectivamente, em que o caneçalho de sincronização compreende um indicador de tempo que indica o tempo em relação a rererência de tempo.
Description
MÉTODOS E EQUIPAMENTO PARA EMPACOTAMENTO DE CONTEÚDO PARA
TRANSMISSÃO ATRAVÉS DE UMA REDE
Reivindicação de Prioridade em conformidade de 35 U.S.C.
§119
0 presente Pedido de Patente reivindicaprioridade para o Pedido Provisório 60/680.786, depositadoem 13 de maio de 2 005r e atribuído ao cessionário deste eaqui expressamente incorporado como referência.
O presente Pedido de Pedido de Patente reivindicaprioridade para Pedido Provisório 60/680.907, depositado em13 de maio de 2 0 05, e atribuído ao cessionário deste e aquiexpressamente .incorporado como referência.
O presente Pedido de Pedido de Patente reivindicaprioridade para Pedido Provisório 60/798.110 [N° do Dossiêdo Advogado 050795P2] intitulado "MULTIMEDIA AUDIO ANDVÍDEO" depositado em 4 de maio de 2 00 6 e atribuído aocessionário deste e aqui expressamente incorporado comoreferência.
FUNDAMENTOSCampo
O presente Pedido se refere geralmente àdistribuição de conteúdo através de uma rede dedistribuição, e mais especificamente aos métodos eequipamento para empacotamento de conteúdo paradistribuição através de uma rede de distribuição.
Fundamentos
Redes de dados, tais como redes de comunicaçãosem fio, têm que equilibrar entre os serviços customizadospara um único terminal e serviços providos a um grandenúmero de terminais. Por exemplo, a distribuição deconteúdo de multimídia para um grande número dedispositivos portáteis de recursos limitados (assinantes) éum problema complicado. Portanto, é muito importantes paraos administradores de rede, varej istas de conteúdo, eprovedores de serviço ter uma forma de distribuir conteúdoe/ou outros serviços de rede de uma maneira rápida eeficiente para apresentação nos dispositivos em rede.
Em sistemas de distribuição de meios/fornecimentode conteúdo, atuais, serviços em tempo real e em tempo não-real são empacotados em um quadro de transmissão eentregues aos dispositivos em uma rede. Por exemplo, umarede de comunicação pode utilizar Multiplexação por Divisãode Freqüência Ortogonal (OFDM) para prover comunicaçõesentre um servidor de rede e um ou mais dispositivos móveis.Essa tecnologia prove um quadro de transmissão tendopartições de dados que são empacotadas com serviços a seremfornecidos e transmitidos através de uma rede dedistribuição.
Infelizmente, o sistema convencional pode terproblemas ao transmitir pacotes através de redes muiticastcom tendência a erro. Por exemplo, se os pacotes foremdanificados ou perdidos durante transmissão, um dispositivoreceptor pode não ser capaz de recuperar o conteúdotransmitido. Mesmo se o conteúdo for recebido sem erros, osistema convencional pode não ser capaz de sincronizareficientemente a sua apresentação.
Portanto, faz-se necessário um sistema paratransmitir eficientemente conteúdo através de uma rede dedados que supere os problemas dos sistemas convencionais. Osistema deve operar para permitir que conteúdo sejafornecido através de redes com tendência a erro e proveruma forma de sincronizar a sua apresentação.
SUMARIO
Em uma ou mais modalidades, um sistema deempacotamento, compreendendo métodos e equipamento, éprovido o qual opera para eficientemente empacotar um oumais fluxos de conteúdo para transmissão através de redescom tendência a erro. Por exemplo, em um aspecto, umesquema de fragmentação e um mecanismo de manejo de erro,associado, são providos para permitir que um receptorremonte os pacotes e marque os pacotes de camada superiorcomo errôneos quando os blocos recebidos são marcados comoerrôneos. O sistema também prove indicadores de tempo comoum meio de sincronização de tempo entre fragmentos de dadosde midia. Desse modo, o sistema prove um mecanismo desincronização de meios flexivel em relação aos erros.
Em um aspecto, é provido um método paraempacotamento de conteúdo de multimídia para distribuiçãoatravés de uma rede. O método compreende gerar um ou maispacotes de conteúdo a partir do conteúdo de multimídia, emque os pacotes de conteúdo são associados a uma referênciatemporal. O método também compreende adicionar um cabeçalhoSync a um ou mais pacotes de conteúdo para formar um oumais pacotes de camada de aplicação, respectivamente, emque o cabeçalho Sync compreende um indicador de tempo queindica o tempo:em relação à referência de tempo.
Em um aspecto, é provido um aparelho paraempacotamento de conteúdo de multimídia para distribuiçãoatravés de uma rede. O equipamento compreende codificarlógica configurada para gerar um ou mais pacotes deconteúdo a partir do conteúdo de multimídia, em que ospacotes de conteúdo são associados a uma referência detempo. 0 equipamento compreende também lógica deempacotamento configurada para adicionar um cabeçalho Synca um ou mais pacotes de conteúdo para formar um ou maispacotes de camada de aplicação, respectivamente, em que ocabeçalho Sync compreende indicador de tempo que indica otempo em relação à referência de tempo.Em um aspecto, é provido um equipamento paraempacotamento de conteúdo de multimídia para distribuiçãoatravés de uma rede. 0 equipamento compreende meio paragerar um ou mais pacotes de conteúdo a partir do conteúdode multimídia, em que os pacotes de conteúdo são associadosa uma referência de tempo. O equipamento compreende tambémmeio para adicionar um cabeçalho Sync a um ou mais pacotesde conteúdo para formar um ou mais pacotes de camada deaplicação, respectivamente, em que o cabeçalho Synccompreende indicador de tempo que indica o tempo em relaçãoà referência de tempo.
Em um aspecto, é provido um meio legível porcomputador que tem um programa de computador compreendendouma ou mais instruções, as quais quando executadas por pelomenos um processador, opera para prover empacotamento deconteúdo de multimídia para distribuição através de umarede. O programa de computador compreende instruções paragerar um ou mais pacotes de conteúdo a partir do conteúdode multimídia, em que os pacotes de conteúdo são associadosa uma referência de tempo. 0 programa de computadorcompreende também instruções para adicionar um cabeçalhoSync a um ou mais pacotes de conteúdo para formar um oumais pacotes de camada de aplicação, respectivamente, emque o cabeçalho Sync compreende um indicador de tempo queindica o tempo em relação ao tempo de referência.
Em um aspecto, pelo menos um processadorconfigurado para realizar um método para empacotamento deconteúdo de multimídia para distribuição através de umarede. 0 método compreende gerar um ou mais pacotes deconteúdo a partir do conteúdo de multimídia em que ospacotes de conteúdo são associados a uma referência detempo. O método compreende também adicionar um cabeçalhoSync a um ou mais pacotes de conteúdo para formar um oumais pacotes de camada de aplicação, respectivamente, emque o cabeçalho Sync compreende um indicador de tempo queindica o tempo em relação à referência de tempo.
Em um aspecto, um método para empacotar conteúdode multimídia para distribuição através de uma rede. 0método compreende processar um ou mais blocos de conteúdopara produzir um ou mais pacotes de camada de aplicação, eextrair um cabeçalho Sync a partir do um ou mais pacotes decamada de aplicação para produzir um ou mais pacotes decamada de conteúdo, respectivamente, em que o cabeçalhoSync compreende um indicador de tempo que indica o tempo emrelação a uma referência de tempo. O método tambémcompreende sincronizar o um ou mais pacote de camada deconteúdo com base no indicador de tempo.
Em um aspecto, é provido um equipamento paraempacotamento de conteúdo de multimídia para distribuiçãoatravés de uma rede. 0 equipamento compreende receberlógica configurada para processar um ou mais blocos deconteúdo para produzir um ou mais pacotes de camada deaplicação. O equipamento compreende também lógica dedesempacotamento configurada para extrair um cabeçalho Synca partir de um ou mais pacotes de camada de aplicação paraproduzir um ou mais pacotes de camada de conteúdo,respectivamente, em que o cabeçalho Sync compreende umindicador de tempo que indica o tempo em relação a umareferência de tempo, e para sincronizar o um ou maispacotes de camada de conteúdo com base no indicador detempo.
Em um aspecto, um equipamento para empacotamentode conteúdo de multimídia para distribuição através de umarede. O equipamento compreende meio para processar um oumais blocos de conteúdo para produzir um ou mais pacotes decamada de aplicação, e meio para extrair um cabeçalho Synca partir do um ou mais pacotes de camada de aplicação paraproduzir um ou mais pacotes de camada de conteúdo,respectivamente, em que o cabeçalho Sync compreende umindicador de tempo que indica o tempo em relação a umareferência de tempo. 0 equipamento compreende também meiopara sincronizar o um ou mais pacotes de camada de conteúdocom base no indicador de tempo.
Em um aspecto, é provido um meio legível porcomputador que tem um programa de computador compreendendoinstruções, as quais quando executadas por pelo menos umprocessador, operam para proporcionar empacotamento deconteúdo de multimídia para distribuição através de umarede, O programa de computador compreende instruções paraprocessar um ou mais blocos de conteúdo para produzir um oumais pacotes de camada de aplicação, e instruções paraextrair um cabeçalho Sync a partir de um ou mais pacotes decamada de aplicação para produzir um ou mais pacotes decamada de conteúdo, respectivamente, em que o cabeçalhoSync compreende um indicador de tempo que indica o tempo emrelação a uma referência de tempo. 0 programa de computadorcompreende também instruções para sincronizar o um ou maispacotes de camada de conteúdo com base no indicador detempo.
Em um aspecto, pelo menos um processador éprovido que é ■ configurado para realizar um método paraempacotamento de conteúdo de multimídia para distribuiçãoatravés de uma rede. 0 método compreende processar um omais blocos de conteúdo para produzir um ou mais pacotes decamada de aplicação, e extrair um cabeçalho Sync a partirde um ou mais pacotes de camada de aplicação para produzirum ou mais pacotes de camada de conteúdo, respectivamente,em que o cabeçalho Sync compreende um indicador de tempoque indica o tempo em relação a uma referência de tempo. 0método também compreende sincronizar o um ou mais pacotesde camada de conteúdo com base no indicador de tempo.
Em um aspecto, é provido um método paraempacotamento de conteúdo de multimídia para distribuiçãoatravés de uma rede. 0 método compreende receber um ou maisblocos de conteúdo, em que o um ou mais blocos de conteúdocompreende um cabeçalho de quadro, e determinar se um blocode conteúdo selecionado inclui um erro. 0 método tambémcompreende supor que um cabeçalho de quadro selecionadoassociado ao bloco de conteúdo selecionado compreende um oumais valores selecionados, e processar o um ou mais blocosde conteúdo para produzir um ou mais pacotes de camada deaplicação.
Em um aspecto, é provido um equipamento paraempacotamento de conteúdo de multimídia para distribuiçãoatravés de uma rede. O equipamento compreende lógica deentrada configurada para receber um ou mais blocos deconteúdo, em que o um ou mais blocos de conteúdo compreendeum cabeçalho de quadro. O equipamento também compreendelógica de desempacotamento configurada para determinar se obloco de conteúdo selecionado inclui um erro, supor que umcabeçalho de quadro selecionado associado ao bloco deconteúdo selecionado compreende um ou mais valoresselecionados, e processar o um ou mais blocos de conteúdopara produzir um ou mais pacotes de camada de aplicação.
Em um aspecto, é provido um equipamento paraempacotamento de conteúdo de multimídia para distribuiçãoatravés de uma rede, O equipamento compreende meio parareceber um ou mais blocos de conteúdo, em que o um ou maisblocos de conteúdo compreende um cabeçalho de quadro, emeio para determinar se um bloco de conteúdo selecionadoinclui um erro. 0 equipamento compreende também meio parasupor se um cabeçalho de quadro selecionado associado aobloco de conteúdo selecionado compreende um ou mais valoresselecionados, e meio para processar o um ou mais blocos deconteúdo para produzir um ou mais pacotes de camada deaplicação.
Em um aspecto, é provido um meio legível porcomputador que tem um programa de computador compreendendoinstruções, as quais quando executadas por pelo menos umprocessador, operam para prover empacotamento de conteúdode multimídia para distribuição através de uma rede. Noprograma de computador compreende instruções para receberum ou mais blocos de conteúdo, em que o um ou mais blocosde conteúdo compreende um cabeçalho de quadro, e instruçõespara determinar se um bloco de conteúdo selecionado incluium erro. O programa de computador compreende tambéminstruções para supor que um cabeçalho de quadroselecionado associado ao bloco de conteúdo selecionadocompreende um ou mais valores selecionados, e instruçõespara processar o um ou mais blocos de conteúdo paraproduzir um ou mais pacotes de camada de aplicação.
Em um aspecto, é provido pelo menos umprocessador que é configurado para realizar um método paraempacotamento de conteúdo de multimídia para distribuiçãoatravés de uma rede. O método compreende receber um ou maisblocos de conteúdo, em que o um ou mais blocos de conteúdocompreende um cabeçalho de quadro, e determinar se um blocode conteúdo selecionado inclui um erro. O método compreendetambém supor se um cabeçalho de quadro selecionadoassociado ao bloco de conteúdo selecionado compreende um oumais valores selecionados, e processar o um ou mais blocosde conteúdo para produzir um ou mais pacotes de camada deaplicação.
Outros aspectos das modalidades se tornaramevidentes após análise da Descrição Resumida dos Desenhos,Descrição, e das Reivindicações apresentadas em seguida.
DESCRIÇÃO RESUMIDA DOS DESENHOS
Os aspectos anteriores das modalidades aquidescritas se tornarão mais facilmente evidentes mediantereferência à descrição detalhada seguinte quandoconsiderada em conjunto com os desenhos anexos em que:
A Figura 1 mostra uma rede que compreende umamodalidade de um sistema de empacotamento;
A Figura 2 mostra uma modalidade de um servidoradequado para uso em um sistema de empacotamento;
A Figura 3 mostra uma modalidade de camadas eprotocolos para uso em um sistema de empacotamento;
A Figura 4 mostra uma modalidade de arquiteturade protocolo para uso em um sistema de empacotamento;
A Figura 5 mostra como uma camada de aplicação édividida em uma camada de conteúdo em tempo real e umacamada Sync;
A Figura 6 mostra um fluxograma que ilustra ofluxo de dados entre camadas em uma modalidade de umsistema de empacotamento;
A Figura 7 ilustra como uma camada Sync adicionaum cabeçalho de camada Sync aos pacotes de camada deConteúdo em tempo real;
A Figura 8 mostra um diagrama que ilustra aoperação das camadas de Fluxo, MAC, e Fisica em um sistemade empacotamento;
A Figura 9 mostra um esquema de fragmentação paraum único pacote provido por uma modalidade do protocolo deEnquadramento;
A Figura 10 ilustra como uma modalidade de umprotocolo de Enquadramento opera para fragmentar doispacotes;
A Figura 11 ilustra como uma modalidade de umprotocolo de Enquadramento opera para fragmentar um pacotede camada superior de 200 bytes de tamanho em duas partes;
A Figura 12 mostra uma modalidade de um métodopara prover um sistema de empacotamento;
A Figura 13 mostra um diagrama que ilustrasuporte de serviço em tempo real para uso em um sistema deempacotamento;
A Figura 14 mostra uma modalidade de umdispositivo para uso em um sistema de empacotamento;
A Figura 15 mostra um exemplo de fluxo decontrole e de dados em um dispositivo receptor para receberserviço em tempo real em um sistema de empacotamento;
A Figura 16 ilustra como uma modalidade de umsistema de empacotamento opera em um dispositivo paraprocessar três blocos recebidos que contêm dois pacotes decamada de Aplicação;
A Figura 17 mostra a operação de um sistema deempacotamento onde uma camada de Fluxo indica que umprimeiro bloco recebido tem erros;
A Figura 18 mostra a operação de um sistema deempacotamento onde uma camada de Fluxo indica que umsegundo bloco recebido está em erro;
A Figura 19 mostra a operação de um sistema deempacotamento onde uma camada de Fluxo marca o último blocode um superquadro a estar em erro;
A Figura 20 mostra a operação de um sistema deempacotamento onde uma camada de Fluxo entrega três blocospara a camada de Transporte;
A Figura 21 mostra a operação de um sistema deempacotamento onde informação de diretório de Enquadramentoé usada em um dispositivo receptor;
A Figura 22 mostra os protocolos pertencendo àcamada de Transporte;A Figura 2 3 mostra como um protocolo de Soma deVerificação é provido em um servidor em um sistema deempacotamento;
A Figura 24 ilustra o processamento de soma deverificação em um dispositivo receptor em um sistema deempacotamento;
A Figura 25 mostra uma modalidade de um métodopara prover um sistema de empacotamento;
A Figura 26 mostra uma modalidade de um sistemade empacotamento;
A Figura 27 mostra uma modalidade de um sistemade empacotamento; e
A Figura 28 mostra uma modalidade de um sistemade empacotamento.
DESCRIÇÃO DETALHADA
Em uma ou mais modalidades, é provido um sistemade empacotamento que opera para empacotar fluxos deconteúdo multiplexados em um quadro de transmissão paratransmissão através de uma rede de dados. Por exemplo, osfluxos de conteúdo multiplexados compreendem um arranjoespecifico, seqüência, mistura, e/ou seleção de serviços emtempo real e/ou em tempo não-real para transmissão para umdispositivo. O sistema é especialmente adequado para uso emambientes de redes sem fio, mas pode ser usado em qualquerambiente de rede, incluindo, mas não limitado a, redes decomunicação, redes públicas, tal como a Internet, redesprivadas, tais como redes privadas virtuais (VPN), redes deárea local, redes de área remota, redes de longa distância,ou qualquer outro tipo de rede de dados.
Para a finalidade dessa descrição, uma ou maismodalidades de um sistema de empacotamento são descritasaqui com referência a uma rede de comunicação que utilizaMultiplexação por Divisão de Freqüência Ortogonal (OFDM)para prover comunicações entre um servidor de rede e um oumais dispositivos móveis. Por exemplo, em uma modalidade deum sistema OFDM, um superquadro é definido o qualcompreende sinais piloto de muitiplexação por divisão detempo (TDM), sinais piloto de multiplexação por divisão defreqüência (FDM), simbolos de informação overhead (OIS), esimbolos de dados. Uma partição de dados é definida a qualcompreende um conjunto de quinhentos simbolos de dados queocorrem através de um tempo de simbolo OFDM.Adicionalmente, um tempo de simbolo OFDM no superquadrocarrega sete partições de dados.
As definições a seguir são usadas aqui paradescrever uma ou mais modalidades de um sistema deempacotamento.
Fluxo Um elemento de um serviço, por exemplo, um
serviço pode ter dois fluxos, um fluxo de áudio eum fluxo de video.
Serviço Um conteúdo de midia que pode ter um ou maisfluxos.
MLC Um canal lógico de midia ("canal") usado para
informação de controle ou dados.Simbolos de Informação de Overhead (OIS)
Os simbolos em um superquadro que carregaminformação sobre a localização de diversos MLCsno superquadro.
Partição A menor unidade de largura de banda alocada a umMLC através de um simbolo OFDM.
A Figura 1 mostra uma rede 100 que compreende umamodalidade de um sistema de empacotamento. A rede 100compreende um dispositivo móvel, 102, um servidor 104, euma rede de distribuição 10 6. Para a finalidade dessadescrição, será suposto que a rede 10 6 opera para secomunicar com um ou mais dispositivos portáteis utilizandotecnologia OFDM; contudo, as modalidades do sistema deempacotamento são adequadas para uso também com outrastecnologias de transmissão.
Em uma modalidade, o servidor 104 opera paraprover serviços que podem ser subscritos pelos dispositivosem comunicação com a rede 106. O servidor 104 é acoplado àrede 106 através do link de comunicação 108. O link decomunicação 108 compreende qualquer link de comunicação,tal como um link cabeado e/ou sem fio que opera parapermitir que o servidor 104 se comunique com a rede 106. Arede 106 compreende qualquer combinação de redes cabeadase/ou sem fio que permitem que os serviços sejam fornecidosa partir do servidor 104 para dispositivos em comunicaçãocom a rede 106, tal como o dispositivo 102. Em umamodalidade, a rede 106 prove unicast, multicast, broadcastou qualquer outro tipo de canais de comunicação que podemser usados pelo servidor 104 para fornecer informação a umou mais dispositivos.
Deve ser observado que a rede 106 pode provercomunicações com qualquer número e/ou tipos de dispositivosportáteis dentro do escopo das modalidades. Por exemplo,outros dispositivos adequados para uso em modalidades dosistema de empacotamento incluem, mas não são limitados a,um assistente digital pessoal (PDA), dispositivo de correioeletrônico, pager, um computador notebook, tocador de mp3,aparelho de reprodução de video, ou um computador de mesa.O link sem fio 110 compreende um link de comunicação semfio baseado em tecnologia OFDM; contudo, em outrasmodalidades o link sem fio pode compreender qualquertecnologia sem fio adequada que opera para permitir que osdispositivos se comuniquem com a rede 106.
O dispositivo 102 nessa modalidade compreende umtelefone móvel que se comunica com a rede 106 através dolink sem fio 110. O dispositivo 102 toma parte em umprocesso de ativação que permite que o dispositivo 102subscreva para receber serviços através da rede 106. Em umamodalidade, o processo de ativação pode ser realizado com oservidor 104; contudo, o processo de ativação também podeser realizado com outro servidor, provedor de serviço,varejista de conteúdo, ou outra entidade de rede. Parafinalidade dessa descrição, será suposto que o dispositivo102 realiza o processo de ativação com o servidor 104 eestá agora pronto para subscrever e receber serviços apartir do servidor 104.
Em uma modalidade, o servidor 104 é parte de umsistema de distribuição de midia 112 ou se comunica com omesmo. Por exemplo, o sistema de distribuição 112 podecompreender outras entidades, tal como servidores de midiade tempo real (RTMS), servidores de midia de tempo não-real(NRTMS), servidores de distribuição, provedores deconteúdo, e/ou qualquer outro tipo de entidade de sistemade distribuição. O sistema de distribuição de midia 112opera para prover conteúdo 114 para distribuição paradispositivos na rede de distribuição 106. Por exemplo, oconteúdo compreende conteúdo de multimídia que incluinoticias, esportes, previsão do tempo, informaçãofinanceira, filmes, e/ou aplicativos, programas, scripts,ou qualquer outro tipo de conteúdo ou serviço adequado.
O servidor 104 compreende também lógica deempacotamento 116 que opera para eficientemente empacotar oconteúdo 114 em pacotes 118 para distribuição através darede 106. Por exemplo, os pacotes 118 são transmitidosatravés da rede 106 para o dispositivo 102, conformemostrado pelo percurso 120. Em uma modalidade, a lógica deempacotamento 116 opera para gerar Cabeçalhos Sync,Cabeçalhos de Enquadramento, e marcações de tempo deapresentação (PTS) associadas que são incluídas com ospacotes 118 de modo que um dispositivo receptor é capaz desincronizar como o conteúdo recebido é renderizado nodispositivo e os erros são processados. Uma descrição maisdetalhada da lógica de empacotamento 116 é provida em outraseção desse documento. Como resultado da operação da lógicade empacotamento 116, o conteúdo é empacotado otimamente ecarimbado no tempo, desse modo utilizando eficientemente alargura de banda de rede e proporcionando uma forma desincronizar o conteúdo em um dispositivo receptor.
Em uma modalidade, o dispositivo 102 compreendelógica de desempacotamento 122 que opera para reverter oprocesso ou empacotamento realizado no servidor 104. Como alógica de empacotamento 116 empacotou o conteúdo paraincluir marcações de tempo de apresentação, a lógica dedesempacotamento 122 é capaz de sincronizar o conteúdo erenderizar o mesmo no dispositivo 102.
Portanto, as modalidades do sistema deempacotamento operam para realizar uma ou mais dasseguintes funções para prover distribuição eficiente esincronização de conteúdo através de uma rede dedistribuição.
1. Receber ou obter acesso ao conteúdo compreendendoserviços em tempo real e/ou em tempo não-real.
2. Empacotar o conteúdo de modo que os pacotesincluam marcações de tempo de apresentação.
3. Distribuir o conteúdo empacotado através de umarede de distribuição.
4. Desempacotar o conteúdo em um dispositivoreceptor.
5. Utilizar as marcações de tempo de apresentaçãopara prover renderização sincronizada doconteúdo.Portanto, em uma ou mais modalidades, um sistemade empacotamento opera para eficientemente empacotar etransmitir conteúdo para os dispositivos em uma rede dedados. Deve ser observado que o sistema de empacotamentonão é limitado às implementações descritas com referência àFigura 1, e que outras implementações são possíveis dentrodo escopo das modalidades.
Visão Geral e Recursos do Sistema
É provido um sistema de empacotamento quedistribui eficientemente o conteúdo empacotado através deredes sem f io. Em uma modalidade, a rede multicastOtimizada de Link Direto (FLO™) é usada para fornecerconteúdo de multimídia. Com base na tecnologia deMultiplexação por Divisão de Freqüência Ortogonal (OFDM), arede multicast FLO é projetada para fornecer eficientementemultimídia de banda larga a grandes números de assinantes.
O sistema prove um serviço de fornecimentomulticast de banda larga, sem fio aos usuários móveis nabase de subscrição. Os canais de conteúdo multicastindividuais são referidos como serviços. Há três tiposfundamentais de serviços suportados pelo sistema como aseguir.
1. Serviço em tempo não-real: Um serviço dedistribuição de arquivos para fornecimento, porexemplo, de clipes de midia - também referidoscomo um tipo de serviço Clipcast.
2. Tipo de serviço de fluxo continuo em tempo real.
3. Tipo de serviço datacast IP
Serviço em Tempo Não-RealO sistema fornece arquivos (por exemplo, clipesde midia) como um serviço em tempo não-real (tambémreferido como um serviço Clipcast). Os arquivos podemcompreender áudio, áudio e video, e/ou outros tipos dedados. Quando o usuário tiver subscrito para o serviço, oconteúdo é entregue ao dispositivo móvel do usuário nosegundo plano, transparente para o usuário. A midia éarmazenada no dispositivo e pode ser acessada pelo usuáriodurante um período de disponibilidade programado.
Serviço em Tempo Real0 segundo tipo de serviço fundamental fornecido éo serviço em tempo real no qual o conteúdo é fornecido emfluxo continuo aos dispositivos em tempo real. 0 usuáriofinal pode "sintonizar" em um serviço de tempo real emqualquer momento e receber conteúdo atual. Como com osserviços em tempo não-real, o usuário tipicamente precisarásubscrever para o serviço em tempo real antes de obteracesso.
Serviço Datacast IPO serviço Datacast IP é um serviço multicast IPsem fio para suportar uma ampla faixa de aplicações. Essetipo de serviço permite que um operador de sistema e/outerceiros multicast conteúdo utilizando protocolos InternetEngineering Task Force (IETF) através da rede dedistribuição. A rede de distribuição prove uma dama deQualidades de Serviço (QoS) para fornecimento de fluxoscontínuos multicast IP em termos de taxa de perda eflutuação de retardo. Como os outros tipos de serviço, osserviços Datacast IP podem ser oferecidos na base desubscrição.
A Figura 2 mostra uma modalidade de um servidor200 adequado para uso em um sistema de empacotamento. Porexemplo, o servidor 200 pode ser usado como o servidor 104na Figura 1. 0 servidor 200 compreende lógica deempacotamento 202, lógica de entrada 204, e lógica de saida206, todas acopladas a um barramento de dados 208. Deve serobservado que o servidor 200 representa apenas umaimplementação e que outras implementações são possíveisdentro do escopo das modalidades. Por exemplo, o servidor200 pode compreender pelo menos um processador configuradopara executar uma ou mais instruções de programa paraprover as funções do sistema de empacotamento aquidescrito.
Em uma ou mais modalidades, a lógica deempacotamento 202 compreende uma CPU, processador, arranjode portas, lógica de hardware, elementos de memória,máquina virtual, software, e/ou qualquer combinação dehardware e software. Desse modo, a lógica de empacotamento202 geralmente compreende lógica para executar instruçõeslegíveis por máquina e para controlar um ou mais doselementos funcionais do servidor 200 por intermédio dobarramento de dados 208.
A lógica de entrada 204 compreende hardware e/ousoftware que opera para permitir que o servidor 200 recebaconteúdo e/ou outra informação a partir de entidades dosistema de distribuição através do canal de comunicação210. Por exemplo, em uma modalidade, o canal de comunicação210 compreende qualquer tipo adequado de link decomunicação para permitir que o servidor 200 se comuniquediretamente com outros servidores ou com uma ou mais redesde dados e/ou dispositivos acoplados àquelas redes dedados. Desse modo, a lógica de entrada 204 permite que oservidor 200 receba conteúdo para distribuição através deuma rede de distribuição.
A lógica de saida 206 compreende hardware e/ousoftware que opera para permitir que o servidor 200 emitaconteúdo empacotado e/ou outra informação para uma rede dedistribuição para distribuição para um ou mais dispositivosatravés do canal de comunicação 212. Por exemplo, em umamodalidade, o canal de comunicação 212 compreende qualquertipo adequado de link de comunicação para permitir que oservidor 200 se comunique diretamente com uma rede dedistribuição e/ou dispositivos acoplados àquela rede. Porexemplo, o canal de comunicação 212 prove um canal unicast,multicast, broadcast, ou qualquer outro tipo de canal decomunicação que permite que o servidor 200 forneça conteúdoempacotado para distribuição através de uma rede dedistribuição.
Durante a operação de uma modalidade, o conteúdoé recebido na lógica de entrada 204 através do canal deentrada 210.' A lógica de empacotamento 202 opera paraprover camadas de protocolo através das quais o conteúdorecebido é empacotado para transmissão através de uma redede distribuição. Em uma modalidade, a lógica deempacotamento 202 opera para prover uma ou mais camadas deprotocolo que são usadas para incorporar Cabeçalhos Sync,Cabeçalhos de Quadro, marcas de tempo de apresentação, esomas de verificação no conteúdo. As camadas de protocolooperam também para fragmentar o conteúdo em blocos paratransmissão através de uma rede de distribuição utilizandoa lógica de saida 206 e o canal de comunicação 212. Umadescrição mais detalhada da lógica de empacotamento 202 edas funções realizadas pelas camadas de protocolo é providaem outras seções desse documento.
Em uma modalidade, o sistema de empacotamentocompreende um programa de computador tendo uma ou maisinstruções de programa ("instruções") armazenadas em ummeio legível por computador, o qual quando executado porpelo menos um processador, por exemplo, a lógica deempacotamento 202, prove as funções aqui descritas dosistema de empacotamento. Por exemplo, as instruções podemser carregadas no servidor 200 a partir de meios legíveispor computador, tal como um disquete, CD-ROM, cartão dememória, dispositivo de memória flash, RAM, ROM, ouqualquer outro tipo de dispositivo de memória ou meiolegivel por computador que estabelece interface com oservidor 2 00. Em outra modalidade, as instruções podem sertransferidas para o servidor 200 a partir de um dispositivoexterno ou recurso de rede que estabelecem interface com oservidor 200. As instruções, quando executadas pela lógicade empacotamento 2 02, proporcionam uma ou mais modalidadesde um sistema de empacotamento conforme aqui descrito.
Desse modo, o servidor 2 00 opera para prover asmodalidades de um sistema de empacotamento paraeficientemente empacotar fluxos de conteúdo multiplexadospara distribuição através de uma rede de distribuição.
A Figura 3 mostra uma modalidade de camadas eprotocolos 300 para uso em um sistema de empacotamento. Porexemplo, em uma modalidade, a lógica de empacotamento 202mostrada na Figura 2 opera para prover as camadas deprotocolos 30 0 mostrados na Figura 3. A camada mais baixa éa camada Fisica FLO 302. Essa camada opera para formar eprocessar as formas de onda FLO para entrega eficiente deconteúdo multicast através de uma rede de distribuição. Acamada acima da camada Fisica 302 é a camada de Controle deAcesso ao Meio (MAC) 304 . A função essencial da camada MAC30 4 é a alocação de recursos da Camada Fisica FLO para osfluxos de camada superior. A camada MAC 304 tambémmultiplexa os Canais Lógicos de Meios (MLCs) para a camadaFisica 302. As camadas superiores 308 utilizam os serviçosda camada de Fluxo 306 para fornecer dados aosdispositivos.
A Figura 4 mostra uma modalidade da arquiteturade protocolo 4 00 para uso em um sistema de empacotamento.Por exemplo, em uma modalidade, a lógica de empacotamento202 mostrada na Figura 2 opera para prover arquitetura deprotocolo 400 mostrada na Figura 4. Pelo lado do servidor,o fluxo de conteúdo através da arquitetura de protocolo 400é mostrado pela seta direcional 414. Pelo lado dodispositivo, o fluxo de conteúdo através da arquitetura deprotocolo 400 está na direção oposta. As camadas Fisica402, MAC 404, e de Fluxo 406 operam conforme descrito acimacom referência à Figura 3. Os protocolos de camada deServiço de Acesso Condicional (CAS) 408, de Transporte 410,e de Aplicação 412 e mensagens operam como a seguir.
A camada CAS 408 implementa codificação edecodificação de conteúdo. A camada CAS 408 é opcional paracada serviço. Para cada serviço que implementa codificaçãode conteúdo, o servidor gera uma chave de serviço. Em umamodalidade, a chave de serviço é entregue ao dispositivoatravés de uma conexão unicast. A camada CAS 408 éimplementada para fluxos desses serviços, e o servidor gerauma chave de trabalho para esses fluxos. Essa chave detrabalho é usada para codificar os dados sendo enviadosatravés do fluxo. A chave de trabalho é então criptografadautilizando a chave de serviço e entregue ao dispositivo.Utilizando a chave de serviço, o dispositivo pode recuperara chave de trabalho. O dispositivo pode recuperar os dadosde fluxo utilizando a chave de trabalho.
A camada de Transporte 410 prove serviço depacote através da camada de Fluxo 406. A camada de Fluxo406 é descrita em detalhe em outra seção desse documento.As camadas superiores da arquitetura 400 fornecem umaseqüência de octetos à camada de Fluxo 406 e à camada deFluxo 406 fornece esses octetos (com possíveis erros) aodispositivo. Contudo, as aplicações tipicas necessitam deum serviço baseado em pacote. Uma função chave da camada deTransporte 410 é a de prover esse serviço de pacote atravésda camada de Fluxo 406. Além disso, a camada de Transporte410 também tem um protocolo de Soma de Verificação Opcionalpara verificar a integridade dos dados. Uma discussão maisdetalhada da camada de transporte é provida em outra seçãodesse documento.
A Camada de Aplicação 412 é onde o conteúdo demultimídia é gerado pelo lado do servidor e consumido pelolado do dispositivo. Em uma modalidade, a camada deaplicação 412 compreende uma subcamada de Conteúdo de temporeal e uma subcamada Sync usada para obter sincronizaçãoentre fluxos de video e áudio. Uma descrição mais detalhadada camada de aplicação 412 e de suas subcamadas é fornecidaabaixo.
Subcamadas da Camada de AplicaçãoA Figura 5 mostra como uma camada de Aplicação500 é dividida em duas subcamadas: isto é, uma camada deConteúdo em tempo real 502 e uma camada Sync 504.
Camada de Conteúdo em Tempo RealA camada de Conteúdo em tempo real 502 é a camadaque gera/consome conteúdo em tempo real. Esse conteúdo podeser video, áudio, texto, legendas fechadas etc. Cada tipode conteúdo é codificado e formatado apropriadamente. Porexemplo, em uma modalidade, video é formatado utilizando umformato H.264 padrão da indústria e áudio é formatado deacordo com o formato AAC+ padrão da indústria.
Camada Sync
A Camada Sync 504 opera para processar pacotes decamada de Conteúdo a partir da camada de Conteúdo em temporeal 502 para produzir pacotes de camada Sync. A camadaSync 504 opera para processar os pacotes de camada deConteúdo para incluir a seguinte informação.
1. Informação de número de quadro de midia e marca detempo.
2. Informação sobre os Pontos de Acesso Aleatório (RAP)no fluxo contínuo de dados. Isso suporte a aquisiçãode fluxos de áudio e vídeo.
3. Informação necessária para decodificação deáudio/vídeo que não é carregada no fluxo de bitsbrutos ou informação que auxilia na decodificação devídeo/áudio. Por exemplo, indicadores deaperfeiçoamento ou Base, identificadores para quadrosde referência/não-referência, e identificadores deFluxo.
4. Além disso, pelo lado do dispositivo receptor, oscampos de camada Sync permitem que o dispositivodetermine quadros de meios ausentes/errôneos e realizemanejo de erro apropriado.
A camada Sync 504 utiliza a camada de transporte404 para fornecer pacotes a partir do servidor aosdispositivos.
A Figura 6 mostra um diagrama de fluxo 600 queilustra o fluxo de dados entre camadas em uma modalidade deum sistema de empacotamento. A camada de Conteúdo em temporeal 602 no servidor envia os pacotes para a camada Sync604. A camada Sync 604 adiciona um cabeçalho de camada Synce marcas de tempo de apresentação aos pacotes e envia osmesmos para a camada de Transporte 606. A camada deTransporte 606 fragmenta os pacotes em blocos e os enviaatravés da rede 608.
Um dispositivo que é "sintonizado" com o serviçoem tempo real recebe esses pacotes na camada de Transporte610. A camada de Transporte 610 entrega os pacotes à camadaSync 612. A camada Sync 612 remove o cabeçalho de camadaSync e fornece os pacotes à camada de Conteúdo em temporeal 614 para serem decodificados e renderizados no tempode apresentação utilizando um dispositivo de reprodução demeios no dispositivo.Especificação de Cabeçalho de Camada Sync A Figura 7 ilustra como a camada Sync adiciona um cabeçalho de camada Sync a cada pacote de camada de Conteúdo em tempo real. Por exemplo, os pacotes de camada de Conteúdo 702 recebem um cabeçalho de camada Sync 704 para formar pacotes de camada Sync 706. O formato do cabeçalho de camada Sync é mostrado na Tabela 1 conforme a seguir.<table>table see original document page 25</column></row><table>O que se segue é uma descrição dos campos providos no cabeçalho de camada Sync. Deve ser observado que os campos providos na Tabela 1 representam apenas uma implementação e que apagamento, modificação ou adição de campos é possível dentro do escopo das modalidades.
MED IA__T YPE
O campo MEDIA_TYPE identifica o tipo de midia ao qual pertence o pacote de camada Sync. Essa informação é útil no encaminhamento de mensagens para o decodificador de meios apropriados dentro do dispositivo receptor. Os valores para o campo MEDIA_TYPE são relacionados na Tabela 2 conforme a seguir.
<table>table see original document page 25</column></row><table>O campo PTS prove um tempo de apresentação para o pacote de Conteúdo em tempo real (ou quadro de meios). Esse campo é especificado em unidades de milissegundos. O campo PTS é adicionado ao tempo de superquadro (obtido a partir do OIS) para obter o tempo real no qual o pacote deve ser apresentado.
FRAME_ID
O campo FRAME_ID identifica de forma singular cada quadro de meios dentro de um superquadro. Os valores para o campo FRAME_ID são relacionados na Tabela 3 como a seguir.
Tabela 3
Nome do Campo Tipo do Campo
FRAME_NUMBER UINT(6)
ENHANCEMENT FLAG BIT(1)
FRAME_NUMBER
O FRAME_NUMBER é o número do quadro de meios atual dentro do superquadro.
ENHANCEMENT_FLAG
O ENHANCEMENT_FLAG é um bit que indica se o quadro de meios atual é para a camada Base ou de Aperfeiçoamento. Se o quadro de meios atual for para a camada Base, então o ENHANCEMENT_FLAG é ajustado em 0. Se o quadro de meios atual for para a camada de aperfeiçoamento, então o ENHANCEMENT_FLAG é ajustado em 1. Se o MEDIA_TYPE for ajustado em "01" (ÁUDIO), então o ENHANCEMENT_FLAG é ajustado em 0. Se o MEDIAJTYPE for ajustado em "10" (TIMED_TEXT), então o ENHANCEMENT_FLAG é ajustado em 0.
RAP_FLAG
O RAP_FLAG sinaliza se o quadro de meios atual é um ponto de acesso aleatório. Isso é usado durante reaquisição ou comutação de canal em um dispositivo receptor. Se o quadro de meios atual é um ponto de acessoaleatório, então o bit RAP_FLAG é ajustado em 1.
FRAME_RATE
O campo FRAME_RATE representa a taxa na qual os quadros de meio estão sendo gerados pelo transcodificador. Os valores para o campo FRAME_RATE são relacionados na Tabela 4 abaixo. Contudo, deve ser observado que os valores FRAME_RATE não são limitados àqueles mostrados na Tabela 4 e que outros valores de taxa de quadro são possíveis dentro do escopo das modalidades.
Tabela 4
<table>table see original document page 27</column></row><table>
Em uma modalidade, o campo FRAME_RATE é incluido se o campo MEDIA_TYPE for ajustado para "00" (VÍDEO) . A taxa de quadros de meios é a taxa resultante em quadros por segundo quando os dados de ambas as camadas de base e de aperfeiçoamento são completamente decodificados.
RESERVADOS
Os bits RESERVADOS (5 bits) são utilizados para alinhar em byte o cabeçalho de camada Sync. Os bits RESERVADOS são incluídos se o campo MEDIAJTYPE for ajustado em "00" (VÍDEO). Se incluídos, todos os bits RESERVADOS são ajustados em 0. Desse modo, para os quadros e áudio, o tamanho do cabeçalho de camada Sync é de 3 bytes. Para quadros de video, o tamanho do cabeçalho de camada Sync é de 4 bytes.
Em uma modalidade, uma modificação para ocabeçalho de camada Sync utili za um bit dos 5 bits.reservados para o indicador de referência (REFERENCE_FLAG)-Com essa modificação, o formato do Cabeçalho de Camada Syncé mostrado na Tabela 5 como a seguir.
Tabela 5
<table>table see original document page 28</column></row><table>
INDICADOR DE REFERENCIA
O REFERENCE_FLAG sinaliza se o quadro de meiosatual é ou não um quadro de referência. Isso é usadodurante reaquisição ou comutação de canal ou modo dereprodução de truque em um dispositivo receptor. Porexemplo, os quadros de não-referência podem ser puladosdurante a decodificação por várias razões tais como no modode avanço rápido ou em complexidade de decodificação deestrangulamento em dispositivos de extremidade inferiore/ou de baixo consumo de energia com capacidades limitadasde exibição ou energia.
Devido à adição do bit REFERENCE_FLAG, os bitsRESERVADOS são agora reduzidos a 4 conforme ilustrado naTabela 5.
Diretórios de Camada SyncÉ de se j ável que os serviços em tempo real se j amflexíveis em relação aos erros. Para melhorar a capacidadede um dispositivo em tolerar os erros, diretórios de camadaSync de áudio e video são enviados para o dispositivoreceptor. Deve ser observado que os diretórios de camadaSync são opcionais. Quando utilizados eles podem sertransmitidos como mensagens de sinalização associadas. Afreqüência de transmissão dos diretórios de camada Synctambém pode ser adaptada à natureza dos erros no sistema decomunicação. Os formatos de diretório de camada Sync deáudio e vídeo são diferentes e eles são descritos abaixo.Diretório de Camada Sync de ÁudioO formato do diretório de camada Sync de áudio éformado na Tabela 6 como a seguir.
Tabela 6
Nome do Campo Tipo do Campo
MESSAGE_ID UINT(8)
MEDIA_TYPE UINT(2)
FELOW_ID UINT(20)
NUM_FRAMES UINT(5)
FIRST_FRAME_PTS UINT (1 4)
LAST_FRAME_PTS UINT (1 4)
RAP_FLAG_BITS NUM_FRAMES*BIT(1)
RESERVADOS BIT(1 . .7)
O que se segue é uma descrição dos camposprovidos no diretório de camada Sync de áudio. Deve serobservado que os campos providos na Tabela 6 representamapenas uma implementação e que o apagamento, modificação ouadição de campos é possível dentro do escopo dasmodalidades.
MESSAGE_ID
O campo MESSAGE_ID identifica o tipo de mensagema ser enviada. Em uma modalidade, o valor do campoMESSAGE_ID é ajustado em AUDIO_SYNC_DIRECTORY(4) .
MEDIA_TYPE
O campo MEDIA_TYPE identifica o tipo de fluxopara o qual o diretório de camada Sync de áudio está sendoenviado. O campo MEDIA_TYPE para "01" (ÁUDIO) para amensagem de diretório de camada Sync de áudio.
FLOW IDO FLOW_ID identifica o fluxo para o qual odiretório de camada Sync de áudio está sendo enviado. UmMLC pode suportar até dois fluxos de áudio. Portanto, oFluxo 0 do MLC pode carregar duas estruturas de diretóriode camada Sync. O campo FLOW_ID identifica a informação dediretório de camada Sync está sendo endereçada. A mensagemde diretório de camada Sync de áudio é especifica para ofluxo especificado por FLOW__ID. Como a mensagem é associadaao fluxo, essa mensagem precisa apenas ser enviada no Fluxo0 do MLC que suporta o fluxo. Desse modo, a mensagem dediretório de camada Sync de áudio é enviada no Fluxo 0associada ao fluxo especificado por FLOW_ID.
NUM_FRAMES
O campo NUM_FRAMES é o número de quadros de áudiopresentes no superquadro.
FIRST__FRAME_PTS
O FIRST_FRAME_PTS é o PTS do primeiro quadro deáudio no superquadro.
IAS T_FRAME_PTS
O LAST_FRAME__PTS é o PTS do último quadro deáudio no superquadro. Desse modo, um dispositivo receptorconhece a taxa de quadros de áudio e, com base nessas duasmarcas de tempo, ele pode interpolar todos os valores PTSdo superquadro atual.
RAP_FLAG_BITS
Os RAP_FLAG_BITS são usados para indicar se umquadro de áudio especifico é um ponto de acesso aleatório.Portanto, existem bits NUM_FRAMES na mensagem. O LSBcorresponde ao primeiro quadro de áudio e o MSB correspondeao último quadro de áudio. Um bit é a j ustado em 1 se oquadro de áudio correspondente for um ponto de acessoaleatório.
RESERVADOSOs bits RESERVADOS são adicionados para alinharem bytes a mensagem. Os bits RESERVADOS da mensagem dediretório de camada Sync de áudio são ajustados em 0.
Diretório de Camada Sync de VídeoO formato do diretório de camada Sync de vídeo émostrado na Tabela 7 conforme a seguir.
Tabela 7
Nome do Campo Tipo do Campo
MESSAGE_ID UINT (8)
MEDIA_TYPE UINT (2)
NÜM_VSL_RECORDS UINT (1)
VSL RECORDs VSL_RECORD_TYPE
RAP FLAG_BITS BIT(60)
B_FRAME_FLAG_BIT S BIT(60)
RESERVADOS BIT (3)
O que se segue é uma descrição dos camposprovidos no diretório de camada Sync de vídeo. Deve serobservado que os campos providos na Tabela 7 representamapenas uma implementação e que o apagamento, modificação,ou adição de campos são possíveis dentro do escopo dasmodalidades.
ME S SAGE_ID
O campo MESSAGE_ID identifica o tipo de mensagemsendo enviado através do Fluxo 0. 0 valor do campoMESSAGE_ID da mensagem de diretório Sync de vídeo éajustado em VIDEO_SYNC_DIRECTORY(5) .
MEDIA_TYPE
O campo MEDIA_TYPE identifica o fluxo para o quala informação de diretório de camada Sync de vídeo estásendo enviado. O campo MEDIA_TYPE é ajustado em "00" paramensagens de diretório de camada Sync de vídeo.
NUM_VSL_RECORDS
O número de VSL_RECORDs presentes na mensagem éNUM_VSL_RECORDS + 1. Em uma modalidade, 2 VSL_RECORDs podemser enviados em uma mensagem Diretório de Camada Sync devideo.
Em outra modalidade, os sinais NUM_VSL_RECORDSseja o registro VSL atual ou não é o último registro VSL.Quando NÜM_VSL_RECORDS = 0, isso indica que existem maisregistros VSL que vêm a seguir. Quando NUM_VSL_RECORDS = 1,isso indica que o registro atual é o último dos registrosVSL no diretório Sync de video.
VSL_RECORD
Um VSL_RECORD é enviado na mensagem para cadataxa de quadro usada dentro do superquadro. O formato doVSL_RECORD é especificado na Tabela 8 conforme a seguir.
Tabela 8<table>table see original document page 32</column></row><table>
FRAME_RATE
O campo FRAME_RATE prove a informação de taxa dequadro. A Tabela 4 especifica os valores para o campoFRAME_RATE. Os quadros de video podem ser enviados em taxasde quadros múltiplos dentro de um superquadro. Essesvalores de taxa de quadros são especificados naVSL_RECORDS.
NUM_FRAMES
O campo NUM_FRAMES indica o número de quadros nataxa de quadros especificada pelo campo FRAME_RATE.
FIRST_FRAME_PTSO campo FIRST_FRAME_PTS é o PTS do primeiroquadro de video do bloco de quadros na taxa de quadrosespecificada por FRAME_RATE.
LAS T_FRAME_P T SO campo LAST_FRAME_PTS é o PTS do último quadrode video do bloco de quadros na taxa de quadrosespecificada por FRAME_RATE.
RAP_FLAG_BITS
A mensagem de diretório Sync de video contém 60RAP_FLAG_BITS correspondendo a um máximo de 60 quadros devideo em um superquadro. O comprimento do padrão de bitspara RAP_FLAG_BITS corresponde à taxa de quadro maiorespecificada no campo FPS. Um bit RAP da mensagem dediretório de camada Sync de Video é a j ustado em 1 se oquadro de video correspondente for um ponto de acessoaleatório. Caso contrário, o bit é ajustado em 0. O LSBcorresponde ao primeiro quadro de video e o MSB correspondeao último quadro de video.
B_FRAME_FLAG_BITS
A mensagem de diretório Sync de video contém 60B_FRAME_FLAG_BITS correspondendo a um máximo de 60 quadrosde video em um superquadro. O comprimento do padrão de bitspara RAP_FLAG_BITS corresponde à taxa de quadros maiorespecificada no campo FPS. O B_FRAME_FLAG_BIT da mensagemde diretório de camadas Sync de Video é ajustado em 1 se oquadro de video correspondente for um b-quadro. Casocontrário, o bit é ajustado em 0. O LSB corresponde aoprimeiro quadro de video e o MSB corresponde ao últimoquadro de video.
RESERVADOS
Os bits RESERVADOS são usados para alinhar embyte a mensagem de diretório de camada Sync de video. Os 3bits RESERVADOS da mensagem de diretório de camada Sync deVideo são incluídos quando o campo NUM_VSL_RECORDS éajustado em 1. Se incluídos, os bits RESERVADOS na mensagemde diretório de camada Sync de video são ajustados em 0. Amensagem de diretório de camada Sync de video é especificapara o fluxo de video. Como a mensagem é associada aofluxo, essa mensagem é enviada no Fluxo 0 do MLC quesuporta o fluxo. Desse modo, a mensagem de diretório decamada Sync de video é enviada no Fluxo 0 associado aofluxo no qual os dados de video são enviados.
Protocolos de Camada de Transporte
Muitos dos serviços providos pelo sistema dedistribuição requerem a entrega de "pacotes" a partir doservidor para o dispositivo. Por exemplo, para video emtempo real, o servidor envia múltiplos quadros de video emcada superquadro. Esses quadros de video podem ser detamanhos diferentes. Portanto, é conveniente ter uma formade eficientemente empacotar esses pacotes de camadasuperior em um fluxo. Também é necessário um mecanismo paradeterminar os limites desses pacotes na presença de erros.Essas funções são providas pela camada de transporte, aqual é descrita nas seguintes seções.
Operação de Camada Inferior
Para entender melhor a operação da camada deTransporte, é provida uma descrição resumida da operaçãodas camadas inferiores (isto é, camadas de Fluxo, MAC, eFisica) . '
A Figura 8 mostra um diagrama que ilustra aoperação das camadas de Fluxo, MAC, e Fisica em um sistemade empacotamento. Em uma modalidade, os protocolos dacamada superior utilizam os serviços da camada de FluxoContinuo. Uma função principal da camada de Fluxo Continuoé multiplexar os dados de fluxos em MLCs. Pelo lado doservidor, as camadas superiores 802 fornecem uma seqüênciade bytes pertencentes a um fluxo da camada de FluxoContinuo 804. A camada de Fluxo Continuo 804 envia essaseqüência de bytes para a camada MAC 806. A camada MAC 806fragmenta a seqüência de bytes em pacotes de camada MAC.Existe uma correspondência de um para um entre um pacote decamada MAC e um pacote de camada Física. Por exemplo, ospacotes de camada Física (PLPs) têm 122 bytes decomprimento. Esses PLPs são enviados a um dispositivoatravés da camada Física.
Protocolos de Soma de Verificação e Enquadramento
Em uma modalidade, a camada de Transportecompreende um protocolo de Enquadramento e um protocolo deSoma de Verificação. Os protocolos da camada de Transporteoperam para prover uma ou mais das seguintes funções.
1. Prover uma interface de "pacote" para a camada deAplicação: Pelo lado do servidor, o protocolo deEnquadramento fragmenta um pacote de camada deAplicação (ou simplesmente, pacote) em blocos menoresque são enviados através da camada de Fluxo Contínuo.Quando esses blocos de camada de Fluxo Contínuo (ousimplesmente, blocos) são recebidos por umdispositivo, o protocolo de Enquadramento especificaregras para combinar os mesmos para criar pacotes aserem fornecidos às camadas superiores no dispositivoreceptor.
2. Lidar com erros de bloco de camada de Fluxo Contínuono dispositivo: Quando as camadas inferiores fornecemdados à camada de Transporte, o protocolo de soma deverificação adiciona indicações de erro se houversuspeita de que os blocos estão em erro. O protocolode Enquadramento especifica regras para lidar comerros de blocos e o comportamento resultante que podeser esperado pelas camadas superiores.
3. Prover uma interface para as camadas inferioresincluindo as camadas CAS, Fluxo Contínuo, MAC eFísica.
Fragmentação de PacotesNo servidor, a camada superior (isto é, camada deAplicação) comanda a camada de Transporte ou Enquadramentopara enviar dados através de um fluxo especifico. 0 comandocontém os seguintes parâmetros.
1. 0 ID de fluxo no qual os dados devem ser enviados.
2. 0 número de pacotes a serem enviados.
3. Para cada pacote, a camada superior envia seucomprimento junto com o seu conteúdo.
Em cada superquadro, a camada MAC determina onúmero máximo de pacotes de camada MAC que podem serenviados para cada MLC no sistema ou o número de pacotes decamada MAC a serem enviados para cada MLC correspondendo aoserviço (por intermédio, por exemplo, de um algoritmo deprogramação). Esses pacotes de camada MAC correspondem aosPLPs de 122 bytes. A camada de Fluxo Continuo utiliza essainformação para determinar o número máximo de blocos decamada de Fluxo Continuo que podem ser enviados para cadafluxo de um MLC. Cada bloco de camada de Fluxo Continuoenvia uma indicação para a camada de Transporte com relaçãoao número máximo de blocos de camada de Fluxo Continuo quepodem ser enviados naquele superquadro. Com base nessainformação, o protocolo de Enquadramento da camada deTransporte opera para fragmentar os pacotes de camada deaplicação em blocos e envia os mesmos através do FluxoContinuo correspondendo ao fluxo solicitado.
A Figura 9 mostra um esquema de fragmentação paraum único pacote provido por uma modalidade do protocolo deEnquadramento. Por exemplo, o pacote 902 recebido a partirdas camadas superiores (isto é, camada Sync) tem um tamanhode 484 bytes. Em uma modalidade, o pacote 902 é fragmentadoem quatro fragmentos 904 de 121 bytes. Um Cabeçalho deEnquadramento de um byte (FH) é adicionado a cada fragmentoe cada fragmento é enviado como um bloco de camada de FluxoContinuo de 122 bytes para a camada de Fluxo Continuo.A Figura 10 ilustra como uma modalidade de umprotocolo de Enquadramento opera para fragmentar doispacotes. O primeiro pacote tem 200 bytes de comprimento e osegundo pacote tem 283 bytes de comprimento. O primeiropacote é fragmentado em duas partes. O primeiro fragmentotem 121 bytes de comprimento e um cabeçalho de 1 byte éadicionado para criar um Bloco 1002 de 122 bytes. O segundofragmento tem 7 9 bytes de comprimento. Um cabeçalho de 1byte é adicionado para utilizar até 80 bytes de 122 bytesdisponíveis no segundo Bloco 1004 de camada de fluxocontinuo. Um fragmento com um tamanho de 41 bytes éretirado do segundo pacote e um cabeçalho de 1 byte éadicionado a esse fragmento para gerar 42 bytes de dados.Os 80 bytes do primeiro pacote e os 42 bytes do segundopacote são concatenados para formar os 122 bytes do segundoBloco 1004. Os 242 bytes restantes do segundo pacote sãofragmentados em dois fragmentos cada um deles de 121 bytes.Como anteriormente, um cabeçalho de 1 byte é adicionado acada um desses fragmentos para formar Blocos de 122 bytes(1006 e 1008) .
A Figura 11 ilustra como uma modalidade de umprotocolo de Enquadramento opera para fragmentar um pacotede camada superior de 200 bytes de tamanho em duas partes.A primeira parte tem 121 bytes de comprimento e a segundatem 7 9 bytes de comprimento. Um cabeçalho de quadro de 1byte é adicionado ao primeiro fragmento para produzir umBloco 1102 de 122 bytes. Outro cabeçalho de 1 byte éadicionado ao segundo fragmento. Além disso, outro campoindicador de 1 byte, e 41 bytes de enchimento, é adicionadopara criar o segundo Bloco 1104.
Como descrito anteriormente, um Cabeçalho deQuadro de 1 byte é adicionado antes de cada fragmento. Oformato do cabeçalho de quadro de 1 byte é descrito nasseções a seguir.
Formato de Cabeçalho de QuadroO formato do Cabeçalho de Quadro é especificadona Tabela 9 como a seguir.<table>table see original document page 38</column></row><table>O campo indica o número de bytes do pacote decamada superior presente em um fragmento. A faixa para ocampo COMPRIMENTO é de 0 a 121 inclusive, (isto é, 7A e 7Fhexa). Outros valores são reservados.
ULTIMO
O ÚLTIMO bit indica se o fragmento atual é oúltimo fragmento do pacote de camada superior. O ÚLTIMO bité ajustado em 1 para indicar que o fragmento atual é oúltimo fragmento pertencendo a um pacote. 0 ÚLTIMO bit éa j ustado em 0 se o fragmento atual não for o últimofragmento pertencendo a um pacote.
Com referência outra vez à Figura 9, o primeirobyte em cada um dos três blocos são os Cabeçalhos deQuadro. Esses Cabeçalhos de Quadro terão um campoCOMPRIMENTO ajustado em 121 e o ÚLTIMO bit ajustado em 0. Oprimeiro byte do quarto bloco também é um Cabeçalho deQuadro cujo campo COMPRIMENTO é ajustado em 121 e o ÚLTIMObit ajustado em 1.
Com referência outra vez à Figura 10, o primeirobyte dos blocos 1 e 3 são Cabeçalhos de Quadro com campoCOMPRIMENTO ajustado em 121 e o ÚLTIMO bit ajustado em 0. Oprimeiro byte do bloco 4 também é um Cabeçalho de Quadrocom campo COMPRIMENTO ajustado em 121 e o ÚLTIMO bitajustado em 1. O primeiro byte do bloco 2 é um Cabeçalho deQuadro com campo COMPRIMENTO ajustado em 79 e o ÚLTIMO bitajustado em 1. Isso indica que um segundo Cabeçalho deQuadro está presente no bloco em um deslocamento de 80bytes (79 bytes para o fragmento acrescido de 1 byte para oCabeçalho de Quadro). Esse Cabeçalho de Quadro terá umcampo COMPRIMENTO ajustado em 41 e o ÚLTIMO bit ajustado em0.
Indicação de Último Pacote
Com referência outra vez à Figura 11, o pacote de2 00 bytes foi fragmentado em um fragmento de 121 bytes e umfragmento de 7 9 bytes. A adição do Cabeçalho de Quadro aosegundo fragmento utiliza 80 bytes dos 122 bytes do bloco.Outro cabeçalho de quadro de 1 byte e 41 bytes deenchimento é adicionado para preencher o segundo bloco.
O ÚLTIMO bit é ajustado em 1 e o campoCOMPRIMENTO é ajustado em 127 (7F hexa) para indicar que orestante dos bytes em um bloco são bytes de enchimento. Osbytes de enchimento de um bloco são ajustados em um valorde 0. Se o ÚLTIMO bit é ajustado em 0, a faixa de valorespara o campo COMPRIMENTO é de 1 a 121.
Condição de COMPRIMENTO = 0
Supondo que a camada de aplicação tem doispacotes a serem enviados em um fluxo especifico, e que otamanho do primeiro pacote é de 120 bytes e o tamanho dosegundo pacote é de 100 bytes. Quando o primeiro pacote éfragmentado, o servidor' adiciona um Cabeçalho de Quadro de1 byte e coloca os 12 0 bytes do primeiro pacote no bloco.Como o tamanho do bloco é de 122 bytes, haverá 1 byterestante. Nesse caso, o servidor adicionará um Cabeçalho deQuadro e ajustará o campo COMPRIMENTO em 0 e o ÚLTIMO bitem 0 para indicar que não há bytes pertencendo ao segundopacote no bloco atual.
Se o Cabeçalho de Quadro for inserido no últimobyte de um bloco, o campo COMPRIMENTO é ajustado em 0. Seum Cabeçalho de Quadro for inserido em um bloco e ele nãofor o último byte, o campo COMPRIMENTO é ajustado em 0 paraindicar que o byte imediatamente após ele também é umCabeçalho de Quadro.
Modo de FragmentaçãoPara um Serviço Datacast IP, os pacotes de camadasuperior podem ser fragmentados em blocos que aparecem emdois superquadros diferentes. Por exemplo, com referênciaoutra vez à Figura 10, os blocos 1 e 2 poderiam serenviados em um super quadro e o bloco 3 e 4 poderiam serenviados em um superquadro subseqüente. Alternativamente,para reduzir às exigências de armazenamento para serviçosem tempo real, apenas os pacotes de camada superiorcompleto são enviados em um superquadro. Isso quer dizerque a fragmentação não ocorre através dos limites desuperquadro. Em uma modalidade, o protocolo deEnquadramento pode ser configurado para estar em um dosseguintes dois modos.Fragmentação Permitida através de Limites de SuperquadrosNesse modo, o protocolo de Fragmentação permiteque ocorra fragmentação através dos limites de superquadro.Fragmentação Não-Permitida através de Limites deSuperquadros
Nesse modo, o protocolo de Enquadramento nãopermite que ocorra fragmentação através dos limites desuperquadro.
Lidando com Enchimento de Subfluxo Base e de
AperfeiçoamentoAlguns fluxos no sistema são configurados parasuportar o modo de transmissão em camadas através da camadaFisica. As duas camadas de transmissão são chamadas deCamada Base e Camada de Aperfeiçoamento. Do ponto de vistada camada de Transporte, tais fluxos têm dois subfluxos, osubfluxo Base e o subfluxo de Aperfeiçoamento. Em umamodalidade, uma restrição é imposta pela camada Fisica detal modo que o número de blocos enviados em um super quadroatravés dos subfluxos de Base e de Aperfeiçoamento deve seridêntico. Em uma modalidade, o protocolo de Enquadramentona camada de Transporte implementa essa restrição.
Será suposto que a Camada de Aplicação enviaquantidades diferentes de dados através dos subfluxos deBase e de Aperfeiçoamento e que eles se fragmentam em umnúmero diferente de blocos. Em uma modalidade, o protocolode Enquadramento adicionará blocos de enchimento aosubfluxo o qual tem o menor número de blocos para tornarigual o número de blocos dos dois subfluxos.
Se blocos de enchimento forem adicionados a umsubfluxo, o ÚLTIMO bit do Cabeçalho de Quadro de cada blocode enchimento é ajustado em um valor de 1. Se os blocos deenchimento são adicionados a um subfluxo, o campoCOMPRIMENTO do Cabeçalho de Quadro de cada bloco deenchimento é a j ustado em um valor de 127. Se os blocos deenchimento forem adicionados a um subfluxo, o valor dosbytes de enchimento de cada bloco de enchimento é ajustadoem 0 .
A Figura 12 mostra uma modalidade de um método1200 para prover um sistema de empacotamento. Por exemplo,o método 12 0 0 é adequado para uso pelo servidor 2 00mostrado na Figura 2. Para clareza, o método 1200 serádiscutido com referência aos protocolos de empacotamento ecamadas descritas acima.
No bloco 1202, os pacotes de conteúdo são obtidospara distribuição em uma rede de distribuição. Por exemplo,conteúdo é introduzido em uma camada de Conteúdo em temporeal provida com uma camada de aplicação. A camada deconteúdo opera para codificar o conteúdo e produzir ospacotes de conteúdo. Por exemplo, em uma modalidade, acamada de conteúdo é a camada de conteúdo 502 mostrada naFigura 5.
No bloco 1204, os pacotes Sync são produzidos.Por exemplo, em uma modalidade, os pacotes de Conteúdo sãointroduzidos em uma camada Sync que opera para inserir umcabeçalho Sync para produzir os pacotes Sync. Em umamodalidade, a camada Sync é a camada Sync 504 mostrada naFigura 5 e opera de acordo com a descrição da camada Syncprovida com referência à Figura 7.
No bloco 1206, os pacotes Sync são fragmentadosem blocos e o Cabeçalho de Quadro é adicionado. Em umamodalidade, a fragmentação é realizada por uma camada deTransporte. Por exemplo, a camada de Transporte 410 operapara fragmentar os pacotes Sync e adicionar um Cabeçalho deQuadro conforme descrito com referência à Figura 10.
No bloco 1208, os blocos são enviados para ascamadas inferiores. Por exemplo, os blocos produzidos nobloco 1206 são enviados para as camadas de Fluxo, MAC, eFisica conforme ilustrado e descrito com referência àFigura 8 .
No bloco 1210, os blocos são transmitidos atravésde uma rede de distribuição para um ou mais dispositivosreceptores. Por exemplo, os PLPs derivados dos blocosfragmentados são transmitidos através de uma camada Fisicaque compreende a rede de distribuição 1006. Dispositivos,tal como o dispositivo 102, os quais estão em conexão com arede de distribuição 106, podem então receber os PLPs.
Desse modo, o método 1200 prove uma modalidade deum sistema de empacotamento para distribuir conteúdoatravés de uma rede de distribuição. Deve ser observado queo método 1200 representa apenas uma implementação e asalterações, adições, apagamentos, combinações ou outrasmodificações do método 1200 são possíveis dentro do escopodas modalidades.
PROCESSAMENTO DE DISPOSITIVO
Em uma modalidade, um dispositivo receptorrepresenta um dispositivo que pode ser ativado para receberserviços através da rede. 0 serviço tem um receptorintegrado que permite que ele receba a forma de onda FLO eoutros recursos (por exemplo, qualidade de áudio e video,capacidade computacional. e de armazenamento) necessáriospara renderizar o conteúdo de multimídia de alta qualidade.Além disso, o dispositivo é integrado em uma plataformamóvel multifuncional com capacidade de dados IP sem fio.Essa capacidade é usada para operações orientadas paratransação que podem ser realizadas através de qualquerconexão IP sem foi (por exemplo, CDMA2000, Otimizada deDados de Evolução [lxEV-DO] ou WCDMA).
Descoberta de.Serviço
A Informação de Sistema (SI) descreve a lista deServiços disponíveis em tempo real, em tempo não-real, eDatacast IP. Ele relaciona os serviços disponíveis e otitulo e classificação das apresentações disponíveis paravisualização nesses Serviços. O SI também carregainformação sobre os fluxos de cada serviço e seus tipos demidia (video, áudio, texto etc.). O dispositivo receptorpode descobrir a lista de serviços disponíveis a partir doSI.
Conceito de EntregaAs etapas realizadas por um dispositivo parareceber um serviço em tempo real são como a seguir:
1. O usuário seleciona um serviço a partir do Guia dePrograma UI no dispositivo.
2. O dispositivo determina os IDs de fluxo associados aoserviço selecionado a partir do SI atual.
3. O dispositivo inicia a Pilha de Protocolo e configuraa mesma com o ID(s) de fluxo, as Chaves de Serviço, einformação de configuração para o serviço selecionado.
4 . A Pilha de Protocolo recebe os dados através dos IDsde fluxo apropriados e realiza decriptografia edesenquadramento (isto é, desempacotamento).
5. A Pilha de Protocolo passa os dados recebidos para odecodificador de áudio ou video.
6. O decodificador processa os dados recebidos e reproduzos mesmos utilizando um dispositivo de reprodução demidia selecionado.
Suporte de Serviço em Tempo RealO sistema de empacotamento suporta um ou maisprovedores de conteúdo de serviço em tempo real quefornecem fluxos contínuos de conteúdo ao servidor.
A Figura 13 mostra um diagrama que ilustrasuporte de serviço em tempo real para uso em um sistema deempacotamento. Por exemplo, um provedor de conteúdo podefornecer fluxos de video e áudio ao servidor 104 mostradona Figura 1. As funções a seguir são então realizadas.
1. O servidor transcodifica os fluxos contínuos de videoe áudio recebidos em formatos de codificaçãoespecíficos.
2. O servidor multicast esses fluxos contínuos de áudio evideo através da rede.
3. Os dispositivos receptores interessados em um serviçoem tempo real "sintonizam" nos fluxos apropriados ereproduzem os fluxos contínuos recebidos.
A Figura 14 mostra uma modalidade de umdispositivo 1400 adequado para uso em um sistema deempacotamento. Por exemplo, o dispositivo 1400 pode serusado como o dispositivo 102 na Figura 1. 0 dispositivo1400 compreende lógica de desempacotamento 1402, lógica deentrada 1404, e lógica de renderização 1406, todasacopladas a um barramento de dados 1408. Deve ser observadoque o dispositivo 1400 representa apenas uma implementaçãoe que outras implementações são possíveis dentro do escopodas modalidades. Por exemplo, o dispositivo 1400 podecompreender pelo menos um processador configurado paraexecuta uma ou mais instruções de programa para prover asfunções do sistema de empacotamento aqui descrito.
Em uma ou mais modalidades, a lógica dedesempacotamento 1402 compreende uma CPU, processador,arranjo de portas, lógica de hardware, elementos dememória, máquina virtual, software, e/ou qualquercombinação de hardware e software. Desse modo, a lógica dedesempacotamento 1402 geralmente compreende lógica paraexecutar instruções legíveis por máquina e para controlarum ou mais de outros elementos funcionais do dispositivo1400 por intermédio do barramento de dados 1408. A lógicade entrada 1404 compreende hardware e/ou software que operapara permitir que o dispositivo 1400 receba conteúdoempacotado a partir de uma rede de distribuição através docanal de comunicação 14 . Por exemplo, em uma modalidade,o canal de comunicação 1410 compreende qualquer tipoadequado de link de comunicação para permitir que odispositivo 1400 se comunique diretamente com os servidoresou com uma ou mais redes de dados e/ou dispositivosacoplados àquelas redes de dados. Por exemplo, o canal decomunicação 1410 prove um canal unicast, multicast,broadcast, ou qualquer outro tipo de canal de comunicaçãoque permite que o dispositivo 1400 receba conteúdoempacotado através de uma rede de distribuição.
A lógica de renderização 1406 compreende hardwaree/ou software que opera para permitir que o dispositivo1400 renderize o conteúdo recebido. Por exemplo, em umamodalidade, conteúdo empacotado recebido pode representarinformação de áudio ou video que pode ser renderizado pelalógica de renderização 1406.
Durante operação de uma modalidade, o conteúdoempacotado e recebido na lógica de entrada 1404 através docanal de entrada 1410. A lógica desempacotada 1402 operapara prover camadas de protocolo através das quais oconteúdo empacotado recebido é desempacotado. Em umamodalidade, a lógica de desempacotamento 1402 opera paraprover uma ou mais camadas de protocolo que são usadas paraprocessar Cabeçalhos Sync, Cabeçalhos de Quadros, marcas detempo de apresentação, e somas de verificação incluídas noconteúdo empacotado. As camadas de protocolo operam parareverter um processo de empacotamento para extrair conteúdode áudio e video a partir dos pacotes recebidos. Umadescrição mais detalhada da lógica de desempacotamento 1402e as funções realizadas pelas camadas de protocolo sãoprovidas em outras seções desse documento.
Em uma modalidade, o sistema de empacotamentocompreende um programa de computador tendo uma ou maisinstruções de programa ("instruções") armazenadas em ummeio legivel por computador, o qual quando executado porpelo menos um processador, por exemplo, a lógica dedesempacotamento 1402, prove as funções do sistema deempacotamento descrito aqui. Por exemplo, as instruçõespodem ser carregadas no dispositivo 1400, a partir dosmeios legíveis por computador, como: disquete, CD-ROM,cartão de memória, dispositivo de memória FLASH, RAM, ROM,ou qualquer outro tipo de dispositivo de memória ou meiolegivel por computador que estabelece interface com odispositivo 1400. Em outra modalidade, as instruções podemser transferidas para o dispositivo 1400 a partir de umdispositivo externo ou recurso de rede que estabeleceinterface com o dispositivo 1400. As instruções, quandoexecutadas pela lógica de desempacotamento 14 02,proporcionam uma ou mais modalidades de um sistema deempacotamento conforme aqui descrito.
Desse modo, o dispositivo 14 00 opera para provermodalidades de um sistema de empacotamento paradesempacotar eficientemente os fluxos de conteúdomultiplexados recebidos através de uma rede de distribuiçãopara obter conteúdo que é renderizado no dispositivo.
A Figura 15 mostra um exemplo de fluxo decontrole e dados em um dispositivo receptor para receber umserviço em tempo real em um sistema de empacotamento. Osfluxos de video e áudio são recebidos em dois MLCsdiferentes. Supõe-se que uma chave de trabalhocriptografada é entregue no Fluxo Continuo 0 do MLCs. Osfluxos de video e áudio são processados pelas camadas eprotocolos de um sistema de empacotamento de tal modo que oconteúdo de video e áudio pode ser renderizado nodispositivo. Por exemplo, em uma modalidade, as camadas eos protocolos são implementados pela lógica dedesempacotamento 14 02.
Remontagem de Pacote no Dispositivo
O protocolo de Enquadramento da camada deTransporte que é implementada pela lógica dedesempacotamento 1402 no dispositivo remonta os pacotes decamada de Aplicação a partir dos blocos de camada de Fluxocontinuo recebidos. Para cada bloco recebido, o dispositivolê o primeiro byte (o Cabeçalho de Enquadramento) . O campoCOMPRIMENTO indica o número de bytes no bloco pertencendoao pacote de camada superior. O ÚLTIMO bit indica se ofragmento atual é o último fragmento do pacote de camadasuperior. Se o ÚLTIMO bit é a j ustado em 1, então todos osfragmentos do pacote foram recebidos. O protocolo deEnquadramento pode entregar os bytes recebidos à camadasuperior como um pacote completo. Ele também pode entregarinformação sobre o comprimento do pacote remontado àscamadas superiores.
A Figura 16 ilustra como uma modalidade de umsistema de empacotamento opera em um dispositivo paraprocessar três blocos recebidos que contêm dois pacotes decamada de Aplicação. Os 121 bytes do primeiro bloco juntocom os 79 bytes do segundo bloco formam o primeiro pacote1602. O ÚLTIMO bit do primeiro Cabeçalho de Quadro dosegundo bloco é ajustado em 1 para indicar que ele é oÚLTIMO fragmento do pacote. 0 segundo Cabeçalho de Quadrono segundo bloco tem o campo COMPRIMENTO ajustado em 41 e oÚLTIMO bit ajustado em 0. Esse fragmento é o inicio dosegundo pacote 1604. O primeiro cabeçalho de quadro doterceiro bloco tem um campo COMPRIMENTO ajustado em 40 e oÚLTIMO bit ajustado em 1. O dispositivo pode remontar os 81bytes no segundo pacote a partir do segundo e terceiroblocos. O segundo cabeçalho de quadro no terceiro bloco temo campo COMPRIMENTO ajustado em 127 e o ÚLTIMO bit ajustadoem 1 indicando que o restante dos bytes são bytes deENCHIMENTO.
Tratamento de Erro
Uma tarefa importante da camada de Transporte é otratamento de PLPs errôneos. A camada Fluxo Continuosubj acente marca certos blocos como errôneos se averificação de CRC de camada inferior falhar. O que sesegue descreve as regras a serem seguidas pela camada deTransporte para processar esses blocos errôneos.
Quando a camada Fluxo Continuo marca um blococomo errôneo, não se pode confiar em nenhum de seusconteúdos. Portanto, a camada de Transporte pode suporalgum valor padrão para o Cabeçalho de Quadros- A camada deTransporte no dispositivo deverá assumir que o Cabeçalho deQuadros (o primeiro byte) de um bloco errôneo tem o ÚLTIMObit ajustado em 0 e o campo COMPRIMENTO ajustado em 121.Isto é, a camada de transporte supõe que o bloco pertence aum pacote de camada superior j á sendo remontado ou se nãohouver tal pacote, o primeiro fragmento de tal pacote. Acamada de Transporte continua então a processar os outrosblocos e remontar de acordo os pacotes de camada superior.Além disso, a camada de Transporte marca um pacote decamada superior como "errôneo"' se pelo menos um fragmentodaquele pacote foi recebido em um bloco que era errôneo.
A Figura 17 mostra a operação de um sistema deempacotamento onde uma camada de Fluxo Continuo indica queum primeiro bloco tinha erros. Nesse caso, a camada detransporte processa os blocos supondo que o primeiroCabeçalho de Quadros tem o ÚLTIMO bit ajustado em 0 e ocampo COMPRIMENTO aj ustado em 121. Nesse caso, o valorpreestabelecido suposto pela camada de transporte é o valorreal. A camada de Transporte também marca o pacote decamada superior reconstruído como errôneo.
A Figura 18 mostra operação de um sistema deempacotamento onde uma camada de Fluxo Continuo indica queum segundo bloco recebido 1802 está em erro. Como descritoanteriormente, a camada de Transporte supõe que o Cabeçalhode Quadros desse bloco errôneo tem o ÚLTIMO bit ajustado em0 e o campo COMPRIMENTO ajustado em 121. Ele então continuaa processar o restante dos blocos. O pacote de camadasuperior reconstruído é marcado como errôneo pela camada deTransporte. Conforme mostrado na Figura 18, o segundo bloco1802 contém na realidade fragmentos de dois pacotes decamada superior. Contudo, a camada de transporte forneceapenas um pacote de camada superior contendo ambos. Alémdisso, o segundo Cabeçalho de Quadros no segundo blocotambém estará presente no pacote de camada superior porquea camada de transporte não pode achar os limites de pacotee detectar esse Cabeçalho de Quadros.
Tratando Erros no Último Bloco de um Superquadro
A Figura 19 mostra a operação de um sistema deempacotamento onde uma camada de Fluxo Continuo marca oúltimo bloco de um superquadro como estando em erro. 0comportamento da camada de Transporte no dispositivo édiferente dependendo do modo do protocolo de Enquadramento.Se o modo do protocolo de Enquadramento permitefragmentação através de limites de superquadro, então acamada de Transporte no dispositivo tratará isso da mesmaforma como descrito anteriormente. Isto é, ela supõe que oCabeçalho de Quadros tem o ÚLTIMO bit a j ustado em 0 e ocampo COMPRIMENTO ajustado em 121. A camada de Transportecontinuará a processar os blocos recebidos em superquadrossubseqüentes utilizando essa suposição. Nesse caso, ocomportamento resultante da camada de Transporte é similarao caso onde ocorre um erro em qualquer outro bloco.
Se o último bloco de um superquadro for marcadocomo estando em erro e o modo do protocolo de Enquadramentonão permite fragmentação através dos limites desuperquadro, a camada de Transporte no dispositivo supõeque o Cabeçalho de Quadros (o primeiro byte) tem o ÚLTIMObit ajustado em 1 e o campo COMPRIMENTO ajustado em 121.
Se o último bloco de um superquadro é marcadocomo estando em erro e o modo do protocolo de Enquadramentopermite fragmentação através dos limites de superquadro, acamada de Transporte no dispositivo deverá supor que oCabeçalho de Quadros (o primeiro byte) tem o ÚLTIMO bitajustado em 0 e o campo COMPRIMENTO ajustado em 121.
A camada de Transporte então reconstruirá opacote de camada superior 1902 e marcará o mesmo comoerrôneo conforme mostrado na Figura 19. Nesse caso, opacote de camada superior reconstruído pode conter dadosadicionais incluindo bytes de Enchimento, Cabeçalhos deQuadro, e pacotes completos.
Se o modo do protocolo de Enquadramento permitefragmentação através de limites de superquadro, a camada deTransporte descarta o pacote de camada superior incompleto(se presente) se o restante dos blocos não for recebidodentro de um periodo de tempo selecionado (Tfrag) •
Tratando com Valores Ilegais do Campo COMPRIMENTO
Se o campo COMPRIMENTO do Cabeçalho de Quadrosfor ajustado em um valor fora da faixa válida e o bloco nãoestiver marcado como estando em erro, o dispositivo deveráconsiderar esse bloco como estando em erro e processar omesmo de acordo.
Protocolo de Diretório de Enquadramento
Conforme descrito acima, o protocolo deEnquadramento permite que pacotes errôneos sejam entreguesà camada de aplicação com uma indicação de erro apropriada.
A Figura 20 mostra a operação de um sistema deempacotamento onde uma camada de Fluxo Continuo entregatrês blocos à camada de Transporte. Desses, o segundo bloco2002 é marcado como estando errôneo. O processamento padrãopelo protocolo de Enquadramento para blocos errôneos foidescrito na seção anterior. O protocolo de Enquadramentoremontará os três blocos em um pacote 2004 e marcará osmesmos como errôneos. Observar que o pacote resultante temos bytes de dados a partir do segundo bloco assim como oCabeçalho de Quadros médio presente no segundo bloco.
Em uma modalidade, uma mensagem de protocolo deDiretório de Enquadramento de camada de Transporte éprovida por certa informação de sinalização extra enviadano Fluxo Continuo 0 para prover robustez adicional de errono dispositivo. A mensagem de protocolo de Diretório deEnquadramento de camada de Transporte contém informaçãosobre os limites de pacote que permitem que o dispositivodetecte o Cabecalho de Quadros extra que foi inserido eremova o mesmo. O dispositivo pode então fornecer doispacotes de camada de Transporte para a aplicação e marcarambos como errôneos.
Estrutura do Diretório de EnquadramentoO formato da mensagem de protocolo de Diretóriode Enquadramento é especificado na Tabela 10 conforme sesegue.<table>table see original document page 52</column></row><table>O campo MESSAGE_ID é usado para indicar que amensagem é uma mensagem de Diretório de Enquadramento. Paraas mensagens de Diretório de Enquadramento, o campoMESSAGE_1D é ajustado em FRAMING_DIRECTORY(3) .
FLOW_ID
Esse campo representa o identificador de fluxopara o qual a mensagem Diretório de Enquadramento estásendo enviada. A mensagem Diretório de Enquadramento éespecifica para o fluxo especificado por FLOW_ID, Como amensagem é associada ao fluxo, o servidor envia essamensagem apenas no Fluxo Continuo 0 do MLC que suporta ofluxo. O servidor envia a mensagem Diretório de Enquadramento no Fluxo Continuo 0 associado ao fluxo especificado por FLOW_ID.
SIZE_OF_BLOCK_OFFSET
Esse campo representa o tamanho (em bits) do campo BLOCK_OFFSET usado na mensagem. O campo SIZE_OF_BLOCK_OFFSET é ajustado em um valor entre 1 e 15.
NUMBER_OF_PACKETS
Esse campo indica o número de pacotes sendo enviados no superquadro atual para o ID de fluxo especificado.
DIRECTORY_RECORDS
Existem instâncias NUMBER_OF_PACKETS de
DIRECTORY_RECORDS. Cada registro indica onde terminam os pacotes de camada de Aplicação. O formato do DIRECTORY_RECORDS especificado na Tabela 11 como a seguir.
Tabela 11
<table>table see original document page 53</column></row><table>BLOCK_OFFSET
Para o primeiro DIRECTORY_RECORD na mensagem, o campo BLOCK_OFFSET é o número de blocos (a partir do inicio) onde o primeiro limite de fim de pacote está presente. Para DIRECTORY_RECORDS subseqüentes, o BLOCK_OFFSET é o número de blocos em relação ao bloco anterior onde um limite de fim de pacote estava presente. O número de bits do campo BLOCK_OFFSET é dado pelo campo SIZE_OF_BLOCK_OFFSET da mensagem. Por exemplo, suponha que SIZE_OF_BLOCK_OFFSET é ajustado em 2. Isso significa que o número de bits usado para representar o campo BLOCK_OFFSET é 2. Distâncias entre Blocos podem variar de 0 a 3.
BYTE OFFSETEsse campo é o número de bytes dentro do bloco onde o pacote termina. A faixa válida do campo BYTE_OFFSET é de 1 a 121.
RESERVADOS
Os bits RESERVADOS são adicionados para fazer a mensagem Diretório de Enquadramento, alinhada em bytes. Os bits RESERVADOS, na mensagem Diretório de Enquadramento, são ajustados em 0. O mecanismo de Diretório de Enquadramento é usado quando o modo de protocolo de enquadramento não permite fragmentação através de limites de superquadro. Um exemplo da estrutura de Diretório de Enquadramento para a fragmentação mostrada na Figura 18 é provido na Tabela 12 como a seguir.
Tabela 12
<table>table see original document page 54</column></row><table>
A Figura 21 mostra a operação de um sistema de empacotamento onde informação de diretório de Enquadramento é usada em um dispositivo receptor para detectar que existe um limite de pacote no byte 40 de um segundo bloco. O dispositivo pode então remover o Cabeçalho de Quadros e entregar dois pacotes de camada de Transporte marcados como errôneos.
Se blocos de enchimento forem adicionados aos subfluxos de Base ou de Aperfeiçoamento, o Diretório de Enquadramento deverá marcar o limite final de último pacote válido e tratar o restante dos bytes como um pacote de enchimento. O pacote de enchimento recuperado a partir de um subfluxo será descartado pelo protocolo de Enquadramento.Como informação similar sobre os tamanhos dos pacotes pode ser obtida também a partir do Diretório de Enquadramento assim como os fragmentos de pacote, o dispositivo também pode dar precedência à informação nos fragmentos de pacote e utilizar o Diretório de Enquadramento apenas no caso de erros de pacote.
Protocolo de Soma de Verificação
Considere um serviço cujo Protocolo de Enquadramento utilize o modo onde fragmentação através de limites de superquadro é permitida. Suponha agora que um dispositivo comece a receber blocos de camada de Fluxo Continuo a partir de algum superquadro. 0 dispositivo saberá se os fragmentos do primeiro pacote de camada superior foram enviados em superquadros anteriores. Portanto, mesmo se os blocos forem recebidos sem erro, o primeiro pacote de camada superior pode estar incompleto. O Protocolo de Enquadramento conforme especificado na seção anterior não trata isso como um caso especial. Similarmente, pacotes de camada superior, incompletos ou errôneos podem ser produzidos se o dispositivo perder os superquadros completos (isto é, devido a um canal de transmissão degradado). Um protocolo de Soma de Verificação é provido para detectar e evitar situações onde o protocolo de Enquadramento pode entregar pacotes incompletos à camada superior. Esse é um protocolo opcional que pode ser implementado em uma base por fluxo. O protocolo de Soma de Verificação também pode ser usado para prover um nivel adicional de verificação de integridade se a verificação CRC de camada inferior declarar um pacote como bom mesmo na presença de erros (negativas falsas). O que se segue descreve a operação de um sistema de empacotamento para incorporar somas de verificação em um servidor durante o processo de empacotamento.A Figura 22 mostra protocolos pertencendo à camada de Transporte. O protocolo de Soma de Verificação 2202 é implementado em cima do Protocolo de Enquadramento 2204 .
A Figura 23 mostra como o protocolo de Soma de Verificação é provido em um servidor em um sistema de empacotamento para acrescentar um CRC de 16 bits a cada pacote de camada superior. O pacote expandido recebe então o Protocolo de Enquadramento para fragmentação.
Em uma modalidade, um campo de 16 bits contém a Seqüência de Soma de Verificação de Quadros (FCS) para o pacote de camada superior. O FCS é calculado utilizando um polinômio gerador de CRC-CCITT padrão da indústria expresso como a seguir.
g(x)=x16 +xl2+x5 +1
O que se segue descreve a operação de um sistema de empacotamento em um dispositivo para processar Somas de Verificação incorporadas no conteúdo empacotado. O protocolo de enquadramento do sistema de empacotamento opera no dispositivo para reconstruir os pacotes de camada superior. O protocolo de soma de verificação no dispositivo supõe que os últimos 2 bytes de um pacote de camada superior reconstruído são os FCS de 16 bits (isto é, os bits CRC recebidos). O protocolo de Soma de Verificação no dispositivo computa um CRC de 16 bits através do pacote inteiro (excluindo os 2 bytes no fim) e o compara com os bits CRC recebidos. Se houver um desacordo, o pacote é marcado como estando em erro. A camada de Transporte então remove os dois bytes CRC de cada pacote e entrega o pacote, seu comprimento, e quaisquer indicações de erro às camadas superiores.A Figura 24 ilustra processamento de soma de verificação em um dispositivo receptor em um sistema de empacotamento. Quando os bits CRC recebidos não combinam com os bits de CRC computados o pacote é marcado para erros.
A Figura 25 mostra uma modalidade de um método 2500 para prover um sistema de empacotamento em um dispositivo. Por exemplo, o método 2500 é adequado para uso pelo dispositivo 1400 mostrado na Figura 14. Para clareza, o método 1500 será discutido com referência aos protocolos de empacotamento e camadas descritos acima.
No bloco 2502, os pacotes de camada Fisica são recebidos e processados. Por exemplo, os pacotes são recebidos na lógica de entrada 1404 do dispositivo 1400 e processados pelas camadas inferiores providas pela lógica de desempacotamento 1402 para produzir blocos de conteúdo.
No bloco 2504, é realizado processamento de erro. Em uma modalidade, um ou mais blocos de conteúdo podem conter erros. Por exemplo, o processamento de Soma de Verificação pode ser realizado conforme descrito acima para determinar blocos de conteúdo com erros. Quando um bloco de conteúdo com erros é detectado, valores selecionados nos Cabeçalhos de Quadro correspondentes são supostos como sendo valores padrão. Por exemplo, os valores supostos ou padrão para os parâmetros COMPRIMENTO e ÚLTIMO nos Cabeçalhos de Quadro associados aos blocos de erro são descritos acima. Mediante suposição de valores selecionados o sistema de desempacotamento pode continuar a processar aqueles blocos para produzir pacotes de camada de aplicação conforme descrito acima. Em uma modalidade, os pacotes de camada de aplicação são marcados para mostrar que eles contêm erros. Desse modo, o sistema de desempacotamento opera para recuperar conteúdo embora algum conteúdo possaconter erros. Em uma modalidade, a lógica de desempacotamento 1402 opera para realizar processamento de erro conforme descrito aqui.
No bloco 2506, os blocos de conteúdo são desenquadrados. Por exemplo, a lógica de desempacotamento 1402 opera para desenquadrar os blocos de conteúdo para produzir pacotes de camada Sync. Por exemplo, os Cabeçalhos de Quadro associados aos blocos de conteúdo são processados para se obter os pacotes de camada Sync. No bloco 2508, o Cabeçalho Sync dos pacotes de
camada Sync é extraido para produzir pacotes de camada de Conteúdo. Por exemplo, a lógica de desempacotamento 1402 opera para remover os Cabeçalhos Sync conforme descrito acima. Os Cabeçalhos Sync compreendem marcas de tempo de apresentação que são usadas para sincronizar a renderização
do Conteúdo.
No bloco 2510, os pacotes de camada de Conteúdo são decodificados. Por exemplo, a lógica de desempacotamento 1402 opera para decodificar conteúdo de áudio e video a partir dos pacotes de camada de Conteúdo.
No bloco 2512, o Conteúdo é renderizado no dispositivo. Por exemplo, a lógica de renderização 1406 opera para renderizar o Conteúdo no dispositivo de acordo com as marcas de tempo de apresentação.
Desse modo, o método 2500 prove uma modalidade de
um sistema de empacotamento para distribuir conteúdo através de uma rede de distribuição. Deve ser observado que o método 2500 representa apenas uma implementação e que as alterações, adições, apagamentos, combinações ou outrasmodificações do método 2500 são possíveis dentro do escopo
das modalidades.
A Figura 26 mostra uma modalidade de um sistema de empacotamento 2600. O sistema de empacotamento 2600compreende meio (2602) para gerar um ou mais pacotes de conteúdo, e meio (2604) para adicionar um cabeçalho Sync. Em uma modalidade, os meios (2602-2604) são providos por pelo menos um processador executando um programa de computador para prover modalidades de um sistema de empacotamento conforme aqui descrito.
A Figura 27 .mostra uma modalidade de um sistema de empacotamento 2700. O sistema de empacotamento 2700 compreende meios (2702) para extrair, meios (2704) para processar, e meios (2706) para sincronizar. Em uma modalidade, os meios (2702-2706) são providos por pelo menos um processador executando um programa de computador para prover modalidades de um sistema de empacotamento conforme aqui descrito.
A Figura 28 mostra uma modalidade de um sistema de empacotamento 2800. O sistema de empacotamento 2800 compreende meio (2802) para receber, meio (2804) para determinar, meio (2806) para supor, e meio 2808 para processar. Em uma modalidade, os meios (2802-2808) são providos por pelo menos um processador executando um programa de computador para prover modalidades de um sistema de empacotamento conforme descrito aqui.
Portanto, várias lógicas ilustrativas, blocos lógicos, módulos, e circuitos descritos em conexão com as modalidades aqui reveladas podem ser implementados ou realizados com um processador de uso geral, um processador de sinal digital (DSP), um circuito integrado de aplicação especifica (ASIC), um arranjo de portas programáveis no campo (FPGA) ou outro dispositivo lógico programável, lógica de transistor ou de porta discreta, componentes discretos de hardware, ou qualquer combinação dos mesmos projetada para realizar as funções descritas aqui. Um processador de uso geral pode ser um microprocessador, mas,na alternativa, o processador pode ser qualquer processador convencional, controlador, microcontrolador ou máquina de estado. Um processador também pode ser implementado como uma combinação de dispositivos de computação, por exemplo, uma combinação de um DSP e um microprocessador, uma pluralidade de microprocessadores, um ou mais microprocessadores em conjunto com um núcleo DSP, ou qualquer outra tal configuração.
As etapas de um método ou algoritmo descritas em conexão com as modalidades reveladas aqui podem ser incorporadas diretamente em hardware, em um módulo de software executado por um processador, ou em uma combinação dos dois. O módulo de software pode residir na memória RAM, memória flash, memória ROM, memória EPROM, memória EEPROM, registradores, um disco rigido, um disco removível, um CD-ROM, ou qualquer outra forma de meio de armazenamento conhecida na técnica. Um meio de armazenamento exemplar é acoplado ao processador, de tal modo que o processador pode ler informação a partir do meio de armazenamento e gravar informação no mesmo. Na alternativa, o meio de armazenamento pode ser integral ao processador. O processador e o meio de armazenamento podem residir em um ASIC. 0 ASIC pode residir em um terminal de usuário. Na alternativa, o processador e o meio de armazenamento podem residir como componentes discretos em um terminal de usuário.
A descrição das modalidades reveladas é provida para permitir que aqueles versados na técnica realizem ou utilizem a presente invenção. Várias modificações nessas modalidades podem ser prontamente evidentes àqueles versados na técnica, e os princípios genéricos aqui definidos podem ser empregados em outras modalidades, por exemplo, em um serviço de troca de mensagens instantâneasou quaisquer aplicações de comunicação de dados sem fio, gerais, sem se afastar do espirito ou escopo da invenção. Desse modo, não se pretende que a presente invenção seja limitada às modalidades aqui mostradas, mas deve ser concedido o mais amplo escopo compatível com os princípios e características inovadoras aqui reveladas. O termo "exemplar" é. usado exclusivamente aqui significando "servindo como um exemplo, instância, ou ilustração". Qualquer modalidade descrita aqui como "exemplar" não deve ser necessariamente considerada como preferida ou vantajosa em relação a outras modalidades.
Conseqüentemente, embora as modalidades de um sistema de empacotamento tenham sido ilustradas e descritas aqui, será considerado que diversas alterações podem ser feitas nas modalidades sem se afastar de seu espirito ou características essenciais. Portanto, as revelações e descrições feitas aqui têm o propósito de ilustração, mas não de limitação, do escopo da invenção, o qual é apresentado nas reivindicações a seguir.
Claims (89)
1. Método para empacotamento de conteúdo de multimídia para distribuição através de uma rede, o método compreendendo:gerar um ou mais pacotes de conteúdo a partir do conteúdo de multimídia, em que os pacotes de conteúdo são associados a uma referência de tempo; eadicionar um cabeçalho Sync a um ou mais pacotes de conteúdo para formar um ou mais pacotes de camada de aplicação, respectivamente, em que o cabeçalho Sync compreende um indicador de tempo que indica o tempo em relação à referência de tempo.
2. Método, de acordo com a reivindicação 1, em que a geração compreende codificar o conteúdo de multimídia para produzir o um ou mais pacotes de conteúdo.
3. Método, de acordo com a reivindicação 1, compreendendo ainda gerar o cabecalho Sync para compreender um identificador de ponto de acesso aleatório.
4. Método, de acordo com a reivindicação 1, compreendendo ainda gerar o cabeçalho Sync para compreender um indicador de taxa de quadro.
5. Método, de acordo com a reivindicação 1, compreendendo ainda gerar o cabeçalho Sync para compreender um indicador de componente, em que o indicador de componente indica se um pacote de camada de aplicação selecionado é associado a uma camada base ou de aperfeiçoamento.
6. Método, de acordo com a reivindicação 1, compreendendo ainda gerar um diretório de camada Sync.
7. Método, de acordo com a reivindicação 6, compreendendo ainda gerar o diretório de camada Sync para compreender um indicador de referência de video que indica se um pacote de camada de aplicação selecionada estáassociado a um tipo selecionado de quadro de video.
8. Equipamento para empacotamento de conteúdo de multimídia para distribuição através de uma rede, o equipamento compreendendo: lógica de codificação configurada para gerar um ou mais pacotes de conteúdo a partir do conteúdo de multimídia, em que os pacotes de conteúdo são associados a uma referência de tempo; e lógica de empacotamento configurada para adicionar um cabeça lho Sync a um ou mais pacotes de conteúdo para formar um ou mais pacotes de camada de aplicação, respectivamente, em que o cabecalho Sync compreende um indicador de tempo que indica o tempo em relação à referência de- tempo.
9. Equipamento, de acordo com a reivindicação 8, em que a lógica de empacotamento compreende ainda lógica configurada para gerar o cabecalho Sync para compreender um identificador de ponto de acesso aleatório.
10. Equipamento, de acordo com a reivindicação 8, em que a lógica de empacotamento compreende ainda lógica configurada para gerar o cabeçalho Sync para compreender um indicador de taxa de quadros.
11. Equipamento, de acordo com a reivindicação 8, em que a lógica de empacotamento compreende ainda lógica configurada para gerar o cabeçalho Sync para compreender um indicador de componente, em que o indicador de componente indica se um pacote de camada de aplicação selecionada é associado à camada base ou de aperfeiçoamento.
12. Equipamento, de acordo com a reivindicação 8, em que a lógica de empacotamento compreende ainda lógica configurada para gerar um diretório de camada Sync.
13. Equipamento, de acordo com a reivindicação 12, em que a lógica de empacotamento compreende aindalógica configurada para gerar o diretório de camada Sync para compreender um indicador de referência de video que indica se um pacote de camada de aplicação selecionado é associado a um tipo selecionado de quadro de video.
14. Equipamento para empacotamento de conteúdo de multimídia para distribuição através de uma rede, o equipamento compreendendo:meio para gerar um ou mais pacotes de conteúdo a partir do conteúdo de multimídia, em que os pacotes de conteúdo são associados a uma referência de tempo; emeio para adicionar um cabeçalho Sync a um ou mais pacotes de conteúdo para formar um ou mais pacotes de camada de aplicação, respectivamente, em que o cabeçalho Sync compreende um indicador de tempo que indica o tempo em relação à referência de tempo.
15. Equipamento, de acordo com a reivindicação 14, em que o meio para gerar compreende meio para codificar o conteúdo de multimídia para produzir o um ou mais pacotes de conteúdo.
16. Equipamento, de acordo com a reivindicação 14, compreendendo ainda meio para gerar o cabeçalho Sync para compreender um identificador de ponto de acesso aleatório.
17. Equipamento, de acordo com a reivindicação 14, compreendendo ainda meio para gerar o cabeçalho Sync para compreender um indicador de taxa de quadro.
18. Equipamento, de acordo com a reivindicação 14, compreendendo ainda meio para gerar o cabeçalho Sync para compreender um indicador de componente, em que o indicador de componente indica se um pacote de camada de aplicação selecionada é associado a uma camada base ou de aperfeiçoamento.
19. Equipamento, de acordo com a reivindicação(14, compreendendo ainda meio para gerar um diretório de camada Sync.
20. Equipamento, de acordo com a reivindicação 19, compreendendo ainda meio para gerar o diretório de camada Sync para compreender um indicador de referência de video que indica se um pacote de camada de aplicação selecionado é associado a um tipo selecionado de quadro de video.
21. Meio legivel por computador tendo um programa de computador compreendendo uma ou mais instruções, as quais quando executadas por pelo menos um processador, opera para prover empacotamento de conteúdo de multimidia para distribuição através de uma rede, o programa de computador compreendendo:instruções para gerar um ou mais pacotes de conteúdo a partir do conteúdo de multimidia, em que os pacotes de conteúdo são associados a uma referência de tempo; einstruções para adicionar um cabeçalho Sync ao um ou mais pacotes de conteúdo para formar um ou mais pacotes de camada de aplicação, respectivamente, em que o cabeçalho Sync compreende um indicador de tempo que indica o tempo em relação à referência de tempo.
22. Programa de computador, de acordo com a reivindicação 21, em que as instruções para gerar compreendem instruções para codificar o conteúdo de multimidia para produzir o um ou mais pacotes de conteúdo.
23. Programa de computador, de acordo com a reivindicação 21, compreendendo ainda instruções para gerar o cabeçalho Sync para compreender um identificador de ponto de acesso aleatório.
24. Programa de computador, de acordo com a reivindicação 21, compreendendo ainda instruções para geraro cabeçalho Sync para compreender um indicador de taxa de quadros.
25. Programa de computador, de acordo com a reivindicação 21, compreendendo ainda instruções para gerar o cabeçalho Sync para compreender um indicador de componente, em que o indicador de componente indica se um pacote de camada de aplicação selecionada é associado a uma camada base ou de aperfeiçoamento.
26. Programa de computador, de acordo com a reivindicação 21, compreendendo ainda instruções para gerar um diretório de camada Sync.
27. Programa de computador, de acordo com a reivindicação 26, compreendendo ainda instruções para gerar um diretório de camada Sync para compreender um indicador de referência de video que indica se um pacote de camada de aplicação selecionado é associado a um tipo selecionado de quadro de video.
28. Pelo menos um processador configurado para realizar um método para empacotamento de conteúdo de multimídia para distribuição através de uma rede, o método compreendendo:gerar um ou mais pacotes de conteúdo a partir do conteúdo de multimídia, em que os pacotes de conteúdo são associados a uma referência de tempo; e adicionar um cabeçalho Sync a um ou mais pacotes de conteúdo para formar um ou mais pacotes de camada de aplicação, respectivamente, em que o cabeçalho Sync compreende um indicador de tempo que indica o tempo em relação à referência de tempo.
29. Método, de acordo com a reivindicação 28, em que a geração compreende codificar o conteúdo de multimídia para produzir o um ou mais pacotes de conteúdo.
30. Método, de acordo com a reivindicação 2 8,compreendendo ainda gerar o cabeçalho Sync para compreender um identificador de ponto de acesso aleatório.
31. Método, de acordo com a reivindicação 28, compreendendo ainda gerar o cabeçalho Sync para compreender um indicador de taxa de quadros.
32. Método, de acordo com a reivindicação 28, compreendendo ainda gerar o cabeçalho Sync para compreender um indicador de componente, em que o indicador de componente indica se um pacote de camada de aplicação selecionado é associado a uma camada base ou de aperfeiçoamento.
33. Método, de acordo com a reivindicação 28, compreendendo ainda gerar um diretório de camada Sync.
34. Método, de acordo com a reivindicação 33, compreendendo ainda gerar o diretório de camada Sync para compreender um indicador de referência de video que indica se um pacote de camada de aplicação selecionado é associado a um tipo selecionado de quadro de video.
35. Método para empacotamento de conteúdo de multimídia para distribuição através de uma rede, o método compreendendo:processar um ou mais blocos de conteúdo para produzir um ou mais pacotes de camada de aplicação;extrair um cabeçalho Sync a partir de um ou mais pacotes de camada de aplicação para produzir um ou mais pacotes de camada de conteúdo, respectivamente, em que o cabeçalho Sync compreende um indicador de tempo que indica o tempo em relação a uma referência de tempo; esincronizar o um ou mais pacotes de camada de conteúdo com base no indicador de tempo.
36. Método, de acordo com a reivindicação 35, compreendendo ainda extrair um identificador de ponto de acesso aleatório a partir do cabeçalho Sync.
37. Método, de acordo com a reivindicação 35, compreendendo ainda extrair um indicador de taxa de quadros a partir do cabeçalho Sync.
38. Método, de acordo com a reivindicação 35, 5 compreendendo ainda extrair um indicador de componente a partir do cabeçalho Sync, em que o indicador de componente indica se um pacote de camada de aplicação selecionado é associado a uma camada base ou de aperfeiçoamento.
39. Método, de acordo com a reivindicação 35, 10 compreendendo ainda receber um diretório de camada Sync.
40. Método, de acordo com a reivindicação 39, compreendendo ainda a extração de um indicador de referência de video a partir do diretório de camada Sync, em que o indicador de referência de video indica se um pacote de camada de aplicação selecionado é associado a um tipo selecionado de quadro de video.
41. Equipamento para empacotamento de conteúdo de multimídia para distribuição através de uma rede, o equipamento compreendendo: lógica de recebimento configurada para processar um ou mais blocos de conteúdo para produzir um ou mais pacotes de camada de aplicação; e lógica de desempacotamento configurada para extrair um cabeçalho Sync a partir de um ou mais pacotes de camada de aplicação para produzir um ou mais pacotes de camada de conteúdo, respectivamente, em que o cabeçalho Sync compreende um indicador de tempo que indica o tempo em relação a uma referência de tempo, e para sincronizar o um ou mais pacotes de camada de conteúdo com base no indicador de tempo.
42. Equipamento, de acordo com a reivindicação 41, em que a lógica de desempacotamento compreende ainda lógica configurada para extrair um identificador de pontode acesso aleatório a partir do cabeçalho Sync.
43. Equipamento, de acordo com a reivindicação 41, em que a lóqica de desempacotamento compreende ainda lóqica configurada para extrair um indicador de taxa de quadros a partir do cabeçalho Sync.
44. Equipamento, de acordo com a reivindicação 41, em que a lógica de desempacotamento compreende ainda lógica configurada para extrair um indicador de componente a partir do cabeçalho Sync, em que o indicador de componente indica se um pacote de camada de aplicação selecionado é associado a uma camada base ou de aperfeiçoamento.
45. Equipamento, de acordo com a reivindicação 41, em que a lógica de desempacotamento compreende ainda lógica configurada para receber um diretório de camada Sync.
46. Equipamento, de acordo com a reivindicação 45, em que a lógica de desempacotamento compreende ainda lógica configurada para extrair um indicador de referência de video a partir do diretório de camada Sync, em que o indicador de referência de video indica se um pacote de camada de aplicação selecionado é associado a um tipo selecionado de quadro de video.
47. Equipamento para empacotamento de conteúdo de multimídia para distribuição através de uma rede, o equipamento compreendendo:meio para processar um ou mais blocos de conteúdo para produzir um ou mais pacotes de camada de aplicação;meio para extrair um cabeçalho Sync a partir do um ou mais pacotes de camada de aplicação para produzir um o mais pacotes de camada de conteúdo, respectivamente, em que o cabeçalho Sync compreende o indicador de tempo que indica o tempo em relação a uma referência de tempo; emeio para sincronizar o um ou mais pacotes de camada de conteúdo com base no indicador de tempo.
48. Equipamento, de acordo com a reivindicação 47, compreendendo ainda meio para extrair um identificador de ponto de acesso aleatório a partir do cabeçalho Sync.
49. Equipamento, de acordo com a reivindicação 47, compreendendo ainda meio para extrair um indicador de taxa de quadros a partir do cabeçalho Sync.
50. Equipamento, de acordo com a reivindicação 47, compreendendo ainda meio para extrair um indicador decomponente a partir do cabeçalho Sync, em que o indicador de componente indica se um pacote de camada de aplicação selecionado é associado a uma camada base ou de aperfeiçoamento.
51. Equipamento, de acordo com a reivindicação47, compreendendo ainda meios para receber um diretório de camada Sync.
52. Equipamento, de acordo com a reivindicação 51, compreendendo ainda meio para extrair um indicador dereferência de video a partir do diretório de camada Sync,em que o indicador de referência de video indica se um pacote de camada de aplicação selecionado é associado a um tipo selecionado de quadro de video.
53. Meio legivel por computador tendo um programa de computador compreendendo instruções, o qual quandoexecutado por pelo menos um processador, opera para prover empacotamento de conteúdo de multimídia para distribuição através de uma rede, o programa de computador compreendendo: instruções para processar um ou mais blocos deconteúdo para produzir um ou mais pacotes de camada de aplicação;instruções para extrair um cabeçalho Sync apartir de um ou mais pacotes de camada de aplicação para produzir um ou mais pacotes de camada de conteúdo, respectivamente, em que o cabeçalho Sync compreende um indicador de tempo que indica o tempo em relação a uma referência de tempo; einstruções para sincronização a um ou mais pacotes de camada de conteúdo com base no indicador de tempo.
54. Programa de computador, de acordo com a reivindicação 53, compreendendo ainda instruções para extrair um identificador de ponto de acesso aleatório a partir do cabeçalho Sync.
55. Programa de computador, de acordo com a reivindicação 53, compreendendo ainda instruções para extrair um indicador de taxa de quadros a partir do cabeçalho Sync.
56. Programa de computador, de acordo com a reivindicação 53, compreendendo ainda instruções para extrair um indicador de componente a partir de um cabeçalho Sync, em que o indicador de componente indica se um pacote de camada de aplicação selecionado é associado a uma camada base ou de aperfeiçoamento.
57. Programa de computador, de acordo com a reivindicação 53, compreendendo ainda instruções para receber um diretório de camada Sync.
58. Programa de computador, de acordo com a reivindicação 57, compreendendo ainda instruções para extrair um indicador de referência de video a partir do diretório de camada Sync, em que o indicador de referência de video indica se um pacote de camada de aplicação selecionado é associado a um tipo selecionado de quadro de video.
59. Pelo menos um processador configurado pararealizar um método para empacotamento de conteúdo de multimídia para distribuição através de uma rede, o método compreendendo:processar um ou mais blocos de conteúdo para produzir um ou mais pacotes de camada de aplicação;extrair um cabeçalho Sync a partir de um ou mais pacotes de camada de aplicação para produzir um ou mais pacotes de camada de conteúdo, respectivamente, em que o cabeçalho Sync compreende um indicador de tempo que indica o tempo em relação a uma referência de tempo; esincronizar o um ou mais pacotes de camada de conteúdo com base no indicador de tempo.
60. Método, de acordo com a reivindicação 59, compreendendo ainda extrair um identificador de ponto de acesso aleatório a partir do cabeçalho Sync.
61. Método, de acordo com a reivindicação 59, compreendendo ainda extrair um indicador de taxa de quadros a partir do cabeçalho Sync.
62. Método, de acordo com a reivindicação 59, compreendendo ainda extrair um indicador de componente a partir do cabeçalho Sync, em que o indicador de componente indica se um pacote de camada de aplicação selecionado é associado a uma camada base ou de aperfeiçoamento.
63. Método, de acordo com a reivindicação 59, compreendendo ainda receber um diretório de camada Sync.
64. Método, de acordo com a reivindicação 63, compreendendo ainda extrair um indicador de referência de video a partir do diretório de camada Sync, em que o indicador de referência de video indica se um pacote de camada de aplicação selecionado é associado a um tipo selecionado de quadros de video.
65. Método para empacotamento de conteúdo de multimídia para distribuição através de uma rede, o métodocompreendendo:receber um ou mais blocos de conteúdo, em que o um ou mais blocos de conteúdo compreende um cabecalho de quadros;determinar se um bloco de conteúdo selecionado inclui um erro;supor que o cabecalho de quadro selecionado associado ao bloco de conteúdo selecionado compreende um ou mais valores selecionados; eprocessar o um ou mais blocos conteúdo para produzir um ou mais pacotes de camada de aplicação.
66. Método, de acordo com a reivindicação 65, compreendendo ainda receber o um ou mais blocos conteúdo em um ou mais pacotes de camada fisica.
67. Método, de acordo com a reivindicação 65, em que a determinação compreende determinar se o bloco de conteúdo selecionado inclui o erro mediante processamento de uma soma de verificação associada ao bloco de conteúdo selecionado.
68. Método, de acordo com a reivindicação 65, compreendendo ainda marcar um pacote de aplicação selecionado associado ao bloco selecionado para indicar uma condição de erro.
69. Método, de acordo com a reivindicação 65, compreendendo ainda supor que um ou mais valores selecionados indicam um comprimento selecionado e posição selecionada do bloco de conteúdo selecionado.
70. Equipamento para empacotamento de conteúdo de multimídia para distribuição através de uma rede, o aparelho compreendendo:lógica de entrada configurada para receber um" ou mais blocos de conteúdo, em que o um ou mais blocos de conteúdo compreende um cabeçalho de quadro; elógica de desempacotamento configurada para determinar se um bloco de conteúdo selecionado inclui um erro, supor que um cabeçalho de quadro selecionado associado ao bloco de conteúdo selecionado compreende um ou mais valores selecionados, e processar o um ou mais blocos de conteúdo para produzir um ou mais pacotes de camada de aplicação.
71. Equipamento, de acordo com a reivindicação 70, em que a lógica de entrada é configurada para receber o um ou mais blocos de conteúdo em um ou mais pacotes de camada fisica.
72. Equipamento, de acordo com a reivindicação 70, em que a lógica de desempacotamento é configurada para determinar se o bloco de conteúdo selecionado inclui o erro mediante processamento de uma soma de verificação associada ao bloco de conteúdo selecionado.
73. Equipamento, de acordo com a reivindicação 70, em que a lógica de desempacotamento é configurada para marcar um pacote de aplicação selecionado associado ao bloco selecionado para indicar uma condição de erro.
74. Equipamento, de acordo com a reivindicação 70, em que a lógica de desempacotamento é configurada para supor que o um ou mais valores selecionados indicam um comprimento selecionado e posição selecionada do bloco de conteúdo selecionado.
75. Equipamento para empacotamento de conteúdo de multimídia para distribuição através de uma rede, o equipamento compreendendo:meio para receber um ou mais blocos de conteúdo, em que o um ou mais blocos de conteúdo compreende um cabeçalho de quadros;meio para determinar se um bloco de conteúdo selecionado inclui um erro;meio para supor se um cabeçalho de quadro selecionado associado ao bloco de conteúdo selecionado compreende um ou mais valores selecionados; emeio para processar o um ou mais blocos de conteúdo para produzir um ou mais pacotes de camada de aplicação.
76. Equipamento, de acordo com a reivindicação 7 5, compreendendo ainda meio para receber o um ou mais blocos de conteúdo em um ou mais pacotes de camada fisica.
77. Equipamento, de acordo com a reivindicação 75, em que o meio para determinar compreende meio para determinar se o bloco de conteúdo selecionado inclui o erro mediante processamento de uma soma de verificação associada ao bloco de conteúdo selecionado.
78. Equipamento, de acordo com a reivindicação 7 5, compreendendo ainda meio para marcar um pacote de aplicação selecionado associado ao bloco selecionado para indicar uma condição de erro.
79. Equipamento, de acordo com a reivindicação 75, compreendendo ainda meio para supor que o um ou mais valores selecionados indicam um comprimento selecionado e posição selecionada do bloco de conteúdo selecionado.
80. Meio legível por computador tendo um programa de computador compreendendo instruções, o qual quando executado por pelo menos7 um processador, opera para prover empacotamento de conteúdo de multimídia para distribuição através de uma rede, o programa de computador compreendendo:instruções para receber um o mais blocos de conteúdo, em que o um ou mais blocos de conteúdo compreende um cabeçalho de quadros;instruções para determinar se um bloco de conteúdo selecionado inclui um erro;instruções para supor se o cabeçalho de quadros selecionado associado ao bloco de conteúdo selecionado compreende um ou mais valores selecionados; einstruções para processar o um ou mais blocos de conteúdo para produzir um ou mais pacotes de camada de aplicação.
81. Programa de computador, de acordo com a reivindicação 80, compreendendo ainda instruções para receber o um ou mais blocos de conteúdo em um ou mais pacotes de camada fisica.
82. Programa de computador, de acordo com a reivindicação 80, em que as instruções para determinar compreendem instruções para determinar se o bloco de conteúdo selecionado inclui o erro mediante processamento de uma soma de verificação associada ao bloco de conteúdo selecionado.
83. Programa de computador, de acordo com a reivindicação 80, compreendendo ainda instruções para marcar um pacote de aplicação selecionado associado ao bloco selecionado para indicar uma condição de erro.
84. Programa de computador, de acordo com a reivindicação 80, compreendendo ainda instruções para supor que um ou mais valores selecionados indicam um comprimento selecionado e posição selecionada do bloco de conteúdo selecionado.
85. Pelo menos um processador configurado para realizar um método para empacotamento de conteúdo de multimídia para distribuição através de uma rede, o método compreendendo:receber um ou mais blocos de conteúdo, em que o um ou mais blocos de conteúdo compreende um cabeçalho de quadros;determinar se um bloco de conteúdo selecionadoinclui um erro;supor que um cabeçalho de quadro selecionado associado ao bloco de conteúdo selecionado compreende um ou mais valores selecionados; e processar o um ou mais blocos de conteúdo paraproduzir um ou mais pacotes de aplicação.
86. Método, de acordo com a reivindicação 85, compreendendo ainda receber o um ou mais blocos de conteúdo em um ou mais pacotes de camada fisica.
87. Método, de acordo com a reivindicação 85, emque a determinação compreende determinar se o bloco de conteúdo selecionado inclui o erro mediante processamento de uma soma de verificação associada ao bloco de conteúdo selecionado.
88. Método, de acordo com a reivindicação 85,compreendendo ainda marcar um pacote de aplicação selecionado associado ao bloco selecionado para indicar uma condição de erro.
89. Método, de acordo com a reivindicação 85,compreendendo ainda supor que um ou mais valoresselecionados indicam um comprimento selecionado e posição selecionada do bloco de conteúdo selecionado.
Applications Claiming Priority (7)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US68090705P | 2005-05-13 | 2005-05-13 | |
| US68078605P | 2005-05-13 | 2005-05-13 | |
| US60/680,907 | 2005-05-13 | ||
| US60/680,786 | 2005-05-13 | ||
| US79811006P | 2006-05-04 | 2006-05-04 | |
| US60/798,110 | 2006-05-04 | ||
| PCT/US2006/018850 WO2006124851A2 (en) | 2005-05-13 | 2006-05-15 | Methods and apparatus for packetization of content for transmission over a network |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| BRPI0608977A2 true BRPI0608977A2 (pt) | 2010-02-17 |
Family
ID=37432016
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| BRPI0608977-1A BRPI0608977A2 (pt) | 2005-05-13 | 2006-05-15 | métodos e equipamento para empacotamento de conteúdo para transmissão através de uma rede |
Country Status (9)
| Country | Link |
|---|---|
| US (1) | US8842666B2 (pt) |
| EP (1) | EP1880306A2 (pt) |
| JP (1) | JP2008546229A (pt) |
| KR (2) | KR101054150B1 (pt) |
| CN (1) | CN101517553B (pt) |
| BR (1) | BRPI0608977A2 (pt) |
| CA (1) | CA2608253A1 (pt) |
| TW (1) | TWI330963B (pt) |
| WO (1) | WO2006124851A2 (pt) |
Families Citing this family (42)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20100037659A (ko) * | 2005-05-24 | 2010-04-09 | 노키아 코포레이션 | 디지털 방송에서 계층적인 전송/수신을 위한 방법 및 장치 |
| EP1913738A2 (en) * | 2005-07-27 | 2008-04-23 | QUALCOMM Incorporated | System and method for forward link only messages |
| MX2008001307A (es) * | 2005-07-29 | 2008-03-19 | Lg Electronics Inc | Metodo para la senalizacion de informacion de division. |
| WO2007127761A1 (en) * | 2006-04-24 | 2007-11-08 | Qualcomm Incorporated | Multiplexer to transmitter interface protocol |
| US7916641B2 (en) * | 2006-06-29 | 2011-03-29 | Wi-Lan, Inc. | System and process for packet delineation |
| KR100894506B1 (ko) | 2007-06-28 | 2009-04-22 | 한양대학교 산학협력단 | 다수의 계층을 갖는 통신 시스템에서의 통신망 분석 시스템 |
| US20100250764A1 (en) * | 2009-03-31 | 2010-09-30 | Nokia Corporation | Method and Apparatus for Signaling Layer Information of Scalable Media Data |
| US20100250763A1 (en) * | 2009-03-31 | 2010-09-30 | Nokia Corporation | Method and Apparatus for Transmitting Information on Operation Points |
| KR101683119B1 (ko) * | 2009-06-16 | 2016-12-06 | 엘지전자 주식회사 | 방송 송신기, 방송 수신기 및 3d 비디오 데이터 처리 방법 |
| US8930277B2 (en) * | 2010-04-30 | 2015-01-06 | Now Technologies (Ip) Limited | Content management apparatus |
| RU2573777C2 (ru) | 2010-04-30 | 2016-01-27 | НАУ ТЕКНОЛОДЖИЗ (Ай Пи) ЛИМИТЕД | Устройство управления содержимым |
| KR101705813B1 (ko) | 2010-06-23 | 2017-02-10 | 삼성전자주식회사 | 무선 통신 시스템에서 멀티미디어 컨텐츠의 랜덤 액세스 방법 및 장치 |
| US10004406B2 (en) | 2010-09-30 | 2018-06-26 | Fitbit, Inc. | Portable monitoring devices for processing applications and processing analysis of physiological conditions of a user associated with the portable monitoring device |
| US8694282B2 (en) | 2010-09-30 | 2014-04-08 | Fitbit, Inc. | Methods and systems for geo-location optimized tracking and updating for events having combined activity and location information |
| US8620617B2 (en) | 2010-09-30 | 2013-12-31 | Fitbit, Inc. | Methods and systems for interactive goal setting and recommender using events having combined activity and location information |
| US8712724B2 (en) | 2010-09-30 | 2014-04-29 | Fitbit, Inc. | Calendar integration methods and systems for presentation of events having combined activity and location information |
| US8762102B2 (en) | 2010-09-30 | 2014-06-24 | Fitbit, Inc. | Methods and systems for generation and rendering interactive events having combined activity and location information |
| US10983945B2 (en) | 2010-09-30 | 2021-04-20 | Fitbit, Inc. | Method of data synthesis |
| US8762101B2 (en) | 2010-09-30 | 2014-06-24 | Fitbit, Inc. | Methods and systems for identification of event data having combined activity and location information of portable monitoring devices |
| US8954290B2 (en) | 2010-09-30 | 2015-02-10 | Fitbit, Inc. | Motion-activated display of messages on an activity monitoring device |
| US8738321B2 (en) | 2010-09-30 | 2014-05-27 | Fitbit, Inc. | Methods and systems for classification of geographic locations for tracked activity |
| US8954291B2 (en) | 2010-09-30 | 2015-02-10 | Fitbit, Inc. | Alarm setting and interfacing with gesture contact interfacing controls |
| US11243093B2 (en) | 2010-09-30 | 2022-02-08 | Fitbit, Inc. | Methods, systems and devices for generating real-time activity data updates to display devices |
| US9148483B1 (en) | 2010-09-30 | 2015-09-29 | Fitbit, Inc. | Tracking user physical activity with multiple devices |
| US8805646B2 (en) | 2010-09-30 | 2014-08-12 | Fitbit, Inc. | Methods, systems and devices for linking user devices to activity tracking devices |
| US9390427B2 (en) | 2010-09-30 | 2016-07-12 | Fitbit, Inc. | Methods, systems and devices for automatic linking of activity tracking devices to user devices |
| US8738323B2 (en) | 2010-09-30 | 2014-05-27 | Fitbit, Inc. | Methods and systems for metrics analysis and interactive rendering, including events having combined activity and location information |
| US8744803B2 (en) | 2010-09-30 | 2014-06-03 | Fitbit, Inc. | Methods, systems and devices for activity tracking device data synchronization with computing devices |
| US9253168B2 (en) | 2012-04-26 | 2016-02-02 | Fitbit, Inc. | Secure pairing of devices via pairing facilitator-intermediary device |
| US9241635B2 (en) | 2010-09-30 | 2016-01-26 | Fitbit, Inc. | Portable monitoring devices for processing applications and processing analysis of physiological conditions of a user associated with the portable monitoring device |
| US8615377B1 (en) | 2010-09-30 | 2013-12-24 | Fitbit, Inc. | Methods and systems for processing social interactive data and sharing of tracked activity associated with locations |
| US8738925B1 (en) * | 2013-01-07 | 2014-05-27 | Fitbit, Inc. | Wireless portable biometric device syncing |
| GB201208389D0 (en) * | 2012-05-10 | 2012-06-27 | Samsung Electronics Co Ltd | Integrated circuit, communication unit, wireless communication system and methods therefor |
| US9641239B2 (en) | 2012-06-22 | 2017-05-02 | Fitbit, Inc. | Adaptive data transfer using bluetooth |
| US9307258B2 (en) * | 2012-10-30 | 2016-04-05 | Broadcom Corporation | Parallel transcoding |
| US9635334B2 (en) * | 2012-12-03 | 2017-04-25 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Audio and video management for parallel transcoding |
| US9728059B2 (en) | 2013-01-15 | 2017-08-08 | Fitbit, Inc. | Sedentary period detection utilizing a wearable electronic device |
| US9039614B2 (en) | 2013-01-15 | 2015-05-26 | Fitbit, Inc. | Methods, systems and devices for measuring fingertip heart rate |
| US10382512B2 (en) * | 2013-03-14 | 2019-08-13 | Microsoft Technology Licensing, Llc | Distributed fragment timestamp synchronization |
| EP3028459A4 (en) * | 2013-07-29 | 2017-03-29 | LG Electronics Inc. | Apparatus for transmitting broadcast signals, apparatus for receiving broadcast signals, method for transmitting broadcast signals and method for receiving broadcast signals |
| US10080530B2 (en) | 2016-02-19 | 2018-09-25 | Fitbit, Inc. | Periodic inactivity alerts and achievement messages |
| US11900840B2 (en) * | 2021-12-13 | 2024-02-13 | Qualcomm Incorporated | Chrominance optimizations in rendering pipelines |
Family Cites Families (34)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5652749A (en) | 1995-02-03 | 1997-07-29 | International Business Machines Corporation | Apparatus and method for segmentation and time synchronization of the transmission of a multiple program multimedia data stream |
| JP3414064B2 (ja) | 1995-08-03 | 2003-06-09 | 三菱電機株式会社 | マルチメデイア情報処理装置 |
| US5682384A (en) | 1995-10-31 | 1997-10-28 | Panagiotis N. Zarros | Apparatus and methods achieving multiparty synchronization for real-time network application |
| JP3087826B2 (ja) * | 1996-07-15 | 2000-09-11 | 日本電気株式会社 | Mpeg符号化画像データ復号装置 |
| ES2323358T3 (es) * | 1997-04-01 | 2009-07-14 | Sony Corporation | Codificador de imagenes, metodo de codificacion de imagenes, descodificador de imagenes, metodo de descodificacion de imagenes, y medio de distribucion. |
| JP2000032416A (ja) * | 1998-03-03 | 2000-01-28 | Mitsubishi Electric Corp | ディジタル放送システム、デ―タサ―バ、および放送装置 |
| TW429719B (en) | 1998-06-08 | 2001-04-11 | Ericsson Telefon Ab L M | Burst carrier frequency synchronization and iterative frequency-domain frame synchronization for OFDM |
| US6862622B2 (en) * | 1998-07-10 | 2005-03-01 | Van Drebbel Mariner Llc | Transmission control protocol/internet protocol (TCP/IP) packet-centric wireless point to multi-point (PTMP) transmission system architecture |
| JP2000078197A (ja) * | 1998-09-03 | 2000-03-14 | Toshiba Corp | 通信ノード及びパケット転送方法 |
| KR100314655B1 (ko) | 1998-12-11 | 2001-12-28 | 오길록 | 비대칭형멀티미디어위성통신시스템에서망동기장치및그방법 |
| JP2001160066A (ja) * | 1998-12-25 | 2001-06-12 | Matsushita Electric Ind Co Ltd | データ処理装置、データ処理方法および記録媒体、並びに該データ処理方法をコンピュータに実行させるためのプログラム |
| US6611529B1 (en) | 1999-03-03 | 2003-08-26 | Lucent Technologies Inc. | Priority access for real-time traffic in contention-based networks |
| GB9930788D0 (en) | 1999-12-30 | 2000-02-16 | Koninkl Philips Electronics Nv | Method and apparatus for converting data streams |
| US6778493B1 (en) | 2000-02-07 | 2004-08-17 | Sharp Laboratories Of America, Inc. | Real-time media content synchronization and transmission in packet network apparatus and method |
| US20050204385A1 (en) * | 2000-07-24 | 2005-09-15 | Vivcom, Inc. | Processing and presentation of infomercials for audio-visual programs |
| US7406104B2 (en) * | 2000-08-25 | 2008-07-29 | Lin Yang | Terrestrial digital multimedia/television broadcasting system |
| US7068683B1 (en) | 2000-10-25 | 2006-06-27 | Qualcomm, Incorporated | Method and apparatus for high rate packet data and low delay data transmissions |
| US6970481B2 (en) * | 2001-04-17 | 2005-11-29 | Microsoft Corporation | Methods and systems for distributing multimedia data over heterogeneous networks |
| JP3690316B2 (ja) | 2001-08-10 | 2005-08-31 | ソニー株式会社 | データ伝送システム及びヘッダ情報付加装置とデータフォーマット変換装置並びにデータ伝送方法 |
| US20030041159A1 (en) * | 2001-08-17 | 2003-02-27 | David Tinsley | Systems and method for presenting customizable multimedia presentations |
| KR100460970B1 (ko) * | 2002-01-10 | 2004-12-09 | 삼성전자주식회사 | 데이터 송수신 시스템 및 방법 |
| JP4649091B2 (ja) * | 2002-01-30 | 2011-03-09 | 株式会社エヌ・ティ・ティ・ドコモ | 通信端末、サーバ装置、中継装置、放送通信システム、放送通信方法及びプログラム |
| US6851084B2 (en) | 2002-06-10 | 2005-02-01 | Harris Corporation | Forward error correction method and system for reliable transmission of real time data over a packet based network |
| US20040190629A1 (en) * | 2002-07-19 | 2004-09-30 | Cooper Jeffrey Allen | System and method for broadcast of independently encoded signals on atsc channels |
| CN1221132C (zh) * | 2002-07-30 | 2005-09-28 | 华为技术有限公司 | 实现多种视音频流格式转换的装置和方法 |
| KR100482287B1 (ko) * | 2002-10-26 | 2005-04-14 | 한국전자통신연구원 | 디지털 데이터 방송을 위한 동기화 스트림 데이터 삽입장치 및 그 방법 |
| KR100538704B1 (ko) | 2003-04-01 | 2005-12-23 | 주식회사 씬멀티미디어 | 카메라 내장형 이동 단말기의 오디오 비디오 인코딩 방법및 디코딩 방법 |
| US7227899B2 (en) * | 2003-08-13 | 2007-06-05 | Skystream Networks Inc. | Method and system for re-multiplexing of content-modified MPEG-2 transport streams using interpolation of packet arrival times |
| US7852919B2 (en) | 2003-09-07 | 2010-12-14 | Microsoft Corporation | Field start code for entry point frames with predicted first field |
| US7444419B2 (en) * | 2003-10-10 | 2008-10-28 | Microsoft Corporation | Media stream scheduling for hiccup-free fast-channel-change in the presence of network chokepoints |
| US7555009B2 (en) * | 2003-11-14 | 2009-06-30 | Canon Kabushiki Kaisha | Data processing method and apparatus, and data distribution method and information processing apparatus |
| US7302169B2 (en) * | 2003-12-30 | 2007-11-27 | Fujitsu Limited | Method and apparatus for playing-back moving image data |
| US7336646B2 (en) * | 2004-10-26 | 2008-02-26 | Nokia Corporation | System and method for synchronizing a transport stream in a single frequency network |
| EP1768285A1 (en) * | 2005-09-23 | 2007-03-28 | Udcast | Method and device for processing a DVB-H (Digital Video Broadcasting - Handheld) compliant transport stream |
-
2006
- 2006-05-11 US US11/432,005 patent/US8842666B2/en active Active
- 2006-05-12 TW TW095117055A patent/TWI330963B/zh not_active IP Right Cessation
- 2006-05-15 JP JP2008511469A patent/JP2008546229A/ja active Pending
- 2006-05-15 CN CN2006800247239A patent/CN101517553B/zh not_active Expired - Fee Related
- 2006-05-15 KR KR1020097024202A patent/KR101054150B1/ko not_active Expired - Fee Related
- 2006-05-15 KR KR1020077028927A patent/KR100954672B1/ko not_active Expired - Fee Related
- 2006-05-15 CA CA002608253A patent/CA2608253A1/en not_active Abandoned
- 2006-05-15 WO PCT/US2006/018850 patent/WO2006124851A2/en not_active Ceased
- 2006-05-15 BR BRPI0608977-1A patent/BRPI0608977A2/pt not_active IP Right Cessation
- 2006-05-15 EP EP06752550A patent/EP1880306A2/en not_active Withdrawn
Also Published As
| Publication number | Publication date |
|---|---|
| CN101517553A (zh) | 2009-08-26 |
| KR20090132649A (ko) | 2009-12-30 |
| KR20080018192A (ko) | 2008-02-27 |
| EP1880306A2 (en) | 2008-01-23 |
| US20060288117A1 (en) | 2006-12-21 |
| WO2006124851A2 (en) | 2006-11-23 |
| WO2006124851A3 (en) | 2009-05-07 |
| US8842666B2 (en) | 2014-09-23 |
| JP2008546229A (ja) | 2008-12-18 |
| TW200711392A (en) | 2007-03-16 |
| TWI330963B (en) | 2010-09-21 |
| KR101054150B1 (ko) | 2011-08-03 |
| KR100954672B1 (ko) | 2010-04-27 |
| CA2608253A1 (en) | 2006-11-23 |
| CN101517553B (zh) | 2013-09-25 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| BRPI0608977A2 (pt) | métodos e equipamento para empacotamento de conteúdo para transmissão através de uma rede | |
| US11805286B2 (en) | Apparatus and method for transmitting/receiving processes of a broadcast signal | |
| US11637887B2 (en) | Packet transmission protocol supporting downloading and streaming | |
| US9350488B2 (en) | Content delivery system with allocation of source data and repair data among HTTP servers | |
| US9294226B2 (en) | Universal object delivery and template-based file delivery | |
| JP7076811B2 (ja) | 放送システムにおけるマルチメディアデータの転送装置及び方法 | |
| KR101880467B1 (ko) | 방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법, 및 방송 신호 수신 방법 | |
| BRPI0208431B1 (pt) | Método e equipamento para enquadramento de transmissão em um sistema de comunicações sem fio | |
| KR101868628B1 (ko) | 방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법, 및 방송 신호 수신 방법 | |
| WO2007045141A1 (en) | A method for supporting multimedia data transmission with error resilience | |
| BR112016000913B1 (pt) | Métodos para envio e recepção de correção antecipada de erros de informações de configuração em um sistema de multimídia | |
| BRPI0712835A2 (pt) | multiplexador para protocolo de interface de transmissor | |
| KR20120056640A (ko) | Docsis 데이터 전송을 위한 프레임 구성 방법 및 장치 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| B08F | Application dismissed because of non-payment of annual fees [chapter 8.6 patent gazette] |
Free format text: REFERENTE A 6A ANUIDADE. |
|
| B08K | Patent lapsed as no evidence of payment of the annual fee has been furnished to inpi [chapter 8.11 patent gazette] |
Free format text: NAO APRESENTADA A GUIA DE CUMPRIMENTO DE EXIGENCIA. REFERENTE A 6A ANUIDADE. |