• Nenhum resultado encontrado

3.2 O FLUXO DE TRANSPORTE (TRANSPORT STREAM)

3.2.2 PROGRAM STREAM X TRANSPORT STREAM

As informações de cada PES são importantes para o processo de decodificação das informações transmitidas. Porém, para serem transmitidas, essas informações preci- sam ser multiplexadas, como apresentado na Erro: Origem da referência não encon- trada. Duas formas principais para multiplexação são definidas podem gerar, cada uma, um fluxo diferente, o fluxo de programa (program stream) e o fluxo de transpor- te (transport stream).

O fluxo de programa é utilizado para transmissão de apenas um serviço (programa). Um serviço é definido como um conjunto de fluxos elementares que tem

um forte acoplamento temporal. Normalmente, esses fluxos elementares estão sin- cronizados entre si. No fluxo de programa, o tamanho dos pacotes PES são variá- veis, consequentemente, a taxa do fluxo multiplexado é variável. Na decodificação, um fluxo variável pode ser mais difícil de gerenciar, podendo ocorrer facilmente es- touro do buffer ou, ao contrário, o buffer permanecer ocioso durante muito tempo.

Fluxos de programa somente são adequados para aplicações isoladas em ambientes robustos, isto é, que favoreçam a decodificação. Por exemplo, para a construção de mídias de DVD, o fluxo de programa pode ser utilizado.

Nos STVD, por outro lado, existe um ambiente heterogêneo, formado pe- los receptores e também pelas estações repetidoras. Além disso, vários programas diferentes precisam ser transmitidos. Nesse caso, é ideal que o transporte seja reali- zado através de um fluxo com taxa constante e que suporte vários serviços. Para es- ses sistemas, o ideal, portanto, é a utilização do fluxo de transporte.

Em um fluxo de transporte – TS, o tamanho de cada pacote, formado a partir de um conjunto de PES é constante. Dessa forma, também é mais fácil identifi - car o início e o fim do pacote. Cada pacote tem tamanho de 188 bytes, com 4 bytes destinados ao cabeçalho. O início de um pacote é definido através de um byte utili- zado para o sincronismo, que, com o valor 47 em hexadecimal, indica o início do pa- cote. Os três bytes seguintes correspondem a sinalizadores (flags), que podem indi- car algum erro no pacote, se o pacote é o primeiro de uma sequência, e qual a prio - ridade do pacote, campo que pode ser utilizado caso seja necessário descartar al- guns pacotes durante a transmissão. O próximo campo, de treze bits, é o identifica- dor de sequência dos pacotes (PID). Cada pacote que carrega o mesmo PID corres- ponde a um mesmo fluxo elementar. A Erro: Origem da referência não encontrada apresenta a estrutura de um TS.

Figura 9: Representação da Estrutura de um TS.

Um TS pode conter vários serviços e, portanto, é necessário identificar cada um dos serviços multiplexados. Assim, além das informações dos serviços, um TS contém também um conjunto de metainformações que permitem identificar cada serviço. As metainformações são denominadas Program Specific Information (PSI), existindo quatro tipos principais:

• Tabela de Associação do Programa (Program Association Table - PAT); • Tabela de Mapa do Programa (Program Map Table - PMT);

• Tabela de Acesso Condicional (Conditional Access Table - CAT); • Tabela de Informação da Rede (Network Information Table – NIT).

Estas tabelas contêm as informações necessárias para demultiplexar e apresentar os programas. A PMT especifica, entre outras informações, os PIDs, e portanto, qual fluxo elementar está associado para formar o programa. Adicionalmente, a PMT indi- ca o PID dos pacotes TS que transportam o PCR6 (Program Clock Reference) de

cada serviço, que é uma informação temporal importante para a decodificação. A CAT só está presente se o embaralhamento for empregado, visando proteger o con-

teúdo transmitido. A NIT também é opcional e pode conter informações sobre a mo- dulação, operadora de rede e outras relacionadas ao transporte.

Cada tabela PSI tem um identificador PID. Ao contrário dos programas e dos flu- xos elementares estes podem ser embaralhados para acesso condicional às tabelas PSI não devem ser embaralhadas. A Erro: Origem da referência não encontrada re- sume as tabelas PSI. Como estas estruturas podem ser pensadas como simples ta- belas, elas podem ser segmentadas em seções e inseridas nos pacotes TS, alguns com PIDs predeterminados e outros com PIDs que podem ser selecionados pelo usuário [1].

Tabela 2: Informação de Especificação do Programa [1].

Nome da Estrutura Tipo de fluxo Número

do PID Descrição

Tabela de Associação do programa

ITU-T H.222.0 [23] |

ISO/IEC 13818-1 0x00

Número de associação do pro- grama e PID da PMT Tabela de Mapa de Programa ITU-T H.222.0 | ISO/IEC 13818-1 Atribuição indica- da na PAT

Especifica os valores dos PIDs para os progrmas Tabela de

Informação da Rede Privada

Atribuição indica- da na PAT

Parâmetros da rede física tais como frequências FDM, etc. Tabela de Acesso

Condicional

ITU-T H.222.0 |

ISO/IEC 13818-1 0x01

Associa um ou mais fluxos

EMM7 com um único valor PID

Continuando com a descrição das tabelas PSI, a PAT (Program

Association Table) é a responsável por identificar os serviços existentes. Através da

PAT, por exemplo, é possível localizar uma PMT (Program Map Table) que por sua vez contém uma lista de fluxos elementares que pertencem a um mesmo serviço ou programa. A Erro: Origem da referência não encontrada apresenta a organização das tabelas PSI.

7 Entitlement Management Message (EMM): São acessos condicionais privados que especificam e

Figura 10: Organização da Tabela PSI [1].

Ferramentas como Sony Vegas Pro e o Elecard permitem construir um ar- quivo TS relativo ao conteúdo audiovisual principal com todas as informações sobre os PES, cabeçalhos do TS e tabelas PSI. No entanto, no caso de aplicações interati- vas no SBTVD, poderá ser necessário acrescentar outros itens a essa transmissão, como o carrossel de dados, a aplicação NCL e a referência temporal NPT (Normal

Play Time), itens que serão abordados nas próximas seções.

3.2.3 NPT (NORMAL PLAY TIME)

Os exibidores de vídeo ou decodificadores precisam contextualizar os ins- tantes de exibição dos objetos de mídia de acordo com o projeto do provedor de conteúdos. Para isso, pode ser necessária a criação de um fluxo especial que esteja

apto a informar aos exibidores esses instantes contextualizados. Para isso, um fluxo especial deve ser construído, contendo um índice temporal denominado NPT (Nor-

mal Play Time) [11].

Nas aplicações interativas para TV digital é comum que o comportamento da aplicação esteja associado à ocorrência temporal de eventos associados às suas mídias. O conteúdo audiovisual principal é uma dessas mídias e, portanto, o seu tempo deve ser controlado.

O NPT é utilizado para controlar o tempo de um conteúdo transportado a partir de um fluxo elementar. Para exemplificar essa situação, considere um filme que tem seu conteúdo segmentado de tal forma que em cada segmento é associado um rótulo NPT. Esse exemplo é apresentado na Erro: Origem da referência não en- contrada, onde na parte superior o filme é representado em preto. Nesse exemplo, um outro vídeo, equivalente a uma propaganda (um outro fluxo), também possui um NPT associado e é representado na parte inferior da Erro: Origem da referência não encontrada, em azul.

Figura 11: Exemplo de uma Base Temporal.

No exemplo da Erro: Origem da referência não encontrada, uma edição do filme acontece e outro fluxo (propaganda) é inserido em um dado instante. É inte- ressante observar que ao adicionar o conteúdo da propaganda, o novo fluxo resul- tante mantém os rótulos NPT originais. É esse o resultado desejado para que o sin-

cronismo das aplicações seja preservado. A Erro: Origem da referência não encon- trada apresenta o resultado dessa inserção.

Figura 12: Conteúdo Principal Concatenado com um Conteúdo Extra (filme + propaganda).

Além dos valores para temporizar os fluxos, o NPT possui um campo de- nominado “contentId” que serve como uma identidade do NPT. O receptor associa o “contentId” atual à aplicação que foi iniciada. Assim, quando o valor do “contentId” do NPT é alterado, o receptor percebe que a aplicação foi modificada. A retomada de uma base temporal faz com que o conteúdo de uma aplicação associada ao “contentId” volte a ser executada a partir do ponto em que ela foi interrompida. Se uma base temporal não for retomada em um período de tempo, significa que o ciclo de vida da apresentação deste fluxo chegou ao fim [11]. A Erro: Origem da referên- cia não encontrada apresenta os diferentes valores de “contentId” para os fluxos de vídeo do exemplo da Erro: Origem da referência não encontrada.

Figura 13: NPT Associado ao Fluxo Principal e Outro para a Propaganda.

Ao executar um comando de pausa em um fluxo contínuo, sua base tem- poral associada também deve ser pausada. Uma base temporal pode ser pausada e, posteriormente, reiniciada a partir do instante em que foi pausada e, isto normal- mente ocorre aleatoriamente no tempo. Como exemplo, quando o usuário muda o

canal corrente e, em seguida, retorna ao canal anterior, a exibição do conteúdo deve ser retomada a partir de um instante temporal imediatamente posterior àquele em que a apresentação foi interrompida.

O fluxo NPT possui algumas regras para ser utilizado em uma transmis- são. Cada referência temporal deve ser enviada em espaços de tempo de 1 segun- do. Espaços menores resultam numa precisão maior, porém com um custo adicional na largura banda de transmissão. Outra regra é informar ao receptor quando houver mudança na base temporal com antecedência (dois segundos, de acordo com a nor- ma japonesa ARIB TR-B14, 2006). Essa mudança pode ser de “contentId” ou na ve- locidade de reprodução de um conteúdo. [11].

Para gerar uma base temporal NPT, a ferramenta NPT Project pode ser utilizada. Essa ferramenta facilita a construção dos valores de referência (momentos temporais), bem como do “contenId”. A mostra a interface do NPT Project.

Figura 14: Ambiente de Desenvolvimento do NPT – NPT Project.

Todos os valores temporais que compõem um fluxo NPT são transporta- dos em um fluxo elementar através de estruturas chamadas de NPT Reference Des-

criptor [16]. Todas as informações do NPT são resumidas na Erro: Origem da refe-

Tabela 3: Descrição do Conteúdo NPT.

Campo Descrição

content_id Refere-se ao valor do “contentId”;

inicio_tempo_absoluto Indica o tempo de exibição do vídeo, em milissegundos, no local que um conteúdo é iniciado;

fim_tempo_absoluto Indica o tempo de exibição do vídeo, em milissegundos, no local que um conteúdo é finalizado;

inicio_valor_npt Indica o valor NPT inicial, em milissegundos, no local que um conteúdo é iniciado;

Numerador Representa o numerador da taxa com que um conteúdo deve ser reproduzido;

Denominador Representa o denominador da taxa com que um conteúdo deve ser reproduzido. Esse valor não pode ser negativo.

Documentos relacionados