Universidade Federal de São Carlos Programa de Pós-Graduação Estruturas de Aplicações Distribuídas e Multimídia MPEG Jessica Zorzatto MPEG Padrão para compressão de Vídeo e Áudio Possui três partes: MPEG-Vídeo; MPEG-Áudio; MPEG-Systems MPEG- Vídeo Dois tipos de compressão: A primeira é baseada nas cores, o algoritmo procura por agrupamentos de pixels com a mesma cor e os substitui por um único código Compacta os vídeos numa razão de mais ou menos 1/3. A segunda etapa da compressão dividide em pequenos blocos de 16 x 16 pixels cada um, chamados de macro blocks. Ao invés de simplesmente atualizar toda a imagem a cada quadro, são mudados apenas os blocos que foram alterados de forma perceptível entre um quadro e outro. MPEG – Vídeo : exemplo •Usando vídeo sem compressão, cada quadro seria uma nova imagem. •Com o MPEG, são capturadas apenas as diferenças entre os quadros. • Mesmo em cenas com movimentação rápida é raro serem alterados mais do que 20 ou 30% dos macro blocks a cada quadro da imagem. MPEG - Áudio Aproveita das características do sistema auditivo humano; Os nossos ouvidos não são capazes de captar todos estes sons simultaneamente porque alguns dos sons estão escondidos pelos sons mais fortes. Isto também porque os nossos ouvidos são mais sensíveis aos sons mais graves do que aos sons mais agudos. Remoção de partes não audíveis MPEG – Áudio Os sons mascarados não são audíveis, portanto, é possível descartá-los sem afetar a qualidade do áudio. Padrão genérico de compressão de áudio Remove partes não audíveis, as quais não geram distorção no áudio Possui os algoritmos MPEG layer 1, 2 e 3. A complexidade aumenta conforme aumenta a “layer MPEG - Áudio Para se efetuar compressão de áudio basicamente existem duas alternativas: reduzir a freqüência de amostragem reduzir a resolução da amostra para uma valor inferior Para obtermos qualidade não podemos fazer grandes alterações na freqüência de amostragem, pois o sistema auditivo humano só houve sons entre 20Hz e os 20KHz MPEG - Áudio efeito de máscara e é a chave para o método de codificação utilizado no MPEG Áudio. nenhum som mais fraco perto do som mais forte (à freqüência de 1000Hz) será ouvido pois serão todos mascarados o efeito de máscara permite aumentar o ruído de fundo à volta de um som forte porque o ruído será mascarado de qualquer forma. Aumentar o ruído de fundo, é o mesmo que reduzir o número de bits utilizados por amostra. Usar menos bits significa comprimir. MPEG MPEG1, que corresponde à codificação de imagem em movimento e respectivos canais de áudio para armazenamento em suportes digitais. MPEG2, que corresponde a codificação genérica para imagens em movimento e informação áudio associada. MPEG3, originalmente planeado para aplicações HDTV, mas mais tarde incluído no MPEG2. MPEG4, que corresponde à codificação de Objetos audiovisuais. MPEG1 A idéia principal: uma aplicação usando MPEG1 pode usar a layer que oferece o melhor compromisso entre a necessidade de computação e a performance de compressão. O áudio pode ser codificado em qualquer uma das layer’s. MPEG1 MPEG1 providencia um esquema de compressão para fontes de áudio stereo e mono com qualidade semelhante a CD Áudio. A parte do algoritmo correspondente ao áudio está dividida em três níveis (layers). Layer I: Layer II: mais simples, menor compressão, usada nos sistemas de áudio de consumo, baixo custo de implementação. maior compressão encontra-se em numerosas aplicações de consumo e profissionais. Layer III: encontrada sobre RDIS ( Rede Digital Integrada de Serviços), oferece a maior compressão, maior custo de uma maior complexidade de codificação e decodificação. MPEG1 Codificar VHS-quality vídeo: 360 x 280 pixels 30 pinturas por segundo Taxa de 1.5 Mbps MPEG1 – Pré processamento Vídeos interlaçados devem ser convertidos para não interlaçados Cada pintura consiste em 3 componentes: Um de luminância Y Dois de cromonância, Cr e Cb Converter vídeo para o formato YCrCb (formato digital da TV – CCIR601) Y= 0.301R + 0.586G + 0.113B Cr = 0.512R - 0.430G – 0.082B + 128 Cb = -0.172R – 0.340G + 0.512B + 128 MPEG1- Tipos de pinturas: I - pictures: Codicados sem referência de outras pinturas. Ponto de referência para outras pinturas Compressão moderada P - pictures: codicados em modo preditivo Motion-compensated prediction : usa quadros anteriores do tipo I ou P. MPEG1- Tipos de pinturas: B - pictures: quadros codicados em modo bidirecionalmente preditivo, em relação a outros quadros I ou P. Mais alto grau de compressão D – pictures: quadros codicados unicamente com o DC de cada bloco. Sem referência de outras pinturas São (raramente) utilizados essencialmente para procura rápida. MPEG1- Tipos de pinturas: Reference pictures: I-pictures e P-pictures Predictive-codec pictures: P-pictures e B-pictures MPEG1- Tipos de pinturas: Se B-pictures são usada é necessário uma reordem na seqüência das pinturas Encoder orderna as pinturas Decoder decodifica as pinturas na ordem que elas chegam e reorganiza na ordem correta a qual a seqüência que deverá ser exibida. MPEG1 - Delay B-pictures causam delay tanto no encoder quanto no decoder Encoder: B-picture só poderá ser codificada após a pintura de referência ter sido; Decoder: Pintura de referência é decodificada mas não é exibida Não devem ser utilizadas em aplicações de tempo real MPEG1 – Exemplo: 1(I) 2(B) 4(P) 3(B) 5(B) 6(B) 7(P) 8(B) 10(I) 9(B) MPEG1 – Exemplo: P r e d iç ã o P ro g re s s iv a I B B P B B P B B I P r e d iç ã o B id ir e c io n a l O rd e m d e A p r e s e n ta ç ã o : O rd e m d e T r a n s m is s ã o : 1 1 2 4 3 2 4 3 5 7 6 5 7 6 8 10 9 8 10 9 MPEG1 – Unidades de codificação Pinturas: Macroblocos de 16 x 16 pixels Codificados da esquerda pra direita , de cima pra baixo Cada macrobloco: 6 blocos de 8 x 8 pixels 4 blocos de luminância, um bloco Cb de crominância e um bloco Cr de crominância MPEG1 – Unidades de codificação Macrobloco: Motion compensation Bloco: Operação DCT MPEG1 - Macroblocos Modo de codificação: I-macroblocos: FP-macroblocos: Referência de macroblocos de pinturas anteriores BP-macroblocos Sem referência de macroblocos de outra pinturas Referência de macroblocos de pinturas futuras B-macroblocos Referência de macroblocos de pinturas anteriores e futuras MPEG1 - Macroblocos Para BP-, FP-, e B- macroblocos, é encontrado Motion compensated-prediction baseado na referência das pinturas. A predição é subtraída do dado atual para formar o macrobloco de predição de erro. MPEG1 - Macroblocos I – macroblocos e macroblocos de predição de erros são divididos em blocos de 8 x 8 pixels, e a transformação discreta de cosseno (DCT) é feita sobre cada bloco. Os coeficientes do DCT são quantatizados e bloco bidimensional é scaneado em ordem zigzag para converter em uma string unidimensional MPEG1 - Macroblocos Informações dos macroblocos e coeficientes de quantização são codificados Nesse estágio a representação da pintura codificada é gerada. MPEG1– Video Bitsstream Specification Seqüêcia: constituída por vários grupos de quadros. Contém um cabeçalho de informação que inicializa o decodificador. Grupo de Pinturas: formado por vários quadros que, por sua vez, são constituídos por slices (fatias). Pintura: representa uma imagem; Slice(fatia): Macrobloco: formadas por macro-blocos, sendo a sua função principal a detecção e recuperação de erros (re-sincronização). Menor unidade que pode ser decodificada independentemente. contendo informação relativa a compensação de movimento e quanticação. Bloco: menor unidade que pode ser manipulada e sobre a qual é calculada a DCT. MPEG – Video Bitsstream Specification MPEG1 – Paramêtros Parâmetros podem ser configurados livremente Existem algumas limitações: Tamanho Horizontal: Máximo de 720 pixels Tamanho Vertical: Máximo de 576 pixels Número máximo de macro-blocos por quadro: 396 Número máximo de macro-blocos por segundo: 396 x 25 ou 330 x 30 Taxa máxima de transmissão: 1.85 Mbps Taxa de Pintura: Máximo de 30 Tamanho maximo do buffer do decoder: 330 Kbits MPEG1 - Systems Sincronização entre codificador/decodificador Multiplexação de múltiplos bitstreams de áudio e vídeo codificados Especifica a sintática e a semântica da stream MPEG MPEG1- Systems Organizada em duas camadas: pack layer: contém informações sobre todas as streams packet layer: contém informações sobre uma stream particular MPEG1 - Systems Fluxo de Dados ISO11172 Pack Cab. de Pack Pack Pack Cab. de Sistema Pacote Pacote Cabeçalho de Pacote Byte Byte Byte Byte Byte ISO_FIM Pacote Byte MPEG2 Baseado nos princípios do MPEG1 e estende esses princípios por forma a permitir maior qualidade e ainda maior eficiência. O objetivo principal do MPEG2: providenciar um standard para satisfazer os requisitos das redes digitais de radiodifusão planeadas. Além dos dois canais que o MPEG1 suportava, foi adicionado: suporte para múltiplos canais. suporta até cinco canais áudio (esquerdo, direito, centro e dois canais de surround ou "circundantes") mais um canal de graves, ou em extensão sete canais mais um canal de graves. Significa isto que poderemos em casa ter a mesma experiência que em algumas salas de cinema. Característica "multilíngue", o que significa que um filme pode ser transmitido em diferentes linguagens, podendo esta ser escolhida posteriormente. MPEG2 - Aplicações Transmissão digital dos formatos atuais de televisão (PAL, SECAM, NTSC). Televisão de alta definição (HDTV). Cinema eletrônico. Jogos e aplicações multimídia de elevada qualidade. ... MPEG1 e MPEG2 MPEG2 É dividido em 4 partes: Systems Vídeo Áudio Conformance MPEG2 - Systems Mesma função do MPEG1-Systems Multiplexação entre áudio, vídeo e dados Sincronização entre decodificação e play-back 2 formatos de datastream: Program Stream: Aplicações de recuperação mutimídia Sistemas de processamento de software Transport Stream: Carrega múltiplos programas simultaneamente Comum em aplicações com comum perda de dados Transmissão de televisão digital e videofone MPEG2 - Vídeo Suporta vídeo interlaçado ou não-interlaçado Permite pintura de 16.383 x 16.383 pixels Provê característica do vídeo (PAL e NTSC) Facilita operações de processamento 4 modos de escalonamento de vídeo Vídeos importantes possuem escalonamento mais alto para proteção de erros Permite ao decoder selecionar a parte do vídeo a decodificar Basicamente, esta propriedade permite que seqüências preparadas para alta definição possam ser reproduzidas, sem processamento adicional, em dispositivos de capacidade mais reduzida MPEG2 - Vídeo Existem várias formas de escalonamento: Espacial: Codifica uma camada base com uma resolução mais baixa Data partitioning: Método de domínio de freqüência. SNR: Método de domínio espacial Camadas codificadas na mesma taxa mas com diferente qualidade de pintura Temporal: Método de domínio temporal Quebra o bloco de 64 coeficientes em 2 bitstreams Canal de prioridade mais alta contém os coeficientes de freqüências mais baixas Canal de prioridade mais baixa contém os coeficientes de freqüências mais altas Camada de prioridade mais alta codifica o vídeo numa taxa de frame mais baixa Frames intemediários podem ser codificados numa segunda camada usando a reconstrução da primeira Híbrido: Constituído por combinações dos anteriores. MPEG2 - Vídeo Profiles: Definem subconjuntos da sintaxe global que implicam níveis da complexidade diferentes nos algoritmos de codificação e decodificação – os modos escaláveis correspondem a diferentes profiles Levels: Definem restrições de alguns parâmetros dos bitstreams – um determinado Level corresponde a determinados valores máximos de resolução espacial, temporal e bit rate MPEG2 - Vídeo MPEG2 - Vídeo MPEG2 - Áudio Extensão do MPEG1 – áudio: Áudio multicanal Áudio multilíngua 5 canais de áudio de alta qualidade 7 canais Taxa de compressão mais baixa Bit rates abaixo de 8 Kbps MPEG4 Primeira versão estava disponível no final de 1998. Novo padrão para broadcasting, movies e aplicações multimídia baseadas em MPEG 2. MPEG7 O grupo MPEG-7 tem como nome formal "Interface de Descrição do Conteúdo Multimídia" [5] Especificará um conjunto padrão de descritores e esquemas de descrição usados para especificar o conteúdo da informação, com a finalidade de tornar a busca da informação multimídia mais rápida e eficiente. MPEG7 Projetado para fazer busca de vídeo e áudio bem como filtrar tais buscas. Padrão focado principalmente em sobrecargas de informação, que os usuários “rodam” na Internet e é projetado par fazer busca de conteúdos de áudio e video tão facilmente como busca texto. MPEG - MP3 Extensão utilizada para os ficheiros MPEG Áudio Layer III. Taxa de compressão até 12:1 Reproduz sons com qualidade de CD. Usa compressão psychoacústica a qual remove do sinal sonoro sons que os nossos ouvidos não conseguem ouvir. Filtros híbridos, quantização não-uniforme, codificação Huffman e outras técnicas avançadas.