Introdução ao MPEG
Transcrição
Introdução ao MPEG
MPEG Este Guia é um novo paradigma das medições para as indústrias de televisão e telecomunicações. Informações teóricas, dados experimentais, documentos apresentados em conferências e seminários, artigos publicados em jornais e revistas, serão divulgados em próximas edições. Para expressar o seu interesse por novas tecnologias e obter informações e novidades técnicas e teóricas, produtos disponíveis na área, resumos técnicos ou outros recursos para auxiliar engenheiros que trabalham com tecnologia avançada, visite nossos sites ou entre em contato direto. A Tektronix possui uma coleção bastante abrangente sobre o assunto. TEKTRONIX www.tektronix.com.br MPEG Editora SENAI Rio de Janeiro 2009 © 2009. TEKTRONIX Direitos da obra original em inglês. Tradução e impressão autorizadas para o SENAI Departamento Nacional. Tradutor Dalton Vilella Camilher Revisora Técnica Nelia Caetano Catalogação-na-Publicação (CIP) - Brasil T 235 m Tektronix. MPEG / Tektronix ; tradução Dalton Vilella Camilher. - Rio de Janeiro : Ed. SENAI, 2009. 224 p. : il. ; 23 cm. - (Coleção TV Digital) Tradução de: MPEG fundamentals and protocol analysis including DVD and ATSC Inclui glossário ISBN 978-85-99002-15-5 1. Engenharia eletrônica e comunicação. 2. MPEG. I. SENAI Departamento Nacional. II. Título. CDD: 621.3880028 Editora SENAI Rua São Francisco Xavier, 417 - Maracanã 20550-010 - Rio de Janeiro - RJ Tel.: (0XX21) 3978-5314 [email protected] SUMÁRIO Seção 1 – Introdução ao MPEG ................................................... 9 Seção 2 – Compressão de Vídeo .................................................27 Seção 3 – Compressão de Áudio.................................................55 3.1 O Mecanismo da Audição ......................................................... 57 3.2 Codificação da Sub-Banda ....................................................... 59 3.3 MPEG Camada 1 ..................................................................... 61 3.4 MPEG Camada 2 ..................................................................... 62 3.5 Codificação por Transformada ................................................... 63 3.6 MPEG Camada 3 ..................................................................... 64 3.7 MPEG-2 Áudio ....................................................................... 64 3.8 MPEG-4 Áudio ....................................................................... 65 3.9 AC-3 .................................................................................... 67 Seção 4 – Os Padrões ................................................................69 4.1 O que é MPEG? ...................................................................... 71 4.2 Quem é ITU? ......................................................................... 71 4.3 Evolução dos Padrões ............................................................. 72 4.3.1 Performance do Vídeo .......................................................... 74 4.3.2 Licenciamento. ................................................................... 75 4.4 MPEG-1 ................................................................................ 76 4.5 MPEG-2 ................................................................................ 77 4.5.1 Perfis e Níveis em MPEG-2 .................................................... 79 4.6 MPEG-4 ................................................................................ 82 4.6.1 Documentos Padrões do MPEG-4 ............................................ 84 4.6.2 Codificação do Objeto .......................................................... 84 4.6.3 Codificação de Áudio e Vídeo ................................................ 86 4.6.4 Escalabilidade..................................................................... 86 4.6.5 Tamanho Variável do Macrobloco ........................................... 87 4.6.6 Perfis e Níveis em MPEG-4 parte 10 (AVC/H.264) ......................88 4.6.7 MP4 Formato Contêiner ........................................................ 89 4.7 SMPTE VC-1 ..........................................................................90 4.7.1 Transformada de Bloco de Dimensão Variável ........................... 91 4.7.2 Compensação de Movimento ................................................. 91 4.7.3 Decodificando Blocos e Suavizando Imagens ............................ 91 4.7.4 Compensação do Efeito Fading (Desbotamento) ....................... 92 4.7.5 Perfis e Níveis..................................................................... 92 4.8 MPEG-7 e MXF ....................................................................... 92 4.9 MPEG-21 .............................................................................. 94 Seção 5 – Fluxos Elementares ...................................................95 5.1 Sintaxe de Fluxo Elementar de Vídeo ......................................... 97 5.2 Fluxos Elementares de Áudio.................................................... 99 Seção 6 – Empacotamento de Fluxos Elementares (PES) ........... 101 6.1 Pacotes PES ........................................................................ 103 6.2 Marcas de Tempo ................................................................. 103 6.3 PTS/DTS ............................................................................. 104 Seção 7 - Programa Stream ..................................................... 107 7.1 Gravação vs. Transmissão ...................................................... 109 7.2 Introdução a Programa Stream ............................................... 110 Seção 8 – Transporte Stream ...................................................111 8.1 O Trabalho do Transporte Stream ............................................ 113 8.2 Pacotes .............................................................................. 114 8.3 Referência do Clock de Programa (PCR) ................................... 115 8.4 Identificação do Pacote (PID) ................................................ 117 8.5 Informação Específica do Programa (PSI)................................. 117 Seção 9 – Modulação Digital .................................................... 121 9.1 Princípios de Modulação ....................................................... 123 9.2 Modulação Analógica............................................................ 123 9.3 Modulação em Quadratura ..................................................... 124 9.4 Sistemas Simples de Modulação Digital ................................... 124 9.5 Chaveamento do Deslocamento de Fase ................................... 127 Um Guia para Fundamentos de MPEG e Análise de Protocolo 9.5.1 Turbo 8PSK ...................................................................... 128 9.5.2 DBV S2 ............................................................................ 129 9.6 Modulação de Amplitude de Quadratura – QUAM ....................... 130 9.7 Modulação de Banda Lateral Vestigial – VSB ............................. 131 9.8 Multiplex de Divisão de Freqüência Ortogonal Codificado - COFDM .. 133 9.9 Multimedia Digital Broadcast da China-Terrestre/Handheld – DMB-T/H .. 135 9.10 Serviço de Dado Integrado Broadcasting (ISDB) ...................... 136 9.10.1 Sistema de Satélite ISDB-S ............................................... 137 9.10.2 Sistema a Cabo ISDB-C ..................................................... 137 9.10.3 Modulação Terrestre ISDB-T ............................................... 138 9.10.4 Modulação Móvel ISDB-Tss ................................................ 139 9.10.5 ISDB em Resumo ............................................................. 139 9.11 Sistemas Broadcast Móveis .................................................. 140 9.11.1 DVB-H ........................................................................... 141 9.11.2 T-DMB ........................................................................... 142 9.11.3 DAB IP .......................................................................... 143 9.11.4 FLO ............................................................................... 144 9.11.5 Segmento Único ISDB ...................................................... 145 Seção 10 – Introdução a DVB e ATSC ........................................ 147 10.1 Uma Visão Geral ................................................................. 149 10.2 Remultiplexação................................................................. 150 10.3 Informação de Serviço (SI) .................................................. 151 10.4 Correção de Erro................................................................. 153 10.4.1 Codificação Turbo ............................................................ 156 10.5 Codificação de Canal; Dipersão de Energia .............................. 157 10.6 Codificação Interna ............................................................ 158 10.7 Transmitindo Dígitos ........................................................... 160 Seção 11 – Transmissão de Dados ............................................163 11.1 Aplicações ........................................................................ 165 11.1.1 Dados Relativos ao Programa ............................................. 165 11.1.2 Dados Oportunistas .......................................................... 166 11.1.3 Rede de Dados ................................................................ 166 11.1.4 TV Aprimorada ................................................................ 167 11.1.5 TV Interativa .................................................................. 167 11.2 Encapsulamento de Conteúdo ............................................... 168 11.2.1 Encapsulamento de Dados MPEG......................................... 168 11.2.2 Encapsulamento de Dados DVB .......................................... 174 11.2.3 Encapsulamento de Dados ATSC A/90 .................................. 174 11.2.4 Encapsulamento de Dados ARIB ......................................... 175 11.3 Conteúdo de Dados Broadcasting .......................................... 176 11.3.1 Como Carrosséis de Objetos são Transmitidos ....................... 176 11.3.2 Sincronização de Dados MPEG-2 ......................................... 177 11.3.3 Sinalizando Conteúdos de Dados ........................................ 178 11.4 Apresentação de Conteúdo ................................................... 179 11.4.1 Set Top Box “Middleware” ................................................. 179 11.4.2 Histórico de Padrões Middleware Abertos ............................. 181 11.4.3 A Plataforma Doméstica de Multimedia DVB (MHP)................ 183 11.4.4 ATSC Plataforma de Aplicação Comum Avançada (ACAP) ......... 184 Seção 12 – Teste de MPEG .......................................................185 12.1 Requerimentos de Teste....................................................... 187 12.2 Analisando o Transporte Stream ............................................ 187 12.3 Visão Hierárquica ............................................................... 189 12.4 Padrões de Verificação de Conformidade ................................. 192 12.4.1 Orientações de Medição de DVB, TR 101 209 ........................ 192 12.5 Verificações do Transporte Stream ATSC, A/78 ......................... 194 12.6 Visão do Pacote ................................................................. 195 12.7 Análises de Sintaxe e CRC .................................................... 196 12.8 Análises de Tempo .............................................................. 197 12.9 Teste de Stream Elementar ................................................... 201 12.10 Análise de Stream Elementar .............................................. 202 12.11 SINCRONIZAÇÃO Áudio Visual.............................................. 205 12.12 Criando um Transporte Stream ............................................ 206 12.13 Geração de Imprecisão de PCR ............................................ 206 12.14 Análise de Carrossel de Dados Broadcast .............................. 208 Glossário ................................................................................ 211 Seção 1 Introdução ao MPEG MPEG é uma das técnicas de compressão de áudio e vídeo mais populares porque não é apenas um simples padrão, mas uma gama de padrões adequados para diferentes aplicações e baseados em princípios similares. MPEG são as iniciais de Moving Picture Experts Group (Grupo de Especialistas em Movimento de Imagem), parte do Joint Technical Committee (Comitê de Junta Técnica), JTC1, estabelecida pela ISO (Organização Internacional de Padrões) e IEC (Comissão Eletrotécnica Internacional). JTC1 é responsável pela tecnologia da informação; dentro do JTC1 o subgrupo SG29 é responsável pela “codificação do áudio, Imagem e Informação de multimedia e hipermedia”. Há vários grupos de trabalho dentro do SG29, incluindo o JPEG (Joint Photographic Experts Group) e o Grupo de Trabalho 11 para compressão de imagem em movimento. ISO/IEC JTC1/SG29/ WG11 é o MPEG. MPEG pode ser descrito como uma interação de siglas. Como estabelece o ETSI, “O CAT é o indicador que possibilita o IRD a encontrar o EMMs associado com o sistema CA que ele usa.” Se você consegue entender esta sentença, você não precisa deste livro! Um Guia para Fundamentos de MPEG e Análise de Protocolo 1.1 Convergência Técnicas Digitais têm progredido rapidamente em áudio e vídeo por inúmeras razões. A informação digital é mais robusta e pode ser codificada para substancialmente eliminar erros. O CD (Compact Disc) foi o primeiro produto de consumo a demonstrar isto. Mesmo que o CD possui uma qualidade de som aprimorada com respeito ao seu predecessor, o vinil, a comparação somente da qualidade não é relevante. O que realmente importa é que as técnicas de gravação e transmissão digitais permitem a manipulação do conteúdo a um nível que é impossível com o processo analógico. Quando o áudio ou o vídeo é digitalizado o conteúdo é em forma de dados. Tais dados podem ser manuseados da mesma maneira que qualquer outro tipo de dados; assim, áudio e vídeo digitais tornam - se domínio da tecnologia do computador. A convergência de computadores e sinais de áudio/vídeo é uma conseqüência inevitável das invenções da computação e da modulação por código de pulso (PCM). A media digital pode armazenar qualquer tipo de informação, logo é fácil usar um dispositivo de armazenamento do computador para vídeo digital. As Ilhas de Edição não linear foi o primeiro exemplo da aplicação da tecnologia convergente que não teve precursor analógico. Outro exemplo, a multimedia, combina o armazenamento de áudio, vídeo, gráficos, textos e dados na mesma media. Multimedia não tem equivalência no domínio analógico. 1.2 Por que é Necessária a Compressão? O início do sucesso do vídeo digital foi em aplicação de pós-produção, onde o alto custo do vídeo digital foi compensado por camadas ilimitadas e por capacidade de efeitos. Entretanto, produção padrão de vídeo digital gera acima de 200 megabits de dados por segundo, e este bit rate requer extensa capacidade de armazenamento e banda larga para transmissão. O vídeo digital somente poderia ser usado em aplicações mais amplas se os requisitos de armazenamento e da largura de banda pudessem ser facilitados; este é o propósito da compressão. 11 Seção 1 Compressão é um modo de expressar áudio e vídeo digital empregando menos dados. A compressão tem as seguintes vantagens: Uma menor quantidade de armazenamento é necessária para uma dada quantidade de material fonte; Quando trabalhando em tempo real, a compressão reduz a largura de banda necessária; adicionalmente, a compressão permite transferência mais rápida em tempo real entre medias, por exemplo, entre fita e disco; Um formato de gravação comprimido usa uma densidade de gravação mais baixa e isto pode permitir um gravador menos sensível a fatores ambientais e a manutenção. 1.3 Princípios de Compressão Existem duas técnicas fundamentalmente diferentes que podem ser usadas para reduzir a quantidade de dados empregada para transportar o conteúdo da informação. Em sistemas de práticas de compressão, estas são usualmente combinadas, freqüentemente de maneiras bastante complexas. A primeira técnica é aprimorar a eficiência da codificação. Há muitas maneiras de codificar qualquer informação, e a representação mais simples de dados de vídeo e áudio contém uma quantidade substancial de redundância. O conceito de entropia é discutido abaixo. Muitos truques de codificação podem ser usados para reduzir ou eliminar redundâncias; exemplos incluem os sistemas de codificação run-lenght e variable-lenght como os códigos Huffman. Quando devidamente empregados, estas técnicas são completamente reversíveis de maneira que após a descompressão a informação é idêntica àquela na entrada do sistema. Este tipo de compressão é conhecido como lossless (sem perda). Programas de arquivamento de computadores como o PKZip empregam a compressão lossless. Obviamente, a compressão sem perdas é a ideal, mas infelizmente não proporciona usualmente o nível de redução de dados necessário para aplicação em áudio e vídeo. Entretanto, por não ter perdas, pode ser aplicado 12 Um Guia para Fundamentos de MPEG e Análise de Protocolo em qualquer ponto do sistema e é freqüentemente usado na saída de dados de compressores com perdas. Se a eliminação de redundância não reduz os dados tanto quanto necessário, alguma informação terá que ser descartada. Sistemas de compressão com perdas alcançam a redução de dados pela remoção de informação irrelevante ou de relevância menor. Estas não são técnicas gerais que podem ser aplicadas a qualquer stream de dados; a avaliação da relevância só pode ser feita no contexto da aplicação, compreendendo o que os dados representam e como serão usados. No caso da televisão, a aplicação é a apresentação de imagens e sons aos sistemas visuais e auditivos humanos, e os fatores humanos precisam ser bem compreendidos para se projetar um sistema de compressão efetivo. Algumas informações de sinais de vídeo não podem ser percebidas pelo sistema visual humano, assim sendo, são realmente irrelevantes neste contexto. Um sistema de compressão que descarta somente informações de imagens irrelevantes é conhecido como visualmente sem perdas. 1.4 Compressão em Aplicações de Televisão Sinais de televisão, analógico ou digital, sempre representaram um grande envolvimento de informação e técnicas de redução de largura de banda têm sido usadas desde o início. Provavelmente o exemplo mais inicial seja o entrelaçado. Para um dado número de linhas e uma dada taxa de imagem, o entrelaçado oferece uma redução de largura de banda de 2:1. O processo produz perdas; o entrelaçado gera artefatos causados pela interferência entre a informação vertical e a temporal e reduz a resolução vertical útil da imagem. Todavia, a maioria do que é rejeitado é irrelevante, assim, o entrelaçado representava uma técnica bastante simples e muito compensadora em seu tempo. Infelizmente, o entrelaçado e os artefatos gerados são muito inconsistentes para esquemas digitais de compressão mais sofisticados. Muito da complexidade do MPEG-2 resulta da necessidade de lidar com sinais entrelaçados, e há ainda uma perda significativa na eficiência da codificação quando comparado aos sinais progressivos. 13 Seção 1 Os próximos passos mais importantes vieram com o advento das cores. Câmeras coloridas produzem sinais GBR (Green, Blue, Red), assim, existe nominalmente três vezes mais informação que em um sinal monocromático – mas, sinais coloridos deveriam ser transmitidos nos mesmos canais usados pelos monocromáticos. A primeira parte da solução foi transformar os sinais GBR em um sinal de brilho, luminância (normalmente designado Y) mais dois sinais de diferença de cor, U e V, ou I e Q. A geração de um sinal de luminância passou por um longo processo para resolver o problema da compatibilidade com receptores monocromáticos, mas, o passo importante para minimizar a largura de banda veio com os sinais de diferença de cores. Descobriu-se que o sistema visual humano usa sensores que são sensíveis ao brilho e que pode “ver” imagens de resolução muito alta. Outros sensores captam informação de cores, mas com resolução muito menor. O resultado final é que, dentro de certos limites, uma imagem nítida monocromática de uma cena brilhante sobreposta a uma de informação de cor de menor definição (baixa largura de banda) aparecerá como figura colorida nítida. Não é possível tirar vantagem disto quando lidamos com sinais GBR, pois cada sinal contém ambas as informações de brilho e cor. Entretanto, no sistema YUV, a maioria da informação de brilho esta contida no sinal Y, e muito pouco nos sinais de diferença de cor. Assim, é possível filtrar os sinais de diferença de cor e reduzir bastante a informação a ser transmitida. Este é um exemplo de como eliminar a maioria da informação irrelevante. Sob o aspecto da visão, o sistema visual humano não responde significativamente às informações de alta freqüência nos sinais de diferença de cor, logo pode ser descartado. As transmissões de televisão em NTSC têm aproximadamente 500 kHz em cada sinal de diferença de cor, e as imagens são adequadamente nítidas para muitas aplicações. O passo final no processo de redução da largura de banda do NTSC e PAL foi “esconder” os sinais de diferença de cor em partes não usadas do espectro do sinal monocromático. Embora o processo não seja estritamente sem perdas, isto pode ser considerado como um aumento da eficiência da codificação do sinal. 14 Um Guia para Fundamentos de MPEG e Análise de Protocolo Algumas das técnicas no mundo digital são bastante diferentes, mas princípios similares se aplicam. Por exemplo, o MPEG transforma sinais em um domínio diferente para permitir a isolação da informação irrelevante. A transformação para sinais de diferença de cor ainda é empregada, mas as técnicas digitais permitem filtrar o sinal de diferença de cor para reduzir a resolução vertical para outras aplicações. A figura 1-1a mostra que no sistema de televisão tradicional, o sinal GBR da câmera é convertido para componentes Y, Pb, Pr para produção e codificação do sinal analógico composto para transmissão. A figura 1-1b mostra o equivalente moderno. Os sinais Y, Pb, Pr são digitalizados e transportados como sinais Y, Cb, Cr na forma SDI através do processo de produção, antes de serem codificados em MPEG para transmissão. Claramente, o MPEG pode ser considerado pela radiodifusão como uma substituição mais eficiente para o vídeo composto. Além disso, o MPEG tem maior flexibilidade porque a taxa de bits necessária pode ser ajustada para se adequar à aplicação. Em baixas taxas de bits e baixas resoluções, o MPEG pode ser usado para vídeo conferência e vídeo telefone. Digital Vídeo Broadcasting (DVB) (Radiodifusão de Vídeo Digital) e o Advanced Television Systems Committee (ATSC)(Comitê de Sistemas de Televisão Avançados), padrões de radiodifusão digital europeu e americano originais não seriam viáveis sem a compressão, porque a largura de banda necessária seria demasiadamente grande. A compressão estende o tempo de execução do DVD (digital video/versatile disk) permitindo filmes longa 15 Seção 1 metragem em um simples disco. A compressão também reduz o custo de ENG e outras contribuições para a produção de televisão. DVB, ATSC e disco de vídeo digital (DVD) são todos baseados na compressão MPEG-2. Na gravação de fitas, a compressão moderada facilita e adiciona confiabilidade em Betacam Digital e Digital-S, enquanto em SX, DVC, DVCPRO e DVCAM a meta é a miniaturização. Em servidores de vídeo com base em disco, a compressão diminui o custo de armazenamento. A compressão também reduz a largura de banda, o que permite que mais usuários tenham acesso a um dado servidor. Esta característica é também importante para aplicações em VOD (video on demand – vídeo por encomenda). 1.5 Introdução à Compressão de Vídeo Digital Em todo material de programa real, há dois tipos de componentes de sinal: aqueles que são inesperados e imprevisíveis e aqueles que podem ser antecipados. O componente inesperado é chamado de entropia e é a informação real do sinal. O restante é chamado de redundância porque não é essencial. A redundância pode ser espacial, como em grandes áreas planas de uma imagem onde os pixels adjacentes têm quase o mesmo valor. A redundância também pode ser temporal, quando são usadas semelhanças entre imagens sucessivas. Todos os sistemas de compressão trabalham separando a entropia da redundância no encoder. Somente a entropia é gravada ou transmitida e o decoder computa a redundância do sinal transmitido. A figura 1-2a (ver próxima página) mostra este conceito. Um codificador ideal extrairia toda a entropia e somente esta seria transmitida para o decoder. Um decoder ideal, então, reproduziria o sinal original. Na prática, este ideal não pode ser alcançado. Um codificador ideal seria complexo e causaria um atraso muito longo para usar a redundância temporal. Em certas aplicações, tais como gravação ou broadcasting, algum delay é aceitável, mas em videoconferência não. Em alguns casos, um codificador muito complexo seria dispendioso demais. Isto quer dizer que não existe um sistema de compressão ideal. 16 Um Guia para Fundamentos de MPEG e Análise de Protocolo Na prática, é necessária uma gama de codificadores que tenha uma faixa de processamento de delays e complexidades. A força do MPEG é que ele não é apenas um formato simples de compressão, mas uma variedade de ferramentas de codificações padronizadas que podem ser flexivelmente combinadas para se adequarem a uma variedade de aplicações. A maneira na qual a codificação foi engendrada é incluída nos dados comprimidos de tal forma que o decoder pode lidar automaticamente com qualquer decisão que o codificador tome. Em MPEG-2 e MPEG-4 a codificação é dividida em vários profiles que têm diferentes complexidades e cada profiles pode ser implementado em diferentes níveis dependendo da resolução da imagem de entrada. A seção 4 considera os profiles e níveis em detalhes. Existem muitos formatos de vídeo digitais diferentes e cada um tem uma taxa de bits diferente. Por exemplo, um sistema de alta definição deve ter 6 vezes a taxa de bits de um sistema padrão de definição. Conseqüentemente, só conhecer a taxa de bits do codificador não é muito útil. O que importa é o fator de compressão, que é a razão entre a taxa de bits de entrada e a taxa de bits comprimidos, por exemplo, 2:1, 5:1 e assim por diante. 17 Seção 1 Infelizmente, o número de variáveis envolvidas torna muito difícil determinar um fator de compressão adequado. A figura 1-2a mostra que para um codificador ideal, se toda a entropia é enviada, a qualidade é boa. Entretanto, se o fator de compressão for aumentado, a fim de reduzir a taxa de bits, nem toda a entropia é enviada e com isso a qualidade cai. Note que em um sistema de compressão, quando ocorre a perda de qualidade, ela é acentuada (Figura 1-2b). Se a taxa de bits disponível for inadequada, é melhor evitar esta área pela redução da entropia da imagem de entrada. Isto pode ser feito através de filtragem. A perda de resolução causada pela filtragem é subjetivamente mais aceitável que os artefatos de compressão. Para identificar perfeitamente a entropia, um compressor ideal teria que ser extremamente complexo. Um compressor prático pode ser menos complexo por razões econômicas e precisa enviar mais dados para assegurar o transporte de toda a entropia. A figura 1-2b mostra a relação entre a complexidade e a performance do codificador. Quanto maior o fator de compressão requerido, mais complexo o codificador tem que ser. A entropia em sinais de vídeo varia. A gravação de um locutor anunciando as notícias tem muita redundância e é fácil de comprimir. Em contraste, é mais difícil comprimir uma gravação com folhas ao sabor do vento ou uma torcida de futebol que está se movendo constantemente e desta forma, tem menos redundância (mais informação ou entropia). Em cada caso, se toda a entropia não for enviada, haverá perda de qualidade. Assim, nós podemos escolher entre um canal de taxa de bits constante com qualidade variável ou um canal de qualidade constante com taxa de bits variável. As operadoras de telecomunicações tende a preferir uma taxa de bits constante por motivos práticos, mas uma memória temporária (buffer) pode ser usada para mediar variações da entropia se o aumento do delay resultante for aceitável. Em gravação, uma taxa de bits variável pode ser mais fácil de lidar e os DVDs usam taxas variáveis de bits, usando memória temporária de tal forma que a média da taxa de bits permaneça dentro das capacidades do sistema de disco. A intra-codificação (intra = interna) é uma técnica que explora a redundância espacial, ou redundância dentro da imagem; a inter-codificação 18 Um Guia para Fundamentos de MPEG e Análise de Protocolo (inter = entre) é uma técnica que explora a redundância temporal. A intracodificação pode ser empregada isoladamente, como no padrão JPEG para imagens estáticas, ou combinada com inter-codificação como em MPEG. A intra-codificação se baseia em duas características típicas da imagem. Primeira, nem todas as freqüências espacial estão simultaneamente presentes, e segunda, quanto maior a freqüência espacial, menor deverá ser a amplitude. Intra-codificação requer análise das freqüências espacial em uma imagem. Esta análise tem o propósito de transformar tais ondas em DCT (transformada discreta do cosseno). A “transformada” produz coeficientes que descrevem a magnitude de cada freqüência espacial. Tipicamente, muitos coeficientes serão zero, ou próximos de zero, e estes coeficientes podem ser omitidos, resultando em uma redução da taxa de bits. A inter-codificação se baseia em encontrar similaridades entre imagens sucessivas. Se uma dada imagem está disponível no decoder, a próxima imagem pode ser criada enviando somente as diferenças das imagens. As diferenças na imagem aumentarão quando houver movimento de objetos, mas este aumento pode ser contrabalanceado usando compensação de movimento; uma vez que um objeto em movimento geralmente não altera muito sua aparência de uma imagem para a próxima. Se o movimento pode ser medido, uma aproximação maior da imagem atual pode ser criada pela substituição de parte da imagem anterior para uma nova localização. O processo de substituição é controlado por um par de valores de deslocamento horizontal e vertical (conhecido como vetor de movimento) que é transmitido ao decoder. A transmissão do vetor de movimento requer menos dados que o envio de dados da diferença da imagem. O MPEG pode lidar com ambas as imagens entrelaçadas e não entrelaçadas. Uma imagem, em algum ponto do eixo do tempo, é chamada de “picture” (foto, quadro, tela), se é um campo ou um quadro. O entrelaçado não é uma fonte ideal de compressão digital porque é, em si mesmo, uma técnica de compressão. A codificação temporal é mais complexa porque os pixels de um campo estão em posição diferente daqueles do próximo. A compensação de movimento minimiza, mas não elimina as diferenças entre imagens sucessivas. A diferença de imagem é em si mesma, uma imagem espacial e pode ser comprimida usando intra-codificação baseada em 19 Seção 1 transformada, como descrito previamente. A compensação de movimento simplesmente reduz a quantidade de dados na diferença de imagens. A eficiência de um codificador temporal aumenta com a duração do tempo sobre o qual ele pode agir. A figura 1-2c mostra que se um alto fator de compressão for necessário, uma duração maior de tempo na entrada precisa ser considerada e assim uma codificação de delay mais longa será experimentada. Claramente, sinais codificados temporalmente são difíceis de serem editados porque o conteúdo de uma dada imagem de saída pode estar baseado em dados de imagens que foram transmitidos em algum tempo anterior. Sistemas de produção terão que limitar o grau de codificação temporal para permitir a edição e esta limitação irá, por sua vez, limitar o fator de compressão disponível. 1.6 Introdução à Compressão de Áudio A taxa de bits de um canal de áudio digital PCM é em torno de 1,5 megabits por segundo, o que é aproximadamente 0,5% do 4:2:2 do vídeo digital. Com esquemas moderados de compressão de vídeo, tal como o Betacam Digital, a compressão do áudio é desnecessária, mas à medida que o fator de compressão de vídeo aumenta, torna-se importante comprimir o áudio também. A compressão de áudio leva vantagem sobre dois fatos: primeiro, em sinais típicos de áudio, nem todas as freqüências estão presentes simultaneamente; segundo, por causa do fenômeno do mascaramento, a audição humana não pode discernir todos os detalhes de um sinal de áudio. A compressão de áudio separa o espectro de áudio em faixas através de filtragem ou transformadas, e inclui menos dado quando descreve faixas em que o nível é baixo. Onde o mascaramento previne ou reduz a audibilidade de uma faixa particular, ainda menos dados são necessários para serem enviados. 20 Um Guia para Fundamentos de MPEG e Análise de Protocolo A compressão de áudio não é tão fácil de executar quanto à compressão de vídeo por causa da sensibilidade da audição. O mascaramento somente funciona adequadamente quando este e o som mascarado coincidem espacialmente. A coincidência espacial é sempre o caso em gravações mono, mas não em gravações estéreo, onde sinais de baixo nível podem ser ouvidos se estiverem em partes diferentes do estágio do som. Conseqüentemente, em sistemas de som estéreo e surround (envolvente), um fator de compressão mais baixo é permissível para uma dada qualidade. Outro fator complicador da compressão de áudio é que ressonâncias de retardo em alto-falantes de baixa qualidade realmente mascaram os artefatos de compressão. Testar uma compressão com alto-falantes de baixa qualidade ocasiona um resultado falso, e sinais que são aparentemente satisfatórios podem trazer desapontamento quando ouvidos em equipamentos de boa qualidade. 1.7 MPEG Streams A saída de um simples codificador MPEG de áudio ou vídeo é conhecida como stream elementar. Um stream elementar é um sinal interminável em tempo quase real. Por conveniência, o stream elementar pode ser dividido em blocos de dados de tamanhos controláveis, formando um empacotado de stream elementar (PES). Estes blocos de dados precisam de informação de cabeçalho para identificar o início dos pacotes e precisam incluir um sinal de time, porque o empacotamento causa interrupções no eixo do tempo. 21 Seção 1 A figura 1-3 mostra que um vídeo PES e um número de áudio PES podem ser combinados para formar um programa stream, desde que todos os codificadores sejam controlados por um clock comum. A marcação de time em cada PES pode ser usada para assegurar o sincronismo labial entre o vídeo e o áudio. Programas stream têm pacotes de tamanhos variáveis de cabeçalhos. Eles são usados em transferência de dados em discos óticos e HDs (Hard Disk), os quais são essencialmente livres de erros e dos quais são esperados arquivos de tamanhos arbitrários. Os DVDs usam programa stream. Para transmissão e radiodifusão digital, vários programas e seus PES associados podem ser multiplexados em um simples transporte stream. Um transporte stream difere de um programa stream onde os pacotes PES são subdivididos mais adiante em pequenos pacotes de tamanho fixo e onde múltiplos programas codificados com diferentes clocks podem ser transportados. Isto é possível porque um transporte stream tem um mecanismo de programa de referência de clock (PCR) que permite a transmissão de múltiplos clocks, um dos quais é selecionado e restaurado no decoder. Um programa único de transporte stream (SPTS) também é possível e isto pode ser encontrado entre um codificador e um multiplexador. Desde que um transporte stream possa sincronizar (genlock) o clock do decoder com o clock do encoder, o SPTS é mais comum que o Programa stream. Um transporte stream é mais que um simples multiplexador de áudio e vídeo PES. Além do áudio, vídeo e dados comprimidos, um transporte stream inclui metadados descrevendo o bit stream. Isto inclui a tabela de associação de programa (PAT) que lista todos os programas no transporte stream. Cada entrada na tabela PAT aponta para uma tabela de mapa de programa (PMT) que lista os streams elementares complementando cada programa. Alguns programas serão abertos, mas alguns poderão estar sujeitos a acesso condicional (criptografados) e esta informação é também carregada nos metadados. O transporte stream consiste de pacotes de dados de tamanho fixo, cada um contendo 188 bytes. Cada pacote leva um código identificador de programa (PID). Os pacotes no mesmo stream elementar têm todos os mesmos PID, de tal forma que o decoder (ou o demultiplexador) pode selecionar stream(s) elementar que quiser e rejeitar o restante. A contagem 22 Um Guia para Fundamentos de MPEG e Análise de Protocolo contínua de pacotes assegura que todos os pacotes necessários para decodificar o stream sejam recebidos. Um sistema de sincronização efetivo é necessário para que os decoders possam identificar corretamente o início de cada pacote e decodificar o bit stream em palavras. 1.8 Necessidade de Monitorar e Analisar O MPEG transporte stream é uma estrutura extremamente complexa que usa tabelas interligadas e identificadores codificados para separar os programas e o elementar streams dentro dos programas. Dentro de cada stream elementar, há uma estrutura complexa, permitindo o decoder distinguir entre, por exemplo, vetores, tabelas de coeficientes e tabelas de quantização. Falhas podem ser divididas em duas categorias gerais. Na primeira categoria, o sistema de transporte libera informação corretamente de um encoder/multiplexer para um decoder sem erros de bits ou jitter adicional, mas o encoder/multiplexer ou o decoder tem uma falha. Na segunda categoria, o encoder/multiplexer e o decoder estão corretos, mas o transporte de dados de um para outro está defeituoso. É muito importante saber se a falha está no encoder/multiplexer, no transporte ou no decoder quando se pretende encontrar uma solução. Sincronizar problemas, tais como perda ou corrupção de padrões de sincronismo pode impedir a recepção do transporte stream completo. Defeitos do protocolo de transporte stream podem impedir que o decoder encontre todos os dados para um programa, talvez liberando o vídeo, mas não o som. A liberação correta de dados, mas com jitter excessivo pode causar problemas de timing no decoder. Se um sistema que usa um transporte stream MPEG falha, esta pode estar no encoder, no multiplexer ou no decoder. Como podemos isolar esta falha? Primeiro, verifique se o transporte stream está em conformidade com a codificação padrão MPEG. Se o stream não estiver adequado, um decoder dificilmente poderá ser acusado de defeitos. Se o stream estiver adequado, o decoder necessita de atenção. 23 Seção 1 Ferramentas de teste de vídeo tradicionais, como o gerador de sinais, o monitor de forma de ondas e o vectorscope, não são apropriados na análise de sistemas MPEG, exceto para assegurar que os sinais de vídeo que entram e que saem de um sistema MPEG são de qualidade adequada. Em seu lugar, uma fonte confiável de sinais de teste válidos MPEG é essencial para testar equipamentos de recepção e decoders. Com um analisador adequado, a performance de encoders, sistemas de transmissão, multiplexers e remultiplexers pode ser avaliada com alto grau de confiança. Como fornecedor de longa reputação de equipamentos de teste de alta qualidade para a indústria de vídeo, A Tektronix continua a prover soluções de testes e medidas à medida que a tecnologia evolui, proporcionando ao usuário de MPEG a confiança de que os sistemas de compressão complexos estão funcionando corretamente e permitindo diagnósticos rápidos quando não estão. 1.9 Armadilhas da Compressão Compressão MPEG causa perdas porque o que é decodificado não é idêntico ao original. A entropia da fonte varia, e quando esta é alta, o sistema de compressão pode liberar artefatos visíveis quando decodificada Na compressão temporal, supõe - se a redundância entre imagens sucessivas. Quando não é este o caso, o sistema pode falhar. Um exemplo é o vídeo de uma coletiva de imprensa onde os flashes são disparados. Imagens individuais contendo o flash são totalmente diferentes de imagens próximas, e os artefatos de codificação podem se tornar óbvios. Movimento irregular ou vários objetos em movimentos independentes na tela exigem muita largura de banda de vetor e esta exigência só pode ser satisfeita pela redução da largura de banda disponível para dados de imagem. Novamente, artefatos visíveis podem ocorrer cujos níveis variam e dependem do movimento. Este problema freqüentemente ocorre em vídeo de cobertura de esportes. Quantificação grosseira resulta em iluminação de contorno e cores de fundo. Estes podem ser visto como sombras manchadas e blocos em grandes áreas de cores descoradas. Subjetivamente, a compressão de artefatos é mais irritante que os danos relativamente constantes dos sistemas de transmissão de televisão analógicos. 24 A única solução para estes problemas é reduzir o fator de compressão. Conseqüentemente, o usuário de compressão terá de fazer um julgamento de valor entre a economia de um alto fator de compressão e o nível de artefatos. Além de aumentar o delay da codificação e da decodificação, a codificação temporal também causa dificuldade na edição. De fato, o bit stream MPEG não pode ser editado arbitrariamente. Esta restrição ocorre porque, na codificação temporal, a decodificação de uma imagem pode requerer o conteúdo de uma imagem anterior e o conteúdo pode não estar disponível após uma edição. O fato de que as imagens podem ser enviadas fora de seqüência complica a edição. Se a codificação apropriada estiver sendo usada, as edições podem ser feitas, mas somente em pontos de emendas que sejam relativamente espaçosos. Se for necessária uma edição arbitrária, o stream MPEG precisa ser submetido a um processo de decodificar-modificar-recodificar, o que resultará em perda de geração. Seção 2 Compressão de Vídeo Esta seção mostra como a compressão de vídeo está baseada na percepção dos olhos. Técnicas importantes, tais como compensação de transformações e de movimentos, são consideradas como uma introdução à estrutura de um codificador MPEG. Um Guia para Fundamentos de MPEG e Análise de Protocolo 2.1 Codificação Espacial ou Temporal? Como foi visto na seção 1, a compressão de vídeo pode levar vantagem em ambas às redundâncias espacial e temporal. Em MPEG, a redundância temporal é reduzida primeiro, pelo emprego de similaridades entre imagens sucessivas. Tanto quanto possível, a imagem corrente é criada ou “predita” pelo uso de informação de imagens já enviadas. Quando esta técnica é empregada, é necessário enviar apenas a diferença da imagem, o que elimina as diferenças entre a imagem atual e a predita. A diferença da imagem é assim sujeita à compressão espacial. Na prática é mais fácil explicar a compressão espacial antes de explicar a compressão temporal. A compressão espacial baseia-se em similaridades entre pixels adjacentes em áreas planas da imagem e no domínio de freqüências espacial em áreas de padronização. O sistema JPEG usa somente compressão espacial, desde que é projetado para transmitir imagens estáticas individuais. Entretanto, JPEG pode ser usada para codificar uma sucessão de imagens individuais para vídeo. Na assim chamada aplicação de “Movimento JPEG”, o fator de compressão não será tão bom quanto se fosse empregada a codificação temporal, mas o bit stream será livremente editado na base de imagempor-imagem. 2.2 Codificação Espacial O primeiro passo na codificação espacial é executar uma análise das freqüências de espaço usando uma transformada. Uma transformada é sim- 29 Seção 2 plesmente uma maneira de expressar uma forma de onda em um domínio diferente, neste caso, no domínio da freqüência. A saída de uma transformada é um conjunto de coeficientes que descrevem o quanto uma dada freqüência está presente. Uma transformada inversa reproduz a forma de onda original. Se os coeficientes são manipulados com suficiente precisão, a saída da transformada inversa é idêntica à forma de onda original. A transformada mais conhecida é a de Fourier. Esta transformada identifica cada freqüência na entrada do sinal. Ela identifica cada freqüência pela multiplicação da forma de onda de entrada pela amostra da freqüência alvo, chamada de função base, e integrando o produto. A figura 2-1 mostra que quando a forma de onda de entrada não contém a freqüência alvo, a integral será zero; mas quando esta está presente, a integral será um coeficiente que descreve a amplitude da freqüência componente. O resultado será como descrito se a freqüência componente estiver em fase com a função base. Entretanto, se a freqüência componente estiver em quadratura com a função base, a integral será ainda zero. Desta forma, faz-se necessário executar duas pesquisas para cada freqüência, com as funções bases em quadratura uma da outra, de tal forma que cada fase da entrada seja detectada. A transformada de Fourier tem a desvantagem de requerer coeficientes para ambos os componentes de seno e co-seno de cada freqüência. Na transformada do co-seno, a forma de onda de entrada é espelhada no tempo consigo mesma antes da multiplicação pelas funções de base. A figura 2-2 mostra que este espelhamento cancela todos os componentes 30 Um Guia para Fundamentos de MPEG e Análise de Protocolo do seno e duplicam todos os componentes do co-seno. A função de base do seno é desnecessária e somente um coeficiente é necessário para cada freqüência. A transformada discreta do co-seno (DCT) é uma amostra da versão da transformada do co-seno e é usada extensivamente na forma de duas dimensões em MPEG. Um bloco de 8x8 pixels é transformado para se tornar um bloco de 8x8 coeficientes. Uma vez que a transformada requer a multiplicação por frações, que tem a extensão de uma palavra resulta em coeficientes que têm comprimento de palavra maior que os valores em pixels. Tipicamente, um bloco de pixel de 8 bits resulta em um bloco de coeficientes de 11 bits. Assim, uma DCT não resulta em qualquer compressão de fato, o resultado é o oposto. Entretanto, a DCT converte a fonte de pixels em um grupo onde a compressão se torna mais fácil. A figura 2-3 mostra os resultados de uma transformada inversa de cada um dos coeficientes individuais de uma DCT de 8x8. No caso do sinal de luminância, o coeficiente superior esquerdo é o brilho médio ou componente DC do bloco inteiro. Acompanhando a linha superior, a freqüência espacial horizontal aumenta. Descendo a coluna da esquerda, a freqüência espacial vertical aumenta. Em imagens reais, diferentes freqüências espaciais verticais e horizontais podem ocorrer simultaneamente e um coeficiente no mesmo ponto dentro do bloco representará todas as combinações verticais e horizontais possíveis. A figura 2-3 também mostra 8 coeficientes como formas de ondas de dimensão horizontais. Combinar estas formas de ondas com várias amplitudes e uma e outra polaridade pode reproduzir qualquer combinação de 8 pixels. Assim, combinando os 64 coeficientes da DCT 2-D (duas dimensões) resultará no bloco original de 8x8 pixels. 31 Seção 2 Claramente, para imagens coloridas, as amostras de diferença de cor também precisarão ser trabalhadas. Os dados de Y, Cb e Cr são montados em arranjos separados de 8x8 e são transformados individualmente. Em material de programas mais autênticos, muitos dos coeficientes terão valor zero ou quase zero, e assim, não serão transmitidos. Este fato resulta em significante compressão que é virtualmente sem perdas. Se for necessário um fator de compressão maior, então o comprimento da palavra de coeficientes que não seja zero terá que ser reduzido. Esta redução diminuirá a acuidade destes coeficientes e irão introduzir perdas no processo. Cuidadosamente, as perdas podem ser introduzidas de certa maneira que seja menos visível ao expectador. 2.3 Ponderação A figura 2-4 mostra que a percepção humana aos ruídos de imagens não é uniforme, mas é em função da freqüência espacial. Mais ruído pode ser tolerado em altas freqüências espacial. Também, ruído no vídeo é efetivamente mascarado por detalhes finos na imagem, enquanto que em áreas maiores é altamente visível. O leitor esteja ciente de que medidas tradicionais de ruído são freqüentemente ponderadas de tal forma que medidas técnicas relatam mais precisamente os resultados subjetivos. 32 Um Guia para Fundamentos de MPEG e Análise de Protocolo A compressão reduz a acuidade dos coeficientes e tem efeito similar ao uso de amostras de palavras mais curtas em PCM; o que significa dizer, o nível de ruído aumenta. Em PCM, o resultado de encurtar o comprimento da palavra é que o nível de ruído aumenta igualmente em todas as freqüências. Como o DCT divide o sinal em freqüências diferentes, torna-se possível controlar o espectro do ruído. Efetivamente, coeficientes de baixa freqüência são “renderizados” mais precisamente que os coeficientes de alta freqüência pelo processo de ponderação. A figura 2-5 mostra que, no processo de ponderação, os coeficientes da DCT são divididos por constantes que são uma função da freqüência de duas dimensões. Coeficientes de baixa freqüência serão divididos por números pequenos e coeficientes de alta freqüência serão divididos por números grandes. Seguindo a divisão, o resultado é deslocado para o inteiro mais próximo. Este deslocamento é uma forma de requantização. Na ausência de ponderação, esta requantização teria o efeito de aumentar uniformemente o tamanho do passo de quantização, mas com a ponderação, isto aumenta o tamanho do passo de acordo com o fator de divisão. 33 Seção 2 Como resultado, coeficientes que representam baixas freqüências espacial são requantizados com passos relativamente pequenos e sofrem pequeno aumento de ruído. Coeficientes que representam freqüências espacial maiores são requantizados com grandes passos e sofrem mais ruídos. Entretanto, menos passos significam que menos bits são necessários para identificar o passo e a compressão é obtida. No decoder, zeros de baixa ordem serão adicionados para restituir os coeficientes ponderados às suas magnitudes corretas. Estes serão então multiplicados pelos fatores ponderados inversos. Claramente, em freqüências altas os fatores de multiplicação serão maiores, então o ruído requantizado será maior. Seguindo a ponderação inversa, os coeficientes terão seus valores originais DCT de saída, mais o erro requantizado, que será maior em freqüência alta que em freqüência baixa. Como uma alternativa, coeficientes ponderados podem ser requantizados não linearmente de tal forma que o tamanho do passo quantificado aumenta com a magnitude do coeficiente. Esta técnica permite fatores maiores de compressão, mas piora os níveis de artefatos. Claramente, o grau de compressão obtido e, desse jeito, o bit rate de saída obtido, é em função da rigorosidade do processo de requantificação. Diferentes bit rates exigem diferentes tabelas de ponderação. Em MPEG, é possível usar várias tabelas diferentes de ponderação e a tabela em uso pode ser transmitida ao decoder, para assegurar a correta decodificação. 34 Um Guia para Fundamentos de MPEG e Análise de Protocolo 2.4 Varredura (Scanning) Em material típico de programa, o mais significante coeficiente DCT é geralmente encontrado dentro ou próximo do canto superior esquerdo da matriz. Após a ponderação, coeficientes de baixo valor podem ser deslocados para zero. Transmissão mais eficiente pode ser obtida se todos os coeficientes diferentes de zero forem enviados primeiro, seguidos por um código indicativo de que os restantes são todos zero. A varredura é uma técnica que aumenta a probabilidade de alcançar este resultado, porque envia coeficientes em ordem descendente de nível de probabilidade. A figura 2-6a (veja na próxima página) mostra que em um sistema não entrelaçado, a probabilidade de um coeficiente ter um alto valor é mais alta no canto superior esquerdo e mais baixa no canto inferior direito. A varredura diagonal em ziguezague de 45 graus é a melhor seqüência a ser usada aqui. 35 Seção 2 Na figura 2-6b, é mostrado um padrão alternativo de varredura que pode ser usado em fontes entrelaçadas. Em uma imagem entrelaçada, um bloco DCT de 8x8 de um campo se estende sobre duas vezes a área da tela vertical, tal que para um detalhe de uma imagem dada, freqüências verticais parecerão ser duas vezes maiores que as freqüências horizontais. Assim, a varredura ideal para uma imagem entrelaçada estará em uma diagonal que é duas vezes mais profundo. A figura 2-6b, mostra que uma dada freqüência espacial vertical é varrida antes da mesma freqüência espacial horizontal. 2.5 Codificação da Entropia No vídeo real, nem todas as freqüências espacial estão presentes simultaneamente; assim sendo, a matriz de coeficiente DCT terá termos zero dentro dela. A requantização aumentará o número de zeros pela eliminação de valores pequenos. Não obstante o uso da varredura, coeficientes zero irão ainda aparecer entre valores significantes. A codificação Run lenght (RLC) permite que estes coeficientes sejam trabalhados mais eficientemente. Onde estão presentes valores repetidos, tal como uma linha de zeros, o RLC simplesmente transmite o número de zeros em vez de cada bit individualmente. 36 Um Guia para Fundamentos de MPEG e Análise de Protocolo A probabilidade de ocorrer valores de coeficientes específicos em vídeo real pode ser estudada. Na prática, alguns valores ocorrem muito freqüentemente. A informação estatística pode ser usada para alcançar futuras compressões usando código de comprimento variável (VLC – Variable Lenght Coding). Valores que ocorrem com freqüência são convertidos em palavras de códigos curtos e valores não freqüentes são convertidos em palavras de códigos longos. Para auxiliar na decodificação, nenhum código de palavra pode ser o prefixo de outra. 2.6 Codificador Espacial A figura 2-7 mostra reunidos todos os conceitos de codificação espacial precedentes. O sinal de entrada é considerado como SDI 4:2:2 (Serial Digital Interface), que pode ter comprimento de palavra de 8 ou 10 bits. MPEG usa somente resolução de 8-bits; assim sendo, uma etapa de arredondamento será necessária quando o sinal SDI contiver palavras de 10 bits. A maioria dos profiles MPEG opera com amostragem de 4:2:0; desta forma, um estágio de interpolação com filtro passa-baixa vertical será necessário. Arredondamento e sub amostragem de cor introduz uma pequena perda irreversível de informação e uma redução proporcional no bit rate. O formato de entrada de varredura necessitará ser armazenado para que possa ser convertidos em blocos de 8x8 pixels. 37 Seção 2 O estágio DCT transforma a informação da imagem para o domínio da freqüência. O DCT em si mesmo não realiza qualquer compressão. Após o DCT, os coeficientes são ponderados e deslocados, proporcionando a primeira compressão significante. Os coeficientes são então varridos em ziguezague para aumentar a probabilidade de que os coeficientes significantes ocorram primeiro na varredura. Após o último coeficiente que não seja zero, um código de final de bloco EOB (end of block) é gerado. Os dados dos coeficientes são comprimidos mais adiante pelas codificações RLC e pela VLC. Em um sistema de bit rate variável, a quantização pode ser fixa, mas em um sistema de bit rate fixo, um buffer de memória é usado para absorver variações de difícil codificação. Imagens altamente detalhadas tenderão a preencher este buffer, enquanto que imagens sem detalhes permitirão que este seja esvaziada. Se ocorrer o risco deste buffer ser sobrecarregado, os passos da requantização terão que ser ampliados, para que o fator de compressão seja aumentado. No decoder, o bit stream é “deserializado” e a codificação da entropia é revertida para reproduzir os coeficientes ponderados. Os coeficientes são postos em uma matriz de acordo com a varredura em zigzag, e a ponderação inversa é aplicada para recriar o bloco de coeficientes DCT. Após a transformar inversa, um bloco de 8x8 pixel é recriado. Para obter a saída de varredura, os blocos são armazenados em uma RAM, que é lida uma linha de cada vez. Para obter uma saída 4:2:2 de dados 4:2:0, um processo de interpolação vertical será necessário, como mostrado na figura 2-8. 38 Um Guia para Fundamentos de MPEG e Análise de Protocolo As amostras de cor 4:2:0 são posicionadas meio a meio entre as amostras de luminância no eixo vertical de tal forma que fiquem igualmente espaçadas quando uma fonte entrelaçada for usada. 2.7 Codificação Temporal A redundância temporal pode ser explorada por inter-codificação ou transmitindo-se apenas as diferenças entre imagens. A figura 2-9 mostra que o atraso de uma imagem, combinado com a subtração pode computar as diferenças das imagens. A diferença da imagem é uma imagem por si mesma e pode ser comprimida mais além, pelo codificador espacial como previamente descrito. O decoder inverte a codificação espacial e adiciona a diferença da figura a figura anterior para obter a próxima imagem. Há algumas desvantagens deste sistema simples. Primeiro como apenas as diferenças são enviadas, é impossível começar a decodificar após o início da transmissão. Esta limitação torna difícil ao decoder prover imagens logo após o chaveamento entre um bit stream e outro (como ocorre quando o espectador troca de canal). Segundo, se qualquer parte da diferença de dados for incorreta, o erro da figura se propagará indefinidamente. 39 Seção 2 A solução para estes problemas é usar um sistema que não seja completamente diferencial. A figura 2-10 mostra que imagens completas são periodicamente enviadas. Estas são chamadas imagens Intra-codificadas (ou imagens I), e são obtidas somente pela compressão espacial. Se um erro ou uma troca de canais ocorrer, será possível reiniciar a decodificação correta na próxima imagem I. 2.8 Compensação de Movimento O movimento reduz as similaridades entre imagens e aumenta os dados necessários para criar a diferença da imagem. A compensação de movimento é usada para aumentar a similaridade. A figura 2-11 mostra este princípio. Quando um objeto se movimenta pela tela da TV, ele pode aparecer em um lugar diferente em cada imagem, mas não muda muito na aparência. A diferença de imagem pode ser reduzida pela medição do movimento no encoder. Esta medida é enviada ao decoder como um vetor. O decoder usa o vetor para levar parte da imagem anterior para um lugar mais apropriado na nova imagem. 40 Um Guia para Fundamentos de MPEG e Análise de Protocolo Um vetor controla o deslocamento de uma área inteira de uma imagem que é conhecida como macrobloco. O tamanho do macrobloco é determinado pela codificação DCT e pela estrutura de sub amostragem de cores. A figura 2-12a mostra que, com um sistema 4:2:0, o espaçamento vertical e horizontal de amostras de cores é exatamente duas vezes o espaçamento da luminância. Um único bloco DCT de 8x8 de amostras de cores se estende sobre a mesma área de quatro blocos 8x8 de luminância; assim sendo, esta é a área mínima de uma imagem que pode ser deslocada por um vetor. Um macrobloco 4:2:0 contém quatro blocos de luminância: um bloco Cb e um bloco Cr. No profile 4:2:2, as cores são sub amostradas somente no eixo horizontal. A figura 2-12b mostra que em 4:2:2, um único bloco DCT de 8x8 de amostras de cores se estende sobre dois blocos de luminância. Um macrobloco 4:2:2 contém quatro blocos de luminância: dois blocos Cb e dois blocos Cr. O avaliador de movimento trabalha comparando os dados de luminância de duas imagens sucessivas. Um macrobloco na primeira imagem é usado como referência. A correlação entre a referência e a próxima imagem é 41 Seção 2 avaliada em todos os deslocamentos possíveis com uma resolução de metade de um pixel sobre toda a faixa de pesquisa. Quando a maior correlação é encontrada, esta correlação é tomada para representar o movimento correto. O vetor de movimento tem um componente vertical e outro horizontal. Em material de programa típico, um objeto móvel pode se estender sobre um número de macroblocos. Um fator de compressão maior é obtido se os vetores são transmitidos diferencialmente. Quando um grande objeto se move, macroblocos adjacentes têm os mesmos vetores e o vetor diferencial torna-se zero. Vetores de movimento estão associados à macroblocos, não com objetos reais da imagem e há ocasiões onde parte do macrobloco se move e outra parte não. Neste caso, é impossível compensar adequadamente. Se o movimento da parte móvel é compensado pela transmissão de um vetor, a parte estacionária será movida incorretamente, e será necessário dados da diferença para correção. Se o vetor não é enviado, a parte estacionária estará correta, mas os dados da diferença serão necessários para corrigir a parte móvel. Um compressor prático pode tentar ambas as estratégias e escolher aquela que requer menos dado. 2.9 Codificação Bidirecional Quando um objeto se move, ele oculta o background em sua parte anterior e mostra o background em sua parte posterior. O background mostrado requer dados novos a serem transmitidos porque a área de background foi previamente oculta e nenhuma informação pode ser obtida da imagem anterior. Um problema similar acontece se a câmera se move em uma panorâmica; novas áreas aparecem e nada se sabe sobre elas. O MPEG auxilia para minimizar este problema através do emprego da codificação bidirecional, que permite que informações sejam tomadas das imagens, antes e depois da imagem corrente. Se o fundo está sendo revelado, ele estará presente em uma imagem posterior, e a informação pode ser movida no sentido inverso no tempo para criar parte de uma figura anterior. 42 Um Guia para Fundamentos de MPEG e Análise de Protocolo A figura 2-13 mostra o conceito da codificação bidirecional. Baseado em um macrobloco individual, uma imagem codificada bidirecionalmente pode obter dados de movimentos compensados de uma imagem anterior ou posterior, ou mesmo usar uma média dos dados anteriores e posteriores. A codificação bidirecional reduz significativamente a porção da diferença de dados necessários para aprimorar o grau de predição possível. O MPEG não especifica como um encoder deve ser construído, somente que é constituído de bit stream adequado. Entretanto, um compressor inteligente poderia tentar todas as três estratégias de codificação e selecionar aquela que fornece o menor número de dados a serem transmitidos. 2.10 Imagens I, P e B Em MPEG, três tipos diferentes de imagens são necessários para dar suporte às codificações diferencial e bidirecional, minimizando a propagação do erro. Imagens I são imagens Intracodificadas que não necessitam de informação adicional para decodificação. Elas exigem grande quantidade de dados em comparação com outros tipos de imagens, e por isso elas não são transmitidas freqüentemente mais do que o necessário. Consistem primariamente de coeficientes transformados e não têm vetores. Imagens I são decodificadas sem referências a nenhuma outra imagem, assim elas permitem ao observador mudar de canais, e elas impedem a propagação do erro. 43 Seção 2 Imagens P são antecipadamente preditas a partir de uma imagem anterior, que poderia ser uma imagem I ou uma imagem P. Os dados da imagem P consistem de vetores que descrevem de onde, na imagem precedente, cada macrobloco deve ser tirado, e de coeficientes transformados que descrevem a correção ou dados da diferença que precisa ser adicionada ao macrobloco. Quando não são encontrados dados adequados para um macrobloco pela busca da compensação de movimento, dados intra são enviados para codificar aquele macrobloco. Imagens P requerem, grosseiramente, metade dos dados de uma imagem I. Imagens B são preditas bidirecionalmente das imagens I ou P precedentes e/ou posteriores. Os dados da imagem B consistem de vetores que descrevem de onde, nas imagens precedentes ou posteriores, os dados devem ser tomados. Também contêm os dados intra-codificados que provêm às correções necessárias. Novamente, quando não são encontrados dados adequados para um macrobloco pela busca da compensação de movimento, dados intra são enviados para codificar aquele macrobloco. A predição bidirecional é bastante efetiva, assim a maioria dos macroblocos de uma imagem B é largamente codificada por vetores de movimento. Também a imagem B nunca é usada como referencia para codificar outras imagens, assim não há possibilidade de erro de propagação. Isto permite aos encoders usarem a requantização mais dinamicamente para correção de dados. Uma imagem B típica requer perto de um quarto dos dados de uma imagem I. Note que uma imagem B não tem que usar ambas as direções de predição; em algumas circunstâncias apenas uma direção é empregada. Esta opção pode ser usada quando construindo grupos fechados de imagens (GOP). 44 Um Guia para Fundamentos de MPEG e Análise de Protocolo A figura 2-14 introduz o conceito de GOP. O GOP representa a em seqüência a estrutura das imagens I, P e B. Geralmente a estrutura GOP se repete em seqüência, mas o comprimento e a estrutura podem mudar a qualquer tempo. Não há limites formais no comprimento de um GOP, mas por propósitos de transmissão um comprimento típico é de 12 a 15 imagens. A natureza da compressão temporal do MPEG significa que a ordem de transmissão das imagens não é a mesma ordem como são mostradas. Uma imagem P segue naturalmente uma I ou P da qual é predita, assim não há exigências especiais. Uma imagem B codificada bidirecionalmente, por outro lado, não pode ser decodificada até que ambas imagens de referência tenham sido recebidas e decodificadas. A figura 2-14 mostra as figuras de um GOP em ordem de exibição no topo, e em ordem de transmissão embaixo. Note que, na ordem de transmissão, as imagens B sempre seguem as duas imagens de referência das quais são preditas. Existem dois tipos de GOP, aberto e fechado. Um GOP fechado não requer referência externa. Na ordem de exibição, pode começar com uma imagem I e terminar com uma imagem P. Na ordem de transmissão usualmente ocorrerão imagens B seguindo a última imagem P, mas estas são imagens que serão exibidas antes daquela última imagem P. É possível começar e/ou terminar um GOP fechado com imagens B (em ordem de exibição), mas neste caso, a imagem B inicial ou final tem que ser codificada usando apenas uma única direção de predição. Imagens B no início de um GOP fechado têm que usar somente predição atrasada. Imagens B no final de um GOP fechado podem usar somente predição adiantada – similar à imagem P, mas as regras de imagens B seriam usadas para requantização, etc. Um GOP aberto não tem estas restrições nos vetores de predição. Por exemplo, Imagens B no final do GOP podem usar predição adiantada da última imagem P e predição atrasada da primeira imagem I do próximo GOP. Esta estrutura é levemente mais eficiente, mas as predições podem ultrapassar quaisquer limites da imagem. É muito mais difícil unir bit streams; e eventos como mudança de canais são mais prováveis de causarem erros de imagens. 45 Seção 2 A estrutura GOP pode ser alterada pelo encoder quando há mudanças de cenas. Predições sobre uma mudança de cena geralmente falha, desde que haja grande entropia entre as duas imagens de cada lado da mudança de cena. Um encoder pode escolher entre detectar a mudança de cena, usar um GOP fechado anterior à mudança de cena e começar um novo GOP (aberto ou fechado) com uma imagem I representando a primeira imagem da nova cena. Transmitir dados de imagem fora de seqüência exige memória adicional no encoder e decoder e também causa delay. O número de imagens bidirecionalmente codificadas, tanto imagens intra ou adiantadamente preditas, precisam ser restritas para reduzir custo e para minimizar o delay, se for uma edição. A figura 2-15 mostra a acomodação que precisa ser feita entre o fator de compressão e o delay da codificação. Para uma mesma qualidade, enviar somente imagens I exige mais que o dobro do bit rate de uma seqüência IBBP. 46 Um Guia para Fundamentos de MPEG e Análise de Protocolo 2.11 Um Compressor MPEG As figuras 2-16a, b e c mostram uma estrutura típica de um compensador bidirecional de movimento. A entrada de vídeo pré-processada introduz uma série de memórias de quadros que podem ser bypassados para mudar a ordem das imagens. Os dados, então, entram no subtrator e no avaliador de movimento. Para criar uma imagem I, o final do atraso da entrada é selecionado e o subtrator é desligado para que os dados passem diretamente para serem codificados espacialmente (ver figura 2-16a). A saída dos dados do subtrator também passa por uma memória de quadros que pode guardar várias imagens. A imagem I é retida na memória. 47 Seção 2 Para codificar uma imagem P, as imagens B na entrada do buffer são bypassados, de tal forma que a futura imagem seja selecionada (veja figura 2-16b). O avaliador de movimento compara a imagem I na saída da memória com a imagem P na entrada da memória para criar vetores de movimentos adiantados. Os macroblocos de imagens I são substituídos por estes vetores para formar uma imagem P predita. A imagem P predita é subtraída da imagem P atual para produzir o erro de predição, que é codificado espacialmente e enviado juntamente com os vetores. O erro de predição é também adicionado à imagem P predita para criar uma imagem P localmente decodificada que também acompanha a saída da memória. 48 Um Guia para Fundamentos de MPEG e Análise de Protocolo A memória de saída, então, contém uma Imagem I e uma imagem P. Uma imagem B da entrada do buffer pode agora ser selecionada. O compensador de movimento comparará a imagem B com a imagem I que a precede e a imagem P que a segue para obter vetores bidirecionais (veja figura 2-16c). O compensador de movimento adiantado e atrasado funciona para produzir duas imagens B preditas. Estas são subtraídas da imagem B atual. No princípio do macrobloco-por-macrobloco, dados adiantados ou atrasados são selecionados de acordo com aqueles que representam as menores diferenças. As diferenças de imagens são, então, codificadas espacialmente e enviadas com os vetores. Quando todas as imagens B intermediárias são codificadas, a memória de entrada, mais uma vez, será bypassada para criar uma nova imagem P baseada na imagem P antecedente. 49 Seção 2 A figura 2-17 mostra um codificador MPEG. A saída do compensador de movimento é codificada espacialmente e os vetores são adicionados em um multiplexer. Dados sintáticos são também adicionados para identificar o tipo de imagem (I, P ou B) e prover outra informação para auxiliar o decoder (veja Seção 5 – Streams Elementares). Os dados de saída são armazenados para permitir variações temporárias do bit rate. Se o bit rate médio for alto demais, o buffer temporário tenderá a encher. Para prevenir sobrecarga, a quantificação terá que ser feita com mais rigor. Igualmente, o buffer deveria mostrar sinais de sob carga para que a quantificação funcione tranqüilamente para manter a média de bit rate. 2.12 Pré-Processamento Um compressor procura eliminar a redundância dentro da imagem e entre imagens. Qualquer coisa que reduza esta evidente redundância, que não é conteúdo da imagem, é indesejável. Ruído e efeitos granulados em filmes são particularmente problemáticos porque geralmente ocorrem sobre a imagem inteira. Após o processo DCT, o ruído resulta em mais coeficientes não zero, e o codificador não é capaz de distinguir esta informação dos dados da imagem original. Uma quantificação mais severa será exigida para codificar todos os coeficientes, reduzindo a qualidade da imagem. O ruído também reduz similaridades entre imagens sucessivas, aumentando a diferença dos dados necessários. A subportadora residual de vídeo decodificada do vídeo composto é um problema sério porque resulta em freqüências altas e espacial que estão normalmente em um nível baixo nos programas componentes. A subpor- 50 Um Guia para Fundamentos de MPEG e Análise de Protocolo tadora também alterna em fase de imagem para imagem causando um aumento na diferença de dados. Naturalmente, qualquer artefato composto decodificado que é visível na entrada do codificador MPEG provavelmente será reproduzido no decoder. Qualquer prática que cause movimentos indesejáveis deverá ser evitada. Montagens instáveis de câmeras, além de proporcionar imagens trêmulas, aumentam as diferenças de imagens e exige mais dos vetores de transmissão. Isto também acontecerá com material de telecine se houver danos no mecanismo de tração do filme. Em geral, o vídeo que deve ser comprimido precisa ser da melhor qualidade possível. Se não for obtida uma alta qualidade, serão consideradas técnicas de redução de ruído e de estabilização. Se um alto fator de compressão é exigido, o nível de artefatos pode aumentar, especialmente se a qualidade a entrada for baixa. Neste caso, pode ser melhor reduzir a entropia apresentada ao codificador através do uso de pré-filtragem. O sinal de vídeo é submetido à filtragem passa-baixa por duas razões, o qual reduz o número de coeficientes necessários e reduz o nível de artefatos. A imagem ficará menos nítida, mas menos nitidez é preferível a um alto nível de artefatos. Na maioria das aplicações MPEG-2, é usada amostragem 4:2:0, que requer um processo de redução da amostragem (downsampling) de croma, se a fonte for 4:2:2. Em MPEG-1, luminância e croma têm a amostragem reduzida para produzir uma imagem de entrada ou formato de imagem comum CIF (common image format) que tem apenas 352 pixels. Esta técnica reduz a entropia por um fator maior. Para uma compressão muito alta, o quarto do formato de imagem comum QCIF (quarter common image format), que tem 176 pixels, é usado. A redução da amostragem é um processo que combina um filtro passa-baixa espacial com um interpolador. A redução da amostragem em sinais de entrelaçados é problemática, porque um detalhe na vertical é espalhado sobre dois campos que podem não se correlacionar devido ao movimento. Quando o material fonte é o telecine, o sinal de vídeo tem características diferentes do vídeo normal. No vídeo de 50Hz, pares de campos representam o mesmo quadro do filme, e não há movimento entre eles. Assim, o movimento entre campos alterna entre zero e o movimento entre os qua- 51 Seção 2 dros. No vídeo de 60Hz, um pulldown de 3:2 é usada para obter os 60Hz do filme de 24Hz. Um quadro é feito com dois campos; o próximo é feito com três campos e assim por diante. Conseqüentemente, um campo em cinco é completamente redundante. O MPEG trabalha melhor o material de filme descartando o terceiro campo no sistema 3:2. Um código de 24Hz na transmissão alerta o decoder para recriar a seqüência 3:2 pela releitura da memória de campo. Em telecine de 50Hz e de 60Hz, pares de campos são desentrelaçados para criar quadros, e então o movimento é medido entre os quadros. O decoder pode recriar o entrelaçado através da leitura das linhas alternadas na memória de quadros. Um corte é um evento difícil para um compressor lidar porque freqüentemente resulta em falha quase completa da predição, requerendo uma grande quantidade de dados para correção. Se um código de delay puder ser empregado, um codificador poderá detectar cortes com antecipação e modificar dinamicamente a estrutura do GOP, de tal forma que uma imagem I seja inserida para coincidir com o corte. Neste caso, o corte é manipulado com muito poucos dados extras. As últimas imagens B antes do quadro I, quase que certamente, necessitará usar predição adiantada. Em algumas aplicações que não estiver em tempo real, como edição de DVD, um codificador poderia efetuar dois passos na entrada de vídeo: um passo para identificar a dificuldade ou áreas de grande entropia e criar uma codificação de estratégia; e um segundo passo para realmente comprimir a entrada de vídeo. 2.13 Wavelets Todas as transformadas estão sujeitas a incerteza porque quanto mais precisamente é conhecido o domínio da freqüência, menos precisamente é conhecido o domínio do tempo (e vice versa). Na maioria das transformadas como a Transformada Discreta de Fourier (DFT) e a Transformada Discreta do Co-seno (DCT), o comprimento do bloco é fixo, assim, a resolução do tempo e da freqüência é fixa. Os coeficientes da freqüência representam valores igualmente espaçados em uma escala linear. Infelizmente, 52 Um Guia para Fundamentos de MPEG e Análise de Protocolo porque os sentidos humanos são logaritmos, a escala uniforme do DFT e da DCT fornece resolução inadequada de freqüência de um lado sem e excesso de resolução de outro lado. A transformada da wavelet não é afetada por este problema porque sua resolução de freqüência é uma fração fixa de uma oitava e, assim sendo, tem uma característica logarítmica. Isto é feito através da alteração do comprimento do bloco como uma função da freqüência. À medida que a freqüência decresce, o bloco se torna mais longo. Assim, uma característica da transformada das wavelets é que todas as funções base contêm o mesmo número de ciclos, e estes ciclos são simplesmente escalonados ao longo do eixo do tempo para pesquisar por diferentes freqüências. A figura 2-18 contrasta o tamanho do bloco fixo de DFT/DCT com o tamanho variável da wavelet. As wavelets são especialmente úteis em codificação de áudio porque elas se adaptam automaticamente às exigências conflitantes da localização precisa de transientes no tempo e a precisa avaliação do nível de áudio de um tom uniforme. 53 Seção 2 Para codificação de vídeo, as wavelets têm a vantagem de reproduzir sinais de resolução escalonáveis sem nenhum esforço extra. Em vídeo com movimento, as vantagens das wavelets são contrabalançadas pela dificuldade de determinar os vetores de movimento para um bloco de tamanho variável, mas em imagens paradas ou codificação de imagens I esta dificuldade não é um problema. A codificação das wavelets tem mostrado benefícios particulares para aplicações em baixo bit rate. Os artefatos gerados pela excessiva quantização dos coeficientes de wavelets geralmente aparecem como “mancha”, e estas são muito menos intoleráveis que os “blockiness” (imagem em pequenos blocos) que resultam da excessiva quantização dos coeficientes do DCT. 54 Seção 3 Compressão de Áudio A compressão de áudio que produz perdas é baseada inteiramente nas características da audição humana, a qual precisa ser considerada antes que seja possível qualquer descrição de compressão. Surpreendentemente, a audição humana, particularmente em estéreo, é realmente mais criticamente discriminadora que a visão humana, e conseqüentemente a compressão de áudio deve ser considerada com atenção. Como na compressão de vídeo, a compressão de áudio requer um número de diferentes níveis de complexidade de acordo com o fator de compressão desejado. Um Guia para Fundamentos de MPEG e Análise de Protocolo 3.1 O Mecanismo da Audição A audição consiste de processos físicos no ouvido e processo mental dos nervos que se combinam para nos dar a impressão do som. A impressão que recebemos não é idêntica a forma de onda acústica efetiva presente no canal do ouvido porque alguma entropia é perdida. Os sistemas de compressão de áudio que perdem somente aquela parte da entropia que será perdida no mecanismo da audição produzirão bons resultados. O mecanismo físico da audição consiste do ouvido externo, médio e interno. O ouvido externo é composto do canal do ouvido e do tímpano. O tímpano converte o som incidente em vibração, quase da mesma forma que o diafragma de um microfone. O ouvido interno funciona sentindo as vibrações transmitidas através de um fluido. A impedância do fluido é muito maior que a do ar e o ouvido médio age como um transformador de casamento de impedância que aprimora a transferência de potência. A figura 3-1 mostra que as vibrações são transferidas para o ouvido interno pelo osso estribo, que age sobre a janela oval. As vibrações no fluido do ouvido passam até a cóclea, uma cavidade espiral do crânio (mostrado estendido na figura 3-1 para maior clareza). A membrana basilar é esticada através da cóclea. Esta membrana varia em massa e consistência ao longo de seu comprimento. No final, perto da janela oval, a membrana é firme e fina, e assim, sua freqüência de ressonância é alta. Distante do final, a membrana á macia e grossa e ressona em freqüências baixas. A faixa de freqüências de ressonância disponível determina a faixa de freqüência da audição humana, que na maioria das pessoas é de 20Hz até perto de 15kHz. Freqüências diferentes no som de entrada causam a vibração de diferentes áreas da membrana. Cada área tem diferentes terminações de nervos para permitir a discriminação dos níveis de sons. A membrana basilar também possui minúsculos músculos controlados por nervos que, juntos, agem como um tipo de sistema de realimentação positiva que aprimora o fator Q da ressonância. O comportamento ressonante da membrana basilar é um paralelo exato do comportamento de um analisador de transformação. De acordo com a teo- 57 Seção 3 ria da incerteza das transformações, quanto mais precisamente o domínio da freqüência de um sinal é conhecido, menos precisamente o domínio do tempo é conhecido. Conseqüentemente, quanto mais uma transformação for capaz de discriminar entre duas freqüências, menos capaz será para discriminar entre o tempo de dois eventos. A audição humana desenvolveu-se com certo compromisso de balancear a discriminação da incerteza do tempo e a discriminação da freqüência; no balanceamento, nenhuma das duas habilidades é perfeita. A imperfeição na discriminação de freqüência resulta da inabilidade em separar freqüências muito próximas. Esta inabilidade é conhecida como “mascaramento” auditivo, definido como sensibilidade reduzida a um som em presença de outro. A figura 3-2a (veja na próxima página) mostra que o limiar (ponto de início) da audição é em função da freqüência. A maior sensibilidade é, sem surpresas, na faixa da fala. Na presença de um tom único, o limiar é modificado como na figura 3-2b. Note que o limiar cresce para tons de freqüências mais altas e se estende para freqüência mais baixa. Na presença de um espectro complexo de entrada, como música, o limiar cresce em quase todas as freqüências. Uma conseqüência deste comportamento é que o “chiado” do áudio analógico de um cassete só é audível durante passagens silenciosas da música. O processo de comprimir e expandir “Companding” faz uso deste princípio amplificando sinais de áudio de baixo nível antes de gravar ou transmitir, retornando-os ao seu nível correto posteriormente. 58 Um Guia para Fundamentos de MPEG e Análise de Protocolo A discriminação de tempo imperfeita do ouvido é devida à sua resposta de ressonância. O fator Q é tal que um dado som precisa estar presente por pelo menos quase um milissegundo antes de se tornar audível. Por causa desta resposta lenta, o “mascaramento” pode ainda ocorrer mesmo quando os dois sinais envolvidos não forem simultâneos. O mascaramento adiantado ou atrasado ocorre quando o mascarador mantém este efeito em sons de níveis mais baixos antes e depois da duração real do som mascarado. A figura 3-3 mostra este conceito. O mascaramento aumenta o limiar da audição e os compressores tomam vantagem deste efeito elevando o piso de ruído, que permite que a forma de onda do áudio seja expressa com poucos bits. O piso de ruído só pode ser elevado em freqüências nas quais há efetivo mascaramento. Para maximizar o mascaramento efetivo, é necessário separar o espectro de áudio em diferentes bandas de freqüência para permitir a introdução de diferentes porções de “companding” e ruído em cada banda. 3.2 Codificação da Sub-Banda A figura 3-4 mostra um compressor – expandidor “compander” separador de banda. O filtro separador de banda é um conjunto de filtros de fase linear e banda estreita que se sobrepõem e todos têm a mesma largura de banda. A saída em cada banda consiste de amostras representando uma 59 Seção 3 forma de onda. Em cada banda de freqüência, a entrada de áudio é amplificada até um nível máximo antes da transmissão. Posteriormente, cada nível retorna ao seu valor correto. A captação de ruído na transmissão é reduzida em cada banda. Se a redução do ruído for comparada com o limiar da audição, pode-se ver que um ruído maior pode ser tolerado em algumas bandas por causa do mascaramento. Conseqüentemente, em cada banda, após o “companding” é possível reduzir o comprimento da palavra amostrada. Esta técnica produz compressão porque o ruído de quantização introduzido pela perda de resolução é mascarado. A figura 3-5 mostra um simples codificador separador de banda usado em MPEG camada 1. A entrada de áudio digital é aplicada a um filtro separador de banda que divide o espectro do sinal em um número de bandas. Em MPEG, este número é 32. O eixo do tempo é dividido em blocos de intervalos iguais. Em MPEG camada 1, existe 384 amostras de entrada, assim, há 12 amostras em cada uma das 32 bandas na saída do filtro. Dentro de cada banda, o nível é amplificado por multiplicação para elevar o nível até o máximo. O ganho exigido é constante para a duração de um bloco e um fator de escala simples é transmitido com cada bloco em cada banda a fim de permitir que o processo seja revertido no decoder. 60 Um Guia para Fundamentos de MPEG e Análise de Protocolo A saída do banco de filtros para o MPEG camada 1 é analisada usando uma FFT (Fast Fourier Transform – Transformada Rápida de Fourier) de 512 pontos para determinar o espectro do sinal de entrada. Esta análise orienta um modelo de mascaramento que determina o grau de mascaramento que pode ser esperado em cada banda. Quanto maior o mascaramento, menos exatas precisam ser as amostras em cada banda. A exatidão da amostra é reduzida através de requantização para reduzir o comprimento da palavra. Esta redução é constante também para todas as palavras da banda, mas diferentes bandas podem usar diferentes comprimentos de palavras. O comprimento da palavra precisa ser transmitido como um código de alocação de bits para cada banda para permitir ao decoder decompor a série do bit stream adequadamente. 3.3 MPEG Camada 1 A figura 3-6 mostra bit stream de áudio em MPEG camada 1. Após o padrão de sincronização e o cabeçalho, há códigos de alocação de 32 bits de quatro bits cada. Estes códigos descrevem o comprimento da palavra das amostras em cada sub-banda. Logo após vem os 32 fatores de escala usados no “companding” de cada banda. Estes fatores de escala determinam o ganho necessário ao decoder para retornar o áudio em seu nível correto. Os fatores de escala são seguidos, por sua vez, pelos dados do áudio em cada banda. 61 Seção 3 A figura 3-7 mostra o decoder da camada 1. O padrão de sincronização é detectado pelo gerador de timing, que decompõe a série de alocação de bits e os dados do fator de escala. O dado da alocação de bits, então, permite a decomposição das amostras de comprimento variáveis. A requantização é revertida e a compressão é revertida pelos dados do fator de escala para por cada banda de volta ao nível correto. Estas 32 bandas separadas são, então, combinadas em um filtro combinador que produz a saída de áudio. 3.4 MPEG Camada 2 A figura 3-8 mostra que quando o filtro separador de bandas é usado para conduzir o modelo de mascaramento, a análise espectral não é muito precisa, desde que há somente 32 bandas e a energia poderia estar em qualquer lugar da banda. O piso de ruído não pode ser muito elevado porque, no pior caso mostrado, o mascaramento pode não funcionar. Uma análise espectral mais acurada permitiria um fator de compressão mais alto. No MPEG camada 2, a análise espectral é executada por um processo separado. Uma FFT (Fast Fourier Transform) de 1024 pontos trabalhando diretamente na entrada é usada para conduzir o modelo de mascaramento. Para analisar freqüências mais precisamente, o tempo de varredura da transformação tem que ser aumentado, o que é feito pelo aumento do tamanho do bloco para 1152 amostras. Como o esquema de “companding” dos blocos é o mesmo da camada 1, nem todos os fatores de escala são transmitidos, desde que contêm um grau de redundância em material de programa real. O fator de escala de blocos sucessivos na mesma banda difere de 2dB, menos de dez por cento 62 Um Guia para Fundamentos de MPEG e Análise de Protocolo do tempo, e a vantagem desta característica é a análise de grupos de três fatores de escala sucessivos. Quando o conteúdo da sub-banda é aproximadamente constante (conhecido como programa estacionário ou quase estacionário), apenas um fator de escala em três é enviado. Como o conteúdo transiente aumenta em uma dada sub-banda, dois ou três fatores de escalas serão enviados. Um código de seleção do fator de escala é também enviado para permitir ao decodificador determinar o que foi enviado em cada sub-banda. Esta técnica efetivamente divide ao meio a taxa de bits do fator de escalas. 3.5 Codificação por Transformada As camadas 1 e 2 são baseadas em filtros separadores de bandas nos quais o sinal é ainda representado como uma forma de onda. Entretanto, a camada 3 adota a codificação por transformada similar àquela usada em codificação de vídeo. Como mencionado acima, o ouvido realiza um tipo de transformada de freqüência no som incidente e, por causa do fator Q da membrana basilar, a resposta não pode aumentar ou reduzir rapidamente. Conseqüentemente, se uma forma de onda de áudio é transformada para o domínio da freqüência, os coeficientes não precisam ser enviados muito freqüentemente. Este princípio é a base da codificação por transformada. Para fatores mais altos de compressão, os coeficientes podem ser requantizados, tornando-os menos exatos. Este processo produz o ruído que estará localizado nas freqüências onde o mascaramento for maior. Outra 63 Seção 3 vantagem extraída de um codificador por transformada é que a entrada do espectro é conhecida com precisão, assim, um modelo de mascaramento preciso pode ser criado. 3.6 MPEG Camada 3 Este nível complexo de codificação só é realmente usado quando for necessário um fator de compressão muito alto. Ele tem um grau de pontos comuns com a camada 2. A transformada discreto do co-seno usada tem 384 coeficientes de saída por bloco. but in a multi-level coder, it is possible to use a hybrid transform incorporating the 32-band filtering of layers 1 and 2 as a basis. Esta saída pode ser obtida pelo processamento direto das amostras de entrada, mas em um codificador de múltiplos níveis, é possível usar uma transformação híbrida incorporando a filtragem de 32 bandas de camadas 1 e 2 como base. Se isto for feito, as 32 sub-bandas do QMF (quadrature mirror filter – filtro de espelho de quadratura) são cada uma, mais além, processadas por um MDCT (modified discreet cosine transform – transformada discreta do co-seno modificado) para obter 384 coeficientes de saída. São usados dois tamanhos de janela para evitar pré-eco em transientes. O chaveamento das janelas é desempenhado pelo modelo psico-acústico. Tem sido constatado que o pré-eco está associado com a entropia do áudio acima do valor médio. Para obter o fator de compressão mais alto, a quantificação não uniforme dos coeficientes é usada juntamente com a codificação Huffman. Esta técnica aloca as palavras mais curtas aos códigos de valores mais comuns. 3.7 MPEG-2 Áudio Embora originalmente designados como áudio MPEG níveis 1, 2 e 3, os sistemas agora são mais exatamente conhecidos como MPEG-1 Nível 1, etc. MPEG-2 definiu as extensões para áudio MPEG-1, e um novo sistema de codificação avançado. 64 Um Guia para Fundamentos de MPEG e Análise de Protocolo O MPEG-2 permite o uso de amostragem em níveis mais baixos que o MPEG-1. Ele não é rigorosamente compatível com os anteriores, mas requer apenas tabelas adicionais em um decoder MPEG-1 para que se tornem inter operacionais. O áudio MPEG-2 BC (backward compatible – compatível com os anteriores) provê sistemas de 5.1 canais (cinco canais com largura de banda completa mais um canal de largura de banda baixa para efeitos de baixa freqüência). O MPEG-2 BC tem um bit stream MPEG-1 (2 canais) em seu núcleo e incorpora extensões multicanais de uma forma que será ignorada por um decoder MPEG-1. O MPEG-2 AAC (advanced audio coding – codificação avançada de áudio) é um sistema mais sofisticado com bancos de filtros de resolução mais alta e ferramentas de codificação adicionais. Isto oferece uma eficiência de codificação significantemente maior, mas não é compatível com os anteriores. 3.8 MPEG-4 Áudio A codificação MPEG-4 é baseada em objetos (veja seção 4.6). Os objetos do MPEG-4 podem representar sons naturais ou sintéticos. Para codificação de áudio natural, o conjunto de ferramentas do MPEG-4 inclui o MPEG-2 AAC e também uma variedade de outras ferramentas, incluindo codificação paramétrica para bit rate muito baixo e uma técnica conhecida como codificação excitada por predição linear (CELP) para codificação da fala na faixa média do bit rate. São empregadas várias formas de escabilidade, incluindo escalabilidade de bitstream que pode ser aplicada em pontos do sistema de transmissão. 65 Seção 3 O uso da codificação de objetos permite que escolhas sejam feitas no ponto de decodificação. Por exemplo, um concerto pode ser transmitido como dois objetos, orquestra e solo. A decodificação normal apresentaria o trabalho completo, mas um instrumentista poderia decodificar apenas o objeto da orquestra e executar o solo “ao vivo”. Aproximações similares poderiam permitir a codificação de programas de tal forma que os ouvintes pudessem selecionar um modo de “supressão” para eliminar comentários como um evento esportivo. Em 2001, foi apresentada uma variante de alta eficiência do MPEG-4 AAC. Esta pretendia proporcionar uma performance superior em bit rate baixo, tipicamente em torno de 128 Kbit/s. HE-AAC, também conhecida como aacPlus, é realmente um super conjunto de AAC (advanced audio coding) que adiciona uma técnica aprimorada, conhecida como SBR (Spectral Band Replication – replicação do espectro da banda). O SBR é uma técnica de expansão da largura de banda que habilita CODECs de áudio para fornecer a mesma qualidade de audição com aproximadamente metade do bit rate que o CODEC interno necessitaria se operado sem esta técnica. Mais recentemente, o HE-AAC v2 foi apresentado, como ilustrado pela figura 3-9. Novamente, este é um super conjunto do v1 e adiciona um melhoramento com o Estéreo Paramétrico (PS). Parametric Stereo increases the coding efficiency by exploiting a parametric representation of the stereo image of a given input signal. O Estéreo Paramétrico aumenta a eficiência da codificação explorando uma representação paramétrica da imagem estéreo de um dado sinal de entrada. 66 Um Guia para Fundamentos de MPEG e Análise de Protocolo Ainda sobre a arquitetura de superconjunto, os decoders HE-AAC v2 também são capazes de decodificar os bitstreams AAC comuns, tanto quanto os bitstreams que incorporam os dados componentes do AAC e SBR. Isto permite um alto grau de flexibilidade para os broadcasters, à medida que contém todos os componentes técnicos necessários para compressão de áudio sobre uma ampla faixa de bit rates. 3.9 AC-3 A técnica de codificação de áudio AC-3, inventada pelos Laboratórios Dolby, é usada no sistema ATSC em vez dos esquemas de codificação de áudio MPEG. É registrado como Padrão ATSC a/52. Posteriormente, o AC-3 foi adotado como um componente opcional do DVB e pelo sistema Motorola Digicypher II. O AC-3 é um sistema baseado na transformação que obtém ganho de codificação pela requantização dos coeficientes de freqüência. A entrada PCM do codificador AC-3 é dividida em blocos de janelas sobrepostas como mostrado na figura 3.9.1. Estes blocos contêm 512 amostras cada, mas por causa da completa superposição, há cem por cento de redundância. Após a transformada, existem 512 coeficientes em cada bloco, mas por causa da redundância, estes coeficientes podem ser reduzidos para 256 coeficientes, usando uma técnica chamada de TDAC (time domain aliasing cancellation). A forma de onda de entrada é analisada e, se houver um transiente significante na segunda metade do bloco, a forma de onda será separada em duas para prevenir o pré eco. Neste caso, o número de coeficientes permanece o mesmo, mas a resolução da freqüência será reduzida à metade e a resolução temporal será duplicada. Um sinal indicador é posto no bit stream para indicar ao decoder que isto foi feito. Os coeficientes saem em notação de ponto flutuante como uma mantissa e um expoente. A representação é o equivalente binário da notação científica. Expoentes, efetivamente, são fatores de escalas. O conjunto de expoentes de um bloco produz uma análise do espectro da entrada com precisão finita em uma escala logarítmica chamada de envelope espectral. 67 Seção 3 Esta análise espectral é a entrada para o modelo de mascaramento que determina o grau que o ruído pode atingir em cada freqüência. O modelo de mascaramento dirige o processo de requantização que reduz a acuidade de cada coeficiente arredondando a mantissa. Uma significante proporção dos dados transmitidos consiste dos valores das mantissas. Os expoentes também são transmitidos, mas não diretamente, uma vez que há redundância adicional entre eles que pode ser aproveitada. Dentro de um bloco, somente o primeiro expoente (o de freqüência mais baixa) é transmitido em sua forma absoluta. Os expoentes restantes são transmitidos diferencialmente e o decoder adiciona a diferença ao valor anterior. Onde a entrada de áudio tem um espectro suave, os expoentes em várias bandas de freqüências podem ser o mesmo. Os expoentes podem ser agrupados em conjuntos de dois ou quatro com sinais para descrever o que foi feito. Grupos de seis blocos são montados em um quadro de sincronismo AC-3. O primeiro bloco do quadro sempre trás os dados completos do expoente, mas em casos de sinais estacionários, blocos posteriores no quadro podem usar os mesmos expoentes. 68 Seção 4 Os Padrões As seções 2 e 3 apresentaram as tecnologias de compressão de vídeo e áudio, e muitas ferramentas usadas nos padrões. Durante anos, duas principais corporações se comprometeram com o desenvolvimento paralelo de padrões e algoritmos de compressão de vídeo e de áudio, que são MPEG e ITU. Esta seção examina a história, a estrutura e a evolução dos padrões relacionados com broadcasting. Um Guia para Fundamentos de MPEG e Análise de Protocolo 4.1 O Que é MPEG? MPEG é Moving Pictures Experts Group (Grupo de Especialistas em Imagens Móveis), um comitê subordinado ao controle da junta ISO (International Standards Organization - Organização de Padrões Internacionais) e à IEC (International Electrotechnical Commission – Comissão Eletrotécnica Internacional). A IEC trata da padronização internacional de tecnologias elétricas e eletrônicas; a ISO trata virtualmente de tudo o mais. No começo da era da tecnologia da informação, ISO e IEC formavam um comitê de junta técnica (JTC1) para tratar as questões sobre tecnologias da informação (TI). JTC1 tem um número de grupos de trabalhos, incluindo JPEG (Joint Photographic Experts Group – Grupo de Juntas de Especialistas Fotográficos) e WG11, que é o MPEG. O comitê foi formado em 1988 sob a direção do Dr. Leonardo Chiariglione da Itália. Foi estabelecida uma diretriz invejável para registros de geração de padrões que teve ampla aceitação: MPEG-1, MPEG-2 e o padrão de compressão de áudio MP3 (áudio MPEG-1 camada 3). Esta reputação perdeu um pouco do brilho por causa do MPEG-4, não por causa de deficiências do padrão, mas como resultado do longo atraso na publicação dos termos da licença, e à forte reação adversa aos primeiros termos que foram eventualmente publicados no começo do ano 2002. 4.2 Quem é ITU? A ITU (International Telecommunication Union – União Internacional de Telecomunicação) é a agência da União das Nações especializadas no campo das telecomunicações. O ITU-T (Telecommunication Standardization Sector – Setor de Padronização das Telecomunicações) é uma organização permanente do ITU. O ITU-T é responsável pelo estudo das questões técnicas, de operação e tarifas e distribuição de recomendações sobre estes assuntos com uma visão de padronização das telecomunicações com aceitação mundial. Em algumas áreas da tecnologia da informação que estejam na abrangência do ITU-T, os padrões necessários são preparados em bases cooperativas com ISO e IEC. 71 Seção 4 Um grupo conhecido como ITU-T SG 16 Q.6, é responsável pelo desenvolvimento de padrões atualizados. Este grupo é mais conhecido como VCEG (Vídeo Coding Experts Group – Grupo de Especialistas em Codificação de Vídeo). 4.3 Evolução dos Padrões A figura 4.3 ilustra a evolução dos padrões de vídeo. Podemos perceber que os grupos ITU-T VCEG e MPEG WG 11 têm colaborado para desenvolver novos padrões de codificação de vídeo. Os CODECs resultantes têm sido publicados por ambas as corporações com nomes diferentes. O padrão de CODEC de vídeo MPEG-2 que surgiu da parceria é conhecido na comunidade ITU-T como H.262. O padrão de vídeo MPEG-4 parte 2 é um padrão amplo e ainda tem alguns problemas para implementação comercial. É excessivamente complexo, contendo muitos profiles, a grande maioria dos quais sem aplicações comerciais. Incluindo um número de acertos técnicos, como a sintaxe que não é tão bem estruturada e clara como deveria ser, tornando a implementação e a interoperabilidade mais difíceis. Alguns elementos não são inteiramente claros e estão vagos quanto à interpretação. Há alguns erros, quanto ao padrão, o software de referência normativa e os bitstreams normativos são algumas vezes diferentes entre si. Levou muito tempo para o desenvolvimento e a padronização do MPEG-4, durante este período prolongado, a tecnologia mudou para o H.264/AVC, que sem dúvida, produz melhor compressão. 72 Um Guia para Fundamentos de MPEG e Análise de Protocolo H.264 é um nome relativo aos padrões de vídeo da linha H.26x do ITU-T, enquanto que o AVC é relativo ao lado ISO/IEC MPEG da parceria do projeto que completou o trabalho sobre o padrão, após um desenvolvimento inicial feito pelo ITU-T como um projeto chamado H.26L. É comum chamar o padrão de H.264/AVC (ou AVC/H.264 ou H.264/MPEG-4 AVC ou MPEG-4 Parte 10) para enfatizar a herança comum. Retornando à história do ITU-T o nome H.26L, é menos comum, mas ainda é usado. Ocasionalmente, também pode ser conhecido como “o CODEC JVT”, em referência à organização JVT que o desenvolveu. O H.264/AVC se concentra somente no vídeo, e como resultado é mais fácil e rápido de padronizar que o MPEG-4 Parte 2. Além disso, não tem que interoperar com muitas outras partes do mesmo padrão. A estrutura dos padrões H.264/AVC garantiu que os elementos dos sistemas fossem observados em outros lugares – por exemplo, com uma pequena modificação do Transport Stream MPEG-2 ele pode conduzir o vídeo H.264/AVC tanto quanto o vídeo MPEG-2. Como resultado, o H.264/AVC se tornou altamente atrativo para toda a indústria de broadcast, que emprega o Transporte Stream MPEG-2 (‘TS’). O processo de se embutir o vídeo H.264/AVC em um MPEG-2 TS mostra que ele é compatível com os ante- 73 Seção 4 riores, com a maioria da infra-estrutura altamente dispendiosa existente – transmissão por satélite, transmissão de TV a cabo, etc. Para se beneficiar das vantagens do aprimoramento da qualidade e das possibilidades que o vídeo em HD oferece precisam ser atualizados apenas os elementos de vídeo na fonte e nos pontos finais de destino. Embora seja complexo em si mesmo (ver “Complexidade do H.264/AVC”), o padrão foi bem projetado e bem escrito. Um Software de relativa boa referência também está disponível. O resultado é que para os engenheiros implementarem o H.264/AVC, embora seja ainda uma tarefa muito grande, é geralmente mais fácil de implementar do que o MPEG-4 parte 2. Muitas companhias reconhecem a maturidade do padrão, assim, há um real incentivo comercial por trás disso. Nos últimos anos a Microsoft entrou no mercado de broadcast com um CODEC alternativo de vídeo, o AVC/H.264. A Microsoft originalmente desenvolveu o formato Windows Media Vídeo (WMV) como um CODEC proprietário com propósito de streaming pela Internet. Com o WMV versão 9 foi adicionado um novo Profile Avançado para aplicação em broadcast. In 2003, WMV-9 was submitted to SMPTE for Em 2003, o WMV-9 foi submetido ao SMPTE para padronização. O padrão foi oficialmente aprovado em março de 2006 como SMPTE 421M, que é também conhecido como VC-1. O VC-1 proporciona uma performance similar ao do H.264/AVC e potencialmente oferece reduzida exigência de memória e de processamento. Com a padronização SMPTE ele deve encontrar uso amplamente disseminado. É notório que os formatos que competem pela próxima geração de padrão de DVD, o HD DVD e o Blu-ray, ambos devem suportar o AVC/H.264 e o VC-1. 4.3.1 Performance do Vídeo A performance do CODEC é simplesmente a medida de quantos bits são necessários para alcançar uma qualidade visual específica em uma seqüência de vídeo. Entretanto, isso é muito mais complexo do que parece, pois a 74 Um Guia para Fundamentos de MPEG e Análise de Protocolo performance e a “qualidade visual” é uma combinação subjetiva de muitas coisas, por exemplo: - Nitidez de vídeo; - Objetos visuais como “chuvisco” ou “fantasma”; - Fidelidade de cores; - Sincronização de áudio/vídeo; - Suavidade dos movimentos. Estes aspectos visuais derivam dos diferentes tipos de codificações usados em toda a seqüência, os diferentes tipos de quadros e a distribuição da variação do uso de bits durante a seqüência. Apesar dos elementos subjetivos serem difíceis de medir, é possível quantificar os elementos objetivos, tais como a codificação e o emprego dos bits. Há certa correlação entre a qualidade visual e os parâmetros quantificáveis, por exemplo, a medida do PSNR Razão de Pico do Sinal/Ruído (Peak Signal-to-Noise Ratio). 4.3.2 Licenciamento O comitê MPEG, propriamente dito, não tem a função de licenciar. Sob o patrocínio do ISO e IEC, requer que a tecnologia incluída em seus padrões seja licenciável sob “termos razoáveis e não discriminatórios”, mas não há uma definição aceita como “razoável”. O licenciamento é de responsabilidade dos detentores das patentes mais importantes, e isto tipicamente, significa muitas organizações ao redor do mundo que contribuíram com pesquisa e desenvolvimento, e queira ter alguma recompensa. Para o MPEG-2, os detentores da patente se reuniram e formaram um grupo, o MPEG-LA (autoridade para licenciamento do MPEG). Todas as patentes essenciais são certificadas por este grupo, e são licenciadas como um bloco para qualquer organização que queira implementar os padrões. Isto funcionou bem para o MPEG-2, mas, como descrito acima, maiores dificuldades foram experimentadas com o MPEG-4 parte 2, e certamente entravou seu sucesso comercial. 75 Seção 4 O H.264/AVC (também conhecido como MPEG-4 parte 10) também sofreu com prolongados problemas de licenciamento, e esta é a razão por que o VC-1 foi introduzido. Eventualmente foram formados dois grupos separados de detentores de patentes que são representados pela MPEG-LA e Via Licencing. É necessária uma licença das duas corporações por qualquer organização que deseje implementar o padrão H.264/AVC. 4.4 MPEG-1 O sistema MPEG-1, ISO/IEC 11172, é o primeiro padrão internacional de compressão para imagens em movimento e foi desenvolvido entre 1988 e 1992. Ele emprega transformada DCT, coeficiente de quantização e codificação de comprimento variável de maneira similar ao JPEG, mas também inclui compensação de movimento para compressão temporal. São três partes: - Sistema ISO/IEC 11172-1, a estrutura multiplex; - Codificação de Vídeo ISO/IEC 11172-1; - Codificação de Áudio ISO/IEC 11172-1. O MPEG-1 representou um excelente empreendimento técnico. Foi projetado para comprimir imagem streams com figura de tamanho SIF, 352x288 (25Hz PAL) ou 352x240 (30Hz NTSC), e áudio associado, para uma razão total de dados comprimidos de aproximadamente 1,5 Mbits/s. Esta taxa é adequada para transporte para circuitos de dados T1 e para reprodução de CD-ROM, e corresponde aproximadamente à resolução de um gravador de vídeo. Uma medida deste empreendimento pode ser vista pela comparação dos números de um CD de áudio. Um CD de áudio normal, que tenha dois canais de áudio, com uma resolução de 16-bits e uma taxa de amostragem de 44,1 kHz, tem uma taxa de transferência de dados de até 1,5 Mbit/s. O MPEG-1 sucedeu a compressão de vídeo e áudio de tal forma que ambos podem ser transmitidos com a mesma taxa de dados! 76 Um Guia para Fundamentos de MPEG e Análise de Protocolo O formato CIF é um acordo entre os formatos europeu e o americano SIF (source input format – formato da fonte de entrada): resolução espacial para 625 SIF (352x288) e resolução temporal 525 SIF (29,97 Hz). Esta é a base para vídeo conferência. O MPEG-1 foi desenvolvido para imagens CIF e não tem recursos para imagem entrelaçada, assim ele teve, obviamente, pouco impacto no mundo de televisão broadcast. Antes de deixarmos o MPEG-1, é importante notar o que realmente está incluído no padrão e como a interoperabilidade é realizada. O padrão define um conjunto de ferramentas, sintaxe do bit stream, e a operação do decoder. Ele não define a operação do encoder – qualquer dispositivo que produz um bit stream válido sintaticamente, que pode ser decodificado por um decoder compatível, é um encoder MPEG válido. Ele também não define a qualidade da imagem, nem a qualidade do codificador. Isto permite a evolução da tecnologia da codificação sem alteração do padrão, sem tornar obsoletos os decoders existentes. Este modelo é usado por todos os padrões MPEG. O sucesso desta estratégia é óbvio; embora o MPEG-2 seja usado para vídeo, o MPEG-1 camada 2 de áudio ainda está em uso como o principal sistema de compressão de áudio nos sistemas de transmissão DVB de hoje. 4.5 MPEG-2 O MPEG-1 foi paralisado (ou seja, alterações subseqüentes foram permitidas apenas para editoração) em 1991. No mesmo ano teve início o processo do MPEG-2, e eventualmente tornou-se um padrão em 1994. Os objetivos iniciais eram simples; havia a necessidade de um padrão que pudesse acomodar a qualidade da largura de vídeo broadcast. Isto exigia a codificação “full size” (completa) das imagens de definição padrão (704x480 em 29,97Hz e 704x576 em 25Hz), e a habilidade para codificar vídeo entrelaçado eficientemente. Em muitos aspectos, o MPEG-2 representa a “nova era” do MPEG. A maior flexibilidade do MPEG-2, combinada com maior disponibilidade de circui- 77 Seção 4 tos integrados em larga escala, significava que o MPEG-2 poderia ser usado em um vasto número de aplicações. O sucesso do MPEG-2 é mais bem realçado pelo fim do MPEG-3, direcionado para televisão de alta definição. O MPEG-3 foi rapidamente abandonado quando ficou claro que o MPEG-2 poderia conciliar esta aplicação com facilidade. O MPEG-2 é, obviamente, a base para ambos os padrões de transmissão ATSC e DVB, e o sistema de compressão usado pelo DVD. O MPEG-2 também se permitiu ser modificável. Pelo emprego de profiles e níveis, discutidos logo abaixo, foi possível completar o padrão para uma aplicação, foi então ampliado para acomodar as exigências de mais aplicações de uma maneira evolutiva. O trabalho de ampliação do MPEG-2 continuou em 2002. - ISO/IEC 13818-1 Sistemas (stream de transporte e de programas), PES, modelo de buffer T-STD e as tabelas básicas PSI: CAT, PAT, PMT e NIT; 78 Um Guia para Fundamentos de MPEG e Análise de Protocolo - ISO/IEC 13818-2 codificação de vídeo; - ISO/IEC 13818-3 codificação de áudio; - ISO/IEC 13818-4 MPEG teste e conformidade; - ISO/IEC 13818-6 transmissão de dados e DSMCC. Uma das maiores realizações do MPEG-2 definidas no 13818-1, o transporte stream, é descrito na Seção 8. A flexibilidade e robustez deste projeto permitiram seu emprego em muitas aplicações, incluindo o transporte dos dados do MPEG-4 e do MPEG-7. Nota: o fluxo de transporte do DVB e ATSC conduz áudio e vídeo PES dentro de agrupamentos de “programas”, que são inteiramente diferentes dos “fluxos de programas” (estes usados em DVD & CD). Os Transporte Streams do MPEG têm normalmente um bit rate constante, mas, os programa streams normalmente têm um bit rate variável. 4.5.1 Perfis e Níveis em MPEG-2 Com pequenas exceções, o MPEG-1 foi projetado com uma tarefa: a codificação de imagens de tamanho fixo e áudio associado a um bit rate conhecido de 1,5 Mbits/s. As ferramentas e a sintaxe do MPEG-1 podem e têm sido usadas para outros propósitos, mas tal uso é fora do padrão e requer encoders e decoders proprietários. Há somente um tipo de decoder que condiz com o padrão do MPEG-1. No princípio, havia um propósito similar para o MPEG-2. Ele foi destinado à codificação para transmissão de som e imagens, nominalmente em sistemas de televisão entrelaçado de 525/60 e 625/50. Entretanto, à medida que os projetos progrediam, ficou claro que as ferramentas desenvolvidas eram capazes de lidar com muitas dimensões de imagens e uma grande faixa de bit rate. Além disso, ferramentas mais complexas foram desenvolvidas para codificação de sistemas escalonáveis. Isto significa que, na prática, não poderia haver um simples decoder MPEG-2. Se um decoder fosse capaz de manusear bit streams de alta velocidade codificados usan- 79 Seção 4 do todas as ferramentas possíveis, ele não seria um decoder econômico para aplicações do mainstream. Como exemplo simples, um dispositivo capaz de decodificar sinais de alta definição em, digamos, 20 Mbits/seg. seria substancialmente mais caro que outro limitado à definição padrão em torno de 5 Mbits/seg. Este seria um padrão limitado que precisaria de um dispositivo caro para uma aplicação simples. O MPEG desenvolveu uma estrutura bi-dimensional de profiles e níveis para classificação de bit streams e decoders. Os profiles definem as ferramentas que podem ser usadas. Por exemplo, a codificação bi-direcional (quadros B) pode ser usada no profile principal, mas não no profile simples. Os níveis dizem respeito somente à escala. Um decoder de alto nível deve ser capaz de receber um bit tream mais rápido, e deve ter mais buffer no decoder e maior armazenamento de quadros que um decoder de nível principal. Entretanto, o profile principal em nível alto (MP@HL – main profile at high level) e o perfil principal em nível principal (MP@ML – main profile at main level) usam exatamente as mesmas ferramentas de codificação/ decodificação e os mesmos elementos de sintaxe. A figura 4-5 mostra os emparelhamentos de profile e nível que são definidos pelo MPEG-2 (profiles nos eixos horizontais, Níveis nos eixos verticais). Note que nem todas as combinações são válidas; apenas os pares completos são definidos no padrão. É uma exigência para conformidade com o padrão que um decoder, em qualquer profile/nível, capaz de decodificar perfis e níveis mais baixos. Por exemplo, um decoder MP@ML deve ser capaz de decodificar bit streams de profile principal em nível baixo (MP@LL – main profile at low level) e profile simples em nível principal (SP@ML – simple profile at main level). O profile simples não suporta a codificação bi-direcional, e assim, somente sairão imagens I e P. Isto reduz o delay da codificação e decodificação e usa um hardware mais simples. O profile simples foi definido apenas no nível principal. O Main Profile foi projetado para uso de larga proporção. O nível baixo usa uma entrada de baixa resolução tendo somente 352 pixels por linha. A maioria das aplicações de broadcast requer um subsistema do MPEG MP@ML, que dá suporte à TV de definição padrão (SDTV – Standard definition TV). 80 Um Guia para Fundamentos de MPEG e Análise de Protocolo O nível alto 1440 é um projeto de alta definição que duplica a definição, se comparada ao nível principal. O alto nível não apenas duplica a resolução, mas mantém esta resolução com o formato 16:9 aumentando o número de amostras horizontais de 1440 para 1920. Em sistemas de compressão que usa transformada espacial e requantização, produzem sinais escalonáveis. Um processo escalonável é aquele em que a entrada resulta em um sinal principal e um sinal “auxiliar”. O sinal principal pode ser decodificado sozinho para fornecer uma imagem de certa qualidade, mas se a informação do sinal auxiliar for adicionada, alguns aspectos da qualidade podem ser aprimorados. Por exemplo, um codificador MPEG convencional, pela requantização rigorosa dos coeficientes, codifica uma imagem com moderada relação sinal/ruído. Se, entretanto, esta imagem é localmente decodificada e subtraída pixel por pixel da original, o que resulta numa imagem de ruído quantizada. Esta imagem pode ser comprimida e transmitida como um sinal auxiliador. Um decoder simples decodifica apenas o bit stream de ruído principal, mas um decoder mais complexo pode decodificar ambos os bit streams e combinálos para produzir uma imagem de baixo ruído. Este é o princípio da escalabilidade da razão sinal/ruído (SNR – signal-to-noise ratio). Como alternativa, codificar somente as freqüências espaciais mais baixas em uma imagem HDTV pode produzir um bit stream principal que um receptor SDTV pode decodificar. Se uma imagem de menor definição é localmente decodificada e subtraída da imagem original, o resultado seria uma imagem com melhor definição. Esta imagem pode ser codificada em um sinal auxiliar. Um decoder adequado poderia combinar o sinal principal e o auxiliar para recriar a imagem HDTV. Este é o princípio da escalabilidade espacial. O alto perfil sustenta ambos SNR e escalabilidade espacial, tanto quanto permite a opção de amostragem de 4:2:2. O profile 4:2:2 foi desenvolvido para melhorar a compatibilidade com equipamento de produção digital. Este profile permite operarações 4:2:2 sem necessidade de complexidade adicional usando alto profile. Por exemplo, um decoder HP@ (high profile at main level) deve sustentar escalabilidade SNR, que não é uma exigência para produção. O profile 4:2:2 tem 81 Seção 4 a mesma liberdade da estrutura GOP de outros profiles, mas na prática é comumente usado em GOPs curtos, facilitando a edição. A operação 4:2:2 requer bits rate mais altos do que a 4:2:0, e o uso de GOPs curtos e requer bit rate ainda maior para uma dada qualidade. O conceito de profile e níveis é outro desenvolvimento do MPEG-2 que tem mostrado ser robusto e ampliável; o MPEG-4 usa um arranjo bem mais complexo de profiles e níveis, que será discutido adiante. 4.6 MPEG-4 A padronização internacional é um processo lento, e avanços tecnológicos que ocorrem freqüentemente poderiam ser incorporados a padrões em desenvolvimento. Isto é o desejável, mas aprimoramentos contínuos podem significar que um padrão nunca é concluído e usado. Para assegurar que um padrão seja concluído há regras estritas que proíbem mudanças substanciais após certo ponto do processo de padronização. Assim, quando um padrão é oficialmente adotado há freqüentemente certo acúmulo de recursos adicionais e extensões que seriam desejáveis. Este foi o caso do MPEG-2. Como discutido acima, o MPEG-3 foi iniciado e abandonado, então o novo projeto foi o MPEG-4. 82 Um Guia para Fundamentos de MPEG e Análise de Protocolo No começo o foco principal do MPEG-4 foi a codificação de vídeo e áudio com taxas muito baixas. De fato, o padrão foi explicitamente melhorado para três faixas de bit rate: - Abaixo de 64 Kbits/s; - De 64 a 384 Kbits/s; - De 384 Kbits/s até 4 Mbits/s. A performance em baixo bit rate foi mantida como objetivo maior e algumas idéias muito criativas contribuíram para este fim. Grande atenção também foi dada à capacidade de recuperação a erros, tornando o MPEG-4 muito útil para emprego em ambientes propícios a erros, tais como transmissão para dispositivos de manuseio pessoal. Entretanto, outros profiles e níveis usam bit rate de até 38,4 Mbits/s, e ainda há trabalhos em andamento sobre profiles e níveis de alta qualidade que usam taxas de dados de até 1,2 Gbits/s. O mais importante é que o MPEG-4 se tornou muito mais que apenas mais um sistema de compressão – ele evoluiu para um conceito totalmente novo de codificação multimedia com ferramentas poderosas para interatividade e um vasto campo de aplicações. Um “resumo” oficial deste padrão abrange 67 páginas, então apresentaremos aqui uma breve introdução ao sistema. 83 Seção 4 4.6.1 Documentos Padrões do MPEG-4 As partes principais do padrão MPEG-4 são: - ISO/IEC 14496-1 Sistemas; - ISO/IEC 14496-2 Visual; - ISO/IEC 14496-3 Áudio; - ISO/IEC 14496-4 Teste de Conformidade; - ISO/IEC 14496-6 Estrutura de Integração de Transferência de Multimedia (DMIF); - ISO/IEC 14496-10 Codificação de Vídeo Avançada; - ISO/IEC 14496-12 Formato de Arquivo de Media em Base ISO; - ISO/IEC 14496-14 Formato de Arquivo MP4; - ISO/IEC 14496-15 Formato de arquivo de Codificação de Vídeo Avançada (AVC). 4.6.2 Codificação do Objeto O ponto de partida mais significante do sistema de transmissão convencional é o conceito de objetos. Diferentes partes de uma cena podem ser codificadas e transmitidas separadamente como objetos de vídeo e objetos de áudio a serem reunidos ou recompostos por um decoder. Diferentes tipos de objetos podem ser, cada um, codificados com as ferramentas mais apropriadas ao trabalho. Os objetos podem ser gerados independentemente, ou uma cena pode ser analisada para separar, por exemplo, objetos em foreground e background. Em uma demonstração interessante, a cobertura de vídeo de um jogo de futebol foi processada para separar a bola Em uma interessante demonstração, a cobertura de uma partida de futebol foi processada separadamente a bola do restante da cena. O background (cena sem a bola) foi transmitido como “provocação” para atrair uma audiência “pay-per-view”. 84 Um Guia para Fundamentos de MPEG e Análise de Protocolo Qualquer um podia ver os jogadores e o campo, mas somente aqueles que pagaram podiam ver a bola! O processo de orientação do objeto leva a três características-chave stream MPEG-4: - Vários objetos podem ser codificados usando técnicas diferentes e recompostos no decoder; - Os objetos podem ser de origem natural, como cenas de uma câmera; ou sintético, como um texto; - Instruções no bit stream com ou sem a escolha do usuário, podem permitir várias apresentações diferentes do mesmo bit stream. A figura 4-6 mostra o sistema generalizado para codificação de objetos em MPEG-4. Este diagrama também enfatiza as oportunidades de interação do usuário com os sistemas do MPEG-4 – um poderoso recurso, particularmente para designers de vídeo game. Estas capacidades não têm que ser usadas – o MPEG-4 proporciona codificação tradicional de áudio e vídeo, e aperfeiçoa o MPEG-2 pela possibi- 85 Seção 4 lidade de eficiência aprimorada e resiliência a erros. Entretanto, a verdadeira força do MPEG-4 vem da arquitetura descrita acima. A codificação independente de objetos oferece um grande número de vantagens. Cada objeto pode ser codificado da maneira mais eficiente, e pode ser empregado um escalonamento espacial e temporal apropriado (ver 4.6.3). 4.6.3 Codificação de Áudio e Vídeo Muitas das ferramentas de codificação de vídeo em MPEG-4 são similares àquelas do MPEG-2, mas otimizada para melhor uso da codificação prevista e codificação mais eficiente da entropia. Entretanto, a aplicação das ferramentas pode diferir significativamente dos padrões anteriores. O MPEG-4 codifica objetos de vídeo. No modelo mais simples um vídeo é codificado quase da mesma forma que no MPEG-2, mas é descrito como um objeto único de vídeo com a forma retangular. A representação da imagem é conhecida como codificação da textura. Onde há mais de um objeto de vídeo, alguns podem ter formas irregulares, e geralmente todos serão menores que um objeto de tela cheia de background. Isto significa que somente a área ativa do objeto precisa ser codificada, mas a forma e a posição também têm que ser representadas. O padrão inclui ferramentas para codificação da forma de objetos retangulares e irregulares, ou em binário ou em representações de escala cinza (similar a um canal alpha). O conceito é mostrado na figura 4-6-3. Similarmente, o MPEG-4 usa ferramentas similares às do MPEG-1 e MPEG-2 para codificar áudio ao vivo, e AAC (advanced audio coding) oferece maior eficiência. Múltiplos “objetos” de áudio podem ser codificados separadamente e recompostos no decoder. Como no vídeo, objetos de áudio podem ser naturais ou sintéticos. 4.6.4 Escalabilidade No contexto da compressão de mídia, escalabilidade significa a habilidade de distribuir conteúdo de mais de uma qualidade dentro do mesmo bit stream. Como mostrado na figura 4-6-4 o MPEG-2 e o MPEG-4 parte 2, 86 Um Guia para Fundamentos de MPEG e Análise de Protocolo ambos fornecem profiles escalonáveis usando um modelo convencional; o encoder gera uma camada-base e uma ou mais camadas otimizadas. A(s) camada(s) otimizada(s) pode(m) ser descartada(s) para transmissão ou decodificação se não estiverem disponíveis os recursos suficientes. Este procedimento funciona, mas todas as decisões sobre níveis de qualidade precisam ser tomadas durante a codificação, e na prática, o número de camadas otimizadas é severamente limitado (geralmente em uma camada). 4.6.5 Tamanho Variável do Macrobloco Como ilustrado na figura 4-6-5, uma das vantagens do AVC/H.264 sobre o MPEG-4 parte 2 é o tamanho variável dos macroblocos. O H.264/AVC permite que macroblocos de 16x16 sejam subdivididos em blocos tão pequenos quanto 4x4, para melhorar a eficiência da compressão. Em MPEG-2 e MPEG-4 parte 2, há somente um tipo de ‘intra’ macrobloco, contendo uma imagem comprimida, que não se refere a qualquer outro macrobloco. Para incorporar esta eficiência, entretanto, existem 26 tipos de AVC/H.264 intra macroblocos. Existem muitos outros elementos complexos em H.264/ AVC, como a codificação de Entropia ‘CABAC’, onde os bits são repartidos de tal forma que frações de 1 bit podem representar efetivamente um elemento de sintaxe específica. Esforços substanciais têm sido feitos para entender e reduzir a energia computacional exigida. Por exemplo, em lugar de uma DCT, uma simples e bem definida transformada de inteiro 4x4 poderia ser utilizada onde é usada apenas operação de subtração, adição ou mudança de execução rápida. 87 Seção 4 4.6.6 Perfis e Níveis em MPEG-4 parte 10 (AVC/H.264) De maneira similar ao MPEG-2, foram especificados uma série de profiles e níveis para classificação de bitstreams e decoders. Os próximos sete profiles, ou capacidades são direcionados para diferentes tipos de aplicações: - Baseline Profile: principalmente direcionado a aplicações de recursos limitados de computação, este profile é amplamente empregado em vídeo conferência e dispositivo móveis; - Main Profile: este perfil tem sido grandemente suplantado pelo High profile como o profile mainstream para os consumidores broadcast e dispositivos de armazenamento; - Extended Profile: um profile focado na stream de vídeo, este tem relativamente alta capacidade de compressão além de boa resiliência quanto a perda de dados; - High Profile: o profile principal para broadcast e dispositivos de armazenamento em disco, particularmente para aplicações em HDTV. Inclui eficiências de codificação extras, por exemplo, com a introdução da transformada de bloco de 8x8. Este é o profile empregado nos formatos de disco HD DVD e Blu-ray; - High 10 Profile: este profile amplia o High profile usado principalmente por equipamentos de consumo; em particular, suporta com precisão imagem decodificada de até 10 bits por amostra; - High 4:2:2 Profile: O primeiro direcionado a dispositivos profissionais que usam vídeo entrelaçado, este profile amplia o High Profile 10; em particular, suporta o formato de amostragem de croma de 4:2:2; - High 4:4:4 Profile: Este profile amplia o High Profile 4:2:2. Ele suporta amostra de croma 4:4:4, até 12 bits por amostra, eficiente codificação na região sem perda e codificação por transformada de vídeo RGB que reduz o erro de transformação do espaço de cor. Note que este profile foi removido do padrão em favor do desenvolvimento de um novo profile aprimorado de 4:4:4. 88 Um Guia para Fundamentos de MPEG e Análise de Protocolo Existem cinco níveis principais e vários sub-níveis associado a cada profile. Níveis essencialmente relacionados à escala. Cada nível especifica um bit rate de vídeo máximo e um número de macroblocos por quadro, assim como a resolução do display. A resolução do display pode variar de 128x96 no nível 1 até 4096x2304 no nível 5.1. Isto cobre os formatos QCIF usados em telefones móveis para displays de HDTV. Note que 1920x1080 e 4096x2048 se referem aos modos 2K e 4K, respectivamente, em se tratando de HDTV. 4.6.7 MP4 Formato Contêiner O MP4 é uma multimídia de formato contêiner padrão. Ele é mais comumente usado para armazenar bitstreams MPEG-4 de áudio e vídeo, mas também pode ser usado para armazenar outros dados tais como subtítulos e imagens paradas. O formato MP4 é baseado no formato contêiner QuickTime da Apple, mas tem sido aprimorado de várias maneiras. Como a maioria dos formatos contêineres mais modernos, o MP4 permite o envio de streaming de Internet. O nome do arquivo oficial da extensão MPEG-4 parte 14 é .mp4, assim o formato contêiner é freqüentemente mencionado simplesmente como MP4. Dispositivos que executam arquivos .mp4 são mencionados como MP4 players. 89 Seção 4 O MPEG-4 parte 15 especifica o formato para transporte de H.264/AVC elementar streams dentro de um arquivo MP4. 4.7 SMPTE VC-1 O modo básico de operação do VC-1 é o mesmo da maioria de outros padrões de compressão de vídeo desde o H.261 e MPEG-1 e envolve compensação de movimento baseada em blocos e transformada espacial. Um bom número de melhorias tem sido feitas para proporcionar uma superior performance de taxa de distorção comparada com CODECs mais antigos, que lhe permite competir com o H.264/AVC. Juntamente com inovações para aprimorar a qualidade, ele tem sido também desenvolvido para ter um relativo baixo nível de complexidade, o que o ajuda a atingir uma ampla faixa de aplicações e bit rates. Algumas das tecnologias empregadas no VC-1 são descritas adiante. 90 Um Guia para Fundamentos de MPEG e Análise de Protocolo 4.7.1 Transformada de Bloco de Dimensão Variável O VC-1 compartilha da habilidade do AVC/H.264 de usar macroblocos menores que os CODECs mais tradicionais a fim de aumentar a eficiência da codificação e reduzir a presença de artefatos tais como “zumbido” ao redor dos blocos. A transformada padrão 8x8 pode ainda ser usada, mas esta pode ser subdividida em múltiplos de 8x4, 4x8 ou 4x4 para produzir a melhor qualidade de imagem para cada macrobloco. O tamanho da transformada pode ser especificado por bloco ou por macrobloco, mas pode também ser sinalizado ao nível do quadro, o que pode ser útil em situação de baixo bit rate para reduzir sobrecarga. 4.7.2 Compensação de Movimento O modelo para compensação de movimento no VC-1 é similar àquele empregado no MPEG-1 e muitos outros CODECs em que uma predição para um bloco é feita baseada em um quadro de referência e um vetor de deslocamento. Existem quatro modos de compensação de movimento disponíveis em VC-1 que são feitos sob medida para diferentes cenários do decoder. Para bit rates baixo e blocos de complexidade 16x16 juntamente com resolução de 1/2 pixel podem ser usados. Para bit rates altos, vetores de movimento para resolução de 1/4 de pixel podem ser codificados e o tamanho do bloco reduzido para 8x8. Diferentemente do H.264/AVC, vetores de movimento para blocos de 4x4 não podem ser enviados; isto significa que a complexidade é menor, mas ao custo de ter a flexibilidade reduzida. 4.7.3 Decodificando Blocos e Suavizando Imagens Vários métodos são empregados para reduzir os “blocking” artefatos que são freqüentemente visíveis em CODECs baseados em blocos, especialmente em bit rates baixos. O VC-1 usa um filtro de decodificação de blocos em 91 Seção 4 loop para reduzir estes artefatos, que podem afetar múltiplos quadros se usados como blocos de predição em quadros futuros. Uma técnica de suavização por superposição é também empregada para reduzir as descontinuidades indesejáveis nos contornos dos blocos. Esta usa transformada que sobrepõem levemente os contornos dos blocos para minimizar as margens dos artefatos. 4.7.4 Compensação do Efeito Fading (Desbotamento) A performance da compensação de movimento tende a diminuir quando tenta compensar os ‘fading’ de uma cena. A compensação do ‘fade’ permite uma transformada linear dos valores de pixels feita em consideração a grandes mudanças na luminância. Isto pode, em termos, produzir melhores resultados na compensação de movimento. 4.7.5 Perfis e Níveis A figura 4-7 mostra que o VC-1 tem três profiles: Simples, Principal e Avançado. Os profiles Simples e Principal precisam ser encapsulados dentro de um envelope ASF, enquanto que os Avanced profile streams podem existir como streams elementares independentes. O Avanced profile alcança muitos aspectos associados à indústria broadcast visto que dá suporte tanto ao entrelaçado quanto à codificação progressiva. É também facilmente encapsulado em formatos de contêiner e de transporte. Os três profiles têm entre dois e cinco níveis que correspondem amplamente à escala de vídeo em ambos os termos bit rate e resolução. Isto proporciona uma faixa adequada para aplicações móveis de Vídeo de Alta Definição. 4.8 MPEG-7 e MXF O MPEG-7 não é relacionado à compressão; e sim a metadados, também conhecido como “bits sobre bits”. Os metadados são informações digitais 92 Um Guia para Fundamentos de MPEG e Análise de Protocolo que descrevem o conteúdo de outra informação digital. Em linguagem moderna, o material do programa ou conteúdo, a imagem atual, o vídeo, o áudio ou dados de objetos que conduzem a informação são conhecidos como essência dos dados. Os metadados dizem ao mundo tudo o que ele precisa saber sobre o que está na essência. Quem é trabalha com armazenamento de informação, sejam com vídeotapes, livros, músicas, etc., sabe da importância e da dificuldade na precisão da catalogação e indexação. Informação armazenada somente é útil se sua existência for conhecida, e se pode ser recuperada a qualquer tempo quando necessária. Este problema sempre tem nos acompanhado, no domínio analógico o endereçamento é feito pela combinação de etiquetas, catálogos, cartões de indexes, etc. Mais recentemente, a indústria da computação favoreceu o uso dos bancos de dados que são mais eficientes e de menor custo e permite que máquinas de buscas poderosas acessem informação armazenada, propiciando que a informação esteja presente de forma pesquisável. O MPEG-7 define uma estrutura de descritores e esquemas de descrição que pode caracterizar quase tudo. Pelo menos na teoria, elementos primitivos como histogramas coloridos podem ser combinados para representar assuntos complexos como faces individuais. Pode ser possível indexar automaticamente material de tal forma que um banco de dados pode ser pesquisado para mostrar cenas, por exemplo, do Presidente Clinton com o Presidente da Reserva Federal dos Estados Unidos Greenspan juntos. Entretanto, o MPEG-7 não tem sido largamente adotado, e em vez disso, os formatos assim chamados “invólucro” ou “contêiner” como o MXF, estão crescendo em popularidade, particularmente em ambientes de Produção. Os aspectos chave do MXF são: - Interoperabilidade; - Capacidade de extensão; - Plataforma Independente; O MXF dá suporte a um bom número de diferentes trilhas essenciais, codificadas com uma variedade de CODECs juntos, acompanhados de metadados. 93 Seção 4 Ele usa o sistema de metadados KLV (Key-Lenght-Value / Valor de comprimento chave), o qual se refere a um dicionário local ou registro público externo. Um dicionário de metadados MXF é padronizado pelo SMPTE. 4.9 MPEG-21 O padrão MPEG-21 é planejado para definir uma estrutura aberta de multimedia do criador do conteúdo até o consumidor do conteúdo. É desenvolvido para habilitar o uso transparente e aumentar os recursos de multimedia através de uma grande variedade de redes e dispositivos. O maior anseio do padrão é que possa por um fim ao compartilhamento ilícito de arquivos. Em seu âmago está um padrão de “Linguagem de Expressão de Direitos”, como meio de distribuir direitos digitais, permissões e restrições. É um padrão baseado em XML desenvolvido para transmitir informação sobre licença legível pela máquina e fazê-lo de maneira “onipresente, sem ambigüidades e segura”. O MPEG-21 é baseado em dois conceitos básicos: a definição de uma unidade fundamental de distribuição e transação, em termos do Item Digital; e o conceito de usuários interagindo entre si. O MPEG-21 provê uma arquitetura em que um usuário interage com outro, e o objeto desta interação é um Item Digital. O MPEG-21 define essencialmente a tecnologia necessária para dar suporte aos usuários que desejem permutar, acessar, consumir, negociar ou manipular itens digitais de maneira eficiente e transparente. Isto é, é uma coleção de tecnologias que designers de, digamos sistemas DRM, poderiam usar. 94 Seção 5 Fluxos Elementares Um stream elementar é basicamente a saída bruta de um encoder e contém não mais que o necessário para que um decoder se aproxime da imagem e do áudio originais. A sintaxe do sinal comprimido é rigidamente definida em MPEG, de tal forma que os decoders tenham garantia de poderem operá-los. O encoder não é definido, exceto se precisar, de alguma forma, produzir a sintaxe correta. A vantagem deste processo é que ele é adequado ao mundo real, no qual existem provavelmente muito mais decoders que encoders. Pela padronização os decoders, podem ser fabricados com custo baixo. Em contrapartida, o encoder pode ser mais complexo e mais caro, mas com potencial para melhor qualidade de imagem à medida que a complexidade aumenta. Quando o encoder e o decoder são diferentes em complexidade, o sistema de codificação é dito como assimétrico. O processo do MPEG também permite a possibilidade de que a qualidade melhore à medida que os algoritmos de codificação sejam refinados, enquanto ainda produzem bit streams que podem ser entendidos pelos decoders mais antigos. O processo também permite o uso de codificação de algoritmos proprietários, que não precisam atingir o domínio público. 96 Um Guia para Fundamentos de MPEG e Análise de Protocolo 5.1 Sintaxe de Fluxo Elementar de Vídeo A figura 5-1 mostra a construção de vídeo stream elementar. A unidade fundamental de informação de imagem é o bloco DCT (transformada discreta do co-seno), que representa um arranjo 8x8 de pixels que pode ser Y, Cb ou Cr. Primeiro é enviado o coeficiente DC que é representado mais precisamente que os outros coeficientes; em seguida os coeficientes restantes e o código de final de blocos (EOB – end of block). Os blocos são montados em macroblocos, que são as unidades fundamentais de uma imagem e podem ter compensação de movimento. Cada macrobloco tem um vetor de movimento bi-dimensional no cabeçalho. Nas imagens B, os vetores podem ser atrasados ou adiantados. A compensação de movimento pode ser baseada em campo ou quadro e isto é indicado. A escala usada para requantização de coeficiente também é indicada. Usando vetores, o decoder obtém informação das imagens adiantadas e atrasadas para produzir uma imagem predita. Os blocos são transformados inversamente para produzir uma imagem de correção que é adicionada à imagem predita para produzir a saída decodificada. Na codificação 4:2:0, cada macrobloco terá quatro blocos Y e dois blocos de diferença de cores. Para tornar possível identificar qual bloco descreve qual componente, os blocos são enviados em uma ordem específica. Os macroblocos são montados em fatias que sempre representam tiras horizontais de imagem, da esquerda para a direita. Em MPEG, as fatias podem iniciar em qualquer lugar e serem de tamanhos arbitrários, mas em ATSC elas têm que começar no canto esquerdo da imagem. Várias fatias podem existir sobre a largura da tela. A fatia é a unidade fundamental de sincronização para comprimento variável e codificação diferencial. Os primeiros vetores de uma fatia são enviados integralmente, ao passo que os vetores restantes são transmitidos diferencialmente. Em imagens I, os primeiros coeficientes DC de uma fatia são enviados integralmente e os coeficientes DC restantes são transmitidos diferencialmente. Em imagens divergentes, a correlação destes coeficientes não deve ser esperada, e esta técnica não é apropriada. 97 Seção 5 No caso de erro de um bit no stream elementar, ou a decomposição da série dos símbolos de comprimentos variáveis será interrompida, ou os subseqüentes coeficientes codificados diferencialmente ou os vetores estarão incorretos. A estrutura das fatias permite a recuperação provendo um ponto de re-sincronização no bit stream. Um número de fatias é combinado para formar uma imagem que é a parte ativa do campo ou do quadro. O cabeçalho da imagem define se a imagem foi codificada I, P ou B e inclui uma referência temporal de tal forma que a imagem possa ser apresentada no tempo correto. Em caso de pans e tilts, os vetores em cada macrobloco serão os mesmos. Pode ser enviado um vetor global para a imagem inteira, e os vetores individuais então, se tornam diferenças deste valor global. As imagens podem ser combinadas para produzir um GOP que precisa começar (em ordem de transição) com uma imagem I. O GOP é a unidade fundamental da codificação temporal. No padrão MPEG, o uso de GOP é opcional, mas é uma necessidade prática. Entre duas imagens I, um número variável de imagens P e/ou B pode ser intercalado, como descrito na Seção 2. Um GOP pode ser aberto ou fechado. Em um GOP fechado, as últimas imagens B não necessitam da imagem I no próximo GOP para decodificação e o bit stream pode ser cortado no final do GOP. Se forem empregados GOPs, vários podem ser combinados para produzir uma seqüência de vídeo. A seqüência começa com um código de início de seqüência, seguido da seqüência do cabeçalho e termina com um código de final de seqüência. Cabeçalhos de seqüências adicionais podem ser posicionados por toda a seqüência. Este procedimento permite que a decodificação comece em qualquer parte da seqüência, como pode ocorrer na execução de discos de vídeo digitais e fitas cassetes. O cabeçalho de seqüência especifica as dimensões horizontal e vertical da imagem, a razão de aspecto, o formato de sub-amostragem de croma, a taxa da imagem, o uso de varredura progressiva ou entrelaçada, o profile, o nível, o bit rate, e as matrizes de quantização usadas em imagens intra e inter codificadas. Sem os dados do cabeçalho de seqüência, um decoder não pode entender o bit stream, e desta forma, os cabeçalhos de seqüência se tornam os pontos de partida em que os decoders podem começar uma operação cor- 98 Um Guia para Fundamentos de MPEG e Análise de Protocolo retamente. O espaçamento entre os pontos de partida influencia o delay na decodificação correta que pode ocorrer quando o espectador troca de um canal de televisão para outro. 5.2 Fluxos Elementares de Áudio Vários tipos de áudio podem ser embutidos em um multiplex MPEG-2. Estes tipos incluem áudio codificado de acordo com as camadas de MPEG 1, 2, 3 ou AC-3. O tipo de codificação de áudio usado tem que ser incluído em um descritor que o decoder lerá a fim de acessar o tipo apropriado de decodificação. O processo de compressão de áudio é bastante diferente do processo de vídeo. Não há equivalência entre os diferentes tipos de quadros I, P ou B, e os quadros de áudio sempre contém a mesma quantidade de dados de áudio. Também não há equivalência quanto à codificação bidirecional e os quadros de áudio não são transmitidos fora da seqüência. Em áudio MPEG-2, o descritor possui no cabeçalho de seqüência uma camada usada para comprimir o áudio e o tipo de compressão empregada (por exemplo, estéreo), juntamente com a taxa de amostragem original. A seqüência de áudio é montada a partir de um número de unidades de acesso (AUs – Access Units) que serão quadros de áudio codificados. Se for empregada a codificação AC-3, como em ATSC, este uso terá reflexos no cabeçalho de seqüência. A unidade de acesso de áudio (AU) é um quadro de sincronismo AC-3 como descrito na Seção 3.7. O quadro de sincronismo AC-3 representa um intervalo de tempo equivalente a 1536 amostras de áudio e é de 32 ms para uma amostragem de 48 kHz e de 48 ms para 32 kHz. 99 Seção 6 Empacotamento de Fluxos Elementares (PES) Para fins práticos, os streams elementares contínuos transportam áudio e vídeo dos compressores necessários para que os pacotes sejam separados em pacotes. Estes pacotes são identificados pelos cabeçalhos com marcas de tempo e de sincronização. Os pacotes PES (Packetized Elementary Streams) podem ser usados para criar Programa Stream e Transporte Stream. Um Guia para Fundamentos de MPEG e Análise de Protocolo 6.1 Pacotes PES No PES, um stream elementar ininterrupto é dividido em pacotes de tamanho conveniente para cada aplicação. Este tamanho pode ser de algumas centenas de kilobytes, embora isso possa variar com a aplicação. Cada pacote é precedido por um cabeçalho de pacote PES. A figura 6-1 mostra o conteúdo de um cabeçalho. O pacote começa com um prefixo de código de início com 24 bits e um stream ID que identifica o conteúdo do pacote como vídeo ou áudio e depois especifica o tipo de codificação de áudio. Estes dois parâmetros (prefixo de código de início e stream ID) compreendem o código de início do pacote que identifica o início de um pacote. É importante não confundir o pacote no PES com o pacote bem menor usado no transporte streams que, infelizmente, têm o mesmo nome. Em razão de o MPEG definir somente o transporte stream, não o encoder, um designer pode escolher construir um multiplexer que converta de stream elementar para transporte stream de uma vez. Neste caso, os pacotes PES podem nunca existir de forma identificável, mas apesar disso, eles estão logicamente presentes como Transport Stream payload. 6.2 Marcas de Tempo Após a compressão, as imagens são enviadas fora da seqüência por causa da codificação bidirecional. Elas requerem uma quantidade variável de dados e estão sujeitas a um delay variável devido à multiplexagem e transmissão. A fim de manter áudio e vídeo sincronizados, marcas de tempo são periodicamente incorporadas em cada imagem. Uma marca de tempo é um número de 33 bits que é uma amostra de um contador acionado por um clock de 90 kHz. Este clock é obtido pela divisão do clock de programa de 27 MHz por 300. Desde que a exibição dos tempos é igualmente espaçada, não é essencial incluir uma marca de tempo em cada unidade de apresentação. Em vez disso, as marcas de tempo podem ser interpoladas pelo decoder, mas estas não podem estar separadas por mais que 700 ms, tanto nos programa streams quanto nos transporte streams. 103 Seção 6 As marcas de tempo indicam onde uma particular unidade de acesso se encaixa no tempo. O sincronismo labial é obtido pela incorporação de marcas de tempo nos cabeçalhos de ambos os pacotes PES de vídeo e de áudio. Quando um decoder recebe um pacote PES selecionado, ele decodifica cada unidade de acesso e as armazena em uma RAM. Quando o ponto da linha de tempo alcança o valor da marca de tempo, a RAM é lida. Esta operação tem dois resultados desejáveis: - primeiro, uma correção de base de tempo efetiva em cada stream elementar; - segundo, os streams elementares de vídeo e áudio podem ser sincronizados para formar um programa. 6.3 PTS/DTS Quando a codificação bidirecional é usada, uma imagem deve ser decodificada algum tempo antes de ser exibida, de tal forma que ela possa agir como uma fonte de dados para uma imagem B. Contudo, por exemplo, para que as imagens sejam exibidas na ordem IBBP, elas serão transmitidas na ordem IPBB. Conseqüentemente, existem dois tipos de marcas de tempo. A marca de tempo de decodificação (DTS – Decode Time Stamp) indica o tempo em que uma imagem deve ser decodificada; enquanto uma marca de tempo de apresentação (PTS – Presentation Time Stamp) indica quando a imagem deve ser exibida na saída do decoder. As imagens B são decodificadas e apresentadas simultaneamente, assim sendo, elas contêm somente PTS. Quando uma seqüência IPBB é recebida, ambas as imagens I e P têm que ser decodificadas antes da primeira imagem B. Um decoder só pode decodificar uma imagem de cada vez; desta forma, a imagem I é decodificada primeiro e armazenada. Enquanto a 104 Um Guia para Fundamentos de MPEG e Análise de Protocolo imagem P está sendo decodificada, a imagem I decodificada está saindo, e assim poderá ser seguida pelas imagens B. A figura 6-2 mostra que quando uma unidade de acesso contendo uma imagem I é recebida, ela terá ambas DTS e PTS no cabeçalho e estas marcas de tempo estarão separadas pelo período de uma imagem. Se a codificação bidirecional estiver sendo usada, uma imagem P precisa seguir e esta imagem também tem marcas de tempo DTS e PTS, mas a separação entre as duas marcas de tempo tem o período de três imagens para permitir a interposição das imagens B. Assim, se uma seqüência IPBB é recebida, I é atrasada no período de uma imagem, P é atrasada no período de três imagens, as duas Bs não são atrasadas em nada, e a seqüência de apresentação se torna IBBP. Claramente, se a estrutura GOP for alterada de tal forma que haja mais imagens B entre I e P, a diferença entre DTS e PTS nas imagens P será maior. As bandeiras PTS/DTS no cabeçalho do pacote são dispostas de forma a indicar a presença do PTS isolado ou ambas às marcas de tempo PTS e DTS. Pacotes de áudio podem conter várias unidades de acesso e o cabeçalho do pacote contém um PTS. Em razão dos pacotes de áudio nunca serem transmitidos fora de seqüência, não há DTS em um pacote de áudio. 105 Seção 7 Programa Stream Os programa streams são uma forma de combinar vários pacote streams PES e são vantajosos para aplicações de gravação tais como DVD. Um Guia para Fundamentos de MPEG e Análise de Protocolo 7.1 Gravação vs. Transmissão Para uma dada qualidade de imagem, a taxa de dados de vídeo comprimido irá variar com o conteúdo da imagem. Um bit rate variável trará resultados melhores. Em transmissão, canais mais práticos são fixados e todo o bit rate é mantido constante pelo uso de “Stuffling” (dado sem utilização). Em um DVD, a utilização de Stuffing significa a perda da capacidade de gravação. Porém, uma gravação média pode decair ou acelerar, até fisicamente ou, no caso de um disco rígido, pela mudança da taxa de requisição de transferência de dados. Este procedimento permite que um canal de taxa variável seja obtido sem perda da capacidade. Quando um médio é recolocado, a velocidade pode ser ajustada para manter o buffer de dados aproximadamente pela metade, sem relação com o bit rate atual, que pode mudar dinamicamente. Se a leitura do buffer pelo decoder for uma taxa elevada, ele tenderá a esvaziar o buffer, e o sistema condutor irá simplesmente elevar a taxa de acesso para restaurar o equilíbrio. Essa técnica somente funciona se o áudio e vídeo foram codificados a partir do mesmo clock; de outra forma, eles se separarão ao longo da gravação. Para satisfazer essas condições conflitantes, são utilizados como alternativa programa streams e transporte streams. Um programa stream funciona bem em um único programa com bit rate variável em um ambiente de gravação; um transporte stream funciona bem em múltiplos programas em um ambiente de transmissão com bit rate fixo. O problema de “Genlocking” as fontes não ocorre em um tocador de DVD. O tocador determina a base de tempo do vídeo com um gerador de pulso de sincronismo local (interno ou externo) e simplesmente obtêm dados a partir do disco a fim de suprir imagens nessa base de tempo. Em transmissão, o decoder tem que criar a base de tempo no encoder ou ele sofrerá “Overflow” ou “Underflow”. Sendo assim, o transporte stream utiliza referência de clock de programa (PCR), enquanto que programa stream não tem a necessidade do clock de programa. 109 Seção 7 7.2 Introdução a Programa Stream Um programa stream é um multiplex de pacotes PES que transporta vários streams elementar que foram codificados utilizando o mesmo clock máster ou clock de tempo do sistema (STC). Esse stream pode ser um stream de vídeo e seu stream de áudio associado ou um muiltcanal de programa somente de áudio. O stream elementar de vídeo é dividido em unidades de acesso (AUs), cada uma contém dados comprimidos descrevendo uma imagem. Essas imagens são identificadas como I, P ou B e cada uma transporta um número AU que indica a seqüência correta de apresentação. Um vídeo AU torna-se um pacote de programa stream. Em vídeo, esses pacotes variam em tamanho. Por exemplo, um pacote de imagem I será muito maior do que o pacote de imagem B. Unidades de acesso de áudio digital são geralmente do mesmo tamanho e muitos são colocados em um pacote de transporte stream. Esses pacotes não deveriam ser confundidos com pacotes de transporte stream que são menores e de tamanho fixo. O limite AU de vídeo e áudio raramente coincide no eixo do tempo, mas essa falta de coincidência não é um problema porque cada limite possui sua própria estrutura de “Time-Stamp”. 110 Seção 8 Transporte Stream Um transporte stream é mais do que um multiplex de muitos pacotes PES. Em programa stream, Time Stamps são suficientes para recriar o eixo do tempo porque o áudio e vídeo são amarrados a um clock comum. Para transmitir dados em uma rede à distância, há necessidade adicional de recriar o clock para cada programa no decoder. Isso requer uma camada adicional de sintaxe para fornecer sinais PCR. Um Guia para Fundamentos de MPEG e Análise de Protocolo 8.1 O Trabalho do Transporte Stream O transporte Stream transporta muitos programas diferentes e cada um pode utilizar um fator de compressão diferente e um bit rate que pode mudar dinamicamente apesar de todos os bit rate permanecer constantes. Esse comportamento é chamado de multiplexação estática e permite que um programa que manipula material com dificuldade peça emprestado largura de banda a um programa que manipula material com facilidade. Cada vídeo PES pode ter um número diferente de áudio e dados PESs associados com ele. Apesar dessa flexibilidade, um decoder deve ser capaz de mudar de um programa para o próximo e selecionar corretamente os canais apropriados de dados e áudio. Alguns dos programas podem ser protegidos para que eles possam ser vistos somente por aqueles que pagaram uma assinatura ou taxa. O transporte stream deve conter informação CA para administrar essa proteção. O fluxo de transporte contém PSI para realizar essas tarefas. A camada de transporte converte os dados PES em pacotes pequenos de tamanho constante (adicionando bits Stuffing se necessário) que são auto contidos. Quando esses pacotes chegam ao decoder, pode ocorrer jitter no tempo. O uso de multiplexação de divisão de tempo também causa delay, mas isso não é um fator fixo porque a proporção do bit stream alocado para cada programa não precisa ser fixa. Time Stamps é parte da solução, mas elas somente funcionam se tiver um clock estável. O transporte stream deve conter mais dado permitindo a recriação de um clock estável. A operação de equipamento de produção de vídeo digital é altamente dependente da distribuição de um sistema de clock estável para sincronização. Em produção de vídeo, o Genlocking é utilizado, mas em longas distâncias, a distribuição de um clock separado não é prática. Em um Transporte Stream, diferentes programas podem ter sido gerados originalmente sem necessariamente serem sincronizados. Como resultado, o Transporte stream proporciona um meio de sincronização para cada programa. O método de sincronismo adicional é chamado de PCR e ele recria um clock de referência estável que pode ser dividido para criar uma linha 113 Seção 8 de tempo no decoder, para que o Time Stamp para os streams elementar em cada programa se torne úteis. Conseqüentemente, uma definição de um programa é um conjunto de streams elementares dividindo a mesma referência de tempo. Em um único Transporte Stream de Programa (SPTS), haverá um canal de PCR que recria um clock de programa para o áudio e o vídeo. O SPTS é frequentemente utilizado como a comunicação entre um codificador de áudio/vídeo e um multiplexador. Também é utilizado em aplicações de VOD. Porém, a maioria dos transporte streams broadcast inclui múltiplos programas (MPTS). Essa agregação mais larga contém informação de controle, mais conhecida como sinalização (SI) necessária para coordenar toda a transmissão, tal como um guia de programa eletrônico (EPG), assim como programas específicos. 8.2 Pacotes A figura 8-1 mostra a estrutura do pacote de um transporte stream. O tamanho é constante, 188 bytes e é sempre dividido em cabeçalho e carga útil. A Figura 8-1 mostra que o comprimento mínimo do cabeçalho é de 4 bytes e não contém adaptação de campo. Neste cabeçalho, a informação mais importante é: 114 Um Guia para Fundamentos de MPEG e Análise de Protocolo - O byte de sincronismo. Este byte é reconhecido pelo decodificador de modo que o cabeçalho e a carga útil possam ser republicados. - O indicador de erro de transporte. Este indicador é ajustado se a camada da correção de erro, acima da camada de transporte, estiver experimentando uma taxa de erro de gravação de bit (BER) que é muito alta para ser corrigida. Isso indica que o pacote deve conter erros, veja a seção 10 – Introdução para DVB & ATSC para detalhes da camada de correção de erro. - A identificação do pacote (PID). Este código de treze bits é usado para distinguir entre diferentes tipos de pacotes. Mais informação será dita sobre o PID depois. - O contador de continuidade. Este valor de quatro bits é somado pelo multiplexador em cada novo pacote de mesmo PID que tiver sido enviado. Isto é usado para determinar se qualquer pacote foi perdido, repetido ou saiu da seqüência. Em alguns casos, mais informação de cabeçalho é necessário e se este for o caso os bits de controle de adaptação de campo são ajustados para indicar que o cabeçalho é maior que o normal. A Figura 8-1 mostra que quando isto acontece o comprimento extra do cabeçalho está descrito pelo código do comprimento de adaptação de campo. Aonde o cabeçalho é estendido a carga útil torna-se menor para manter constante o tamanho do pacote. 8.3 Referência do Clock do Programa (PCR) O codificador usado para um programa particular terá um clock de programa de 27 MHz. No caso de uma entrada SDI (interface serial digital) o bit de clock pode ser dividido por 10 para produzir o clock do codificador do programa. Onde diversos programas de mesma origem de produção, terão o mesmo clock. No caso de uma entrada de vídeo analógica, o período H de sincronização necessitará ser multiplicado por uma constante em um circuito de fase travado para produzir 27 MHz. O adaptador de campo no cabeçalho do pacote é usado periodicamente para incluir o código PCR que permite a geração de um clock travado no 115 Seção 8 decodificador. Se o codificador ou um demultiplexador tiverem que trocar fontes, o PCR pode ter uma descontinuidade. A contagem da continuidade pode também ser perturbada. Este evento é mantido pelo indicador de descontinuidade, que diz ao decodificador para aguardar um distúrbio. Caso contrário uma descontinuidade é uma condição de erro. A figura 8-2 mostra como o PCR é usado pelo decodificador para recriar uma versão remota do clock de 27-MHz para cada programa. Os clocks do codificador mantêm um contador binário constantemente funcionando, e o valor destes contadores são periodicamente testados e colocados nos campos de adaptação do cabeçalho como PCR. O PCR é um número de 42bits que é representado por uma base PCR de 33-bits, mais uma extensão PCR de 9-bits para prover uma alta resolução. (A base PCR, como o PTS é um número de 33-bits que é uma amostra de um contador guiado por um clock de 90-KHz). Aos pacotes gerados por cada codificador é dado um PID. O decodificador reconhece os pacotes com o PID correto para o programa selecionado e ignora os outros. No decodificador uma tensão controlada do oscilador (VCO) gera um clock nominal de 27-MHz e este guia um contador local de PCR. O PCR local é comparado com o PCR do cabeçalho do pacote e a diferença é um erro de fase de PCR. Este erro é filtrado pelo controle de VCO que eventualmente trará o contador local em cada etapa com o cabeçalho PCRs. Uma forte filtragem de VCO assegura que a oscilação na transmissão PCR não modula o clock. O indicador de 116 Um Guia para Fundamentos de MPEG e Análise de Protocolo descontinuidade irá zerar o contador local PCR e opcionalmente pode ser usado para reduzir a filtragem, com isso ajudar o sistema a rapidamente travar no novo sincronismo. O MPEG requer que o PCR esteja enviando em uma taxa de pelo menos 10 PCRs por segundo, visto que, DVB especifique o mínimo de 25-PCRs por segundo. 8.4 Identificação do Pacote (PID) Um campo de 13 bits no cabeçalho do pacote de transporte contém o código de identificação do pacote (PID). O PID é usado pelo demultiplexador para distinguir entre os pacotes que contêm diferentes tipos de informações. A taxa de bit do fluxo de transporte deve ser constante, mesmo que a soma das taxas dos diferentes fluxos de transporte possa conter variação. Esta exigência é mantida pelo uso de pacotes nulos, se a taxa real de carga útil, cair mais pacotes nulos serão inseridos. Os pacotes nulos sempre têm o mesmo PID, que é 8191(treze uns na representação binária). Em um dado fluxo de transporte, todos os pacotes que pertencem a um dado fluxo elementar, terão o mesmo PID. O demultiplexador pode facilmente selecionar todos os dados para um dado fluxo elementar simplesmente aceitando somente pacotes com o PID correto. Os dados para um programa inteiro podem ser selecionados usando os PIDs para fluxos de vídeo, áudio e dados, tais como, subtítulos ou tele texto. O demultiplexador pode corretamente selecionar pacotes somente se estes puderem ser corretamente associados com o fluxo elementar ao qual eles pertencem. O demultiplexador pode fazer essa tarefa, somente se ele souber quais são os corretos PIDs. Esta é a função do PSI. 8.5 A Informação Específica do Programa (PSI) O PSI é carregado nos pacotes que têm PIDs únicos, alguns dos quais são padronizados e outros são especificados pela tabela de associação do programa (PAT), tabela de acesso condicional (CAT) e pela tabela de 117 Seção 8 descrição do fluxo de transporte (TSDT). Estes pacotes devem ser incluídos periodicamente em cada fluxo de transporte. O PAT sempre tem um PID de 0, o CAT sempre tem um PID de 1, e o TSDT sempre tem um PID de 2. Estes valores e o pacote de nulo de PID de 8191 são apenas PIDs fixados pelo padrão de MPEG. O demultiplexador deve determinar todos os PIDs restantes acessando as tabelas apropriadas, entretanto, existem algumas limitações no uso de PIDs em ATSC e DVB. Nessa consideração (e em algumas outras), o MPEG e o DVB diagonal ATSC não são inteiramente permutáveis. Todo fluxo de transporte DVB e ATSC deve ser MPEG-2 e compatível com (ISO/IEC 13818-1), mas nem todos os fluxos de transporte MPEG-2 serão compatíveis com o padrão ATSC (A/65B) ou DVB (EN 300 468). Os programas que existem no fluxo de transporte são listados nos pacotes da tabela de associação (PAT), sendo (PID=0) que carrega o PID de cada pacote PMT. A primeira entrada no PAT, programa 0, é reservada para dados da rede e contém pacotes de PID com a tabela de informação da rede (NIT). O uso do NIT é opcional em MPEG-2, mas é obrigatório em DVB. O PIDs para as mensagens de controle de direito (ECM) e mensagens de gerência de direito (EMM) são listadas nos pacotes de tabela de acesso condicional (CAT), sendo (PID=1). Como mostra a figura 8-3 os PIDs de vídeo, áudio e streams elementar de dados que pertencem ao mesmo programa serão listados nos pacotes da tabela de mapa do programa (PMT). Cada pacote PMT normalmente tem 118 Um Guia para Fundamentos de MPEG e Análise de Protocolo seu próprio PID, mas no MPEG-2 isto não é obrigatório. O número do programa dentro de cada PMT definirá de modo único cada PMT. Uma dada tabela de informação de rede NIT contém mais detalhes do que apenas sobre o carregamento de fluxo de transporte. São incluídos também detalhes de outros fluxos de transporte que podem estar disponíveis para o mesmo decodificador, por exemplo, ajustando para um canal de RF diferente ou direcionando uma antena para um satélite diferente. O NIT pode listar um número de outros fluxos de transporte e cada um deve ter uma descrição que especifique a freqüência de rádio, posição orbital, e assim por diante. Em DVB, Metadata adicional, conhecido como DVB-SI, é incluído e o NIT é considerado como uma parte do DVB-SI. Esta operação é discutida na sessão 10 - introdução para DVB e ATSC, quando trataremos o assunto de modo geral, o termo PSI/SI é usado. Primeiramente recebendo um fluxo de transporte, o demultiplexador deve olhar para os PIDs 0 e 1 no cabeçalho do pacote. Todo pacote PID 0 contém o PAT. Todo pacote PID 1 contém dado CAT. Através da leitura do PAT, o demultiplexador pode encontrar os PIDs no NIT, e cada tabela do mapa do programa (PMT). Encontrando os PMTs, o demultiplexador pode encontrar os PIDs de cada stream elementar. Consequentemente se for exigida a decodificação de um programa particular, em referência ao PAT, então o PMT é tudo que é necessário para encontrar os PIDs de todos os streams elementar no programa. Se o programa é codificado, o acesso para o CAT também será necessário, à medida que a demultiplexação é impossível sem um PAT, a velocidade de lock é em função de como frequentemente os pacotes de PAT são enviados. O MPEG especifica um intervalo máximo de 0.5 segundos para os pacotes PAT e os pacotes PMT, que são remetidos para aqueles pacotes PAT. Em DVB e ATSC, o NIT pode residir nos pacotes que têm um PID específico. 119 Seção 9 Modulação Digital Os sistemas MPEG codificam e empacotam vídeo, áudio e outros dados. Para o armazenamento, o stream de dados resultante pode ser gravado nos discos rígidos ou talvez em um DVD. Para outras aplicações, os dados MPEG, geralmente no formulário do transporte stream, tem que ser emitido de um lugar para outro ou para muitos lugares. Os sistemas de televisão usam cabos, satélites e transmissão terrestre de vários modos para contribuição, distribuição e difusão. Todos esses mecanismos de transportes modulam os dados em alguma portadora. Esta seção fornece uma breve introdução para os esquemas de modulação digital. Esta seção discutirá apenas as técnicas de modulação. Os outros processos são necessários para que um stream de dados seja adequado para transmissão e isto depende da modulação escolhida e das características do canal. Estas técnicas serão discutidas na seção 10. 122 Um Guia para Fundamentos de MPEG e Análise de Protocolo 9-1 Princípios de Modulação Uma portadora contínua não conduz informação a menos que isso seja modificado de alguma forma pela informação que será transmitida. Uma portadora pode ser modificada de três formas, mudando sua amplitude, freqüência ou fase. A freqüência e a fase naturalmente estão relacionadas entre si, embora seja tratadas em separado por tipos de modulação, a diferença tornar-se muito obscura, alguns sistemas de “modulação em freqüência” são implementados por “moduladores em fase”, após ter executado a integração no sinal modulante. Geralmente estes tipos de moduladores são chamados de “moduladores de ângulo” e são úteis quando for desejado que no sinal modulado a potência do envelope seja constante. 9-2 Modulação Analógica No mundo analógico, a amplitude ou freqüência de uma portadora é modulada, de acordo com a amplitude do sinal de áudio ou vídeo, geralmente de acordo com uma lei linear. Um exemplo onde duas subportadoras em fase de quadratura sejam moduladas em amplitude (como descrito mais tarde na figura 9-3) pode ser encontrado nos sistemas de modulação de cor NTSC e PAL. Quando estas duas estiverem de forma linear, moduladas em amplitudes, as subportadoras são combinadas, e o sinal resultante tem simultaneamente modulação de amplitude e de fase. 123 Seção 9 Este é um exemplo conhecido e útil. Nós podemos pensar de duas maneiras em relação à informação da cor. Expressa na forma polar como um ângulo de fase (relacionado ao hue) somado à amplitude (relacionada à intensidade da saturação de cor) ou na forma retangular “cartesiano” XY, expressando os dois sinais de diferença de cor, B-Y e R-Y. Se os componentes de diferença de cor forem tratados como valores de “X e Y” em um gráfico, as duas representações estarão visivelmente relacionadas como ilustrado na figura 9-1. Esta figura é similar ao conhecido vectorscope que é essencialmente um diagrama de constelação da componente de cor B-Y e R-Y. 9-3 Modulação em Quadratura. A figura 9-2 mostra como nós podemos modular uma portadora com dois sinais diferentes, usando a conhecida técnica “modulação em quadratura”. Uma única portadora é dividida em duas partes, e uma dessas partes é atrasada em 1/4 de tempo de ciclo da portadora ou deslocado em fase de 90 graus para criar duas portadoras em quadratura de fase. As duas portadoras são cada amplitude modulada por um sinal apropriado e as duas portadoras moduladas são somadas. Isto gera um único sinal com amplitude e fase determinadas pelas amplitudes dos dois sinais modulantes. A demodulação é conseguida por um processo quase idêntico, pois o sinal recebido é emitido a dois demoduladores, em cada demodulador o sinal é multiplicado por um sinal do oscilador local, sincronizado a um sinal recebido. Os dois sinais do oscilador local estão separados de 90º e cada demodulador recupera um eixo da modulação de quadratura. 9-4 Sistema Simples de Modulação Digital. A maioria dos sistemas de modulação digital usa modulação em quadratura, pois os dois eixos são designados geralmente I (em fase) e Q (em fase de quadratura). Às vezes somente um eixo da modulação é usado. Em alguns casos a modulação digital é apenas a modulação analógica onde níveis particulares de sinais modulantes são usados para definir de modo 124 Um Guia para Fundamentos de MPEG e Análise de Protocolo único uma combinação particular binária de bits. Estes níveis de sinais analógicos pré- definidos são chamados de símbolos. Todo método de modulação digital mantém um compromisso entre a eficiência da largura de banda, robustez e complexidade. A taxa de símbolo é o principal fator na determinação da largura de banda do sinal transmitido. A taxa de símbolo é a taxa na qual a modulação muda. Com uma filtragem ideal a largura de faixa de freqüência positiva pode ser tão pequena quanto à metade da taxa símbolo, mais isto requer um tempo preciso de amostragem de símbolo e filtragem no receptor. Conseqüentemente, os símbolos são tipicamente filtrados com uma pequena largura de faixa extra de 5 a 20% para facilitar a filtragem e a amostragem do receptor. Então com sinais típicos de faixa lateral dupla da modulação em quadratura, a largura de faixa do sinal modulado, é aproximadamente 5 a 20% maior que a taxa símbolo. Tendo em vista que o receptor precisa ser limitado em banda para melhorar a relação sinal ruído, a filtragem símbolo é tipicamente dividida entre o transmissor (limitação da largura de faixa ocupada do canal) e o receptor (limitação da largura de banda do ruído). A maneira mais comum para dividir a filtragem símbolo é pegar a raiz quadrada da resposta de símbolo desejada e colocar a raiz quadrada idêntica no filtro de ambos, na saída do transmissor e na entrada do receptor. Deste modo a resposta combinada ajusta a raiz quadrada para recuperar a resposta de símbolo desejada. Alguns sistemas simples de modulação digital carregam apenas um bit de informação por símbolo. Em outras palavras, cada símbolo pode representar um de dois possíveis estados, representando zero binário ou um binário através da polaridade do símbolo. Neste caso o bit rate do sistema é a mesma que a taxa símbolo, entretanto, outros sistemas tem muitos estados possíveis para cada símbolo, assim eles podem transportar mais que um bit de informação por símbolo. Geralmente a quantidade de estados é uma potência de dois, assim o bit rate do sistema é um múltiplo inteiro da taxa símbolo. Os sistemas de modulação digital são frequentemente rotulados pelo tipo de modulação, precedidos pelo número que representa o número de estados para cada símbolo. Por exemplo, 4QAM descreve a modulação de am- 125 Seção 9 plitude de quadratura com quatro estados possíveis para cada símbolo. Os quatros estados podem transportar dois bits de informações (00, 01, 10, 11), assim o bit rate de um sistema 4QAM e duas vezes a taxa símbolo. Os mais simples sistemas de modulação digital carregam um bit de informação por símbolo. Cada símbolo tem dois estados possíveis, representando zero binário e um binário. Os estados podem ser criados pela modulação de amplitude, freqüência ou fase, mas a modulação de freqüência e fase são as mais comuns. O chaveamento de troca da freqüência binária (BFSK ou 2FSK) usa uma freqüência de portadora para representar um zero binário e uma freqüência diferente para representar o um binário. Às vezes a diferença de freqüência é muito pequena e é alcançada por um modulador de fase depois de integrar os símbolos. O chaveamento de troca de fase binária (BPSK ou 2PSK) usa uma portadora de fase (amplitude constante) para representar o zero binário e o inverso (180º de deslocamento de fase) para representar o um binário. Os diferentes estados possíveis de um símbolo são geralmente mostrados em um diagrama de constelação mostrando as várias combinações resultantes dos valores permitidos dos sinais modulantes de I e Q. O diagrama de constelação para BPSK, mostrado na figura 9-3, é muito simples, pois somente um eixo é usado e há somente dois valores permitidos. Estes sistemas podem ser muito robustos, pois o receptor necessita apenas de sinal suficiente (ou razão de sinal para ruído) para determinar qual de dois 126 Um Guia para Fundamentos de MPEG e Análise de Protocolo estados possíveis foi transmitido para cada símbolo. Entretanto, eles não usam o espectro eficientemente, pois a largura de faixa pode ser muito grande para taxa de bit requerida. Estes sistemas são usados em trajetos de transmissão muitos difíceis, tais como a telemetria de profundidade de espaço onde o sinal ruído, melhor que largura de faixa, é o fator de limitação. 9-5 Chaveamento do Deslocamento de Fase. BPSK ou 2PSK foram descritos na secção anterior. Outras formas de modulação PSK utilizam ambos os eixos I e Q. Chaveamento de deslocamento de fase quaternário (QPSK, também conhecido como chaveamento de deslocamento de fase de quadratura) é o mais comum, e utiliza dois valores em cada eixo. O diagrama de constelação é mostrado na Figura 9-4. QPSK possui quatro estágios possíveis por símbolo, logo cada símbolo transporta dois bits de informação; um possível mapeamento dos estados de valores binários é mostrado na Figura. Se os símbolos I e Q estão apropriadamente temporizados, o sinal QPSK terá uma potência de envelope constante. Portanto, QPSK é utilizado extensivamente em comunicações de satélite onde amplificadores de potência saturados com potência de envelope de saída fixa são utilizados. 8PSK é menos comum, mas é utilizado em sistemas de transmissão de satélite profissionais, particularmente no Japão e nos EUA. O diagrama de constelação é mostrado na Figura 9-5. 8PSK transporta três bits de 127 Seção 9 informação em cada símbolo, então a taxa de bit é três vezes a taxa de símbolo e sem codificação especial requer mais potência de portadora ou um prato de recepção largo, visto que o sinal-ruído deve ser mais alto do que para QPSK. 9.5.1 Turbo 8PSK Turbo 8PSK utiliza técnicas avançadas de Turbo Coding para correção de erro direto para aumentar o rendimento dos links de transmissão via satélite através da utilização de 8PSK sem aumentar o tamanho da antena e a potência da portadora. A codificação Turbo FEC utiliza técnicas de estatística para recuperação de dados de probabilística e é abordada com mais detalhes na secção 10 em técnicas avançadas de FEC. 128 Um Guia para Fundamentos de MPEG e Análise de Protocolo 9.5.2 DVB S2 DVB-S2 – Digital Video Broadcast – Satélite – Segunda geração é uma melhoria e especificação atualizada projetada para atender a especificação DVB-S. Ela oferece largura de banda mais alta do que a especificação DVB-S original, porém mais complexa e foi aceita comercialmente pela necessidade de serviços de transmissão via satélite de alta definição. DVB-S2 pode estreitamente aproximar do limite “Shannon” para a taxa de dados máxima de transmissão alcançável em uma dada largura de banda do canal com uma portadora definida para razão de ruído (C/N) e oferece até 30% a mais de capacidade do que DVB-S, mas ainda proporciona compatibilidade com o anterior. DVB-S2 possui duas inovações sobre o DVB-S, parâmetros de codificação de canal de mudança em tempo real utilizando VCM (Codificação e modulação Variável) e ACM (Codificação e Modulação Adaptativa). São disponibilizados quatro modos de modulação: - QPSK como em DVB-S. - 8 PSK. - 16APSK. - 32APSK. 129 Seção 9 DVB-S2 FEC utiliza uma combinação de codificação BCH binária combinada com um código muito largo de verificação de paridade de baixa densidade (LDPC) desenvolvido primeiramente pela Gallanger em 1958. A codificação LDPC tem novos interesses, obscurecendo a codificação Turbo, devido à grande potência computacional disponível hoje. Decodificadores LDPC podem fornecer Thresholds de erro de receptor com 0,7 dB do limite Shannon. De fato, em alguns casos, a relação sinal-ruído pode ser negativa. Também, FEC de LDPC e BCH combinadas são utilizadas no padrão DMBT/H da China descrito mais a frente. 9.6 Modulação de Amplitude de Quadratura – QUAM A modulação em amplitude de quadratura (QAM) é à base de muitos sistemas de transmissão. Ambos os eixos I e Q são utilizados para modulação e, dependendo da variante particular, dois ou mais níveis de amplitude são permitidos para cada eixo. A variante mais simples é a 4QAM onde somente dois valores são utilizados para cada eixo, fornecendo quatro estados possíveis para cada símbolo. O diagrama de constelação mostrado na Figura 9-6, onde podemos ver que o 4QAM é idêntico ao QPSK e transporta dois bits por símbolo. 16QUAM utiliza quatro valores em cada eixo, fornecendo 16 estados possíveis. Sistemas 16QAM transportam quatro bits por símbolo. Como seis valores são permitidos por cada eixo de modulação, há um total de 36 estados possíveis. Cindo bits podem ser transportados utilizando somente 32 estados, então, quatro das combinações possíveis não são utilizadas em 32QAM. O diagrama de constelação para 16QAM é mostrado na Figura 9-7 e para 32QAM é mostrado na Figura 9-8. Em 32QAM os quatro estados dos “cantos” não são utilizados; esses são os estados que representariam a amplitude mais alta e, portanto, a potência mais alta do transmissor. 130 Um Guia para Fundamentos de MPEG e Análise de Protocolo As Figuras 9-7 e 9-8 também ajudam a mostrar a relação entre o bit rate e a robustez. Na presença do ruído ou jitter, o afastamento mais próximo dos estados em 32QAM (potência transmitida igual) fará mais provavelmente erros de decodificação. Colocando de outra forma, mais estados possíveis por símbolo, melhora-se a relação sinal ruído exigida para uma dada taxa de erro. Quando uma boa relação sinal ruído é garantida, podem ser usadas grandes densidades de constelação. O 64QAM usa oito valores em cada eixo e transporta seis bits por símbolo. O 64QAM é o esquema de modulação em sistema de cabos mais extensivamente usado no mundo, como ele fornece uma boa relação entre a robustez e compatibilidade com o legado de infra-estrutura de cabos. O 256QAM é usado em alguns dos mais recentes sistemas de televisão a cabo, permite 16 valores para cada eixo de modulação e transporta oito bits por símbolo. 9-7 Modulação de Banda Lateral Vestigial - VSB Quando uma portadora é modulada, bandas laterais são geradas acima e abaixo da freqüência da portadora. Por exemplo, um sistema QAM com uma taxa símbolo de 6 Mega símbolos por segundo terá bandas laterais acima e abaixo, com apenas 3 MHz a mais em cada, requerendo apenas um canal nominal de 6 MHz de largura de banda. Entretanto, usando uma portadora em quadratura de pelo menos dois bits por símbolo são disponíveis se for para a constelação mais simples. 131 Seção 9 Para recuperar as informações de amplitude e fase (ou dois eixos de modulação em quadratura), as duas bandas laterais devem ser recuperadas no receptor. Os sistemas de banda lateral vestigial eliminam mais de uma banda lateral antes da transmissão, então apenas um eixo da modulação pode ser recuperado visto que a componente da portadora de quadratura não é cancelada devido o desaparecimento da banda lateral baixa. (Uma interpretação alternativa é dizer que o outro eixo de modulação é utilizado de tal forma para suprir a banda lateral não exigida 2VSB possui a mesma constelação como BPSK. Desde que, somente uma banda lateral é transmitida, a portadora em quadratura não pode ser utilizada, logo, QPSk não é possível. Lembre-se que QPSK (ou 4-QAM) é de 2 bits por símbolo, portanto necessita somente da metade da taxa símbolo para o mesmo bit rate como 2VSB. Portanto, visto que QPSK necessita de uma largura de banda de mais ou menos igual a taxa símbolo, 2VSB com uma banda lateral somente ocuparia a mesma largura de banda como QPSK para o mesmo bit rate. A Figura 9-9 mostra os diagramas de constelação para 4VSB e a Figura 9-10 mostra 8VSB, transportando respectivamente dois e três bits por símbolo. Modulação 8VSB é utilizada nos Estados Unidos pelo padrão de televisão digital ATSC. 4VSB foi proposto originalmente, fornecendo dois bits por símbolo. Porém, foi descoberto que 8VSB, em conjunto com bit de paridade extra usando codificação Trellis (veja a secção 10.6), correção de erro 132 Um Guia para Fundamentos de MPEG e Análise de Protocolo interno fornece a mesma taxa de dados com um melhor desempenho de sinal-ruído. 9.8 Multiplex de Divisão de Freqüência Ortogonal Codificado – COFDM Nos sistemas acima, um sinal de banda de base é fornecido para moduladores que operam em uma única portadora para produzir a(s) banda(s) lateral (is) transmitida(s). Uma alternativa para um sistema de banda larga é aquela que produz muitas portadoras de bandas pequenas em um espaço regulado cuidadosamente. A Figura 9-11a mostra que uma porta- 133 Seção 9 dora modulada digitalmente possui um espectro nulo em cada lado. Outra portadora de freqüência ligeiramente mais alta ou mais baixa pode ser colocada aqui sem interferência, contanto que ela tenha um número inteiro de ciclos mais ou menos por símbolo. Isso cria um par de portadora ortogonal que pode ser modulada independentemente. Portanto, as duas são mutuamente ortogonais como mostra a Figura 9-11b. Esse é o princípio de OFDM (Multiplexação de divisão de freqüência ortogonal). Na prática, uma variante conhecida como multiplexação de divisão de freqüência ortogonal codificada (COFDM) aumenta o desempenho em condições de canais não ideais pelo uso do FEC tal como o concatenado Viterbi convulacional e o código Reed Solomon, descrito na próxima secção. COFDM é utilizada na transmissão de vídeo digital (DVB), sistema terrestre, DVB-T, o sistema terrestre ISDB-T Japonês e em todos os sistemas de transmissão móvel DVB-H, T-DMB, DAB-IP, ISDB-Tss e FLO. Cada portadora em um sistema OFDM pode ser modulada por qualquer uma das técnicas descritas nessa secção. Na prática, QAM é geralmente utilizada, 16QAM e 64QAM são mais comuns. Não é necessário utilizar todas as portadoras. Por exemplo, se uma parte do canal está sujeito a um alto grau de interferência, as portadoras afetadas podem ser omitidas. O número de portadoras em um sistema OFDM pode ser muito grande. DVBT possui a opção de 1705 ou 6817 portadoras (conhecido como sistema de 2K e 8K). Porque a largura de banda alocada para cada portadora é pequena, a taxa símbolo é correspondentemente reduzida, e o espaço de tempo para transmitir cada símbolo é maior. Essa é a chave para a tolerância de OFDM para interface de muitos percursos. Em um sistema de única portadora, tal como 8VSB, uma taxa de dados alta significa que o tempo do símbolo é muito pequeno. No caso do Sistema de Televisão Digital ATSC, mais ou menos 11 milhões de símbolos são transmitidos a cada segundo, dando uma duração de símbolo menor que 100 ns. Isso significa que mesmo um delay multipercurso muito pequeno criará interferência de símbolo interno porque o sinal atrasado representando um símbolo chegará durante a recepção de um símbolo subseqüente. Em contraste, um sistema OFDM com milhares de portadoras terá um tempo de símbolo na ordem de centenas de microssegundos (dependendo do 134 Um Guia para Fundamentos de MPEG e Análise de Protocolo dada rate, do número de portadoras e da modulação utilizada). Interferência de símbolo interno pode ser eliminada virtualmente pela adição de um “Guard Band” para cada símbolo, deliberadamente tornando o símbolo mais longo que o necessário. Isso reduz a taxa símbolo, mas somente a um grau relativamente pequeno. Por exemplo, se a duração de símbolo nominal é de 200 µs, um Guard Band de 50 µs reduzirá a taxa símbolo por somente 20% - e a eliminação de interferência de símbolo interno pode permitir a utilização de uma constelação de ordem maior, talvez mais que a compensação por essa perda. Essa técnica não é prática em um sistema de única portadora de banda larga. Como exemplo, o mesmo Guard Band de 50 µs com tempo de símbolo de 100 ns reduziria o data rate para uma fração de um por cento. Porém, OFDM não é fundamentalmente imune para multipercursos devido a sua própria interferência de símbolo causando nulos de portadoras. Portanto, qualquer portadora piloto que seja necessária no receptor, deve ser dispersa entre várias portadoras de dados. De fato, receptores COFDM tipicamente utilizam equalização adaptativa para atenuar o multipercurso como exigido com única portadora, sistemas de taxa símbolo alta. Essa tolerância para interferência de multpercursos também torna os sistemas COFDM bem adaptados para redes de trabalho de única freqüência onde dois ou mais transmissores sincronizados emitem o mesmo sinal. Um receptor pode, dependendo de sua localização e sistema de antena, receber sinais de mais de um transmissor em tempos diferentes. Se os comprimentos dos percursos são radicalmente diferentes, o sinal principal será provavelmente mais forte do que o segundo sinal, e a interferência será mínima. Se os comprimentos dos percursos e a intensidade do sinal são similares, um Guard Band prevenirá a interferência de símbolo interno. 9.9 Multimedia Digital Broadcast da China – Terrestre/Portátil – DMB-T/H A China anunciou seu próprio padrão de TV digital projetado para ambas as coberturas fixa e móvel. Com o nome de Transmissão de Multimedia Digita l-Terrestre/Portátil DMB-T/H (GB 20600-2006), ele é derivado de dois outros padrões: ADTB-T (similar ao ATSC-T) e uma variante de T-DMB. 135 Seção 9 DMB-T/H é derivado do trabalho da Universidade Tsinghua em Beijing e a Universidade Jiaotong em Shanghai e combinam a tecnologia desenvolvida por ambas as universidades. DMB-T/H fornece o serviço de SDTV e de HDTV, Transmissão de Áudio Digital, Transmissão de Multimídia e serviços de dados para receptores fixos. Para receptores móveis ele fornece SDTV, Transmissão de áudio Digital, Transmissão de Multimídia e serviços de dados. O padrão utiliza as seguintes tecnologias para transmissão em um canal de 8 MHz as bandas UHF e VHF e possui vários modos de operação definidos por tipos de fornecimento de multimídia específicos: - Suporte para Network Multi Freqüências (MFNs) e Network de Única Freqüência (SFNs). - Bit randomization. - FEC (codificação de LDPC e BCH binária). - Modulação QAM em OFDM – 64QAM, 32QAM, 16QAM, 4QAM, 4QAM-NR. - Intercalamento no domínio do tempo muito profundo. - 3 taxas de código, 3 tamanhos de quadro e 2 comprimentos de interlacalamento permitindo uma faixa ampla de bit rate. - 3780 modos de portadora (espaçamento de 2 KHz) com interlançamento no domínio da freqüência. - Dual piloto, modo de única portadora. - Técnicas de espectro espalhadas para transmissão de SI. 9.10 Serviço de Dado Integrado Broadcasting (ISDB) Transmissão de dados de serviço integrada (ISDB) é um desenvolvimento que utiliza muitos esquemas de modulação e foi desenvolvido para serviços de televisão digital no Japão. Ela é projetada para suportar os sistemas hierárquicos de muitos níveis. Ela pode ser utilizada, por exem- 136 Um Guia para Fundamentos de MPEG e Análise de Protocolo plo, para fornecer simultaneamente uma recepção de baixo data rate sob condições móveis excepcionalmente difíceis, data rate intermediário (definição padrão) para recepção de área menos importante, e alto data rate (talvez para HDTV) para condições de boa recepção. Há quatro sistemas de modulação ISDB em uso hoje no Japão: 9.10.1 Sistema de Satélite ISDB-S Lançado em Dezembro de 2000, ISDB-S permite que dois broadcasters dividam um transponder de satélite. Ele também refere ao digital BS ou digital CS quando o segmento de espaço é um satélite broadcast ou satélite de comunicação, respectivamente. Até oito transporte streams podem ser utilizados de maneira combinada entre os broadcasters dividindo o transponder. A taxa de bit agregada dependerá da largura de banda do transponder e do modo de modulação utilizado. Por exemplo, para um transponder de 34,5 MHz, a taxa máxima incluindo a correção de erro direta é de 56,610 Mbits/s. Modulação hierárquica permite que o modo de modulação seja variado em uma base de pacote por pacote em uma estrutura de 48 pacotes. Para cada pacote é atribuído um slot de modulação. São permitidos quatro modos de modulação BSPK(1/2), QPSK(para 7/8) e TC8PSK. O Número de slots varia de acordo com o modo utilizado. 9.10.2 Sistema a Cabo ISDB-C A principal característica desse sistema é que ele transmite múltiplos transporte streams em uma única portadora 64QAM. O sistema foi desenvolvido para retransmitir eficientemente a informação transportada em sinais ISDB-S. Um máximo de 52,17 Mbis/s de informação é transmitido tipicamente em uma portadora digital BS. A taxa de informação de um sinal de 64QAM/6 MHz é de 29,162 Mbits/s. Portanto, pelo menos dois canais de televisão a cabo podem ser utilizados para retransmitir informação de uma única portadora BS. O serviço digital BS completo consiste 137 Seção 9 em quatro transmissores e ocupa aproximadamente 174 MHz incluindo Guard Bands. A utilização de 8 canais a cabo ISDB-C seria necessária para transportar esta informação, enquanto que 29 canais seriam necessários usando a transmissão a cabo convencional de um transporte stream por portadora. Existem 52 slots de modulação mais 1 slot para sincronizar o cabeçalho, TSMF (transport stream multiplexing frame). 9.10.3 Modulação Terrestre ISDB-T O canal ISDB-T é dividido em 13 segmentos (tipicamente uma largura de 400-500 KHz), é utilizada uma transmissão COFDM separada para cada segmento.Todos os parâmetros afetando a robustez (número de portadora, comprimento de Guard Band, tipo de modulação, codificação convolucional) podem ser escolhidos separadamente por cada camada da hierarquia. Por exemplo, o segmento mais robusto pode utilizar um guard band longo, modulação QPSK e codificação convolucional de 1/2. O nível mais alto poderia utilizar um guard band curto, 64QAM e codificação convolucional de 7/8 – fornecendo muitas vezes o data rate do segmento robusto. O segmento central pode ser utilizado para recepção parcial, projetado para permitir um receptor de banda pequena para receber somente esse segmento. Em um OFDM normal a largura de banda do canal completa representa uma única camada. 138 Um Guia para Fundamentos de MPEG e Análise de Protocolo As portadoras utilizadas são espaçadas através da largura de banda em conjuntos múltiplos de certa freqüência. Em ISDB-T a largura de banda de canal de 5,6 MHz é dividida em 13 segmentos, cada um tendo uma largura de banda de 429 KHz. Transmissão hierárquica de ISDB-T é alcançada pela transmissão de grupos de segmentos OFDM tendo parâmetros de transmissão diferentes. Esses grupos de camadas constituem as camadas. Em uma modulação não hierárquica o mesmo esquema de modulação é utilizado para todos os 13 segmentos. 9.10.4 Modulação Móvel ISDB-Tss Único segmento ISDB-T (ISDB-T) utiliza o segmento central dos 13 grupos de segmentos para transmitir serviços para terminais móveis e é mostrado mais detalhes na secção 9.11.5. 9.10.5 ISDB em Resumo ISDB-C significa a aplicação de diferentes modos de modulação para transporte stream múltiplos e os transmite em um canal de 34,5 MHz em uma única portadora. ISDB-C proporciona a transmissão de transporte stream múltiplo em um único canal de 6 MHz em uma única portadora, mas com um modo comum de modulação. ISDB-T permite até três transmissões do mesmo transporte stream em um único canal de 6 MHz. Compressão MPEG já está sendo utilizada em transmissão e se tornará muito importante no futuro. Essa secção aborda os requisitos adicionais para transmissão de televisão digital, como implementado pelos dois padrões principais de DTV. 139 Seção 9 9.11 Sistemas Broadcast Móveis Sistemas de broadcast móveis são muito importantes como telefones celulares e técnicas de compressão de vídeo digitais altamente eficientes que mesclam recepção móvel de TV e multimedia. Técnicas de codificação de canal COFDM dominam essa área devido à sua robustez e habilidade de lidar com interferência de multipercurso e grandes deslocamentos de Doppler de portadoras devido à recepção em alta velocidade em carros e trens. A maioria de redes de transmissão móvel são projetadas para ser Redes de Única Freqüência (SFNs), por exemplo, as mesmas transmissões são feitas de todos os pontos de transmissão na rede exatamente na mesma freqüência e tempo alinhado, utilizando um clock proveniente de um GPS. Isso possui a vantagem de eficiência espectral e se apóia na habilidade de sinais OFDM para rejeitar interferências próprias de sinais de multipercurso utilizando o símbolo Guard Band interno. Vários padrões para TV móvel foram de autoria de corporações indústrias e companhias comerciais e todos estão sendo implantados, com alguma predominância em sua região geográfica progenitora. Muitos sistemas concorrentes estão sendo implantados em paralelo, levando a necessidade de um handset de muitos padrões capazes de atender redes utilizando padrões de transmissão diferentes. Todos os padrões móveis focaram no fornecimento de baixa potência, e, portanto, tem vida longa com transmissões de RF de grande robustez. Em um ambiente handsets móvel a antena será pequena de 1,5-2 m de comprimento do chão. Isso leva a uma série de inovações em uma previsão de canal avançado e técnicas de FEC. Todos os padrões de transmissão abordados são realmente de broadcast, apontam para sistemas de muitos pontos que requer somente um link direto para o terminal de recepção, muitos utilizam um canal de retorno de celular para fornecer serviços interativos, por exemplo, links para páginas da Web. Muitos sistemas de transmissão de TV móveis utilizam vários métodos comuns para melhorar a imunidade dos links de transmissão para o desafiante ambiente de RF. Isso inclui: 140 Um Guia para Fundamentos de MPEG e Análise de Protocolo - Modo de aquisição de sincronismo robusto para melhorar o tempo de sincronismo e fornecer a sinalização do modo do canal. - Intercalamento de Tempo profundo para reduzir o impacto de interferência impulsiva. - Corte de tempo para reduzir o consumo de potência permitindo ao handset somente receber no ciclo baixo. - Profundidade de “Variable Fast Fourier Transform” (FFT) para fornecer “Trad Offs” entre o tamanho de SFN. - Operação de SFN para eficiência de freqüência. 9.11.1 DVB-H Transmissão de Vídeo Digital – DVB-H Portátil foi definida pelo DVB como padrão de transmissão para terminais móveis, e permite larguras de banda de até 14 Mbits/s para ser recebido por terminais móveis alimentados por bateria. É possível recepção robusta em velocidades móveis de até muitos 100 KM/h. O padrão desenvolveu uma série de técnicas para reduzir a potência e aumentar a robustez da recepção, incluindo o corte de tempo de transmissões e um link de transmissão baseada em IP com um Encapsulamento Multiprotocolo de Forward Correção de Erro (MPE-FEC). Suas características técnicas são: - Corte de tempo. 141 Seção 9 - Stream de transmissão IP MPE - MPE FEC (Opcional). - Intercalamento profundo de dados. - 2K, 4K & 8K Modo FFT. - Bits de Sinalização de Parâmetro de Transmissão (TPS). O padrão de codificação de vídeo utilizado para transmissão DVB-H deixou para o operador de rede selecionar a partir dos CODECs DVB aprovados. Na prática, SMPTE VC-1 e MPEG-4 parte 10 (H.264/AVC) tem predominado em sistemas operacionais. DVB-H foi especificado para operar em ambas as bandas existentes TV VHF e UHF e a Banda L com larguras de banda de canal de 5, 6, 7 e 8 MHz. A banda UHF é uma banda de espectro de maior preferência, questões comerciais têm visto com sucesso o emprego de redes na banda L. Padrões ratificados ETSI para DVB-H incluem entre outros EM 302 304 Sistema de Transmissão para Terminais Portáteis (DVB-H) e TR 102 377 DVB-H padrões de Orientações de Implementação. 9.11.2 T-DMB Transmissão de Multimedia Digital – Terrestre (T-DMB) a transmissão é baseada na Eureka 147 padrão de Transmissão de áudio Digital (DAB). Como DAB, T-DMB é projetado para transmissões em banda de radiofreqüência III (VHF) e Banda L. O stream Reed Solomon FEC codificado (uma camada adicional de FEC para DAB de áudio) com uma palavra de paridade de comprimento de16 bytes; é então aplicado o intercalamento convolucional. A fim de diminuir os efeitos de canal tais como desaparecimento e sombreamento (fading e shadowing), o modem DMB utiliza modulação OFDM4DPSK. T-DMB é um padrão ETSI (TS 102 427 e TS 102 428). T-DMB utiliza MPEG-4 parte 10 (H.264/AVC) para o vídeo e MPEG-4 parte 3 BSAC ou HE-AAC V2 para o áudio. O áudio e vídeo são encapsulados em Transporte Streams MPEG-2. 142 Um Guia para Fundamentos de MPEG e Análise de Protocolo 9.11.3 DAB IP DAB IP é um sistema de transmissão novamente derivado da Eureka 147 DAB padrão de áudio, mas utilizando o ETSI DAB padrão EM 300 401 v1.4.1 para transmissão utilizando Protocolo de Internet (IP) como o mecanismo de transporte. DAB IP possui a vantagem de ter um espectro disponível na Europa e a habilidade de utilizar a estrutura de áudio DAB existente para transmissão salvando assim o custo “Rollout” da rede. O lado negativo é a limitação da largura de banda do canal de RF comum para todas as tecnologias baseadas em DAB de 1,7 MHz que limita o bit rate e, portanto vários canais de TV podem ser transportados. Adicionalmente os serviços de TV DAB também são provenientes de muitos “Handsets”. Transporte IP foi escolhido por sua flexibilidade e a capacidade de se integrar com as redes de transmissão existentes e oferecer migração futura para sistemas de transmissão para largura de banda maior. 143 Seção 9 9.11.4 FLO Forward Link Only - FLO é um padrão de TV móvel de propriedade da Qualcomm. O sistema está sendo submetido a corporações de padrões para ratificação e está se expandindo em relação a sua implantação inicial nos EUA. 144 Um Guia para Fundamentos de MPEG e Análise de Protocolo FLO é novamente baseado em modulação OFDM utilizando um FFT de 4 K, mas utiliza modulação hierárquica para fornecer cobertura de serviço para as extremidades da área de transmissão com bit rate reduzido. FLO também utiliza intercalamento de tempo para reduzir a suscetibilidade de interferência impulsiva e codificação turbo para correção de erro direta (veja a secção 10 em FEC). Suas características técnicas são: - Baseado no modo OFDM FFT 4K - Modulação Hierárquica - Serviço para a extremidade da célula - Intercalamento de tempo - Codificação Turbo 9.11.5 Segmento Único ISDB ISDB Transmissão de Segmento Único é o padrão Japonês para transmissão de TV móvel e diferentemente dos outros padrões móveis, ele foi projetado dentro do padrão inicial de transmissão terrestre digital Japonês, como parte hierárquica. Segmento único ISDB utiliza o fato de que ISDB-T separa o canal de transmissão em 13 segmentos, cada um deles é um bloco de OFDM Uma capacidade de transporte de 280,85 Kbps para 1,17873 Mbps é disponível por bloco dependendo da taxa de codificação escolhida. Os parâmetros de transmissão para ISDB são especificados em um bloco por bases de bloco, portanto, para transmissão móvel um canal robusto pode ser codificado. Essa característica é utilizada com o segmento único central (ISDB-Tss) para proporcionar recepção portátil. 145 Seção 10 Introdução a DVB e ATSC A compressão MPEG já está sendo utilizada em broadcasting e se tornará muito importante no futuro. Essa secção fala sobre os requisitos adicionais para televisão digital broadcasting e como foi implementada pelos dois principais padrões de DTV. Um Guia para Fundamentos de MPEG e Análise de Protocolo 10. 1 Uma Visão Geral ATSC (Comitê de Sistemas de Televisão Digital) é uma organização Americana que define padrões para transmissão digital terrestre. DVB se refere ao Projeto de Vídeo Digital Broadcasting e aos padrões e práticas estabelecidas pelo projeto DVB. Esse projeto foi originalmente um projeto Europeu, mas produz padrões e orientações aceitos em muitas partes do mundo. Esses padrões e orientações englobam todas as formas de transmissão, incluindo transmissão via satélite, cabo e terrestre. Broadcasting digital possui distribuição e exigências de transmissão diferentes, como mostrado na Figura 10.1. Transmissores produzirão transporte streams que contenham vários programas de televisão. Transporte stream não possui proteção contra erros, e em compressão de dados, os efeitos de erros são graves. Transporte stream precisam ser entregues sem erros aos transmissores, “Uplinks” de satélite e cabeça de final de cabo. Nesse contexto, a ausência de erro significa um bit error rate (BER) de 1 em 10-11, ou melhor. Essa tarefa é normalmente confiada às operadoras de rede de telecomunicações, que irão utilizar camada adicional de correção de erro quando necessário (estratégias de correção de erro são selecionadas dependendo do canal de transmissão). Essa camada deve ser transparente ao destino. Uma empresa de transmissão em particular ou operadora de cabo pode não desejar todos os programas em um transporte stream. Vários programa streams podem ser recebidos e uma seleção de canais pode ser realizada e codificada em um único transporte stream de saída utilizando um multiplexer. A configuração muda dinamicamente. Transmissão no domínio digital consiste na transmissão de todo o transporte stream para o receptor. Se for canal a cabo, satélite ou terrestre, os problemas são os mesmos. O Metadado utilizado para descrever a transmissão, deve ser codificado no transporte stream de maneira padronizada. Em DVB, esse Metadado é chamado de informação de serviço (DVB-SI) e inclui serviços tais como tele texto, assim como detalhes de programas transportados através dos próprios multiplexes ou através de outros multiplexes. 149 Seção 10 Em transmissão, há muito menos controle da qualidade do sinal, e ruído de interferência é uma possibilidade. Isso requer alguma forma de camada de correção de erro direto (FEC - Forward Error Correction). Provavelmente a FEC utilizada pelas operadoras de rede de telecomunicações, que pode ser proprietário, (ou padronizado como pelo Instituto de Padrão de Telecomunicações Europeu (ETSI), que define a transmissão DVB sobre redes SDH e PDH), a correção de erro direto (FEC) utilizada em transmissão deve ser padronizada para que os receptores sejam capazes de entendê-las. A adição de correção de erro obviamente aumenta o bit rate conforme o interesse do transmissor ou cabo. Infelizmente, a transmissão a cabo de dados requer mais do que serialização dos dados. Na prática os sistemas precisam de codificação de canal. 10.2 Remultiplexação Essa é uma tarefa complexa porque um multiplexer tem que fornecer um bit stream em conformidade ao que é originado das partes de outros. Os dados necessários de um dado de transporte stream de entrada podem ser selecionados com referência à tabela de associação de programa e às tabelas de mapa de programa que irão divulgar os PIDs dos programas requeridos. É possível que os mesmos PIDs tenham sido utilizados em dois transporte streams de entrada; portanto, os PIDs de um ou mais elementares streams podem ter que ser trocados. Os pacotes de cabeçalhos devem passar pela referência de clock de programa (PCR) que irá permitir que o último decodificador crie um clock de 27 Mhz. Como as posições de pacotes contendo PCR podem ser diferentes no novo multiplex, o remultiplexer pode precisar de editar os valores de PCR para refletir suas novas posições no eixo do tempo. As tabelas de mapa de programa e tabelas de associação de programa necessitarão ser editadas para refletir a nova estrutura de transporte stream, de acordo com as tabelas de acesso condicional (CAT). Se o total dos bit rates do programa stream selecionados for menor do que o bit rate de saída, o multiplexer criará pacotes de enchimento com PIDs adequados. Porém, se o transporte streams veio de multiplexers de esta- 150 Um Guia para Fundamentos de MPEG e Análise de Protocolo tística, é possível que o bit rate instantâneo do novo transporte stream exceda a capacidade do canal. Essa condição pode ocorrer se muitos programas selecionados em diferentes transporte streams simultaneamente tiverem alta entropia. Nesse caso, a única solução é recomprimir e criar coeficientes curtos e novos em um ou mais bit streams para reduzir o bit rate. 10.3 Informação de Serviço (SI) No futuro, o digital implicará em um amplo número de programas, tele textos e serviços disponíveis na tela e esses podem ser separados através de vários transporte stream diferentes. Tanto a tela quanto o decoder integrado no receptor (IRD) necessitarão de ajuda para mostrar o que estiver disponível e fornecer o serviço selecionado. Essa capacidade requer um Metadata além das capacidades de MPEG-PSI (Informação específica de programa) e é referenciada como DVB-SI (informação de serviço). DVB-SI é considerada para incluir o NIT, que é opcional em fluxos de transporte MPEG. DVB-SI é embutido transporte stream como pacotes de transporte adicionais com PIDs únicos e transporta informação técnica para IRDs. DVB-SI também contém informação de guia de programa eletrônico (EPG), tais como natureza de programa, o tempo e o canal no qual ele pode ser alocado, e os países nos quais ele está disponível. Programas também podem ser avaliados para que um julgamento de origem possa ser exercitado. DVB inclui as seguintes tabelas sobre e acima de MPEG-PSI: - Tabela de Informação de Rede (NIT). Informação em um transporte stream que descreve muitos transporte stream. A NIT transmite informação relacionada à organização física do multiplex, transporte stream transportados por uma dada rede e as características da própria rede. Transporte stream são identificados pela combinação de um ID de rede original e um ID de transporte stream na NIT. - Tabela de Descrição de Serviço (SDT). Cada serviço em um transporte stre- 151 Seção 10 am DVB pode ter um descritor de serviço e esses descritores são colocados na tabela de descrição de serviço. Um serviço pode ser televisão, rádio ou tele texto. O descritor de serviço inclui o nome do provedor do serviço. - Tabela de Informação de Evento (EIT). EIT é uma tabela para DVB que contém nomes de programas, tempos de início, durações e mais. - Tabela de Tempo e Data (TDT). A TDT é uma tabela que fixa um tempo UTC e “Date Stamp” no transporte stream. DVB-SI também define outras tabelas opcionais incluindo: tabela de associação de Bouquet (BAT), tabelas de running status (RST), tabela time offset (TOT) e a tabela de enchimento (ST). O ATSC, como DVB, utilizou a tabela de secção privada de MPEG-2 para definir várias tabelas novas. Esse conjunto de novas tabelas mandatórias definidas pelo ATSC em A/65A é parte do protocolo de programa e sistema de informação (PSIP). ATSC PSIP deve incluir as seguintes tabelas acima do MPEG-PSI: - Tabela de Canal Virtual Terrestre (TVCT) definindo, em um mínimo, programas MPEG-2 multiplexados no fluxo de transporte no qual a TVCT é transportada. - Tabela de Guia Máster (MGT) definindo o tipo, identificadores de pacotes e versões para todos ou outras tabelas PSIP no fluxo de transporte, exceto para a tabela de tempo de sistema (STT). - Tabela de Região de Taxa (RRT) definindo o sistema de orientação original de TV referenciado por qualquer conteúdo do descritor consultivo transportado no fluxo de transporte. - Tabela de Tempo de Sistema (STT) definindo a data corrente e o tempo do dia. - Tabela de Informação de Evento (EIT-n) definindo as primeiras quatro tabelas de eventos (EIT-0, EIT-1, EIT-2 e EIT-3) descrevendo 12 horas de eventos (programas de TV), cada um com uma cobertura de 3 horas e incluindo todos os canais virtuais listados no TVCT. 152 Um Guia para Fundamentos de MPEG e Análise de Protocolo 10.4 Correção de Erro A correção de erro é necessária porque as condições ao longo do percurso da transmissão não podem ser controladas. Em alguns sistemas, a detecção de erro é importante porque ela pode ser utilizada para viabilizar uma retransmissão. É claro que essa sugestão não funcionará com sinais em tempo real tais como televisão. Ao invés disso, o FEC é utilizado nos bits extras suficientes, conhecidos como redundância, que são adicionados aos dados para permitir que o decoder desempenhe correções em tempo real. Resumidamente, códigos R-S (um caso especial do código BCH geral) adicionam redundância através da adição de bytes de dados de paridade extra (bytes N, por exemplo) para um bloco de bytes de dados para que o decoder R-S no receptor possa corrigir qualquer ou todos os bits em cada byte(s) (N/2) no bloco de bytes. O decoder R-S também pode indicar bytes com erro que ele não pode corrigir, no entanto que não sejam excessivos os bytes com erro em cada bloco. Se nenhum dos bits de qualquer um dos bytes no bloco (incluindo os bytes de paridade extra) esteja com erro, uma síndrome de erro de byte de zero é retornada. Essa condição de zero é obtida independentemente dos dados e realiza uma fácil verificação. Nos transporte streams, os pacotes são sempre de 188 bytes ao longo primeiramente da adição de dados de correção de erro. A adição de 16 bytes de redundância R-S (paridade) produz um comprimento de pacote de 240 bytes. Na prática, transporte streams podem utilizar pacotes de 204 bytes mesmo quando a FEC não estiver presente. O uso dos 16 bytes evita o reclocking do stream quando um FEC é adicionado ou excluído. Perceba que os bytes de paridade R-S nem sempre têm que ser de 8 bits para casar com o tamanho do byte de dados de pacote. Por exemplo, QAM-J83B utiliza um tamanho de byte R-S de 7 bits em blocos de bytes de dados de 8 bits, portanto, não há uma correspondência de 1:1 para os bytes de dados de pacote. Num evento em que a síndrome não for zero, a solução das equações simultâneas resultará em dois valores necessários para correção de erro: o byte errado e os bits nesse byte que estão com erro. Porém, se o número de bytes errados excederem a metade do número de bytes de paridade, os bits com erro não podem ser corrigidos. Infelizmente, em canais de transmissão típicos, a qualidade do sinal é estatística. Isso significa que 153 Seção 10 enquanto poucos bits podem estar com erro devido a ruído, há ocasiões em que um grande número de bits, conhecidos como um “Burst”, todos podem estar corrompidos. Essa corrupção pode ser provocada por raio ou interferência de equipamento elétrico e irá saturar o bloco de dados codificados R-S e facilmente excederá o número de bytes (N/2) corrigíveis. Não é econômico proteger cada palavra de código contra tais Bursts, porque eles não ocorrem com muita frequência. A solução é utilizar uma técnica conhecida como intercalamento. A Figura 10-2 mostra que quando o intercalamento é utilizado, a fonte de dados é codificada em FEC, mas antes da transmissão, eles alimentam um buffer RAM. A Figura 10-3 mostra uma técnica possível em que os dados entram na RAM em fileiras e são então lidos em colunas. Os dados reordenados são agora transmitidos. Na recepção, os dados são colocados de volta em sua ordem original, ou desintercalados, utilizando uma segunda RAM. O resultado do processo de intercalamento é que um Burst de erros no canal após o desintercalamento torna-se grande número de erros de bytes únicos em cada bloco de dados R-S abrangendo um grande número de blocos de dados R-S, o que é mais prontamente corrigido. 154 Um Guia para Fundamentos de MPEG e Análise de Protocolo Quando um erro de Burst alcança o tamanho de correção máximo, o sistema está vulnerável a erros de bits aleatórios que tornam o código das palavras incorreto. A utilização de um código interno aplicado após o intercalamento e corrigido antes do de-intercalamento pode prevenir erros aleatórios de entrarem na memória do de-intercalamento. Como a Figura 10-3 mostra, quando essa abordagem é utilizada com uma estrutura de bloco de intercalamento, o resultado é um código de produto. A Figura 10-4 mostra que o intercalamento também pode ser convolucional, no qual o conjunto de dados é cortado aplicando um delay diferente para cada fileira. Convolucional (Forney), ou intercalamento cruzado, possui a vantagem de utilizar menos memória para o intercalamento e desintercalamento. 155 Seção 10 10.4.1 Codificação Turbo Codificação turbo é uma classe de códigos de correção de erro desenvolvidos recentemente (1992) projetados para alcançar a máxima transferência de informação sobre um canal de largura de banda limitada que está sujeito a ruído. A principal diferença das técnicas de codificação de erro estabelecidas é que o receptor é projetado para fornecer não somente um data bit stream recebido, mas também uma probabilidade de medição para cada bit corrigido. No codificador de transmissão, os dados são separados em três sub blocos de bits, como mostra a Figura 10-5. O primeiro sub bloco do m bits é a carga de dados. O segundo sub bloco é n/2 bits de paridade para a carga de dados computada utilizando um código “Recursive Systematic Convolution” (RSC). O terceiro sub bloco é n/2 bits de paridade calculada para uma permutação conhecida da carga de dados. Os dados transmitidos são, portanto, m+n bits e incluem dois redundantes, mas diferentes sub blocos de dados de paridade. No decoder o “front end” (parte do programa que é responsável pela interface do usuário) do receptor produz dois streams inteiros dos streams de paridade n/2 para cada bit do data stream que corresponde a probabilidade de que o bit seja um 0 ou 1. Se refere ao soft bit. Esse dado inteiro está na faixa de -127 até +127 com -127 significando certamente 0, -100 significa muito provavelmente 0, 0 significa que poderia ser 1 ou 0 e valores similares de + provavelmente para bits 1. A chave para o código turbo é a utilização de dois streams provavelmente gerados pelo receptor para resolver diferenças entre os dois bit streams de paridade decodificados. Cada um dos dois decoders de paridade gera uma hipótese para o padrão de sub bloco de carga de m bits. Os padrões de hipóteses de bit são comparados e se eles diferirem, os dois decoders trocam as probabilidades que eles têm por cada bit na carga de m bit hipotético. Cada decoder então incorpora as estimativas de probabilidades derivadas para os bits de outros decoders para gerar uma nova hipótese para m. Eles então comparam as novas hipóteses até que um acordo seja estabelecido. 156 Um Guia para Fundamentos de MPEG e Análise de Protocolo Esse processo interativo continua até que os decoders alcancem uma solução voltada para m ou na qual eles aceitem ser corrigidos. Uma característica de alguns decoders Turbo é que a BER correta pode ter um piso onde a BER não aumenta com o aumento no S/N, mas essa BER é tipicamente projetada para ser muito melhor do que a BER exigida. 10.5 Codificação de Canal; Dispersão de Energia Dados binários seriais naturais são inadequados para transmissão por várias razões. Execuções de bits idênticos causam deslocamentos DC e falta de bit clock. Não há controle do espectro e a largura de banda necessária é muito grande. Na prática em sistemas de transmissão e a cabo, é necessário um esquema de modulação chamado código de canal. Esquemas de modulação digital são discutidos na Secção 9. A Figura 10-6 mostra a aplicação desses princípios para um modulador 64QAM. 157 Seção 10 Nos esquemas descritos acima, o espectro do sinal transmitido é dependente de sinal. Algumas partes do espectro contêm alta potencia e causam interferências a outros serviços, enquanto que outras partes do espectro podem conter baixa potencia e serem susceptíveis a interferência. Na prática, aleatoriedade é necessária para de-correlacionar o espectro transmitido do conteúdo de dados. A Figura 10-7 mostra que quando aleatoriedade ou dispersão de potencia é utilizada, uma seqüência pseudo-aleatória é adicionada ao dado serial antes que ele seja colocado no modulador. O resultado é que o espectro transmitido está como ruído com relativamente estatísticas estacionárias. Claramente, uma seqüência idêntica e síncrona deve ser subtraída no receptor como mostrado. Aleatoriedade não é tipicamente (DVB e ATSC) aplicada aos padrões de sincronismo como os bytes de sincronismo TS, para detecção simplesmente, mas isso não é sempre verdade. Por exemplo, o novo padrão da China realiza a aleatoriedade nos bytes de sincronismo TS (carga agnóstica) e determina o tempo de frame da sincronização de símbolo. 10.6 Codificação Interna O código interno de um sistema de FEC é projetado para prevenir erros aleatórios de redução de potência do esquema de intercalamento. Um código interno adequado pode prevenir tais erros dando um aumento aparente ao SNR da transmissão. Típicos de códigos internos são códigos convolucionais onde, por exemplo, um bit extra é adicionado baseado na seqüência de bit anterior. A razão de bits de dados para o total de bits é chamada de 158 Um Guia para Fundamentos de MPEG e Análise de Protocolo taxa de código convolucional. Em codificação Trellis (desenvolvida por G. Ungerboeck em 1982), que pode ser utilizada com sinalização de muitos níveis, o código convolucional é combinado com mapeamento de símbolo de constelação onde vários símbolos de muitos níveis são associados em um grupo. A forma de onda que resulta de um grupo particular de símbolos é chamada de “Trellis”. Se cada símbolo pode ter oito níveis, então em três símbolos pode haver 512 Trellises possíveis. Antes de Ungerboeck, a codificação interna convolucional era independente do mapeamento do símbolo ou constelação, como na Figura 10-8. Com a combinação dos processos, aumentou substancial o ganho de codificação efetiva ou de S/N. Na codificação Trellis, os dados são codificados de tal forma que somente certas formas de ondas Trellis representem dados válidos. Se somente 64 dos Trellises representam dados livre de erro, então dois bits de dados por símbolo podem ser enviados ao invés de três. O bit remanescente é uma forma de redundância porque Trellises que não sejam os corretos 64 devem ser devido a erros. Se um Trellis é recebido no nível no qual um dos símbolos é ambíguo devido a ruído, a ambigüidade pode ser resolvida porque o nível correto deve ser aquele que fornece um Trellis válido. Essa técnica é conhecida como decodificação de probabilidade máxima, e ficou conhecida por A. Viterbi. Os 64 Trellises válidos devem ser diferentes o quanto possível para fazer com que o sistema continue funcionando com uma razão de sinal-ruído mais baixa. Se o codificador Trellis comete um erro, o codificador externo corrigirá o erro. Em DVB, codificação interna convolucional padrão Viterbi pode ser utilizada. A Figura 10-8 mostra que seguindo o intercalamento, os dados são alimentados em um registrador de deslocamento. O conteúdo do registrador de deslocamento produz duas saídas que representam verificações diferentes de paridade nos dados de entrada para que os erros de bit possam ser corrigidos. Certamente, haverá dois bits de saída para cada bit de entrada; portanto, o codificador mostrado é descrito como um codificador de ½ taxa. Qualquer taxa entre 1/1 e 1/2 ainda permitiria a transmissão do dado original, mas a quantidade de redundância variaria. Falha para transmitir 1/2 em toda saída é chamada de punção (puncturing) e permite o equilíbrio necessário entre o bit rate e a potência de correção. 159 Seção 10 10.7 Transmitindo Dígitos A Figura 10-9 mostra os elementos de um transmissor digital ATSC. A informação de serviço descrevendo a transmissão é adicionada ao Transporte Stream. Esse stream (exceto para o byte de sincronismo 0x47 do pacote) é então aleatorizado antes de rotiar para um codificador externo de correção de erro R-S que adiciona bytes redundantes aos bytes de dados de cada pacote TS. Um processo de intercalamento convolucional então reordena os dados de tal forma que esses dados adjacentes do Transporte Stream não sejam adjacentes na transmissão. Um codificador interno trellis e intercalamento é então utilizado para produzir um sinal de muitos níveis para o modulador de banda lateral vestigial (VSB). Em ATSC o byte de sincronismo 0x47 realmente nunca é codificado e enviado pelo transmissor. No lugar deste byte em especial, nível 2, um pulso de sincronismo é enviado e o receptor sempre insere um 0x47 nessa posição, logo, ele não tem que decodificar o byte de sincronismo de aleatoriedade, codificação R-S e codificação Trellis. A Figura 10-10 mostra um transmissor DVB-T. A Informação de serviço é adicionada como antes, seguida pelo estagio de aleatoriedade para dispersão de potencia (exceto para o pacote de byte de sincronismo 0x47). Símbolos externos de verificação de R-S são adicionados antes do interca- 160 Um Guia para Fundamentos de MPEG e Análise de Protocolo lamento. Após o intercalamento, o processo de codificação interna acontece, e os dados codificados alimentam um modulador COFDM. A saída do modulador então é convertida ascendentemente “upconverted” para produzir a saída de RF. No receptor, o bit clock é extraído e usado para controlar o tempo de todo o sistema. A codificação de canal é reservada para obter os dados não processados mais os erros de transmissão. A codificação interna corrige erros aleatórios e pode identificar grandes erros para ajudar o codificador externo após de-intercalamento. A aleatoriedade é removida e o resultado é o transporte stream original. O receptor deve identificar o PAT, a Informação de Serviço (SI) e PMT que o PAT indica para que seja informado à tela o que está disponível no Transporte Stream e o programa selecionado pode ser localizado no multiplex. 161 Seção 11 Transmissão de Dados A seção anterior focou as bases do transporte stream MPEG-2 e sua principal aplicação de transporte de vídeo comprimido e áudio stream, similar às transmissões analógicas convencionais. Porém uma das maiores vantagens de um transporte stream MPEG-2 é que ele pode transportar dados de vídeo e áudio. Embora os sistemas de televisão analógicos tiverem a capacidade e realizar o transporte de dados, suas larguras de banda máxima de dados são muito limitadas comparadas com as possíveis larguras de banda de um transporte stream. Essa seção proverá um resumo dos diferentes métodos do MPEG-2 e as variantes regionais (DVB, ATSC e ARIB (Associação de Indústrias de Rádio e Negócios)) para encapsular dados em um transporte stream. A próxima secção irá, portanto complementar como os dados são apresentados à tela pelo “Set Top Box” (que não estritamente está no escopo do MPEG-2). Um Guia para Fundamentos de MPEG e Análise de Protocolo 11.1 Aplicações Há muitos tipos diferentes de aplicações para transmissão de dados sobre um transporte stream, e cada tipo de aplicação pode requerer tipos diferentes de dados com exigências de tempo diferentes. Por exemplo, o tipo de dado envolvido no envio de tráfego de internet é muito diferente do necessário para fornecer uma atualização de “Firmware” para um “Set Top Box”. Um tempo irreal de atualização de informação de validação possui exigências de tempo muito diferentes de uma aplicação de questionário onde respostas e perguntas são enviadas em uma sincronização fechada com o vídeo/áudio. MPEG-2 fornece uma grande variedade de técnicas diferentes para enviar dados. A escolha da técnica é uma troca entre a otimização da largura de banda (e sendo assim o custo do fornecimento do serviço) enquanto as exigências de tempo da aplicação são atendidas. Os tipos de aplicações podem ser vagamente agrupados pelas suas exigências de tempo real e níveis de interatividade como descrito nas próximas secções. 11.1.1 Dados Relativos ao Programa A especificação básica do MPEG-2 não possui qualquer provisão para um EPG que pode fornecer informação sobre os canais de TV ou programas individuais que estão sendo transportados no transporte stream. As variantes regionais ATSC, DVB e ARIB têm utilizado a sintaxe de tabela privada de MPEG-2, tal como a EIT para fornecer dados adicionais sobre programas. É necessário transmitir essas tabelas em intervalos regulares e fornecer o tempo inicial, sinopse e outras informações sobre serviços e programas. Porém, mesmo esse nível de informação pode não ser suficiente e, portanto, há muitos EPGs de proprietário que estendem a quantidade de informação disponível e também fornecem facilidades como procura aprimorada, canais favoritos e outros serviços adicionais. Esses EPGs aprimorados são geralmente residentes permanentes no “Set Top Box” e utilizam uma com- 165 Seção 11 binação da informação da tabela padrão e formatos de dados de proprietário. Geralmente essas informações de programa não são críticas em relação ao tempo e técnicas de bit rate muito baixo são utilizadas. Em muitos casos os dados são projetados para serem gravados pelo “Set Top Box”, logo eles aparecem e imediatamente são disponibilizados para o usuário, mesmo se o tempo de transmissão atual total for relativamente longo. 11.1.2 Dados Oportunistas Raramente é possível utilizar a largura de banda completa de um transporte stream com stream de vídeo e áudio, principalmente por causa da necessidade de manipular a restrição complexa de remultiplexação ou inserção de tabela. Sistemas de dados oportunistas se utilizam dessa capacidade de sobra pela substituição de alguns pacotes nulos com dados úteis. Porém, a largura de banda desses dados não pode ser garantida e podem ser muito pequenas. Sendo assim, somente podem ser utilizados para aplicações sem restrição de tempo real. Algumas aplicações utilizando esse tipo de dado poderiam ser transferências de arquivos, tais como listas de preço ou distribuição de dados de nível de estoque através do satélite para todas as localizações da companhia. O único constrangimento é que a transferência deve ser noturna, portanto a baixa largura de banda e sendo assim serviços de dados oportunistas de baixa qualidade podem ser utilizados. 11.1.3 Rede de Dados Uma aplicação muito comum é a utilização de transporte stream de transmissão como uma portadora de dados de rede. No caso mais simples, um link de satélite proveria uma interconexão de largura de banda muito alta entre duas companhias geograficamente separadas. Esse link de rede poderia ser utilizado para transportar virtualmente qualquer tipo de protocolo de rede. Porém, o uso atual mais comum é para Downloads de internet de alta velocidade utilizando somente o protocolo IP. Nesse cenário uma cone166 Um Guia para Fundamentos de MPEG e Análise de Protocolo xão de internet de baixa velocidade é utilizada para enviar comandos e solicitação de página para um servidor de internet. Porém, o servidor de internet ira então rotiar qualquer dado de solicitação através de um link de satélite em velocidade muito alta do que as possíveis por um ISDN ou uma conexão média de banda larga. Uma variante desta aplicação é utilizada quando somente um canal de retorno lento for permitido, nesse caso, por exemplo, dados relativos ao programa de TV atual podem ser entregues em demanda sobre o sinal transmitido sem que os usuários estejam cientes de que estão acessando um site de internet. 11.1.4 TV Aprimorada Em uma aplicação de TV aprimorada não há canal de retorno, e, portanto todos os dados requeridos devem ser enviados sobre o transporte stream transmitido. Apesar dessa imposição de restrições óbvias do projeto e da faixa de uma aplicação, ainda é possível produzir uma faixa muito larga de jogos, questionários e informações comerciais onde os usuários podem estar completamente sem conhecimento de que toda a interconexão é somente com a TV. Esse é especialmente o caso com o material pré-gravado, onde é relativamente direto sincronizar dados “Pop-ups”, tais como perguntas e respostas de questionários, com áudio/vídeo. 11.1.5 TV Interativa A principal diferença entre TV aprimorada e interativa é que a TV interativa possui um canal de retorno para enviar ou receber dados altamente personalizados. Isso amplia muito a faixa de aplicações, incluindo a possibilidade de prover interação em tempo real com outras telas, tais como jogos ou votação de muitos jogadores, assim como um retorno realmente personalizado. Uma nova extensão deste tipo é quando uma conexão de internet de alta velocidade é combinada com um canal de retorno verdadeiro. Isso oferece 167 Seção 11 uma integração continua de dados personalizados com transmissão de televisão, permitindo simultaneamente entregar VOD de programação ou outro material 11.2 Encapsulamento de Conteúdo O primeiro estágio em uma transmissão de dados é encapsular os dados em uma forma adequada para transmissão em transporte stream. Há uma grande variedade de diferentes tipos de dados e, portanto os padrões MPEG-2 provê muitos métodos diferentes de encapsulamento. Os vários países especificam padrões, tais como o DVB e o ATSC que aprimoraram mais as opções básicas do MPEG-2 para atender as exigências regionais, mas todos esses são construídos na essência dos padrões MPEG-2. 11.2.1 Encapsulamento de Dados MPEG 11.2.1.1 Dados “Piping” Dados Piping são utilizados para a entrega assíncrona simples de dados para um Set Top Box na rede. Sua aplicação principal é enviar dados de proprietário em sistemas fechados onde um Set Top Box foi pré-programado para procurar por dados específicos em certos PIDs. Os dados são transportados diretamente na carga de pacotes TS MPEG-2 sem nenhuma informação de tempo. Uma aplicação típica pode ser uma atualização noturna de níveis de estoque de produtos para todos os terminais de vendas em uma região. 11.2.1.2 Data Streaming O data streaming é utilizado para a entrega de ponta a ponta de dados em modo assíncrono, síncrono ou sincronizado. Os dados são transportados como pacotes PES em um método similar aos serviços de áudio e vídeo. De fato, vídeo e áudio são realmente exemplos específicos de um serviço 168 Um Guia para Fundamentos de MPEG e Análise de Protocolo de streaming de dados síncrono. Como os pacotes PES são sinalizados nas tabelas de informação de serviço (SI) e podem transportar informação de tempo, essa abordagem é mais flexível do que o dado Piping, mas, na prática é utilizado em um modo similar em sistemas fechados de proprietário. 11.2.1.3 DSMCC – Controle e Comando de Media de Gravação de Dados A especificação de MPEG-2 DSM-CC de (ISSO/IEC 13818-6) fornece mais formas de transmissão de dados nas secções de uma tabela privada de um padrão MPEG-2. Foi originalmente desenvolvido como uma forma de entrega de VOD de material de programa através de uma rede no Transporte Stream. O protocolo foi estendido para possibilitar a entrega sob demanda (utilizando o paradigma MPE) assim como a entrega periódica (utilizando o paradigma carrossel) de dados através de múltiplos fornecedores de rede. 11.2.1.4 MPE – Encapsulamento de Multi-Protocolo Encapsulamento de Multi-Protocolo (MPE) permite um Datagrama de qualquer protocolo de comunicação para ser transmitido na secção de uma tabela DSM-CC através de um Transporte Stream. Um Datagrama é uma estrutura lógica que contém todas as informações sobre os dados, por exemplo, seu tamanho e conteúdo, onde ele deve estar indo e como ele deve chegar lá. A aplicação mais comum é o tráfego de internet onde o Datagrama TCP/ IP transporta informação sobre o endereço lógico (IP) da fonte e destino (alvo) assim como o endereço de controle de acesso de media (MAC) (um único endereço de rede) do alvo. Porém MPE suporta quase qualquer tipo de protocolo de rede e é certamente não restrito a somente dados TCP/ IP. Na verdade, o padrão DVB-H usa MPE para stream de áudio e vídeo e elementar stream para telefones celulares. DVB-H tipicamente utiliza os protocolos UDP/IP ao invés de TCPÍP, conforme os dados estão sendo transmitidos. Muitas implementações também utilizam o protocolo de tempo real (RTP) para facilitar a sincronização de áudio e vídeo (sincro- 169 Seção 11 nismo labial). Um exemplo de uma quantidade de protocolos DVB-H é ilustrado na Figura 11-1. 11.2.1.5 Carrosséis Carrosséis são destinados para a transmissão periódica de informação sobre transporte stream. Embora o conteúdo de um carrossel mude em resposta a um pedido de um usuário, ele é mais usual para o carrossel se for regularmente repetido independentemente se qualquer objeto observado ou se está necessitando desse dado nesse momento. Um objeto necessita de um item de dado, a expectativa é de que ele simplesmente espere até que seja retransmitido. Há dois tipos diferentes de carrosséis, carrosséis de objeto e carrosséis de dados, e as principais diferenças entre eles são: Carrosséis de dados contêm somente módulos de dados de conteúdo não especificado; cabe ao objeto saber o que fazer com os dados que ele recebe. Carrosséis de objeto contêm objetos de dados identificáveis tais como imagens, arquivos de texto, ou arquivos de aplicações executáveis e contêm uma lista de diretório de todos os objetos no carrossel. Carrosséis de dados são frequentemente utilizados para downloads de novos softwares de sistema para um Set Top Box considerando que um carrossel de objeto é utilizado por serviços de compra, EPGs e para enviar aplicações e jogos. Em ambos os carrosséis de dados e de objetos, os itens são repetidos em intervalos periódicos. Porém, carrosséis de objetos facilitam a variação da taxa de repetição de objetos individuais. Por exemplo, o EPG para as próximas horas de observação pode repetir muito mais do que para o próximo mês. As taxas de repetição para objetos pode ser uma decisão comercial realizada pelo provedor de serviço para maximizar a utilização da largura de banda. Ambos os carrosséis de dados e de objetos são baseados nas extensões DSM-CC para as especificações de MPEG-2 ISSO13818-6, com extensões específicas para os sistemas ATSC, ARIB e DVB. 170 Um Guia para Fundamentos de MPEG e Análise de Protocolo 11.2.1.6 Carrosséis de Dados Um carrossel de dados não contém qualquer item individual ou diretório de estrutura, mas um único bloco monolítico de dados. É de responsabilidade do usuário alvo, saber o que o dado é e o que fazer com ele. A estrutura é mostrada na Figura 11-1. Um único item completo de dados é definido como um “módulo”. Módulos de transmissão são separados em um ou mais blocos. Cada bloco é enviado como uma secção na carga de uma mensagem de Bloco de Dados de Downloads (DDB), que segue a sintaxe da tabela privada definida de MPEG. A mensagem DDB pode ser enviada em qualquer ordem ou em qualquer periodicidade; sendo assim um mecanismo é necessário para identificar em quais módulos os DDBs pertencem. Uma mensagem de Indicação de Informação de Downloads (DII) é usada para ligar os DDBs juntos em um módulo. A informação para mais do que um módulo pode estar em uma única mensagem de DDI; isso forma um grupo. Usualmente um grupo conterá módulos de dados relacionados logicamente. 171 Seção 11 Se houver mais módulos relacionados do que o que pode ser agrupado em uma única mensagem DDI, um Supergrupo de mensagens múltiplas de DDI pode ser formado. Esses são referenciados por uma mensagem de Início de Servidor de Downloads (DSI). Um carrossel de dados de uma camada contém um número pequeno de módulos referenciados em um único DLL. Um carrossel de dados de duas camadas contém mensagens DSI referenciando uma ou mais mensagens DLL. Ele pode ser menor ou maior do que um único carrossel. Uma utilização típica para um carrossel de 2 camadas seria para suporte de multi-linguagem. Um grupo pode conduzir o programa executável ao longo de um módulo, com o texto em Inglês em um segundo módulo. O segundo grupo poderia então somente transportar um único módulo com o texto em Francês somente, salvando o excedente da repetição do módulo de aplicação. 172 Um Guia para Fundamentos de MPEG e Análise de Protocolo 11.2.1.7 Carrosséis de Objetos Carrosséis de objetos são utilizados para transmitir itens identificáveis individualmente de dados de identidade de um servidor para um receptor. Esses itens são chamados de objetos e podem ser imagens, arquivos de texto, programas, um diretório para um vídeo PID, uma lista de diretório ou gateway de serviço que são disponíveis no carrossel. Objetos Relacionados, agrupados e enviados juntos, como um único carrossel, formam um domínio de serviço. Objetos podem ser enviados tão freqüentemente quanto requeridos e diferentes objetos podem ter taxas de repetição muito diferentes. A característica principal de carrosséis de objetos é que todos os objetos são enviados utilizando o paradigma BIOP (transmissão de protocolo inter-ORB). Desenvolvedores de softwares convencionais utilizaram ORB (Corretagem de Requisição de Objeto) por muitos anos. BIOP estende o sistema básico para possibilitar a identificação e utilização de objetos em um ambiente de transmissão através de redes diferentes de provedores de serviços diferentes. Na essência, um BIOP é um método para trocar informações sobre um objeto que está sendo transmitido no carrossel. O BIOP pode conter o objeto ou simplesmente um indicador de objeto. O BIOP também pode indicar como utilizar esse objeto, providenciando inclusive um link para download do software de aplicação necessário para utilizar esse objeto. Carrosséis de objeto são similares aos carrosséis de dados, nesse grupo de objetos eles são combinados juntos para formarem módulos. A metodologia básica de carrosséis de dados é então utilizada para transmitir esses dados utilizando blocos, módulos e DLLs. A principal diferença é que o DSI é utilizado para apontar diretamente para o objeto diretório do Gateway de Serviço, que é utilizado para buscar todos os outros objetos no carrossel. Esse arranjo é mostrado na Figura 11-2. 173 Seção 11 11.2.2 Encapsulamento de Dados DVB DVB adotou o padrão de métodos de encapsulamento MPEG-2 com pouquíssimas variações, principalmente para remover possíveis ambigüidades provenientes das especificações originais (EN 301 192). Isso inclui a especificação de um formato MPE ligeiramente diferente e a imposição de restrições no tamanho de pacote máximo de dados PES. DVB também tem a responsabilidade de garantir que não haverá ambigüidades entre serviços de dados que utilizam IORs fornecendo uma única localização de redes IDs e servidores IDs. DVB também definiu dois formatos PES de streaming de dados específicos para legenda de DVB e para “tele texto” de DVB e possui um formato de padronização para utilização do carrossel de dados para transmitir atualizações de firmware de set top Box (STB). O DVB também definiu muitos descritores de dados e adicionalmente tabelas que são discutidas nas secções abaixo. A maioria destes complementos úteis é habilitar o descritor a fornecer uma máscara simples para o destinatário MAC em um Datagrama MPE. Isso possibilita um suporte simples para estreito, multi ou serviços MPE broadcast. 11.2.3 Encapsulamento de Dados ATSC A/90 A especificação ATSC A/90 inclui algumas diferenças significantes de ambos os padrões DVB e MPEG-2. Primeiro A/90 não utiliza carrosséis de objeto e o sistema CORBA/IOR, mas ao invés disso ele utiliza uma tabela separada, A adição mais útil dessas Tabelas de Pesquisas de Rede (NRT), é fornecer informação vinculativa que liga um dado referenciado com a sua localização real. Longe de uma indiscutível simplificação da operação do sistema, ele também habilita suporte direto para URLs de internet que não estão disponíveis no DVB ou MPEG. Em segundo, o A/90 utiliza somente carrosséis de dados que podem efetivamente conter somente um único objeto. O formato do carrossel de dados foi estendido para opcionalmente incluir um cabeçalho de adaptação 174 Um Guia para Fundamentos de MPEG e Análise de Protocolo DSM-CC que pode conter um PTS para habilitar a distribuição de dados síncronos. O conceito MPEG de NPT em um programa não está disponível. O A/90 também define tipos de dados adicionais, incluindo suas próprias versões de DSM-CC MPE assim como permiti que dados IP sejam transmitidos utilizando o formato PES. Principalmente devido a essa falta de suporte para carrosséis de objetos, houve pouca adaptação de A/90. 11.2.4 Encapsulamento de Dados ARIB O padrão japonês ARIB B24 é indiscutivelmente o mais simples de todos os sistemas. Ele não suporta dados “Piping” ou carrosséis de objetos. Ao invés disso, ele utiliza o formato de carrosséis de dados para enviar um ou mais títulos pela imposição de uma estrutura de diretório específica no conteúdo do carrossel de dados. ARIB não permite referências para qualquer título que não seja referenciado diretamente no PMT e, portanto, não tem a necessidade de ligações do tipo de NRT ou CORBA (common object request broker architecture - arquitetura de corretor de requisição de objeto comum). 175 Seção 11 11.3 Conteúdo de Dados Broadcasting 11.3.1 Como Carrosséis de Objetos são Transmitidos Uma completa explanação está além do escopo desse documento; a descrição seguinte é uma abordagem muito simplificada e rápida. (Veja também a Figura 11-3.) Diretório, arquivo e objetos stream são enviados no mesmo método que o carrossel de dados, por exemplo, em módulos separados em blocos, eles são enviados como seções na carga de um Download Data Block DDB. Uma mensagem DSI Download Server Initiate contém a localização de um objeto de diretório especial chamado de gateway de serviço. Mensagens DSI são referenciadas no SI e, portanto, formam o ponto de início para elaborarem o que está em um específico carrossel de objeto. O DSI referencia o DLL que referencia o DDB que contém o módulo no qual o objeto gateway de serviço é enviado. Objetos são referenciados em um objeto diretório utilizando IORs interoperable object references (referências de objetos inter operáveis). Neles estão todas as informações necessárias para acessar um objeto no mesmo domínio de serviço ou em outro carrossel de objetos (incluindo aquelas transmissões em outros Transporte Streams). O nome dado para essa estrutura no IRO que descreve a localização de um objeto é chamado de “Profile Body” que são divididos em dois modos: BIOP Profile Body – utilizado somente por objetos dentro desse domínio de serviço. Profile Body de Poucas Opções – utilizado por objetos em outros servidores ou transporte streams. Um IOR pode conter mais do que um Profile Body se o objeto estiver disponível em mais do que um carrossel e o Set Top Box pode escolher o acesso mais fácil/rápido. Derivações são utilizadas para resolver o problema de que os reais PIDs utilizados para transmitir streams de DLLs, DDB e vídeo/áudio não são conhecidos até imediatamente antes da transmissão. No carrossel, portanto, todas as 176 Um Guia para Fundamentos de MPEG e Análise de Protocolo referências para PIDs são realizadas somente em relação de uma derivação; a associação entre uma derivação e um PID real é realizada no SI. Isso simplifica muito os streams de remultiplexação através de redes diferentes. 11.3.2 Sincronização de Dados MPEG-2 Há uma necessidade das transmissões de dados serem sincronizadas de alguma forma com programas que estão sendo transmitidos. Não é realmente prático utilizar o fornecimento em tempo real de um dado como o método de sincronização, exceto em aplicações de tempo real não criticas tais como atualizações de placares de esporte onde poucos segundos ou mais de erro não são significantes na prática. Porém, mesmo um segundo ou dois poderiam ter um grande impacto em, por exemplo, em programas de perguntas onde a revelação muito rápida da resposta poderia ter sérias conseqüências. MPEG-2 fornece mecanismos de tempo diferentes para os tipos diferentes de encapsulamento de dados. Dados Piping e MPE não suportam qualquer mecanismo de tempo sem ser entregue em tempo real de dados. Pacotes PES de streams de dados podem conter marca de tempo de apresentação (PTS) e possivelmente decodificação de marca de tempo (DTS), marcas de tempo para sincronização com de sistema de clock derivados dos valores de PCR no stream. O mecanismo é exatamente o mesmo para sincronização e decodificação de áudio e vídeo. Carrosséis de dados MPEG-2 não possuem informação de tempo. Porém, carrosséis de objetos podem conter um objeto especial chamado de “evento stream” que contém informação de tempo relativa ao tempo de execução normal (NPT) de um programa de televisão individual. O NPT não é o mesmo que o PCR, como o clock NPT pode ser pausado durante, por exemplo, uma parada comercial. Em outras palavras, o NPT de um programa pode permanecer em completa sincronização com a linha de tempo do programa, não considerando quando for transmitido ou como é dividido em paradas comerciais. 177 Seção 11 11.3.3 Sinalizando Conteúdos de Dados Serviços de dados são primeiramente encapsulados de acordo com um padrão nacional ou internacional relevante e depois transmitidos através de um transporte stream para um STB. Porém, a fim de se utilizar um serviço de dados, o STB deve primeiramente saber que um serviço de dados existe e quando ele estará disponível (“notificação”). Em segundo lugar, ele deve encontrar e identificar os vários componentes do serviço de dados (“sinalizando”) quando ele está realmente sendo transmitido. O MPEG-2 somente define o PAT e PMT, logo, toda a notificação e sinalização podem ser realizadas somente pela inspeção do tipo stream elementar e alguns descritores muito básicos. Apesar de ser utilizável, há um grande número de limitações para utilizar somente o PAT e PMT, serviços de sincronismo de dados ou eventos não são possíveis. Ambos DVB e ATSC possuem, portanto, tabelas adicionais definidas que significantemente aumentam a quantidade de informação fornecida sobre qualquer serviço de dados presente. Note que em todos os casos o transporte de dados PIDs deve ser sinalizado como presente na entrada de pelo menos um PMT. 11.3.3.1 Notificação de DVB O DVB considera serviços de dados como sendo associados com um evento individual (por exemplo, um simples programa de perguntas) ou como parte de um serviço, tal como um canal de esporte. Na realidade ele está sujeito ao paradigma MPEG-2 onde um serviço de dados é logicamente indistinguível de um stream de áudio ou vídeo convencional. Ele, portanto, possui definido simplesmente um número de descritores adicionais que são colocados na tabela EIT ou na tabela SDT que notificam que um serviço de dados ou evento estará disponível. A localização real de componentes e serviços de dados é então sinalizada utilizando as técnicas descritas acima. A única tabela nova é a tabela de informação de aplicação, que é definida para utilização somente com serviços MHP. Ela contém uma lista de todas 178 Um Guia para Fundamentos de MPEG e Análise de Protocolo as aplicações em um carrossel, um direcionador para sua classe de boot e opcionalmente permite que as aplicações sejam auto iniciadas ou encerradas em uma mudança de canal. 11.3.3.2 Notificação ATSC Em contraste com o DVB, a especificação de A/90 trata os eventos e serviços de dados totalmente separadamente dos serviços de áudio e vídeo e adicionou muitas tabelas para atender esse paradigma. Essas são as tabelas de serviços de dados (DST), que listam os serviços de dados que estão sendo enviados e a tabela de evento de dados (DET). A DET é exatamente análoga ao EIT para informação de sincronismo de programa convencional e utiliza uma sintaxe idêntica. Uma terceira tabela, a tabela de serviços de termos longos, é similar a DET, mas, fornece informação de sincronismo de termo longo além do máximo de 16 dias fornecidos pela DET. 11.4 Apresentação de Conteúdo O último estágio de uma transmissão é rodar a aplicação no STB e apresentar a informação na tela. Deve ser percebido que um Transporte Stream é inteiramente agnóstico ao conteúdo real que ele está transportando, somente se ele for encapsulado no protocolo correto para vídeo, áudio ou dados. Em outras palavras, a próxima seção é completamente separada dos padrões de transmissão de dados ATSC, DVB ou MPEG-2, como aplicações e dados são fornecidas somente pelo Transporte Stream para serem utilizadas pelo STB. 11.4.1 Set Top Box “Middleware” Em alguns casos, como os dados de internet, os ambiente nos quais os dados serão utilizados são auto definidos ou relativamente sem importância. Porém, em muitos casos, tais como jogos e aplicações, é crítico que aplicações de dados sejam construídas para rodarem apropriadamente no STB 179 Seção 11 alvo. Em muitos casos o STB terá um software de interface de programa de aplicação (API) para rodar que conecte a função de alto nível proveniente da aplicação para os drivers do software que controlam o hardware real no box e ligam ao dados no Transporte Stream. Essas camadas de software, que se acomoda entre a aplicação e os drivers, são conhecidos como “Middleware”. Há, porém, uma grande variedade de STB em utilização no mundo. Seus desempenhos e conjuntos de características são muito básicos permitindo somente decodificar e mostrar uma imagem de definição padrão básica através das últimas unidades com alta capacidade de processamento. Algumas unidades modernas possuem conjuntos de chips de gráficos de alto desempenho e rodam sistemas de operação completos tais como Linux ou Windows. Eles são equipados com drives de disco rígido para gravação de programas, possuem DVD ROMs para reprodução de DVD e pode rodar programas convencionais como pacotes da Microsoft ou Star Office. Um simples gráfico projetado para ser mostrado em um novo boxe de alto desempenho pode não estar disponível em uma unidade mais antiga. Desenvolvedores de aplicações teriam que criar programas completamente diferentes utilizando linguagens de programação diferentes para cada tipo de Set Top Box, Middleware e sistema operacional; claramente ineficientes e aumentando o custo do desenvolvimento. Houve muitas tentativas para padronizar boxes ou pelo menos suas funcionalidades mínimas, onde a funcionalidade do Box é claramente definida e controlada pelos próprios broadcasters de uma forma muito fechada. Outra abordagem foi considerada por companhias que fornecem solução completa através da oferta de um Middleware com as ferramentas de desenvolvimento de aplicação para desenvolver programas compatíveis. Esses sistemas são mais abertos do que o Middleware pode licenciar a operar em uma variedade de diferentes set top boxes com desempenhos diferentes de características à medida que eles atendem a funcionalidade básica exigida. Um esquema de transmissão de dados de proprietário e um serviço interativo “Walled Garden” têm sido muito utilizados como um sistema interativo, fornecendo uma interatividade real através de um canal de retorno. 180 Um Guia para Fundamentos de MPEG e Análise de Protocolo Ofertas de outras companhias também são muito utilizadas na Europa e aplicações podem ser fornecidas utilizando carrosséis de objetos padrões. Há muitos outros sistemas de proprietário. Um padrão aberto é um ambiente de aplicação definido pelo “Multimedia Hypermedia Experts Group” (MHEG). Uma variante particular do MHEG-5 é melhorada para aplicações de memória de baixo desempenho e Set Top Boxes em particular, O MHEG-5 possui alguns êxitos, notavelmente nos UK onde é utilizado para transmissões terrestre para STBs. A tendência atual é, portanto, em direção à padronização em um Middleware aberto com um API de programação claramente definido. Isso beneficia o consumidor que pode escolher uma ampla variedade de Set Top Boxes enquanto permite aos desenvolvedores de aplicação reutilizar o código. 11.4.2 Histórico de Padrões Middleware Abertos Dois “Front-runners” por um padrão de Middleware global emergiu rapidamente, a Multimedia de Plataforma Doméstica (MHP) do DVB e o Ambiente de Software de Aplicação de TV Digital (DASE) do ATSC. Ambos os padrões construídos sobre seus respectivos padrões de encapsulamento de dados, EN 301 192 para o DVB e A/90 para ATSC, como ilustrado na Figura 11-4. A falta de interoperabilidade e suporte de carrosséis de objetos fez com que o DASE não fosse largamente adotado. Laboratórios de Cabos nos EUA decidiram desenvolver um padrão que endereçam essas deficiências para o Mercado de TV a Cabo. Eles colaboraram com o DVB em seu trabalho em padrões Middleware abertos, levando as especificações de MHP que estão sendo utilizadas como base para uma Plataforma de Aplicações de Cabo Aberto (OCAP) em janeiro de 2002. Com muitas organizações em todo o mundo se empenhando pela mesma meta na criação de sistemas Middleware abertos, a procura por alguma forma de harmonização passou a fazer sentido. Para uma indústria que é global como a indústria de televisão, isso é muito importante. O item de trabalho do GEM (Executável Globalmente MHP) veio após uma necessida- 181 Seção 11 de dos Laboratórios de Cabos para considerarem a unificação MHP com o padrão DASE original do ATSC. A especificação GEM foi primeiramente publicada em Fevereiro de 2003 e é um subconjunto de MHP. Foi projetada para questões de interoperabilidade entre as várias especificações de Middleware de padrão aberto. Essas questões incluem: - Problemas de interoperabilidade que envolve padrões Middleware anteriores, - Elementos do sistema de transmissão; em particular, modulação, sistemas, mecanismos de fornecimento e sistemas CA, - Exigências de mercado de operador de rede específicas. O ATSC desenvolveu então o padrão ACAP (Advanced Common Application Platform). O ACAP foi primeiramente baseado no GEM e DASE, com funcionalidades adicionais do OCAP. Na verdade, o equipamento que é compatível com o ACAP, também será com os padrões GEM e OCAP. O ACAP foi planejado para fornecer acesso às várias vantagens desses padrões para os mercados de ATSC, sendo assim substituiu o obsoleto DASE. 182 Um Guia para Fundamentos de MPEG e Análise de Protocolo 11.4.3 A Plataforma Doméstica de Multimedia DVB (MHP) A plataforma doméstica de multimedia (MPH) define um API muito abrangente com vários perfis e níveis diferentes que permiti um desempenho e custo de STB e serviços diferentes. São possíveis TV aprimorada e TV interativa (com canais de retorno), e ainda permite conexões de internet, que de outra forma não é diretamente possível pelos outros padrões DVB. Aplicações de MHP são fornecidas utilizando o padrão DVB de carrosséis de objetos e notificadas utilizando a tabela AIT descrita anteriormente. Isso permite que as aplicações sejam auto iniciadas, pausadas ou terminadas e para buscas serem explicitamente gravadas com o intuito de acelerar os tempos de “boot” de aplicação. O padrão de MHP é baseado na tecnologia Java e engloba um conjunto de APIs derivados dos padrões existentes, tais como TVJava, HAVI (interoperabilidade vídeo e áudio doméstico) e DAVIC (Conselho Visual de áudio Digital). Aplicações podem ser baseadas tanto em Java ou em HTML e há muitos MHP kits de desenvolvimento de software (SDK) disponíveis de vários fornecedores diferentes. As aplicações terão que se submeter a um teste de conformidade e ser eletronicamente sinalizada para garantir a interoperabilidade e a segurança do sistema. O MPH Logo também é protegido e os STBs devem submeter a um processo de conformidade antes que eles possam ser esgotados com o logo. Testes de interoperabilidade regular foram notórios nestes dois últimos anos para garantir que todas as aplicações MHP funcionem em todos os Set Top Box MHP de vários lideres de fabricação. MHP é de fato padrão na Europa, e os serviços foram iniciados oficialmente na Finlândia em agosto de 2001. Porém, MHP não é um padrão somente da Europa, é também adotado no mundo todo. Por exemplo, ele é usado na Coréia do Sul para transmissão de dados via satélite e na Austrália por transmissão terrestre. 183 Seção 11 11.4.4 ATSC Plataforma de Aplicação Comum Avançada (ACAP) O padrão Middleware ACAP foi planejado para fornecer conteúdo e aos autores de aplicações a segurança de que seus programas e dados serão recebidos e rodados uniformemente em todas as marcas e modelos de receptores. Foi planejado para aplicação em sistemas de transmissão e recepção terrestre e sistema de TV a cabo. Em adição, a mesma arquitetura e facilidades podem ser aplicadas para outros sistemas de transporte, tais como o satélite. No coração do ACAP está o GEM “Framework”. O GEM permite as variadas organizações a obter harmonia em especificações técnicas, tais como a seleção de uma execução única e (onde possível) um conjunto comum de APIs. A meta é tal que as aplicações e conteúdos serão interoperáveis através de todas as plataformas baseadas em GEM. Apesar de outros padrões não serem completamente compatíveis com todas as especificações de MHP, GEM garante que a compatibilidade será mantida onde for viável. O conjunto de tecnologias, onde equivalentes funcionais são permitidas, é negociado como parte do diálogo técnico entre o DVB e cada uma das organizações que desejam utilizar o GEM. Adicionalmente, as especificações de GEM contêm uma lista daquelas outras especificações com as quais elas podem ser utilizadas. Com o interesse de manter a meta de interoperabilidade, a sinalização de serviços ACAP é puramente restrita a MPEG; isto é, somente PMTs. Ao contrário do MHP, que inclui a sinalização específica de DVB. ACAP suporta dois perfis de uso, um é somente Java e o outro é uma combinação de Java e XHTML (HTML estendido). 184 Seção 12 Teste de MPEG A habilidade de analisar transporte streams existentes pela conformidade é essencial, mas essa habilidade deve ser complementada por uma habilidade para criar transporte streams que são conhecidos para serem compatível. Um Guia para Fundamentos de MPEG e Análise de Protocolo 12.1 Requerimentos de Teste Apesar da tecnologia de MPEG diferir dramaticamente da tecnologia que a precedia, os requerimentos de teste são basicamente os mesmos. Em uma base operacional, o usuário quer ter uma verificação de confidencia simples e regular que garanta que tudo esteja bem. No caso de uma falha, a localização da falta precisa ser estabelecida rapidamente. Para o propósito do projeto de equipamento, a natureza dos problemas deve ser explorada em detalhes. Como com todos os testes de sinal, a sugestão é combinar a geração de sinais conhecidos válidos para inserção em um sistema com a habilidade de medir sinais em vários pontos. Uma das características do MPEG que o distancia muito de equipamentos de vídeo de transmissão tradicional é a existência de camadas de informação múltiplas, na qual se espera que cada camada seja transparente a que está abaixo. É muito importante estabelecer em qual camada reside qualquer falta para evitar uma procura sem resultado. Por exemplo, se o monitor de vídeo em um decoder MPEG mostra defeitos visíveis, esses defeitos podem ser devido a um número de possibilidades. Talvez o encoder esteja falhando, e transporte stream esteja fornecendo fielmente a informação de falha. Por outro lado, o encoder pode estar bom, mas a camada de transporte esteja corrompendo os dados. No DVB, há muito mais camadas tais como dispersão de potencia, correção de erro e intercalamento. Tal complexidade requer uma abordagem estruturada para a detecção de falhas, utilizando as ferramentas corretas. A discussão de análise de protocolo de compressão dos dados nesse guia ajuda o usuário a obter uma compreensão do assunto. Lendo outro aspecto importante de teste para televisão comprimida, a qualidade da avaliação da imagem, também pode ajudar. Essa última discussão foi publicada pela Tektronix, “Um Guia para Medição de Vídeo para Sistemas de Televisão Comprimida.” (“A Guide to Video Measurements for Compressed Television Systems.”) 12.2 Analisando o Transporte Stream O Transporte Stream MPEG possui uma estrutura estritamente complexa, mas um analisador tal como o da Série MTS400 da Tektronix pode sim- 187 Seção 12 plificar essa estrutura em uma apresentação lógica dos dados contidos. Isso permite que o usuário determine se Transporte Stream está a correto. Muitas dessas análises podem ser feitas em um tempo real do Transporte Stream ao vivo. Isso inclui a hierarquia dos programas e qual proporção do bit stream está alocada para cada PID. Se for necessária uma análise mais detalhada, pode ser feita simplesmente gravando a parte do Transporte Stream para mais análises. Essa técnica é conhecida como teste de tempo deferido e pode ser utilizada, por exemplo, para examinar os conteúdos de uma marca de tempo. Quando utilizado para teste de tempo deferido, um analisador de Transporte Stream MPEG está agindo como um analisador lógico que fornece ferramentas específicas de interpretação de dados MPEG. Como com todos os analisadores lógicos, um mecanismo de sincronismo em tempo real é necessário para determinar o tempo ou condições sobre qual uma captura acontecerá. A Figura 12-1 mostra um típico diagrama em blocos de um analisador ilustrando a seção em tempo real, seção de armazenamento e seção deferida. Em análises em tempo real, somente a seção em tempo real opera, e uma fonte de sinal precisa ser conectada. Para captura, a seção em tempo real é utilizada para determinar quando sincronizar a captura. Muitos analisadores incluem ferramentas conhecidas como filtros que permitem que as análises seletivas sejam aplicadas antes ou depois da captura. Uma vez que a captura é completada, a seção deferida pode operar nos dados capturados e o sinal de entrada não é mais necessário. Também o osciloscópio que grava pode mostrar a entrada em tempo real diretamente ou salvá-la para um estudo posterior. Os analisadores da série MTS400 combinam ambas as análises em tempo real e a deferida em uma única ferramenta. Eles também incorporam um mecanismo de sincronismo sofisticado, chamado de “CaptuteVu”, que faz com que o bitstream seja gravado em uma memória volátil (RAM) para análise atrasada. Isso possibilita repetições de remoção de erros em torno das análises em tempo real, captura e Loop de análise atrasada. 188 Um Guia para Fundamentos de MPEG e Análise de Protocolo 12.3 Visão Hierárquica Quando analisarmos um Transporte Stream não familiar, a visão hierárquica é um excelente ponto inicial porque ela fornece uma visão gráfica de cada tabela, ou SI, componente de bitstream. A Figura 12-2 mostra um exemplo 189 Seção 12 de um mostrador de hierarquia tal como o fornecido pelo MTS400. Os três displays nos mostram as tabelas de Transporte Stream presentes junto com componentes de stream contidos. O usuário pode facilmente ver como muitos programas estão presentes e a cada conteúdo de vídeo e áudio. Um analisador cria a visão hierárquica utilizando o PAT e o PMT nos dados PSI no Transporte stream junto com qualquer tabela específica de padrões tal como a DVB-SI EIT e ADT. Os PIDs dessas tabelas são mostrados no painel de Sumário associados com cada tabela. Dados PAT e PMT são fundamentais para a operação de qualquer demultiplexer ou decoder; na verdade, se perdido ou incorreto, é improvável que equipamento mais “Downstream” será capaz de interpretar todo o Transporte Stream. Essa situação é mostrada na Série MTS400 como erro PAT/PMT. Embora a visão hierárquica seja útil para mostrar conteúdos PSI e SI, não é particularmente útil para navegação entre tabelas. O painel de Sumário na Série MTS400 contém uma série de Hiperlinks para rapidamente navegar as conexões lógicas entre tabelas tais como a DVB SDT e PMT assim como a PAT e PMT. Em adição, o MTS400 inclui uma visão de EPG que engloba os conteúdos EIT e SDT. O usuário pode navegar diretamente para uma seção EIT individual de interesse da visão de EPG (veja a Figura 12-3). A visão de EPG também suporta os padrões ATSC e ARIB. A habilidade do demux ou decoder para amarrar “lock” o Transporte Stream depende da freqüência com a qual os dados PSI são enviados. A opção de taxa de PSI/SI mostrada na Figura 12-4 mostra a freqüência de inserção de informação de sistema. Informação de PSI/SI também deveria ser consistente com o conteúdo real no bitstream. Por exemplo, se um PID dado é referenciado em um PMT, seria possível encontrar PIDs desse valor no bitstream. A função de verificação de consistência realiza tal comparação. A Figura 12-5 mostra um erro de consistência de um bitstream incluindo dois pacotes não referenciados. Um Sumário de programa visto graficamente mostra as proporções do transporte stream alocado para cada PID ou programa. A Figura 12-6 mostra um exemplo de display. A visão hierárquica e o Sumário de Programa mostram o número de elementos no transporte stream e a proporção de largura de banda alocada. 190 Um Guia para Fundamentos de MPEG e Análise de Protocolo 191 Seção 12 12.4 Padrões de Verificação de Conformidade 12.4.1 Orientações de Medição de DVB, TR 101 290 Fundada em setembro de 1993, o projeto Vídeo Digital Broadcasting (DVB) é um consórcio liderado por mais de 260 indústrias broadcasters, fabricantes, operadoras de rede, desenvolvedores de software e corporações reguladoras em mais de 35 países unidos para projetar padrões globais para o fornecimento de televisão digital e serviços de dados. Apesar dos Serviços DVB focados na Europa, seus padrões são disponibilizados em todos os continentes com mais de 120 milhões de receptores de DVB desenvolvidos. Um dos mais importantes padrões de DVB é o TR 101 290. Ele fornece orientações para medições em satélite DVB, cabo e sistemas de televisão digital terrestre. Ele define muitas técnicas de medição, tais como: os resultados obtidos são comparados quando a medição é transportada em conformidade com a definição apropriada. O objetivo geral dos testes é fornecer uma “verificação de saúde” dos mais importantes elementos do TS; isto é, a lista de teste não é exaustiva. Os testes são separados em três grupos de prioridade de acordo com sua importância para propósitos de monitorização: 192 Um Guia para Fundamentos de MPEG e Análise de Protocolo 1. O primeiro grupo lista um conjunto básico de parâmetros que são considerados necessários para garantir que o TS pode ser decodificado. Esses são principalmente as sincronizações do Transporte Stream, pacotes abandonados mais a integridade de PSI (tabelas de PAT e PMT). 2. O segundo grupo lista parâmetros adicionais que são recomendados para monitoramento contínuo. Isso inclui marcas de tempo PCR e PTS e tabelas CRCs. 3. O terceiro grupo lista parâmetros adicionais que poderiam ser de interesse para certas aplicações. Esses são essencialmente comprometidos com a integridade das outras tabelas SI, tais como SDT e ETI. A Figura 12-7 mostra uma visão dos testes de DVB da Série MTS400. Um LED colorido mostra o estado atual de cada teste, incluindo um âmbar para um teste que estava previamente com erro. A visão permite que o usuário obtenha um relatório detalhado de subtestes individuais, ajuste de parâmetros de teste e mostre as entradas de Log filtradas. Se necessário, ele também mostra uma lista de PIDs para cada teste. 193 Seção 12 12.5 Verificações do Transporte Stream ATSC, A/78 O comitê de Sistemas de Televisão Avançados (ATSC) foi formado em 1982, como uma organização internacional não lucrativa, desenvolvendo voluntariamente padrões para televisão digital. As organizações membros do ATSC representam as indústrias broadcast e associadas. Especificamente, ATSC desenvolve padrões de televisão entre diferentes comunicações focando a televisão digital, sistemas interativos e comunicações multimedia de banda larga. Os maiores usuários dos padrões ATSC são a TV a cabo da América do Norte e mercados terrestres. O A/78 é uma prática recomendada proporcionando uma metodologia comum para descrição de critério de conformidade de TS. Especificamente os elementos e parâmetros SI em um ATSC são verificados para uma transmissão correta. O RP utiliza o fundamento de que a severidade de um erro depende da magnitude do desvio. Ele especifica 5 grupos de testes de prioridade associados com faixas de desvio do padrão para certos parâmetros. As 5 prioridades, ou níveis de severidade, são: 1. Fluxo de Transporte Fora do Ar (TOA) A estação está tecnicamente fora do ar, como os erros de TS são tão severos. Receptores não serão capazes de sintonizar e decodificar qualquer coisa nessa transmissão. 2. Programa Fora do Ar (POA) Um serviço principal está com erro no ponto onde decoders não serão capazes de decodificar o programa. Isso é provavelmente causado por sinalização incorreta. 3. Componente Perdido (CM) Tipicamente, um dos streams elementar de áudio ou vídeo pode não ser encontrado. 4. Qualidade de Serviço (QOS) Parâmetros estão fora da especificação em certa margem em que se pode esperar que uma significante fração dos receptores produza saídas falhas. 194 Um Guia para Fundamentos de MPEG e Análise de Protocolo 5. Tecnicamente Não Conforme (TNC) Viola a carta do padrão, mas na prática terá pouco efeito na experiência de observação. Como pode ser esperado, há muitos parâmetros em comum entre o ATSC e DVB monitorados. A diferença é que o ATSC especifica o erro limiar para categorização escalada. Geralmente é descrito como: - O método oficial para duas vezes o método. - Duas vezes o método oficial para cinco vezes o método. - Além de cinco vezes o método. Um exemplo é o erro de repetição de PAT, como mostrado na Tabela 12-2. 12.6 Visão do Pacote Como uma alternativa para verificação de dados específicos em lugares não especificados, é possível analisar dados não específicos em lugares específicos, incluindo pacotes de Transporte Stream individuais, tabelas ou pacotes PES. Essa análise nas Séries MTS400 é conhecida como a visão de Pacote, porque o analisador automaticamente analisa e decodifica o dado e depois mostra seu significado. A Figura 12-8 mostra um exemplo de um pacote de transporte MPEG em uma visão “Hex” assim como visão do Pacote. Um campo selecionado no visor do Pacote automaticamente seleciona os bytes correspondentes na visão Hex para uma correlação mais fácil. 195 Seção 12 A Figura 12-8 mostra um exemplo de um PAT no visor de Pacote. A estrutura do campo na visão do Pacote é definida por arquivos script. Arquivos script são simplesmente arquivos de texto, tal como mostrado na Figura 12-9 que usa palavras chave pré-definidas. Isso permite rápidas atualizações se os padrões mudarem e também a interpretação de proprietário SI, quando o software não for alterado. 12.7 Análises de Sintaxe e CRC Para enviar material de programa, o transporte stream depende completamente da utilização exata de sintaxe por encoders. Sem configurações corretas de bandeira de bits fixos, padrões de sincronismo, códigos de início de pacote e contas de pacotes, um decoder pode interpretar erradamente bit stream. A função de verificação de sintaxe considera que todos os bits não são materiais de programa e mostra qualquer discrepância. Discrepâncias de espúrio poderiam existir devido a erros de transmissão; ponto de discrepância consistente para um encoder ou multiplexer defeituoso. A Figura 12-10 mostra um erro de sintaxe, assim como uma verificação perdida de redundância cíclica (CRC). Muitas tabelas MPEG possuem “Checksums” ou CRCs anexadas para detecção de erro. O analisador pode recalcular os Checksums e compará-los com o Checksum real. Novamente, espúrios de CRC de descasamentos poderiam ser devido a erros de stream-bit, mas ponto de erros de CRC consistente para uma falha de hardware. 196 Um Guia para Fundamentos de MPEG e Análise de Protocolo 12.8 Análises de Tempo Os testes descritos acima verificam a presença de elementos e sintaxe corretos no transporte stream. Porém, para amostrar corretamente áudio e vídeo em tempo real, o transporte stream também deve entregar tempo exato para os decoders. A transferência correta de dados de clock de programa é vital porque esses dados controlam todo o tempo do processo de decodificação. Análises PCR podem mostrar que, em cada programa, dados PCR são enviados em uma taxa suficiente e com exatidão suficiente para serem compatíveis. Os dados PCR de um multiplexer podem ser precisos, mas a remultiplexação pode colocar os pacotes de um dado programa em um lugar diferente no eixo do tempo, por isso é necessário que os dados PCR sejam editados pelo multiplexer. Conseqüentemente é importante que o PCR seja testado com precisão após os dados serem remultiplexados. A Figura 12-11 mostra uma tela PCR que indica as posições nas quais os PCRs foram recebidos com relação à média de clock. Os dados no painel do Cursor mostram os dados associados com qualquer PCR selecionado. Medição de imprecisão de PCR é baseada na recuperação de clock PLL em um receptor. O analisador calcula o bitrate constante a partir dos 10 primeiros valores de PCR, que serão utilizados como base para interpolar mais valores. Esses podem depois serem comparados com valores reais. Um filtro passa alta é utilizado para garantir que as imprecisões plotadas sejam consistentes com a oscilação de PLL. 197 Seção 12 Uma abordagem alternativa na Figura 12-12 mostra um gráfico de intervalo de PCR, imprecisão, jitter, deslocamento de freqüência e movimento, que é atualizado em tempo real. A Figura 12-13 mostra uma tela de marca de tempo para stream elementar selecionado. Mostram também a unidade de acesso, o tempo de apresentação, e, onde apropriado, o tempo de decodificação. Em MPEG, a reordenação e uso de tipos de tela diferentes causa delay e requer buffering no encoder e decoder. Um stream elementar deve ser codificado dentro dos limites da disponibilidade do buffering do decodor. O MPEG define um decoder modelo chamado T-STD (transport stream system target decoder); um encoder ou multiplexer não deve distorcer o fluxo de dados além da capacidade do buffering do T-STD. O transporte stream contém parâmetros chamados de verificação de buffer de Vídeo VBV (video buffer verify) especificando a quantidade de buffering necessário por um dado stream elementar. 198 Um Guia para Fundamentos de MPEG e Análise de Protocolo A análise do T-STD mostra graficamente a posição do buffer de uma forma que o “Overflows” ou “Underflows” podem ser facilmente vistos. A Figura 12-124 mostra uma tela de buffering. A saída de um compressor/multiplexer normal é de uso limitado porque ela não é determinística. Se o decoder apresentar defeito, não há garantia que o mesmo defeito será visto na repetição do teste porque o mesmo sinal de vídeo não resultará no mesmo transporte stream. Nesse caso, transporte stream absolutamente repetível é essencial para que o defeito possa ocorrer com o intuito de estudo ou retificação. A solução é gerar um transporte stream que está em conformidade em relação a tudo e depois adicionar uma quantidade controlada de imprecisão para que a imprecisão seja então conhecida a ele para ser a única fonte de incompatibilidade. O editor de recurso do MTS400 é projetado para criar tais sinais. 199 Seção 12 Jitter no transporte stream deve estar em certos limites, mas um decoder bem projetado deve ser capaz de recuperar programas além desses limites a fim de garantir uma operação confiável. Não há nenhuma forma de teste utilizando transporte stream porque, se eles são compatíveis, o decoder não está sendo testado. Se há uma falha, ela não será reproduzível e não será clara se a falha é devido ao jitter ou alguma outra incompatibilidade. A solução é gerar um transporte stream compatível com tudo e depois adicionar uma quantidade controlada de imprecisão para que a imprecisão seja então conhecida para ser a única fonte de incompatibilidade. O editor MTS400 é projetado para criar tais sinais. 200 Um Guia para Fundamentos de MPEG e Análise de Protocolo 12.9 Teste de Stream Elementar Devido à natureza flexível do bitstream MPEG, o número de possibilidades e combinações que ele realiza é quase incalculável. Como o encoder não é definido, fabricantes de encoders não são obrigadas a utilizar todas as possibilidades; Na verdade, por razões de economia. Isto dificulta muito o teste porque o fato do decoder funcionar com um encoder em particular não prova sua compatibilidade. Esse encoder particular pode simplesmente não estar utilizando os modos que fazem com que o decoder falhe. Uma complicação maior acontece porque encoders tipicamente não produzirão o mesmo bitstream se a entrada de vídeo ou áudio se repetir. Há pouca chance de que o mesmo alinhamento acontecer entre as imagens resultantes I-, P- e B-. Se um decoder falha em um dado teste, ele pode não falhar na próxima vez que o teste for aplicado, sendo assim fica difícil encontrar a falha. Uma falha em um encoder não determina se a falha está com no encoder ou com no decoder. A dificuldade de codificação depende muito da natureza do material de programa, e qualquer material de programa dado não necessariamente exercitará cara parâmetro sobre toda a faixa de codificação. Para realizar testes que possuem resultados significativos, duas ferramentas são necessárias: Uma fonte conhecida de sinais de teste deliberadamente explora toda a faixa de codificação. Essa faixa inclui a compatibilidade do bitstreams para o padrão de vídeo em questão, mas também streams contendo erros de bitstream deliberados. Esses sinais devem ser determinísticos, pois uma falha no decoder fornecerá sintomas repetidos. O produto Vclips da Tektronix é uma coleção de bitstreams projetados para desempenhar essa tarefa. Um analisador de stream elementar permite que toda a sintaxe de um encoder verifique a compatibilidade, tal como o MTS4EA da Tektronix. 201 Seção 12 12.10 Análise de Stream Elementar Um stream elementar é um payload que o transporte stream deve entregar de modo transparente. O transporte stream realizará isso se o stream elementar for ou não compatível. Em outras palavras, o teste de um transporte stream para compatibilidade simplesmente significa verificar se ele está fornecendo stream elementar sem mudanças. Isso não significa que o stream elementar foi propriamente montado no primeiro local. A estrutura do stream elementar ou sintaxe é de responsabilidade do encoder. Desta forma, um teste de stream elementar essencialmente testa o encoder. Deve ser observado que um encoder pode produzir sintaxe compatível, e ainda ter uma qualidade de áudio e vídeo ruim. Porém, se a sintaxe estiver incorreta, um decoder pode não ser capaz de interpretar o stream elementar. Um stream elementar pode estar com uma incompatibilidade intermitente se algum modo menos comum de operação não estiver propriamente implementado. 202 Um Guia para Fundamentos de MPEG e Análise de Protocolo Como o transporte stream freqüentemente contêm vários programas provenientes de encoders diferentes, problemas de stream elementar tendem a ser restritos a um programa, enquanto que problemas de transporte stream tendem a afetar todos os programas. Se tiver algum problema na saída de um decoder em particular, então o teste stream Vclips deve rodar nesse decoder. Se esses são satisfatórios, a falha pode estar no sinal de entrada. Se a sintaxe Transporte Stream foi testada, ou se outros programas estão funcionando sem falhas, então o stream elementar em particular com erro deve ser analisado. 203 Seção 12 O componente principal de análises do stream elementar é a verificação de compatibilidade entre os padrões relevantes. O MTS4EA produz uma saída Log com todas as violações e incompatibilidades. O usuário pode selecionar alguma entrada Log e sincronizar a tela de vídeo e outras telas para o ponto onde o bitstream faça uma rápida identificação de problemas. Uma característica útil é a superposição; há muitos tipos diferentes incluindo média de quantização e bits por Macrobloco. A Figura 12-15 mostra uma tela de bits por macrobloco que ilustra um problema de otimização de encoder; são utilizados muitos para codificar a informação de background que não muda. Em um nível mais baixo de teste, a Figura 12-16 mostra um quadro P decodificado superposto com informação do tipo macrobloco. Também mostra os detalhes de um macrobloco selecionado. As análises de stream elementar abordadas até agora têm sido terminadas simplesmente; isto é, uma medição do sinal de saída sem considerar a qualidade dos dados de vídeo não comprimidos originalmente. Se o vídeo original estiver disponível para referência, então o MTS4EA cria um sinal gráfico de razão de ruído (Figura 12-17) e a diferença será visível. 204 Um Guia para Fundamentos de MPEG e Análise de Protocolo 12.11 SINCRONIZAÇÃO Áudio Visual Um dos principais problemas de transmissões em toda sua história é a sincronização da informação de áudio e vídeo, comumente referida como sincronismo labial. Em um ambiente de produção, a informação de áudio e vídeo tipicamente trafega por rotas diferentes antes de serem codificadas e multiplexadas, deixando, portanto, muitas chances para introdução de delay. O MTS4EA inclui uma característica de Delay AV que mede o delay introduzido pelo encoder sob teste utilizando um teste de entrada padrão, como mostra a Figura 12-18. Um gráfico do Delay AV é esboçado, assim como os erros gerados por cada ponto que excede o limiar para o padrão escolhido. 205 Seção 12 12.12 Criando um Transporte Stream Sempre que o decoder considerar necessário, ele irá gerar um sinal de teste de qualidade conhecida. A Figura 12-19 mostra que um transporte stream MPEG deve incluir a Informação Específica de Programa (PSI), tal como PAT, PMT e NIT descrevendo um ou mais programa stream. Cada programa stream contém seu próprio PCR e seu stream elementar, com marcas de tempo periódicas. Um transporte stream DVB conterá informação de serviço adicional, tais como tabelas BAT, SDT e EIT. Um editor PSI/SI pode inserir qualquer combinação de compatibilidade desejada de PSI/SI em um bitstream de teste tradicional. Claramente, cada item requer uma porção de transporte stream disponível. O multiplexer MTS400 fornece um gráfico mostrando o bit rate total utilizado em cada ponto bitstream, como ilustrado na Figura 12-20. Todo bit rate do transporte stream deve permanecer constante, portanto, o remanescente do bit rate é utilizado pela inserção de pacotes de enchimento com PIDs que contêm todos os 1s, os quais o decoder rejeitará. 12.13 Geração de Imprecisão de PCR O decoder MPEG gera um clock contínuo utilizando o clock simples dos dados PCR para conduzir um phase-locked loop. O loop precisa de filtragem e amortecimento para que o jitter no tempo de chegada de dados PCR não cause instabilidade no clock. Para testar o desempenho do phase-locked loop, é necessário um sinal com imprecisão conhecida; de outra forma, o teste não tem sentido. O Gerador MTX100 gera inexatidões simuladas para esse propósito. Porque ser um gerador de referência, o Gerador MTX100 possui circuitos de clock altamente estáveis e o jitter de saída é muito pequeno. Para criar o efeito de jitter, o tempo dos dados PCR não muda. Ao invés disso, os valores de PCR são modificados para que o calculo PCR seja ligeiramente diferente do ideal. Os valores modificados resultam em erros de fase no decoder que são não são reconhecidos como jitter real. 206 Um Guia para Fundamentos de MPEG e Análise de Protocolo A vantagem é que o jitter de qualquer magnitude requerida pode ser facilmente adicionado a qualquer programa simplesmente modificando os dados PCR e deixando todos os outros dados intactos. Outros programas de transporte stream não necessitam ter adição de jitter. De fato, é melhor ter um programa stream estável para ser utilizado como uma referência. Para diferentes testes propostos, a base de tempo deve ser modulada de várias formas que determinam o espectro do loop de erro de fase a fim de testar a filtragem do loop. O jitter de onda quadrada se alterna entre valores que estão igualmente adiantados ou atrasados. Valores de jitter senoidal fazem com que o erro de fase seja uma onda senoidal amostrada. Jitter aleatório faz com que o erro de fase seja similar ao ruído. 207 Seção 12 12.14 Análise de Carrossel de Dados Broadcast A descrição de carrosséis na Secção 11 deve conduzir muitos leitores a concluir que eles são complexos. Parte da complexibilidade é devido à troca entre a largura de banda da transmissão e responsabilidade da experiência do usuário. Isso resulta na necessidade de restringir a largura de banda repetindo os grupos de dados em taxas diferentes, dependendo de sua probabilidade para mudar. Isto é, atualizações de placares de futebol irão mudar mais freqüentemente do que a previsão de meteorologia. Incorporar essa flexibilidade significa que carrosséis tipicamente consistem em um largo número de componentes que necessitam ser ligados e sinalizados corretamente para garantir a integridade de toda a aplicação de interatividade. O principal problema encontrado no envio de aplicações de transmissão de dados pode ser resumido como: - Tempo - Bit rates - Sinalização e Ligações de Componentes (referências) O analisador de carrossel da Tektronix é projetado para ajudar no diagnóstico de todos esses problemas, ambas as camadas nos carrosséis de dados e de objetos. Na verdade, ele permite análises de bit rate e gráficos de intervalos de repetição para cada modo indicado nas camadas de protocolo mostradas na Figura 12-21. A Figura 12-22 mostra um típico analisador de Carrossel com o painel de Serviços na esquerda e o painel Log de Mensagem na parte inferior. São mostrados os conteúdos de um Carrossel de Objetos, junto com o intervalo de repetição e gráficos de bit rate para o objeto de “Início” selecionado. Se forem selecionados múltiplos nós para ambos bit rate ou intervalo de repetição, então cada tendência adicional é somada ao mesmo gráfico para facilidade de comparação. Uma das principais questões de tempo é o tempo de Boot. Isto é a quantidade de tempo que ele leva do início da transmissão de um carrossel ao 208 Um Guia para Fundamentos de MPEG e Análise de Protocolo ponto onde o STB pode executá-lo. Isto é muito importante para anúncios interativos, onde os anúncios ao qual o carrossel é associado podem durar apenas 20 segundos. O analisador de Carrossel incorpora muitos métodos de tempo, um deles é o Cold Boot Time. Que medi o tempo gasto para sinalizar o carrossel e o download do gateway de serviço, a classe de boot e todos os utensílios. Isso é repetido em intervalos regulares no bitstream. A classe de boot deve ser recebida antes de qualquer um dos utensílios. Isto simula ao STB não conhecido qual carrossel de objeto a classe de Boot depende até ele ser recebido e processado. Diretórios devem ser recebidos antes de qualquer objeto, pois este método de tempo não tem sinalização de gravação. O fim de cada ciclo será o fim do módulo contendo o último utensílio – isto é uma importante distinção, como um utensílio pode não ser o único no módulo. Os problemas de sinalização mais comuns são objetos pendentes e objetos ausentes. A Figura 12-24 mostra que quando um objeto é encontrado durante a análise, mas sua chave não é a que se refere ao Service Gateway, ele é visto sob objetos desconhecido num nó. Porém, quando um objeto diretório é encontrado, as chaves de pequenos nós resultantes podem ser resolvidos e sua estrutura de árvore construída corretamente, apesar de o próprio objeto diretório poder ainda não ter sido resolvido. A Figura 12-25 mostra que objetos referenciados, mas não encontrados são indefinidos. O caminho pelo qual o objeto ausente é esperado também é marcado. 209 Seção 12 Ocasionalmente, a sinalização é suficientemente quebrada de uma forma que o carrossel presente no Transporte Stream não seja encontrado durante a análise. Nesse exemplo, o carrossel pode ser indefinido com Sinalização Manual do nó de PID relacionado. O Transporte Stream será então re-analisado com qualquer seção DSM-CC no PID selecionado sendo processado. Como esperado, a Tektronix também oferece um produto Gerador de Carrossel para criação de conteúdos de carrosséis na saída do Transporte Stream. Isto é particularmente útil em situação de teste onde os efeitos de parâmetros de variação, tais como intervalos de repetição individuais, são verificados rapidamente. O Gerador criará carrosséis de objetos de acordo com os padrões MPEG-2, DVB, DTT (MHEG-5) ou MHP. 210 Glossário Um Guia para Fundamentos de MPEG e Análise de Protocolo AAC – Advanced Audio Coding (Codificação de Áudio Avançada) AAU - Unidade de Acesso de Áudio. Veja a Unidade de Acesso. AC-3 – O esquema de compressão de áudio inventado pelos laboratórios Dolby e especificados pelo Padrão de Televisão Digital ATSC. No mundo de equipamento do consumidor ele é chamado de Dolby Digital. ACAP – Plataforma de Aplicação Comum Avançada. A/D – Conversor Analógico-Digital AES – Sociedade de Engenharia de Áudio ANSI – Instituto de Padrões Nacionais Americano. API – Interface de programa de Aplicação. ARIB – Associação de Indústrias de Negócios de Rádio. ASF – Formato de Vídeo Avançado (formalmente “Formato de Fluxo Avançado”), um formato de fluxo de propriedade da Microsoft. ATM – Veja modo de transferência assíncrona. ATSC – Comitê de Sistemas de Televisão Avançada. ATVEF – Fórum de Aprimoramento de Televisão Avançada. AU – Unidade de Acesso. BAT – Tabela de Associação Buquê. BCH – Código Bose, Ray-Chaudhure, Hocquenghem. Um código BCH é código digital de comprimento variável, de correção de erro, cíclico e de multinível utilizado para corrigir erros aleatórios múltiplos padrão. BER – Taxa de Erro de Bit. BFSK – Freqüência Binária Shift Keying. BIOP – Protocolo Inter-ORB de Transmissão. Bloco – Um bloco é um conjunto de valores de pixel ou coeficientes DCT, usualmente 8 por 8 (8x8), representando a informação de luminância ou crominância. 213 BPSK – Fase Binária “Shift Keying”. CA – Acesso Condicional. Informação indicando se um programa está embaralhado. Buquê – Um grupo de fluxos de transporte nos quais os programas são indefinidos pela combinação da rede de trabalho ID e PID (parte de DVB-SI). CAT – Tabela de Acesso Condicional. Pacotes tendo códigos PID (veja a secção 8 – Fluxos de Transporte) de 1 e esses contendo informação sobe o sistema de embaralha mento. Veja ECM e EMM. CD – Disco Compacto. CELP – Código Excited Linear Predictive. CIF – Formato de permuta Comum. Um formato de pixel de 352x240 por conferência de vídeo de 30 fps. C/N – Portadora para razão de ruído Codificação Huffman – Um tipo de fonte de codificação que utiliza códigos de diferentes comprimentos para representar símbolos que possuem probabilidades desiguais de ocorrência. Código de Canal – Uma técnica de modulação que converte data raw em um sinal que pode ser recordado ou transmitido por razão ou cabo. Coeficiente – Um número especificando a amplitude de uma freqüência em particular ou função de base em uma transformação. COFDM – Multiplex de Divisão de Freqüência Ortogonal Codificado, uma forma modificada de OFDM. Um esquema de modulação digital utilizando um número muito grande de portadoras, cada uma transportando uma taxa de dados muito baixa. Utilizado por DVB-T. CORBA – Common Object Request Broker Architecture. Compressão – Redução no número de bits utilizados para representar um item de dado. CRC – Verificação Cíclica de Redundância. DAB – Transmissão de áudio Digital. DAB-IP – Transmissão de Áudio Digital – Protocolo de Internet 214 Um Guia para Fundamentos de MPEG e Análise de Protocolo DAC – Conversor Digital Analógico DASE – Ambiente de Software de Aplicação de TV Digital. DAVIC – Digital Áudio Visual Council. DCT – Discrete Cosine Transform. DDB – DownloadDataBlock. DET – Tabela de Evento de Dados. DLL – DownloadInfoIndication. DMB-T/H – Transmissão Multimídia Digital - Terrestre/Portátil. Dolby Digital – Veja AC-3. DRM – Digital Rights Management. DSI – DownloadServerInitiate. DSMCC – Controle e Comando de Mídia de Gravação Digital. DST – Tabela de Serviços de Dados. DTS – Decodificando Time Stamp. Parte de PES de cabeçalho indicando quando uma unidade de acesso deve ser decodificada. DVB – Transmissão de Vídeo digital. Geralmente se referem ao consórcio de transmissores, fabricantes, corpos regulatórios e outros iniciados na Europa que criaram padrões para o fornecimento de televisão digital e serviços de dados. Inclui as versões de DVB-C (cabo), DVB-S (satélite) e DVB-T (terrestre). DVB-H – Transmissão de Vídeo Digital – Portátil. DVB-SI – Informação de Serviço DVB. Informação transportada em um multiplex de DVB descrevendo os conteúdos de múltiplos diferentes. Incluindo NIT, SDT, EIT, TDT, BAT, RST e ST (veja a Secção 10 – Introdução a DVB & ATSC). DVC – Digital Vídeo Cassete. DVD – Digital Versatlle Disk ou Disco de Vídeo Digital. 215 ECM – Entitlement Control Message. Informação de acesso condicional especificando palavras de controle ou outro fluxo específico embaralhando parâmetros. ECS – Especificação de Conteúdo Aprimorada. EIT – Tabela de Informação de Evento. Parte de DVB-SI. EMM - Entitlement Management Message. Informação de acesso condicional especificando o nível de autorização ou serviços de decodificadores específicos. Um decodificador individual ou um grupo de decodificadores pode ser endereçado. Enchimento – dados sem significância adicionados para manter a taxa de bit constante. ENG - Electronic News Gathering. Termo utilizado para descrever o uso da representação digital de um sinal para reduzir a redundância. EOB – Fim do Bloco. EPG – Guia de Programa Eletrônico. Um guia de programa fornecido pela transferência de dados ao invés de um papel impresso. Estrutura “Archor” – Uma estrutura de vídeo que é utilizada para prognóstico. Estruturas I e estruturas P são geralmente utilizadas como estruturas “Archor”, mas estruturas B nunca serão estruturas Archor. ETSI – Instituto de Padrões de Telecomunicação Europeu. FEC – Correção de Erro Forward. Sistema no qual a redundância é adicionada à mensagem para que os erros sejam corrigidos dinamicamente no receptor. FFT – Fast Fourier Transform. Figuras I – Figuras Intra-codificadas. Fluxo de Programa – Um fluxo de bit contendo vídeo comprimido, áudio e informação de tempo. Fluxo de Transporte (TS) – Um multiplexe de vários fluxos de programa que são transportados em pacotes. A denultiplexação é achieved por diferentes pacotes Ids (PIDs). Veja PSI, PAT, PMT e PCR. 216 Um Guia para Fundamentos de MPEG e Análise de Protocolo Fluxo Elementar – A saída natural de um compressor transportando um único sinal de vídeo ou áudio. GEM – MHP Globalmente Executável. GOP – Grupo de Figuras. Na ordem de transmissão, um GOP inicia com uma figura I e termina com a última figura antes da próxima figura I. GOP Fechado – Um grupo de figuras nas quais as últimas figuras não necessita de dados do próximo GOP para codificação bidirecional. GOP Fechado é utilizado para realizar um ponto “Splice” em um fluxo de bit. HAVI – Interoperabilidade de Áudio e Vídeo Caseiro. HDTV – Televisão de Alta Definição. HTML – Linguagem de Hypertext Markup. IEC – Comissão Eletrotécnica Internacional. Inter-coding – Compressão que utiliza a redundância entre figuras sucessivas; também conhecido como codificação temporal. Interlançamento – Uma técnica utilizada com correção de erro que quebra erro de burst em muitos erros pequenos. Intra-coding – Compressão que funciona inteiramente em uma figura; também conhecido como codificação especial. IOR – Referência de Objeto Interoperável. IP – Protocolo de Internet. IRD – Decodificador Receptor Integrado. Um receptor de RF combinado e decodificador MPEG que é utilizado para adaptar um conjunto de TV para transmissões digitais. ISDB – Transmissão de Dados de Serviços Integrados, o sistema de transmissão digital desenvolvido no Japão. ISDB-Tss – Segmento Único de ISDB-T. ISO – Organização Internacional de Padronização. ITU – União de Telecomunicação Internacional. 217 JPEG – Joint Photographic Experts Group. JTC1 – Joint Technical Comitê do IEC. JVT – Joint Vídeo Team. LDPC – Código de Verificação de Paridade de Bixa Densidade Limite Shannom – Estabelecido por Claude Shannom em 1948, o teorema descreve a eficiência máxima possível de métodos de correção de erros vesus níveis de interface de ruído e corrupção de dados. Modo de Transferência Assíncrona (ATM) – Um protocolo de sinal digital para transporte eficiente de ambas as informações de bursty e taxa constante em redes de trabalho digital de banda larga. O fluxo digital ATM consiste em pacotes de comprimento fixo chamados de “cells”, cada um contendo 53 8 bits bytes – um cabeçalho de 5 bytes e uma carga de informação de 48 bytes. MAC – Controle de Acesso de Mídia. Macrobloco – A área na tela representada por vários blocos de luminância e de diferença de cor DCT que são todos direcionados por um vetor de movimento. Mascaramento – Um fenômeno psíquico acústico que certos sons não podem ser ouvidos na presença de erros. MDCT – Modified Discreet Cosine Transform. MGT – Tabela Guia Máster Motion Vector – Um par de números que representam o deslocamento horizontal e vertical de uma região de uma figura de referência para prognóstico. MP@HL – Perfil principal em alto nível. MP@LL – Perfil Principal em nível baixo. MP@ML – Perfil principal no nível principal. MPE – Encapsulamento em protocolo múltiplo. 218 Um Guia para Fundamentos de MPEG e Análise de Protocolo MPEG – Moving Picture Experts Group ISO/IEC JTC1/SC29/WG11, e os padrões desenvolvidos por esse grupo. MPEG-LA – Acordos de Licença de MPEG. MPTS – Fluxo de Transporte de Muitos Programas. MXF – Formato de mudança de Material. NIT – Tabela de Informação de Rede de Trabalho. Informação em um Fluxo de Transporte que descreve muitos fluxos de transporte. Nível – O tamanho da figura de entrada em uso com um dado perfil (veja a Secção 2 – Compressão e Vídeo). NPT – Tempo de Play Normal. NRT – Tabela de Pesquisas de Rede de Trabalho. OCAP – Plataforma de Aplicações cabo aberto. OFDM – Multiplexação de Divisão de Freqüência Ortogonal. ORB – Brokerage Requisição de Objeto. Pacotes – Um termo utilizado em dois contextos: em fluxos de programas, um pacote é uma unidade que contém uma ou mais unidades de apresentação; em fluxo de transporte, um pacote é um quantum de dados de um tamanho pequeno e fixo. Pacotes Nulos – Pacotes de “enchimento” que não transportam dados mas são necessários para manter uma taxa de bit constante com uma carga variável. Pacotes nulos sempre possuem um PID de 8191 (todos 1). (Veja a Secção 8 – Fluxo de Transporte.) PAL – Linha Alternada de Fase. PAT – Tabela de Associação de Programa. Dados operando em pacotes tendo o código do PID (veja a Secção 8 – Fluxo de Transporte) de zero que o decodificador MPEG utiliza para determinar que programas existem em um Fluxo de Transporte. PCM - Modulação de Código de Pulso. Um termo técnico para uma forma de onda de fonte analógica, por exemplo, sinais de áudio e vídeo, expressos 219 amostras numéricas periódicas. PCM é um sinal digital não comprimido. PCR – Referência de Clock de Programa. A amostra do clock count do decodificador que é enviada no programa de cabeçalho para sincronizar o clock do decodificador. Perfil – Especifica a sintaxe de código utilizada. PES – Fluxo Elementar Empacotado. PID – Identificador de Programa.Um código de 13 bits no cabeçalho de pacote de transporte. PID 0 indica que o pacote contém um PAT PID. (Veja a Secção 8 – Fluxo de Transporte.) PID 1 indica um pacote que contém CAT. O PID 8191 (todos 1) indica pacotes nulos (enchimento). Todos os pacotes pertencentes ao mesmo fluxo elementar possuem o mesmo PID. Pixel – Elemento de Figura (algumas vezes pel). A menor unidade de uma imagem, representada por uma amostra, ou um conjunto de amostras tais como GBR ou YcrCb. PLL – Phase Locked Loop. PMT – Tabelas de Map de Programas. As tabelas em PAT que apontam para o conteúdo de dados, vídeo e áudio de um fluxo de transporte. Pré-processamento – O processamento do sinal de vídeo que ocorre antes da codificação MPEG. Redução de ruído, “Down Sampling”, identificação “CutEdit” e identificação “Pulldown” 3:2 são exemplos de processamentos. PS – Estéreo Paramétrico. PS – Fluxo de Programa. PSI – Informação Específica de Programa. Informação que keeps track dos programas diferentes em um fluxo de transporte MPEG e no fluxo elementar em cada programa. PSI inclui PAT, PMT, NIT, CAT, ECM e EMM. PSI/SI – Um termo geral para MPEG PSI e DVB-SI combinado. PSIP – Protocolo de Informação de Programa e Sistema. PTS – Presentation Time Stamp. O tempo no qual uma unidade de apresentação é para ser disponibilizada ao observador. 220 Um Guia para Fundamentos de MPEG e Análise de Protocolo PU – Unidade de Apresentação. Uma figura comprimida ou bloco de áudio. QAM – Modulação de Amplitude de Quadratura, um sistema de modulação digital. QCIF – Formato de interchange comum de resolução de um quarto (176x144 pixels). Veja CIF. QMF – Filtro Mirror de Quadratura. QPSK – Quaternary Phase Shift Keying (também conhecido como Quadrature Phase Shift Keying), um sistema de modulação digital particularmente adequado para links de satélite. QSIF – Formato de entrada de fonte de resolução de um quarto. Veja CIF. Quantização – Um paço de processamento que aproxima valores dos sinais alocando um de um número de valores pré definidos. RLC – Run Lenght Coding. Um esquema de código que conta o número de bits familiares ao invés de enviá-los individualmente. RRT – Rating Region Table. RST – Running Status Table. R-S – Reed-Solomon é uma função polinomial utilizada pelo DVB para protejer até 8 bytes em cada pacote de transporte. RTP – Protocolo em Tempo Real. SRB – Replication de Banda Espectral. Scalability - Uma característica de MPEG-2 fornecida para níveis de qualidade múltipla através do fornecimento de camadas de dados de vídeo. Camadas múltiplas de dados permitem que um decodificador complexo produza uma figura melhor utilizando mais camadas de dados, enquanto um decodificador mais simples ainda pode produzir uma figura utilizando somente a primeira camada de dados. SDI – Interface Digital Serial. Padrão de interface de cabo coaxial serial intend para sinais de vídeo digital de produção. SDK – Kit de Desenvolvimento de Software. 221 SDT – Tabela de Descrição de Serviço. Uma tabela listando os fornecedores de cada serviço em fluxo de transporte. SDTV – Televisão de Definição Padronizada. SI – Veja DVB-SI. SIF – Formato de Entrada de Fonte. Sinal de entrada de meia resolução utilizado por MPEG-1. Síndrome – Resultado inicial de um cálculo de verificação de erro. Geralmente, se a síndrome é zero, é assumido que não há erro. Slice – Uma sequência de macroblocos consecutivos. SMPTE – Sociedade de Motion Picture e Engenheiros de Televisão. SNR – Razão de Sinal-Ruído. SP@ML – Perfil Simples no Nível Principal. SPTS – Fluxo de Transporte de Programa Único. ST – Tabela de Enchimento. STB – Set Top Bos. STC – Clock de Tempo de Sistema. O clock comum utilizado para codificar vídeo e áudio no mesmo programa. STT – Tabela de Tempo de Sistema. Taxa de Bit – A taxa na qual o fluxo de bit comprimido é fornecida do canal para a entrada de um decodificador. TCP/IP – Protocolo de Controle de Transmissão/Protocolo de Internet. TDAC – Cancelamento Aliasing no Domínio do Tempo. Uma técnica de codificação utilizada em compressão de áudio AC-3. T-DBM – Transmissão de Multimídia Digital. Terrestre. TDT – Tabela de Dados e Tempo. Utilizada em DVB-SI. TOT. Tabela de Deslocamento de Tempo. Truncation – Shortening o comprimento da palavra de uma amostra ou coeficiente removendo bits de ordem baixa. 222 Um Guia para Fundamentos de MPEG e Análise de Protocolo T-STD – Decodificador Alvo de Sistema de Fluxo de Transporte. Um decodificador tendo uma certa quantidade de memória buffer para ser apresentada por um codificador. TVCT – Tabela de Canal Virtual Terrestre. UDP – Protocolo de Datagrama de Usuário. Unidade de Acesso – Os dados codificados para uma figura ou bloco de som e qualquer Stuffing (valores nulos) que o seguem. VAU – Unidade de Acesso de Vídeo. Uma figura comprimida em fluxo de programa. VBV – Vídeo Buffer Verify. VCO – Oscilador Controlado por Tensão. VLC – Codificação de Comprimento Variável. Uma técnica comprimida que aloca códigos curtos para valores de frequência e códigos longos para valores infrequent. VOD – Vídeo em Demanda. Um sistema no qual programas de televisão ou filmes são transmitidos para um único consumidor somente quando requisitado. VSB – Modulação de Banda Lateral Vestigial. Um sistema de modulação digital utilizado por ATSC. Wavelet – Uma transformação utilizando uma função de base que não é de comprimentoo fixo mas que aumenta conforme a frequência cai. Weighting – Um método de mudança da distribuição do ruído que é devido a truncation por valores pré multiplying. XHTML – HTMS estendido. Y/C – Luminância e Crominância. 223 Este livro foi impresso em papel offset 90g/m2 tipologia ITC Officina Sans Std, corpo 11, pela Gráfica FIRJAN. Editora SENAI Rua São Francisco Xavier 417, Maracanã CEP 20550-010 - Rio de Janeiro, RJ Tel: (0XX21) 3978-5314 [email protected]