O MPEG-1 é um padrão para compactação com perdas de vídeo e áudio, projetado para compactar vídeo digital bruto de qualidade VHS e áudio de CD para cerca de 1,5 Mbit/s (taxas de compressão de 26:1 e 6:1, respectivamente)[2] sem perda excessiva de qualidade, fazendo CD de vídeo, TV digital a cabo/satélite e prática de transmissão de áudio digital (DAB).[3][4]

Moving Picture Experts Group Phase 1 (MPEG-1)
Extensão do arquivo .dat, .mpg, .mpeg, .mp1, .mp2, .mp3, .m1v, .m1a, .m2a, .mpa, .mpv
MIME audio/mpeg, video/mpeg
Desenvolvido por MPEG (parte de ISO/IEC JTC 1)
Lançamento 6 dezembro 1991; há 32 anos[1]
Última versão ISO/IEC TR 11172-5:1998 (outubro de 1998; há 25 anos)
Variante de MPEG-2
Variado para JPEG, H.261
Padronização ISO/IEC 11172

Hoje, o MPEG-1 tornou-se o formato de áudio/vídeo com perdas mais amplamente compatível do mundo e é usado em um grande número de produtos e tecnologias. Talvez a parte mais conhecida do padrão MPEG-1 seja a primeira versão do formato de áudio MP3 que ele introduziu.

O padrão MPEG-1 é publicado como ISO/IEC 11172 – Tecnologia da informação – Codificação de imagens em movimento e áudio associado para mídia de armazenamento digital em até cerca de 1,5 Mbit/s.

O padrão consiste nas seguintes cinco partes:[5][6][7][8][9]

  1. Sistemas (armazenamento e sincronização de vídeo, áudio e outros dados juntos)
  2. Vídeo (conteúdo de vídeo compactado)
  3. Áudio (conteúdo de áudio compactado)
  4. Teste de conformidade (testar a exatidão das implementações do padrão)
  5. Software de referência (exemplo de software mostrando como codificar e decodificar de acordo com o padrão)

História editar

O predecessor do MPEG-1 para codificação de vídeo foi o padrão H.261 produzido pelo CCITT (agora conhecido como ITU-T). A arquitetura básica estabelecida no H.261 foi a estrutura de codificação de vídeo híbrido DCT com compensação de movimento.[10][11] Ele usa macroblocos de tamanho 16 × 16 com estimativa de movimento baseada em bloco no codificador e compensação de movimento usando vetores de movimento selecionados pelo codificador no decodificador, com codificação de diferença residual usando uma transformada discreta de cosseno (DCT) de tamanho 8 × 8, quantização escalar e códigos de comprimento variável (como códigos de Huffman) para codificação de entropia.[12] H.261 foi o primeiro padrão de codificação de vídeo prático, e todos os seus elementos de design descritos também foram usados ​​em MPEG-1.[13]

Modelado na abordagem colaborativa bem-sucedida e nas tecnologias de compactação desenvolvidas pelo Joint Photographic Experts Group e pelo CCITT's Experts Group on Telephony (criadores do padrão de compactação de imagem JPEG e do padrão H.261 para videoconferência, respectivamente), o Moving Picture Experts Group (MPEG) foi criado em janeiro de 1988, por iniciativa de Hiroshi Yasuda (Nippon Telegraph and Telephone) e Leonardo Chiariglione (CSELT).[14] MPEG foi formado para atender a necessidade padrão de formatos de vídeo e áudio, e para construir em H.261 para obter melhor qualidade através do uso de métodos de codificação um pouco mais complexos (por exemplo, suportando maior precisão para vetores de movimento).[3][15][16]

O desenvolvimento do padrão MPEG-1 começou em maio de 1988. Catorze propostas de codecs de vídeo e quatorze de áudio foram submetidas por empresas e instituições individuais para avaliação. Os codecs foram extensivamente testados quanto à complexidade computacional e qualidade subjetiva (percebida pelo ser humano), em taxas de dados de 1,5 Mbit/s. Essa taxa de bits específica foi escolhida para transmissão em linhas T-1/E-1 e como a taxa de dados aproximada de CDs de áudio.[17] Os codecs que se destacaram neste teste foram utilizados como base para o padrão e refinados ainda mais, com recursos adicionais e outras melhorias sendo incorporadas ao processo.[18]

Após 20 reuniões do grupo completo em várias cidades ao redor do mundo e 4 anos e meio de desenvolvimento e testes, o padrão final (para as partes 1–3) foi aprovado no início de novembro de 1992 e publicado alguns meses depois.[19] A data de conclusão relatada do padrão MPEG-1 varia muito: um projeto padrão amplamente completo foi produzido em setembro de 1990 e, a partir desse ponto, apenas pequenas alterações foram introduzidas.[3] O projeto padrão estava disponível publicamente para compra.[20] O padrão foi concluído com a reunião de 6 de novembro de 1992.[21] O Berkeley Plateau Multimedia Research Group desenvolveu um decodificador MPEG-1 em novembro de 1992.[22] Em julho de 1990, antes mesmo de o primeiro rascunho do padrão MPEG-1 ter sido escrito, o trabalho começou em um segundo padrão, MPEG-2,[23] destinado a estender a tecnologia MPEG-1 para fornecer vídeo com qualidade de transmissão total (conforme CCIR 601) em altas taxas de bits (3–15 Mbit/s) e suporte para vídeo entrelaçado.[24] Devido em parte à semelhança entre os dois codecs, o padrão MPEG-2 inclui compatibilidade total com versões anteriores do vídeo MPEG-1, portanto, qualquer decodificador MPEG-2 pode reproduzir vídeos MPEG-1.[25]

Notavelmente, o padrão MPEG-1 define estritamente o fluxo de bits e a função do decodificador, mas não define como a codificação MPEG-1 deve ser executada, embora uma implementação de referência seja fornecida em ISO/IEC-11172-5.[2] Isso significa que a eficiência da codificação MPEG-1 pode variar drasticamente dependendo do codificador usado e, geralmente, significa que os codificadores mais novos têm um desempenho significativamente melhor do que seus predecessores.[26] As três primeiras partes (Sistemas, Vídeo e Áudio) da ISO/IEC 11172 foram publicadas em agosto de 1993.[27]

Partes MPEG-1[9][28]
Parte Número Primeira data de
lançamento público
(primeira edição)
Últime
correção
Título Descrição
Part 1 ISO/IEC 11172-1 1993 1999[29] Systems
Part 2 ISO/IEC 11172-2 1993 2006[30] Video
Part 3 ISO/IEC 11172-3 1993 1996[31] Audio
Part 4 ISO/IEC 11172-4 1995 2007[32] Compliance testing
Part 5 ISO/IEC TR 11172-5 1998 2007[33] Software simulation

Patentes editar

Devido à sua idade, o MPEG-1 não está mais coberto por nenhuma patente essencial e pode, portanto, ser usado sem obter uma licença ou pagar quaisquer taxas.[34][35][36][37][38] O banco de dados de patentes ISO lista uma patente para ISO 11172, US 4.472.747, que expirou em 2003.[39] O rascunho quase completo do padrão MPEG-1 foi divulgado publicamente disponível como ISO CD 11172[20] até 6 de dezembro de 1991.[1] Nem o artigo Kuro5hin de julho de 2008 "Patent Status of MPEG-1, H.261 and MPEG-2",[40] nem um tópico de agosto de 2008 no gstreamer-devel[41] lista de discussão foram capazes de listar uma única patente não expirada de MPEG-1 Video e MPEG-1 Audio Layer I/II. Uma discussão de maio de 2009 na lista de discussão whatwg mencionou a patente US 5.214.678 como possivelmente abrangendo MPEG-1 Audio Layer II.[42] Arquivado em 1990 e publicado em 1993, esta patente expirou.[43]

Um decodificador e codificador completo de MPEG-1, com "Layer III audio", não poderia ser implementado sem royalties, pois havia empresas que exigiam taxas de patente para implementações de MPEG-1 Audio Layer III, conforme discutido no artigo sobre MP3. Todas as patentes no mundo relacionadas ao MP3 expiraram em 30 de dezembro de 2017, o que torna esse formato totalmente gratuito para uso.[carece de fontes?] Em 23 de abril de 2017, Fraunhofer IIS parou de cobrar pelo programa de licenciamento de MP3 da Technicolor para certas patentes e software relacionados a MP3.[44]

Ex-detentores de patentes editar

As seguintes empresas apresentaram declarações à ISO dizendo que detinham patentes para o formato de vídeo MPEG-1 (ISO/IEC-11172-2), embora todas essas patentes tenham expirado desde então.[45]

Formulários editar

  • O software mais popular para reprodução de vídeo inclui a decodificação MPEG-1, além de quaisquer outros formatos suportados.
  • A popularidade do áudio MP3 estabeleceu uma enorme base instalada de hardware que pode reproduzir áudio MPEG-1 (todas as três camadas).
  • "Virtualmente todos os dispositivos de áudio digital" podem reproduzir áudio MPEG-1.[46] Muitos milhões foram vendidos até hoje.
  • Antes de o MPEG-2 se tornar difundido, muitos serviços de TV digital via satélite/cabo usavam exclusivamente o MPEG-1.[16][26]
  • A ampla popularidade do MPEG-2 com as emissoras significa que o MPEG-1 pode ser reproduzido pela maioria dos decodificadores digitais de cabo e satélite e tocadores de discos e fitas digitais, devido à compatibilidade com versões anteriores.
  • O MPEG-1 foi usado para vídeo em tela cheia no Green Book CD-i e no Video CD (VCD).
  • O padrão Super Video CD, baseado em VCD, usa exclusivamente áudio MPEG-1, assim como vídeo MPEG-2.
  • O formato DVD-Vídeo usa principalmente vídeo MPEG-2, mas o suporte a MPEG-1 é explicitamente definido no padrão.
  • O padrão DVD-Vídeo originalmente exigia MPEG-1 Audio Layer II para países PAL, mas foi alterado para permitir apenas discos AC-3/Dolby Digital. MPEG-1 Audio Layer II ainda é permitido em DVDs, embora extensões mais recentes para o formato, como MPEG Multichannel, raramente sejam suportadas.
  • A maioria dos reprodutores de DVD também oferece suporte à reprodução de CDs de vídeo e CDs de MP3, que usam MPEG-1.
  • O padrão internacional de transmissão de vídeo digital (DVB) usa principalmente MPEG-1 Audio Layer II e vídeo MPEG-2.
  • O padrão internacional de transmissão de áudio digital (DAB) usa exclusivamente MPEG-1 Audio Layer II, devido à sua qualidade especialmente alta, requisitos modestos de desempenho do decodificador e tolerância a erros.
  • O Digital Compact Cassette usa PASC (Precision Adaptive Sub-band Coding) para codificar seu áudio. O PASC é uma versão inicial do MPEG-1 Audio Layer I com uma taxa de bits fixa de 384 kilobits por segundo.

Part 1: Systems editar

A Parte 1 do padrão MPEG-1 abrange os sistemas e é definida na ISO/IEC-11172-1.

Os sistemas MPEG-1 especificam o layout lógico e os métodos usados ​​para armazenar o áudio, o vídeo e outros dados codificados em um fluxo de bits padrão e para manter a sincronização entre os diferentes conteúdos. Este formato de arquivo é projetado especificamente para armazenamento em mídia e transmissão por canais de comunicação, que são considerados relativamente confiáveis. Somente proteção limitada contra erros é definida pelo padrão, e pequenos erros no fluxo de bits podem causar defeitos perceptíveis.

Essa estrutura foi posteriormente chamada de fluxo de programa MPEG: "O design dos sistemas MPEG-1 é essencialmente idêntico à estrutura do fluxo de programa MPEG-2."[47] Esta terminologia é mais popular, precisa (diferencia-a de um fluxo de transporte MPEG) e será usada aqui.

Fluxos elementares, pacotes e referências de clock editar

  • Fluxos elementares (ES) são fluxos de bits brutos de dados codificados de áudio e vídeo MPEG-1 (saída de um codificador). Esses arquivos podem ser distribuídos sozinhos, como é o caso dos arquivos MP3.
  • Fluxos Elementares Packetizados (PES) são fluxos elementares empacotados em pacotes de tamanhos variáveis, ou seja, ES divididos em blocos independentes onde a soma de verificação de redundância cíclica (CRC) foi adicionada a cada pacote para detecção de erro.
  • System Clock Reference (SCR) é um valor de temporização armazenado em um cabeçalho de 33 bits de cada PES, a uma frequência/precisão de 90 kHz, com uma extensão extra de 9 bits que armazena dados de temporização adicionais com uma precisão de 27 MHz.[48][49] Estes são inseridos pelo codificador, derivados do relógio de tempo do sistema (STC). Fluxos de áudio e vídeo codificados simultaneamente não terão valores de SCR idênticos, no entanto, devido ao buffer, codificação, jitter e outros atrasos.

Transmissões do programa editar

Fluxos de programa (PS) estão preocupados com a combinação de vários fluxos elementares empacotados (geralmente apenas um PES de áudio e vídeo) em um único fluxo, garantindo a entrega simultânea e mantendo a sincronização. A estrutura PS é conhecida como multiplex ou formato de contêiner.

Os carimbos de hora de apresentação (PTS) existem no PS para corrigir a disparidade inevitável entre os valores SCR de áudio e vídeo (correção de base de tempo). Os valores de PTS de 90 kHz no cabeçalho PS informam ao decodificador quais valores de SCR de vídeo correspondem a quais valores de SCR de áudio.[48] O PTS determina quando exibir uma parte de um programa MPEG e também é usado pelo decodificador para determinar quando os dados podem ser descartados do buffer.[50] Tanto o vídeo quanto o áudio serão atrasados ​​pelo decodificador até que o segmento correspondente do outro chegue e possa ser decodificado.

O manuseio de PTS pode ser problemático. Os decodificadores devem aceitar vários fluxos de programa que foram concatenados (unidos sequencialmente). Isso faz com que os valores de PTS no meio do vídeo sejam redefinidos para zero, que começam a aumentar novamente. Tais disparidades de wraparound de PTS podem causar problemas de temporização que devem ser tratados especialmente pelo decodificador.

Além disso, são necessários carimbos de tempo de decodificação (DTS) por causa dos quadros B. Com quadros B no fluxo de vídeo, os quadros adjacentes precisam ser codificados e decodificados fora de ordem (quadros reordenados). O DTS é bastante semelhante ao PTS, mas em vez de apenas lidar com quadros sequenciais, ele contém os carimbos de tempo adequados para informar ao decodificador quando decodificar e exibir o próximo quadro B (tipos de quadros explicados abaixo), à frente de sua âncora (P - ou I-) quadro. Sem quadros B no vídeo, os valores de PTS e DTS são idênticos.[51]

Multiplexação editar

Para gerar o PS, o multiplexador irá intercalar os (dois ou mais) fluxos elementares empacotados. Isso é feito para que os pacotes dos fluxos simultâneos possam ser transferidos pelo mesmo canal e tenham a garantia de que ambos cheguem ao decodificador precisamente ao mesmo tempo. Este é um caso de multiplexação por divisão de tempo.

Determinar a quantidade de dados de cada fluxo em cada segmento intercalado (o tamanho da intercalação) é complicado, mas é um requisito importante. A intercalação imprópria resultará em estouros ou estouros de buffer, já que o receptor obtém mais de um fluxo do que pode armazenar (por exemplo, áudio), antes de obter dados suficientes para decodificar o outro fluxo simultâneo (por exemplo, vídeo). O MPEG Video Buffering Verifier (VBV) ajuda a determinar se um PS multiplexado pode ser decodificado por um dispositivo com uma taxa de transferência de dados e tamanho de buffer especificados.[52] Isso oferece feedback ao multiplexador e ao codificador, para que eles possam alterar o tamanho do multiplex ou ajustar as taxas de bits conforme necessário para conformidade.

Part 2: Video editar

A Parte 2 do padrão MPEG-1 abrange o vídeo e é definida na ISO/IEC-11172-2. O design foi fortemente influenciado pelo H.261.

O vídeo MPEG-1 explora os métodos de compressão perceptual para reduzir significativamente a taxa de dados exigida por um fluxo de vídeo. Ele reduz ou descarta completamente informações em certas frequências e áreas da imagem que o olho humano tem capacidade limitada de perceber totalmente. Ele também explora a redundância temporal (ao longo do tempo) e espacial (em uma imagem) comum em vídeo para obter melhor compactação de dados do que seria possível de outra forma.

Espaço colorido editar

 
Exemplo de subamostragem 4:2:0. Os dois círculos centrais sobrepostos representam os pixels de croma azul e croma vermelho (cor), enquanto os 4 círculos externos representam o luma (brilho).

Antes de codificar o vídeo para MPEG-1, o espaço de cores é transformado em Y′CbCr (ou Y'CbCr, onde Y′=Luma/intensidade da luz, Cb=Chroma Blue//diferença de cor azul, Cr=Chroma Red/diferença de cor vermelho).[53] Luma (brilho, resolução) é armazenado separadamente do croma (cor, matiz, fase) e ainda mais separado em componentes vermelhos e azuis.

O croma também é subamostrado para 4:2:0, o que significa que é reduzido a metade da resolução verticalmente e metade da resolução horizontalmente, ou seja, a apenas um quarto do número de amostras usadas para o componente luma do vídeo.[2] Este uso de resolução mais alta para alguns componentes de cor é semelhante em conceito ao filtro de padrão Bayer que é comumente usado para o sensor de captura de imagem em câmeras coloridas digitais. Como o olho humano é muito mais sensível a pequenas mudanças no brilho (o componente Y) do que na cor (os componentes Cr e Cb), a subamostragem de croma é uma maneira muito eficaz de reduzir a quantidade de dados de vídeo que precisam ser compactados. No entanto, em vídeos com detalhes finos (alta complexidade espacial) isso pode se manifestar como artefatos de aliasing de croma. Em comparação com outros artefatos de compactação digital, esse problema raramente parece ser uma fonte de aborrecimento. Por causa da subamostragem, o vídeo Y′CbCr 4:2:0 é normalmente armazenado usando dimensões pares (divisível por 2 horizontalmente e verticalmente).

A cor Y′CbCr costuma ser chamada informalmente de YUV para simplificar a notação, embora esse termo se aplique mais apropriadamente a um formato de cor um pouco diferente. Da mesma forma, os termos luminância e crominância são frequentemente usados ​​em vez dos termos (mais precisos) luma e croma.

Resolução/taxa de bits editar

O MPEG-1 suporta resoluções de até 4095×4095 (12 bits) e taxas de bits de até 100 Mbit/s.[16]

Os vídeos MPEG-1 são mais comumente vistos usando a resolução Source Input Format (SIF): 352 × 240, 352 × 288 ou 320 × 240. Essas resoluções relativamente baixas, combinadas com uma taxa de bits inferior a 1,5 Mbit/s, formam o que é conhecido como fluxo de bits de parâmetros restritos (CPB), posteriormente renomeado como perfil "Low Level" (LL) no MPEG-2. Estas são as especificações mínimas de vídeo que qualquer decodificador deve ser capaz de lidar, para ser considerado compatível com MPEG-1. Isso foi escolhido para fornecer um bom equilíbrio entre qualidade e desempenho, permitindo o uso de hardware razoavelmente barato da época.[3][16]

Tipos de quadro/imagem/bloco editar

O MPEG-1 possui vários tipos de quadro/imagem que atendem a diferentes propósitos. O mais importante, porém mais simples, é o I-frame.

I-frames editar

"I-frame" é uma abreviação de "Intra-frame", assim chamado porque eles podem ser decodificados independentemente de quaisquer outros quadros. Eles também podem ser conhecidos como I-pictures ou quadros-chave devido à sua função um tanto semelhante aos quadros-chave usados ​​na animação. Os quadros I podem ser considerados efetivamente idênticos às imagens JPEG de linha de base.[16]

A busca em alta velocidade através de um vídeo MPEG-1 só é possível para o I-frame mais próximo. Ao cortar um vídeo, não é possível iniciar a reprodução de um segmento de vídeo antes do primeiro I-frame no segmento (pelo menos não sem recodificação intensiva computacionalmente). Por esse motivo, vídeos MPEG somente de quadro I são usados ​​em aplicativos de edição.

A compactação somente de quadro I é muito rápida, mas produz tamanhos de arquivo muito grandes: um fator de 3 × (ou mais) maior do que o vídeo MPEG-1 normalmente codificado, dependendo da complexidade temporal de um vídeo específico.[3] O vídeo MPEG-1 somente com quadro I é muito semelhante ao vídeo MJPEG. Tanto é assim que a conversão em alta velocidade e teoricamente sem perdas (na realidade, há erros de arredondamento) pode ser feita de um formato para o outro, desde que algumas restrições (espaço de cor e matriz de quantização) sejam seguidas na criação do bitstream.[54]

O comprimento entre I-frames é conhecido como o tamanho do grupo de imagens (GOP). O MPEG-1 geralmente usa um tamanho GOP de 15–18, ou seja, 1 quadro I para cada 14-17 quadros não-I (alguma combinação de quadros P e B). Com codificadores mais inteligentes, o tamanho do GOP é escolhido dinamicamente, até um limite máximo pré-selecionado.[16]

Os limites são colocados no número máximo de quadros entre os quadros I devido à complexidade da decodificação, tamanho do buffer do decodificador, tempo de recuperação após erros de dados, capacidade de busca e acúmulo de erros IDCT em implementações de baixa precisão mais comuns em decodificadores de hardware (consulte: IEEE-1180).

P-frames editar

"P-frame" é uma abreviação de "Predicted-frame". Eles também podem ser chamados de quadros com previsão direta ou interquadros (quadros B também são quadros inter).

Os quadros P existem para melhorar a compactação, explorando a redundância temporal (ao longo do tempo) em um vídeo. Os quadros P armazenam apenas a diferença na imagem do quadro (um quadro I ou um quadro P) imediatamente anterior a ele (esse quadro de referência também é chamado de quadro âncora).

A diferença entre um quadro P e seu quadro âncora é calculada usando vetores de movimento em cada macrobloco do quadro (veja abaixo). Esses dados de vetor de movimento serão incorporados no quadro P para uso pelo decodificador.

Um quadro P pode conter qualquer número de blocos intracodificados, além de quaisquer blocos previstos para frente.[55]

Se um vídeo mudar drasticamente de um quadro para o próximo (como um corte), é mais eficiente codificá-lo como um quadro I.

B-frames editar

"B-frame" significa "quadro bidirecional" ou "quadro bipreditivo". Eles também podem ser conhecidos como quadros previstos para trás ou imagens B. Os quadros B são bastante semelhantes aos quadros P, exceto que podem fazer previsões usando os quadros anteriores e futuros (ou seja, dois quadros âncora).

Portanto, é necessário que o jogador primeiro decodifique o próximo quadro âncora I ou P sequencialmente após o quadro B, antes que o quadro B possa ser decodificado e exibido. Isso significa que a decodificação de quadros B requer buffers de dados maiores e causa um atraso maior na decodificação e durante a codificação. Isso também requer o recurso de decodificação de carimbos de data/hora (DTS) no contêiner/fluxo do sistema (veja acima). Como tal, os quadros B têm sido objeto de muita controvérsia, muitas vezes são evitados em vídeos e às vezes não são totalmente suportados por decodificadores de hardware.

Nenhum outro quadro é previsto a partir de um quadro B. Por causa disso, um quadro B de taxa de bits muito baixa pode ser inserido, quando necessário, para ajudar a controlar a taxa de bits. Se isso fosse feito com um quadro P, quadros P futuros seriam previstos a partir dele e diminuiriam a qualidade de toda a sequência. No entanto, da mesma forma, o futuro quadro P ainda deve codificar todas as alterações entre ele e o quadro âncora I ou P anterior. Os quadros B também podem ser benéficos em vídeos em que o fundo atrás de um objeto está sendo revelado em vários quadros ou em transições esmaecidas, como mudanças de cena.[3][16]

Um quadro B pode conter qualquer número de blocos intracodificados e blocos previstos para frente, além de blocos previstos para trás ou preditos bidirecionalmente.[16][55]

D-frames editar

O MPEG-1 possui um tipo de quadro exclusivo não encontrado em padrões de vídeo posteriores. "D-frames" ou imagens DC são imagens codificadas independentemente (intra-frames) que foram codificadas usando apenas coeficientes de transformação DC (os coeficientes AC são removidos ao codificar D-frames - veja DCT abaixo) e, portanto, são de qualidade muito baixa. Os quadros D nunca são referenciados por quadros I, P ou B. Os D-frames são usados ​​apenas para visualizações rápidas de vídeo, por exemplo, ao procurar um vídeo em alta velocidade.[3]

Com equipamentos de decodificação de desempenho moderadamente alto, a visualização rápida pode ser realizada pela decodificação de quadros I em vez de quadros D. Isso fornece visualizações de maior qualidade, já que os quadros I contêm coeficientes AC, bem como coeficientes DC. Se o codificador puder assumir que a capacidade de decodificação rápida de quadro I está disponível nos decodificadores, ele poderá economizar bits ao não enviar quadros D (melhorando assim a compactação do conteúdo de vídeo). Por esse motivo, os quadros D raramente são realmente usados ​​na codificação de vídeo MPEG-1, e o recurso D-frame não foi incluído em nenhum padrão de codificação de vídeo posterior.

Macroblocks editar

O MPEG-1 opera em vídeo em uma série de blocos 8×8 para quantização. No entanto, para reduzir a taxa de bits necessária para vetores de movimento e porque o croma (cor) é subamostrado por um fator de 4, cada par de blocos de croma (vermelho e azul) corresponde a 4 blocos luma diferentes. Este conjunto de 6 blocos, com resolução de 16×16, é processado em conjunto e denominado macrobloco.

Um macrobloco é a menor unidade independente de vídeo (cor). Os vetores de movimento (veja abaixo) operam somente no nível do macrobloco.

Se a altura ou a largura do vídeo não forem múltiplos exatos de 16, linhas e colunas completas de macroblocos ainda devem ser codificadas e decodificadas para preencher a imagem (embora os pixels extras decodificados não sejam exibidos).

Motion vectors editar

Para diminuir a quantidade de redundância temporal em um vídeo, apenas os blocos que mudam são atualizados (até o tamanho máximo do GOP). Isso é conhecido como reabastecimento condicional. No entanto, isso não é muito eficaz por si só. O movimento dos objetos e/ou da câmera pode fazer com que grandes porções do quadro precisem ser atualizadas, mesmo que apenas a posição dos objetos codificados anteriormente tenha mudado. Por meio da estimativa de movimento, o codificador pode compensar esse movimento e remover uma grande quantidade de informações redundantes.

O codificador compara o quadro atual com partes adjacentes do vídeo do quadro âncora (quadro I ou P anterior) em um padrão de diamante, até um limite de raio predefinido (específico do codificador) da área do macrobloco atual. Se for encontrada uma correspondência, apenas a direção e a distância (ou seja, o vetor do movimento) da área de vídeo anterior ao macrobloco atual precisam ser codificadas no quadro interno (quadro P ou B). O inverso desse processo, realizado pelo decodificador para reconstruir a imagem, é chamado de compensação de movimento.

No entanto, um macrobloco previsto raramente corresponde perfeitamente à imagem atual. As diferenças entre a área de correspondência estimada e o quadro/macrobloco real são chamadas de erro de previsão. Quanto maior a quantidade de erro de previsão, mais dados devem ser codificados adicionalmente no quadro. Para uma compactação de vídeo eficiente, é muito importante que o codificador seja capaz de executar a estimativa de movimento de maneira eficaz e precisa.

Os vetores de movimento registram a distância entre duas áreas na tela com base no número de pixels (também chamados de pels). O vídeo MPEG-1 usa uma precisão de vetor de movimento (MV) de metade de um pixel ou meio pel. Quanto maior a precisão dos MVs, mais precisa será a correspondência e mais eficiente será a compactação. No entanto, existem compensações para maior precisão. Maior precisão MV resulta no uso de uma quantidade maior de dados para representar o MV, pois números maiores devem ser armazenados no quadro para cada MV, complexidade de codificação aumentada, pois níveis crescentes de interpolação no macrobloco são necessários para o codificador e o decodificador, e retornos decrescentes (ganhos mínimos) com MVs de maior precisão. A precisão de meio pel foi escolhida como a compensação ideal para aquele momento.

Como é provável que os macroblocos vizinhos tenham vetores de movimento muito semelhantes, essa informação redundante pode ser comprimida de maneira bastante eficaz ao ser armazenada codificada em DPCM. Apenas a quantidade (menor) de diferença entre os MVs para cada macrobloco precisa ser armazenada no fluxo de bits final.

Os quadros P têm um vetor de movimento por macrobloco, relativo ao quadro âncora anterior. Os quadros B, no entanto, podem usar dois vetores de movimento; um do quadro de ancoragem anterior e outro do futuro quadro de ancoragem.[55]

Macroblocos parciais e bordas/barras pretas codificadas no vídeo que não se enquadram exatamente em um limite de macrobloco causam estragos na previsão de movimento. As informações de preenchimento/borda do bloco impedem que o macrobloco corresponda estreitamente a qualquer outra área do vídeo e, portanto, informações de erro de previsão significativamente maiores devem ser codificadas para cada uma das várias dezenas de macroblocos parciais ao longo da borda da tela. A codificação e quantização DCT (veja abaixo) também não são tão eficazes quando há contraste de imagem grande/nítido em um bloco.

Existe um problema ainda mais sério com macroblocos que contêm ruído de borda significativo e aleatório, onde a imagem muda para (normalmente) preto. Todos os problemas acima também se aplicam ao ruído de borda. Além disso, a aleatoriedade adicionada é simplesmente impossível de comprimir significativamente. Todos esses efeitos diminuirão substancialmente a qualidade (ou aumentarão a taxa de bits) do vídeo.

DCT editar

Cada bloco de 8 × 8 é codificado aplicando primeiro uma transformada de cosseno discreta direta (FDCT) e, em seguida, um processo de quantização. O processo FDCT (por si só) é teoricamente sem perdas e pode ser revertido aplicando um DCT inverso (IDCT) para reproduzir os valores originais (na ausência de erros de quantização e arredondamento). Na realidade, existem alguns erros de arredondamento (às vezes grandes) introduzidos tanto pela quantização no codificador (conforme descrito na próxima seção) quanto pelo erro de aproximação IDCT no decodificador. A precisão mínima permitida de uma aproximação IDCT do decodificador é definida pela ISO/IEC 23002-1. (Antes de 2006, era especificado pelo IEEE 1180-1990.)

O processo FDCT converte o bloco 8×8 de valores de pixel não compactados (brilho ou valores de diferença de cor) em uma matriz indexada 8×8 de valores de coeficiente de frequência. Um deles é o (estatisticamente alto em variância) "coeficiente DC", que representa o valor médio de todo o bloco 8 × 8. Os outros 63 coeficientes são os "coeficientes AC" estatisticamente menores, que têm valores positivos ou negativos, cada um representando desvios senoidais do valor do bloco plano representado pelo coeficiente DC.

Um exemplo de um bloco FDCT 8 × 8 codificado:

 

Como o valor do coeficiente DC é estatisticamente correlacionado de um bloco para o próximo, ele é compactado usando a codificação DPCM. Somente a quantidade (menor) de diferença entre cada valor DC e o valor do coeficiente DC no bloco à sua esquerda precisa ser representada no fluxo de bits final.

Além disso, a conversão de frequência realizada pela aplicação do DCT fornece uma função de decorrelação estatística para concentrar eficientemente o sinal em menos valores de alta amplitude antes de aplicar a quantização (veja abaixo).

Quantization editar

A quantização é, essencialmente, o processo de reduzir a precisão de um sinal, dividindo-o por algum tamanho de passo maior e arredondando para um valor inteiro (isto é, encontrando o múltiplo mais próximo e descartando o restante).

O quantizador de nível de quadro é um número de 0 a 31 (embora os codificadores geralmente omitam/desabilitem alguns dos valores extremos) que determina quanta informação será removida de um determinado quadro. O quantizador de nível de quadro é tipicamente selecionado dinamicamente pelo codificador para manter uma certa taxa de bits especificada pelo usuário ou (muito menos comumente) especificado diretamente pelo usuário.

Uma "matriz de quantização" é uma sequência de 64 números (variando de 0 a 255) que informa ao codificador o quão relativamente importante ou sem importância cada pedaço de informação visual é. Cada número na matriz corresponde a um determinado componente de frequência da imagem de vídeo.

Um exemplo de matriz de quantização:

 

A quantização é realizada tomando cada um dos 64 valores de frequência do bloco DCT, dividindo-os pelo quantizador de nível de quadro e, em seguida, dividindo-os por seus valores correspondentes na matriz de quantização. Por fim, o resultado é arredondado para baixo. Isso reduz significativamente ou elimina completamente as informações em alguns componentes de frequência da imagem. Normalmente, as informações de alta frequência são menos importantes visualmente e, portanto, as altas frequências são muito mais fortemente quantizadas (reduzidas drasticamente). Na verdade, o MPEG-1 usa duas matrizes de quantização separadas, uma para intrablocos (blocos I) e outra para interblocos (blocos P e B), de modo que a quantização de diferentes tipos de blocos pode ser feita independentemente e, portanto, com mais eficiência.[3]

Esse processo de quantização geralmente reduz um número significativo de coeficientes AC a zero (conhecidos como dados esparsos), que podem ser compactados com mais eficiência pela codificação de entropia (compressão sem perdas) na próxima etapa.

Um exemplo de bloco DCT quantizado:

 

A quantização elimina uma grande quantidade de dados e é a principal etapa de processamento com perdas na codificação de vídeo MPEG-1. Esta também é a fonte primária da maioria dos artefatos de compressão de vídeo MPEG-1, como blocos, faixas de cores, ruído, zumbido, descoloração e outros. Isso acontece quando o vídeo é codificado com uma taxa de bits insuficiente e, portanto, o codificador é forçado a usar quantizadores de alto nível de quadro (quantização forte) em grande parte do vídeo.

Entropy coding editar

Várias etapas na codificação do vídeo MPEG-1 são sem perdas, o que significa que serão revertidas na decodificação para produzir exatamente os mesmos valores (originais). Uma vez que essas etapas de compactação de dados sem perdas não adicionam ruído ou alteram o conteúdo (ao contrário da quantização), às vezes são chamadas de codificação sem ruído.[46] Uma vez que a compressão sem perdas visa remover o máximo de redundância possível, ela é conhecida como codificação de entropia no campo da teoria da informação.

Os coeficientes dos blocos DCT quantizados tendem a zero na parte inferior direita. A compactação máxima pode ser alcançada por uma varredura em zigue-zague do bloco DCT começando no canto superior esquerdo e usando técnicas de codificação Run-length.

Os coeficientes DC e os vetores de movimento são codificados em DPCM.

A codificação Run-Length (RLE) é um método simples de comprimir a repetição. Uma string sequencial de caracteres, não importa quanto tempo, pode ser substituída por alguns bytes, observando o valor que se repete e quantas vezes. Por exemplo, se alguém disser "cinco noves", você saberá que se refere ao número: 99999.

O RLE é particularmente eficaz após a quantização, pois um número significativo de coeficientes AC agora é zero (chamado de dados esparsos) e pode ser representado com apenas alguns bytes. Isso é armazenado em uma tabela Huffman bidimensional especial que codifica o comprimento da execução e o caractere final da execução.

Huffman Coding é um método muito popular e relativamente simples de codificação por entropia, e usado em vídeo MPEG-1 para reduzir o tamanho dos dados. Os dados são analisados ​​para encontrar strings que se repetem com frequência. Essas strings são colocadas em uma tabela especial, com os dados repetidos com mais frequência atribuídos ao código mais curto. Isso mantém os dados o menor possível com essa forma de compactação.[46] Depois que a tabela é construída, essas strings nos dados são substituídas por seus códigos (muito menores), que fazem referência à entrada apropriada na tabela. O decodificador simplesmente reverte esse processo para produzir os dados originais.

Esta é a etapa final no processo de codificação de vídeo, portanto, o resultado da codificação Huffman é conhecido como "bitstream" de vídeo MPEG-1.

GOP configurations for specific applications editar

I-frames armazenam informações completas do quadro dentro do quadro e, portanto, são adequados para acesso aleatório. Os quadros P fornecem compressão usando vetores de movimento relativos ao quadro anterior (I ou P). Os quadros B fornecem compactação máxima, mas requerem o quadro anterior e o seguinte para cálculo. Portanto, o processamento de quadros B requer mais buffer no lado decodificado. Uma configuração do Grupo de Imagens (GOP) deve ser selecionado com base nesses fatores. As sequências somente de quadro I oferecem menos compactação, mas são úteis para acesso aleatório, FF/FR e capacidade de edição. As sequências de quadros I e P oferecem compactação moderada, mas adicionam um certo grau de acesso aleatório, funcionalidade FF/FR. As sequências de quadro I, P e B fornecem compressão muito alta, mas também aumentam significativamente o atraso de codificação/decodificação. Tais configurações não são, portanto, adequadas para aplicações de videotelefonia ou videoconferência.

A taxa de dados típica de um quadro I é de 1 bit por pixel, enquanto a de um quadro P é de 0,1 bit por pixel e, para um quadro B, de 0,015 bit por pixel.[56]

Part 3: Audio editar

A Parte 3 do padrão MPEG-1 abrange o áudio e é definida na ISO/IEC-11172-3.

O áudio MPEG-1 utiliza psicoacústica para reduzir significativamente a taxa de dados exigida por um fluxo de áudio. Ele reduz ou descarta completamente certas partes do áudio que deduz que o ouvido humano não consegue ouvir, seja porque estão em frequências onde o ouvido tem sensibilidade limitada, ou são mascaradas por outros sons (normalmente mais altos).[57]

Codificação do Canal:

  • Mono
  • Joint Stereo – intensidade codificada
  • Joint Stereo – M/S modificado apenas para Layer III
  • Stereo
  • Dual (dois canais mono não correlacionados)
  • Taxas de amostragem: 32000, 44100, e 48000 Hz
  • Bit rates para Layer I: 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352, 384, 416 e 448 kbit/s[58]
  • Bit rates para Layer II: 32, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320 e 384 kbit/s
  • Bit rates para Layer III: 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256 e 320 kbit/s

O áudio MPEG-1 é dividido em 3 camadas. Cada camada superior é computacionalmente mais complexa e geralmente mais eficiente em taxas de bits mais baixas do que a anterior.[16] As camadas são semicompatíveis com versões anteriores, pois as camadas superiores reutilizam as tecnologias implementadas pelas camadas inferiores. Um decodificador "Full" Layer II também pode reproduzir áudio Layer I, mas não o áudio Layer III, embora nem todos os reprodutores de nível superior sejam "full".[57]

Layer I editar

MPEG-1 Audio Layer I é uma versão simplificada do MPEG-1 Audio Layer II.[18] A Layer I usa um tamanho de quadro menor de 384 amostras para atraso muito baixo e resolução mais fina.[26] Isso é vantajoso para aplicativos como teleconferência, edição em estúdio, etc. Tem menor complexidade do que a Layer II para facilitar a codificação em tempo real no hardware disponível c. 1990.[46]

A layer I teve adoção limitada em seu tempo e, principalmente, foi usada no extinto Digital Compact Cassette da Philips com uma taxa de bits de 384 kbit/s.[2] Com as melhorias substanciais de desempenho no processamento digital desde sua introdução, a Layer I rapidamente se tornou desnecessária e obsoleta.

Os arquivos de áudio da layer I geralmente usam a extensão ".mp1" ou, às vezes, ".m1a".

Layer II editar

 Ver artigo principal: MPEG-1 Audio Layer II

MPEG-1 Audio Layer II (a primeira versão do MP2, muitas vezes chamado informalmente de MUSICAM)[57] é um formato de áudio com perdas projetado para fornecer alta qualidade em cerca de 192 kbit/s para som estéreo. A decodificação de áudio MP2 é computacionalmente simples em relação a MP3, AAC, etc.

Histórico/MUSICAM editar

O MPEG-1 Audio Layer II foi derivado do codec de áudio MUSICAM (padrão de máscara adaptado Universal Subband Integrated Coding And Multiplexing), desenvolvido pelo Centre commun d'études de télévision et télécommunications (CCETT), Philips e Institut für Rundfunktechnik (IRT/CNET)[16][18][59] como parte da iniciativa de pesquisa e desenvolvimento intergovernamental pan-europeia EUREKA 147 para o desenvolvimento da transmissão de áudio digital.

A maioria dos principais recursos do áudio MPEG-1 foram herdados diretamente do MUSICAM, incluindo o banco de filtros, processamento no domínio do tempo, tamanhos de quadros de áudio etc. No entanto, foram feitas melhorias e o algoritmo real do MUSICAM não foi usado no MPEG-1 final Padrão Audio Layer II. O uso generalizado do termo MUSICAM para se referir à Camada II é totalmente incorreto e desencorajado por razões técnicas e legais.[57]

Detalhes técnicos editar

MP2 é um codificador de domínio de tempo. Ele usa um banco de filtro polifásico de 32 sub-bandas de atraso baixo para mapeamento de frequência de tempo; tendo intervalos sobrepostos (ou seja, polifásicos) para evitar aliasing.[60] O modelo psicoacústico é baseado nos princípios de mascaramento auditivo, efeitos simultâneos de mascaramento e limiar absoluto de audição (ATH). O tamanho de um quadro da Layer II é fixado em 1152 amostras (coeficientes).

O domínio do tempo refere-se a como a análise e a quantização são realizadas em amostras/pedaços curtos e discretos da forma de onda de áudio. Isso oferece baixo atraso, pois apenas um pequeno número de amostras é analisado antes da codificação, em oposição à codificação de domínio de frequência (como MP3), que deve analisar muitas vezes mais amostras antes de poder decidir como transformar e emitir o áudio codificado. Isso também oferece maior desempenho em impulsos complexos, aleatórios e transitórios (como instrumentos percussivos e aplausos), evitando artefatos como pré-eco.

O banco de filtros de 32 sub-bandas retorna 32 coeficientes de amplitude, um para cada banda/segmento de frequência de tamanho igual do áudio, que tem cerca de 700 Hz de largura (dependendo da frequência de amostragem do áudio). O codificador então utiliza o modelo psicoacústico para determinar quais sub-bandas contêm informações de áudio que são menos importantes e, portanto, onde a quantização será inaudível ou, pelo menos, muito menos perceptível.[46]

 
Exemplo de análise FFT em uma amostra de onda de áudio.

O modelo psicoacústico é aplicado usando uma transformada rápida de Fourier (FFT) de 1024 pontos. Das 1152 amostras por quadro, 64 amostras na parte superior e inferior da faixa de frequência são ignoradas para esta análise. Presumivelmente, eles não são significativos o suficiente para alterar o resultado. O modelo psicoacústico usa um modelo de mascaramento determinado empiricamente para determinar quais sub-bandas contribuem mais para o limiar de mascaramento e quanto ruído de quantização cada uma pode conter sem ser percebida. Quaisquer sons abaixo do limiar absoluto de audição (ATH) são completamente descartados. Os bits disponíveis são então atribuídos a cada sub-banda de acordo.[57][60]

Normalmente, as sub-bandas são menos importantes se contiverem sons mais baixos (coeficiente menor) do que uma sub-banda vizinha (ou seja, frequência semelhante) com sons mais altos (coeficiente maior). Além disso, os componentes de "ruído" normalmente têm um efeito de mascaramento mais significativo do que os componentes "tonais".[59]

As sub-bandas menos significativas são reduzidas em precisão pela quantização. Isso basicamente envolve comprimir a faixa de frequência (amplitude do coeficiente), ou seja, aumentar o nível de ruído. Em seguida, calculando um fator de amplificação, para o decodificador usar para reexpandir cada sub-banda para a faixa de frequência adequada.[61][62]

A Layer II também pode opcionalmente usar codificação estéreo de intensidade, uma forma de estéreo comum. Isso significa que as frequências acima de 6 kHz de ambos os canais são combinadas/mixadas em um único canal (mono), mas as informações do "canal lateral" sobre a intensidade relativa (volume, amplitude) de cada canal são preservadas e codificadas no fluxo de bits separadamente. Na reprodução, o canal único é reproduzido pelos alto-falantes esquerdo e direito, com as informações de intensidade aplicadas a cada canal para dar a ilusão de som estéreo.[46][59] Esse truque perceptivo é conhecido como "irrelevância estéreo". Isso pode permitir uma redução adicional da taxa de bits do áudio sem muita perda perceptível de fidelidade, mas geralmente não é usado com taxas de bits mais altas, pois não fornece áudio de alta qualidade (transparente).[46][60][63][64]

Qualidade editar

Testes de áudio subjetivos por especialistas, nas condições mais críticas já implementadas, mostraram que o MP2 oferece compactação de áudio transparente a 256 kbit/s para áudio de CD de 16 bits e 44,1 kHz usando a implementação de referência mais antiga (codificadores mais recentes provavelmente devem ter um desempenho ainda melhor).[2][59][60][65] Essa taxa de compressão (aproximadamente) 1:6 para áudio de CD é particularmente impressionante porque está bem próxima do limite superior estimado de entropia perceptual, em pouco mais de 1:8.[66][67] Atingir uma compressão muito maior simplesmente não é possível sem descartar algumas informações perceptíveis.

O MP2 continua sendo um padrão de codificação de áudio com perdas favorecido devido a seus desempenhos de codificação de áudio particularmente altos em material de áudio importante, como castanhola, orquestra sinfônica, vozes masculinas e femininas e transientes (impulsos) particularmente complexos e de alta energia, como sons percussivos: triângulo, glockenspiel e audiência aplausos.[26] Testes mais recentes mostraram que o MPEG Multichannel (baseado em MP2), apesar de ser comprometido por um modo matricial inferior (para fins de compatibilidade com versões anteriores)[2][60] taxas ligeiramente mais baixas do que codecs de áudio muito mais recentes, como Dolby Digital (AC-3) e Advanced Audio Coding (AAC) (principalmente dentro da margem de erro - e substancialmente superior em alguns casos, como aplausos do público).[68][69] Esta é uma das razões pelas quais o áudio MP2 continua a ser usado extensivamente. No entanto, os testes de verificação MPEG-2 AAC Stereo chegaram a uma conclusão muito diferente, mostrando que o AAC oferece desempenho superior ao MP2 com metade da taxa de bits.[70] A razão para esta disparidade com os testes anteriores e posteriores não é clara, mas estranhamente, uma amostra de aplausos está notavelmente ausente do último teste.

Os arquivos de áudio da layer II geralmente usam a extensão ".mp2" ou, às vezes, ".m2a".

Layer III editar

 Ver artigo principal: MP3

MPEG-1 Audio Layer III (a primeira versão do MP3) é um formato de áudio com perdas projetado para fornecer qualidade aceitável em cerca de 64 kbit/s para áudio mono através de links ISDN de canal único (BRI) e 128 kbit/s para som estéreo.

História/ASPEC editar

 
ASPEC 91 no Deutsches Museum Bonn, com codificador (abaixo) e decodificador

O MPEG-1 Audio Layer III foi derivado do codec Adaptive Spectral Perceptual Entropy Coding (ASPEC) desenvolvido pela Fraunhofer como parte da iniciativa de pesquisa e desenvolvimento intergovernamental pan-europeia EUREKA 147 para o desenvolvimento de transmissão de áudio digital. O ASPEC foi adaptado para se adequar ao modelo da Layer II (tamanho do quadro, banco de filtros, FFT, etc.), para se tornar a Layer III.[18]

O próprio ASPEC foi baseado em Multiple adaptive Spectral audio Coding (MSC) de EF Schroeder, Optimum Coding in the Frequency domain (OCF) a tese de doutorado de Karlheinz Brandenburg na Universidade de Erlangen-Nuremberg, Perceptual Transform Coding (PXFM) de JD Johnston em AT&T Bell Labs e Transform coding de sinais de áudio por Y. Mahieux e J. Petit no Institut für Rundfunktechnik (IRT/CNET).[71]

Detalhes técnicos editar

MP3 é um codificador de transformação de áudio no domínio da frequência. Embora utilize algumas das funções da camada inferior, o MP3 é bem diferente do MP2.

O MP3 funciona em 1152 amostras como o MP2, mas precisa levar vários quadros para análise antes que o processamento e a quantização no domínio da frequência (MDCT) possam ser eficazes. Ele produz um número variável de amostras, usando um buffer de bits para habilitar essa codificação de taxa de bits variável (VBR), mantendo 1152 quadros de saída de tamanho de amostra. Isso causa um atraso significativamente maior antes da saída, o que fez com que o MP3 fosse considerado inadequado para aplicativos de estúdio em que a edição ou outro processamento precisa ocorrer.[60]

O MP3 não se beneficia do banco de filtros polifásicos de 32 sub-bandas, apenas usando uma transformação MDCT de 18 pontos em cada saída para dividir os dados em 576 componentes de frequência e processá-los no domínio da frequência.[59] Essa granularidade extra permite que o MP3 tenha um modelo psicoacústico muito mais fino e aplique com mais cuidado a quantização apropriada para cada banda, proporcionando um desempenho muito melhor em baixa taxa de bits.

O processamento no domínio da frequência também impõe algumas limitações, causando um fator de 12 ou 36 × pior resolução temporal do que a Layer II. Isso causa artefatos de quantização, devido a sons transitórios como eventos percussivos e outros eventos de alta frequência que se espalham por uma janela maior. Isso resulta em manchas audíveis e pré-eco.[60] O MP3 usa rotinas de detecção de pré-eco e codificação VBR, que permite aumentar temporariamente a taxa de bits durante passagens difíceis, na tentativa de reduzir esse efeito. Ele também é capaz de alternar entre a janela normal de quantização de 36 amostras e, em vez disso, usar 3 × janelas curtas de 12 amostras, para reduzir o comprimento temporal (tempo) dos artefatos de quantização.[60] E ainda ao escolher um tamanho de janela bastante pequeno para tornar a resposta temporal do MP3 adequada o suficiente para evitar os artefatos mais sérios, o MP3 torna-se muito menos eficiente na compressão do domínio da frequência de componentes tonais estacionários.

Ser forçado a usar um modelo híbrido de domínio de tempo (banco de filtros)/domínio de frequência (MDCT) para se adequar à Camada II simplesmente desperdiça tempo de processamento e compromete a qualidade ao introduzir artefatos de aliasing. O MP3 tem um estágio de cancelamento de aliasing especificamente para mascarar esse problema, mas que, em vez disso, produz energia no domínio da frequência que deve ser codificada no áudio. Isso é levado ao topo da faixa de frequência, onde a maioria das pessoas tem audição limitada, na esperança de que a distorção que causa seja menos audível.

A FFT de 1024 pontos da Camada II não cobre totalmente todas as amostras e omitiria várias sub-bandas inteiras de MP3, onde os fatores de quantização devem ser determinados. Em vez disso, o MP3 usa duas passagens de análise FFT para estimativa espectral, para calcular os limites de mascaramento global e individual. Isso permite cobrir todas as 1152 amostras. Dos dois, ele utiliza o nível de limiar de mascaramento global da passagem mais crítica, com o áudio mais difícil.

Além do estéreo conjunto codificado de intensidade da Layer II, o MP3 pode usar estéreo conjunto meio/lateral (meio/lateral, m/s, MS, matricial). Com estéreo meio/lateral, certas faixas de frequência de ambos os canais são mescladas em um único canal mono (meio, meio, L+R), enquanto a diferença de som entre os canais esquerdo e direito é armazenada como um canal separado (lateral, LR). Ao contrário do estéreo de intensidade, esse processo não descarta nenhuma informação de áudio. Quando combinado com quantização, no entanto, pode exagerar os artefatos.

Se a diferença entre os canais esquerdo e direito for pequena, o canal lateral será pequeno, o que oferecerá até 50% de economia na taxa de bits e melhoria de qualidade associada. Se a diferença entre a esquerda e a direita for grande, a codificação estéreo padrão (discreta, esquerda/direita) pode ser preferida, pois o estéreo da articulação central/lateral não oferece nenhum benefício. Um codificador de MP3 pode alternar entre estéreo m/s e estéreo completo quadro a quadro.[59][64][72]

Ao contrário das Layers I e II, o MP3 usa codificação Huffman de comprimento variável (após perceptual) para reduzir ainda mais a taxa de bits, sem qualquer perda adicional de qualidade.[57][60]

Qualidade editar

A quantização mais refinada e seletiva do MP3 se mostra notavelmente superior ao MP2 em taxas de bits mais baixas. Ele é capaz de fornecer qualidade de áudio quase equivalente à Layer II, com uma taxa de bits 15% menor (aproximadamente).[69][70] 128 kbit/s é considerado o "ponto ideal" para MP3; o que significa que fornece som estéreo de qualidade geralmente aceitável na maioria das músicas, e há melhorias de qualidade decrescentes ao aumentar ainda mais a taxa de bits. O MP3 também é considerado como exibindo artefatos que são menos irritantes do que a Layer II, quando ambos são usados ​​em taxas de bits muito baixas para possivelmente fornecer uma reprodução fiel.

Os arquivos de áudio da layer III usam a extensão ".mp3".

Extensões de áudio MPEG-2 editar

O padrão MPEG-2 inclui várias extensões para áudio MPEG-1.[60] Estes são conhecidos como MPEG-2 BC – compatível com MPEG-1 Audio.[73][74][75][76] O áudio MPEG-2 é definido na ISO/IEC 13818-3.

Essas taxas de amostragem são exatamente a metade daquelas originalmente definidas para áudio MPEG-1. Eles foram introduzidos para manter um som de qualidade superior ao codificar áudio em taxas de bits mais baixas.[25] As taxas de bits ainda mais baixas foram introduzidas porque os testes mostraram que o áudio MPEG-1 poderia fornecer maior qualidade do que qualquer codec de áudio de taxa de bits muito baixa (ou seja, fala) existente (c. 1994).[77]

Part 4: Conformance testing editar

A Parte 4 do padrão MPEG-1 abrange os testes de conformidade e é definida na ISO/IEC-11172-4.

Conformidade: Procedimentos para testar a conformidade.

Fornece dois conjuntos de diretrizes e fluxos de bits de referência para testar a conformidade de decodificadores de áudio e vídeo MPEG-1, bem como os fluxos de bits produzidos por um codificador.[16][23]

Part 5: Reference software editar

A Parte 5 do padrão MPEG-1 inclui software de referência e é definida na ISO/IEC TR 11172–5.

Simulação: Software de referência.

Código de referência C para codificação e decodificação de áudio e vídeo, bem como multiplexação e desmultiplexação.[16][23]

Isso inclui o código do codificador de áudio ISO Dist10, no qual o LAME e o TooLAME foram originalmente baseados.

Extensão de arquivo editar

.mpg é uma das várias extensões de arquivo para compactação de áudio e vídeo MPEG-1 ou MPEG-2. O vídeo MPEG-1 Parte 2 é raro hoje em dia e essa extensão geralmente se refere a um fluxo de programa MPEG (definido em MPEG-1 e MPEG-2) ou fluxo de transporte MPEG (definido em MPEG-2). Outros sufixos como .m2ts também existem especificando o contêiner preciso, neste caso MPEG-2 TS, mas isso tem pouca relevância para a mídia MPEG-1.

.mp3 é a extensão mais comum para arquivos contendo áudio MP3 (normalmente MPEG-1 Audio, às vezes MPEG-2 Audio). Um arquivo MP3 é tipicamente um fluxo incontido de áudio bruto; a maneira convencional de marcar arquivos MP3 é gravando dados em segmentos de "lixo" de cada quadro, que preservam as informações da mídia, mas são descartados pelo reprodutor. Isso é semelhante em muitos aspectos a como os arquivos .AAC brutos são marcados (mas isso é menos suportado hoje em dia, por exemplo, iTunes).

Observe que, embora se aplique, .mpg normalmente não acrescenta AAC bruto ou AAC em Contêineres MPEG-2 Parte 7. A extensão .aac normalmente denota esses arquivos de áudio.

Ver também editar

  • MPEG The Moving Picture Experts Group, desenvolvedores do padrão MPEG-1
  • MP3 Detalhes adicionais menos técnicos sobre MPEG-1 Audio Layer III
  • MPEG-2 O sucessor direto do padrão MPEG-1.
Implementações
  • LAME Um codificador de áudio MP3 de alta qualidade.
  • Musepack Um formato originalmente baseado em MPEG-1 Audio Layer II, mas agora incompatível.

Referências

  1. a b Patel K, Smith BC, Rowe LA (1 de setembro de 1993). «Performance of a software MPEG video decoder». Proceedings of the First ACM International Conference on Multimedia. ACM Multimedia. New York City: Association for Computing Machinery. pp. 75–82. ISBN 978-0-89791-596-0. doi:10.1145/166266.166274  Reference 3 in the paper is to Committee Draft of Standard ISO/IEC 11172, December 6, 1991.
  2. a b c d e f Adler, Mark; Popp, Harald; Hjerde, Morten (9 de novembro de 1996). «MPEG-FAQ: multimedia compression [1/9]». faqs.org. Consultado em 25 de janeiro de 2023. Cópia arquivada em 4 de janeiro de 2017 
  3. a b c d e f g h Le Gall, Didier (Abril de 1991). «MPEG: a video compression standard for multimedia applications» (PDF). Communications of the ACM. Consultado em 11 de novembro de 2016. Cópia arquivada (PDF) em 27 de janeiro de 2017 
  4. Chiariglione, Leonardo (21 de outubro de 1989). «Kurihama 89 press release». ISO/IEC. Consultado em 7 de janeiro de 2023. Arquivado do original em 5 de agosto de 2010 
  5. ISO/IEC JTC 1/SC 29 (30 de outubro de 2009). «Programme of Work — Allocated to SC 29/WG 11, MPEG-1 (Coding of moving pictures and associated audio for digital storage media at up to about 1,5 Mbit/s)». Consultado em 7 de janeiro de 2023. Arquivado do original em 31 de dezembro de 2013 
  6. ISO. «ISO/IEC 11172-1:1993 – Information technology – Coding of moving pictures and associated audio for digital storage media at up to about 1,5 Mbit/s – Part 1: Systems». Consultado em 11 de novembro de 2016. Cópia arquivada em 7 de janeiro de 2023 
  7. MPEG. «About MPEG – Achievements». chiariglione.org. Consultado em 7 de janeiro de 2023. Arquivado do original em 8 de julho de 2008 
  8. MPEG. «Terms of Reference». chiariglione.org. Consultado em 7 de janeiro de 2023. Arquivado do original em 21 de fevereiro de 2010 
  9. a b MPEG. «MPEG standards – Full list of standards developed or under development». chiariglione.org. Consultado em 7 de janeiro de 2023. Arquivado do original em 20 de abril de 2010 
  10. Lea, William (1994). Video on demand: Research Paper 94/68. [S.l.]: House of Commons Library. Consultado em 12 de janeiro de 2023. Arquivado do original em 20 de setembro de 2019 
  11. «History of Video Compression». ITU-T. Joint Video Team (JVT) of ISO/IEC MPEG & ITU-T VCEG (ISO/IEC JTC1/SC29/WG11 and ITU-T SG16 Q.6). Julho de 2002. pp. 11, 24–9, 33, 40–1, 53–6. Consultado em 12 de janeiro de 2023 
  12. Ghanbari, Mohammed (2003). Standard Codecs: Image Compression to Advanced Video Coding. [S.l.]: Institution of Engineering and Technology. pp. 1–2. ISBN 9780852967102 
  13. «The History of Video File Formats Infographic». RealNetworks. 22 de abril de 2012. Consultado em 12 de janeiro de 2023 
  14. Hans Geog Musmann. «Genesis of the MP3 Audio Coding Standard» (PDF). Consultado em 12 de janeiro de 2023. Arquivado do original (PDF) em 17 de janeiro de 2012 
  15. a b c d e f g h i j k l Fogg, Chad (2 de abril de 1996). «MPEG-2 FAQ (archived website)». University of California, Berkeley. Consultado em 12 de janeiro de 2023. Cópia arquivada em 16 de junho de 2008 
  16. Chiariglione, Leonardo (Março de 2001). «Open source in MPEG». Linux Journal. Consultado em 12 de janeiro de 2023. Arquivado do original em 25 de julho de 2011 
  17. a b c d Chiariglione, Leonardo; Le Gall, Didier; Musmann, Hans-Georg; Simon, Allen (Setembro de 1990). «Press Release – Status report of ISO MPEG». ISO/IEC. Consultado em 12 de janeiro de 2023. Arquivado do original em 14 de fevereiro de 2010 
  18. «Meetings». ISO/IEC. Consultado em 12 de janeiro de 2023. Arquivado do original em 10 de fevereiro de 2010 
  19. a b «The MPEG-FAQ, Version 3.1». Consultado em 12 de janeiro de 2023. Arquivado do original em 23 de julho de 2009. Q. Well, then how do I get the documents, like the MPEG I draft? A. MPEG is a draft ISO standard. It's [sic] exact name is ISO CD 11172. [...] You may order it from your national standards body (e.g. ANSI in the USA) or buy it from companies like OMNICOM [...] 
  20. «MPEG Press Release» (Nota de imprensa). ISO/IEC JTC1/SC29/WG11. 6 de novembro de 1992. Consultado em 12 de janeiro de 2023. Arquivado do original em 12 de agosto de 2010 
  21. «Abstract Page #101». Consultado em 12 de janeiro de 2023. Arquivado do original em 6 de outubro de 2008  «BMRC». Consultado em 12 de janeiro de 2023. Arquivado do original em 12 de junho de 2008  A Continuous Media Player, Lawrence A. Rowe and Brian C. Smith, Proc. 3rd Int. Workshop on Network and OS Support for Digital Audio and Video, San Diego CA (November 1992)[ligação inativa]
  22. a b c «Achievements». ISO/IEC. Consultado em 12 de janeiro de 2023. Arquivado do original em 8 de julho de 2008 
  23. Chiariglione, Leonardo (6 de novembro de 1992). «MPEG Press Release, London, 6 November 1992». ISO/IEC. Consultado em 12 de janeiro de 2023. Arquivado do original em 12 de agosto de 2010 
  24. a b c Wallace, Greg (2 de abril de 1993). «Press Release». ISO/IEC. Consultado em 12 de janeiro de 2023. Arquivado do original em 6 de agosto de 2010 
  25. a b c d Popp, Harald; Hjerde, Morten (9 de novembro de 1996). «MPEG-FAQ: multimedia compression [2/9]». faqs.org. Consultado em 12 de janeiro de 2023. Cópia arquivada em 4 de janeiro de 2017 
  26. «INTERNATIONAL ORGANISATION FOR STANDARDISATION ORGANISATION INTERNATIONALE DE NORMALISATION ISO». 26 de julho de 2010. Consultado em 12 de janeiro de 2023. Arquivado do original em 26 de julho de 2010 
  27. ISO/IEC JTC 1/SC 29 (17 de julho de 2010). «MPEG-1 (Coding of moving pictures and associated audio for digital storage media at up to about 1,5 Mbit/s)». Consultado em 12 de janeiro de 2023. Arquivado do original em 31 de dezembro de 2013 
  28. ISO. «ISO/IEC 11172-1:1993 – Information technology – Coding of moving pictures and associated audio for digital storage media at up to about 1,5 Mbit/s – Part 1: Systems». Consultado em 12 de janeiro de 2023. Cópia arquivada em 30 de agosto de 2017 
  29. ISO. «ISO/IEC 11172-2:1993 – Information technology – Coding of moving pictures and associated audio for digital storage media at up to about 1,5 Mbit/s – Part 2: Video». Consultado em 12 de janeiro de 2023. Cópia arquivada em 30 de agosto de 2017 
  30. ISO. «ISO/IEC 11172-3:1993 – Information technology – Coding of moving pictures and associated audio for digital storage media at up to about 1,5 Mbit/s – Part 3: Audio». Consultado em 12 de janeiro de 2023. Cópia arquivada em 15 de maio de 2017 
  31. ISO. «ISO/IEC 11172-4:1995 – Information technology – Coding of moving pictures and associated audio for digital storage media at up to about 1,5 Mbit/s – Part 4: Compliance testing». Consultado em 12 de janeiro de 2023. Cópia arquivada em 30 de agosto de 2017 
  32. ISO. «ISO/IEC TR 11172-5:1998 – Information technology – Coding of moving pictures and associated audio for digital storage media at up to about 1,5 Mbit/s – Part 5: Software simulation». Consultado em 12 de janeiro de 2023. Cópia arquivada em 30 de agosto de 2017 
  33. Ozer, Jan (12 de outubro de 2001). «Choosing the Optimal Video Resolution: The MPEG-2 Player Market». extremetech.com. Consultado em 12 de janeiro de 2023. Cópia arquivada em 7 de junho de 2011 
  34. «Comparison between MPEG 1 & 2». Consultado em 12 de janeiro de 2023. Cópia arquivada em 10 de fevereiro de 2012 
  35. «MPEG 1 And 2 Compared». Pure Motion Ltd. 2003. Consultado em 12 de janeiro de 2023. Arquivado do original em 14 de dezembro de 2005 
  36. Dave Singer (9 de novembro de 2007). «homework] summary of the video (and audio) codec discussion». Consultado em 12 de janeiro de 2023. Cópia arquivada em 21 de dezembro de 2016 
  37. «MPEG-1 Video Coding (H.261)». Library of Congress, Digital Preservation. 21 de outubro de 2014. Consultado em 12 de janeiro de 2023. Cópia arquivada em 11 de janeiro de 2017 
  38. «ISO Standards and Patents». Consultado em 12 de janeiro de 2023. Cópia arquivada em 15 de novembro de 2016. Search for 11172 
  39. Patent Status of MPEG-1,H.261 and MPEG-2
  40. «[gst-devel] Can a MPEG-1 with Audio Layers 1&2 plugin be in plugins-good (patentwise)?». SourceForge.net. 23 de agosto de 2008. Consultado em 12 de janeiro de 2023. Cópia arquivada em 2 de fevereiro de 2014 
  41. «[whatwg] MPEG-1 subset proposal for HTML5 video codec». lists.whatwg.org. Consultado em 12 de janeiro de 2023. Arquivado do original em 19 de julho de 2011 
  42. http://patft1.uspto.gov/netacgi/nph-Parser?patentnumber=5214678 Arquivado em 2012-07-13 na Archive.today "Digital transmission system using subband coding of a digital signal" Filed: May 31, 1990, Granted May 25, 1993, Expires May 31, 2010?
  43. «mp3». Fraunhofer Institute for Integrated Circuits IIS. Consultado em 12 de janeiro de 2023. Cópia arquivada em 22 de março de 2018 
  44. «ISO Standards and Patents». ISO. Consultado em 12 de janeiro de 2023 
  45. a b c d e f g Grill, B.; Quackenbush, S. (Outubro de 2005). «MPEG-1 Audio». ISO/IEC. Arquivado do original em 30 de abril de 2010 
  46. Chiariglione, Leonardo. «MPEG-1 Systems». ISO/IEC. Consultado em 12 de janeiro de 2023. Cópia arquivada em 12 de novembro de 2016 
  47. a b «Pack Header». Consultado em 12 de janeiro de 2023. Cópia arquivada em 27 de outubro de 2016 
  48. Fimoff, Mark; Bretl, Wayne E. (1 de dezembro de 1999). «MPEG2 Tutorial». Consultado em 12 de janeiro de 2023. Cópia arquivada em 12 de novembro de 2016 
  49. Fimoff, Mark; Bretl, Wayne E. (1 de dezembro de 1999). «MPEG2 Tutorial». Consultado em 12 de janeiro de 2023. Cópia arquivada em 5 de novembro de 2016 
  50. Fimoff, Mark; Bretl, Wayne E. (1 de dezembro de 1999). «MPEG2 Tutorial». Consultado em 12 de janeiro de 2023. Cópia arquivada em 5 de novembro de 2016 
  51. Fimoff, Mark; Bretl, Wayne E. (1 de dezembro de 1999). «MPEG2 Tutorial». Consultado em 12 de janeiro de 2023. Cópia arquivada em 12 de novembro de 2016 
  52. «Espaços de cores YCbCr». HiSoUR Arte. Consultado em 16 de fevereiro de 2024 
  53. Acharya, Soam; Smith, Brian (1998). «Compressed Domain Transcoding of MPEG». Cornell University, IEEE Computer Society, IEEE International Conference on Multimedia Computing and Systems. 3 páginas. Consultado em 12 de janeiro de 2023. Cópia arquivada em 23 de janeiro de 2005 
  54. a b c Wee, Susie J.; Vasudev, Bhaskaran; Liu, Sam (13 de março de 1997). «Transcoding MPEG Video Streams in the Compressed Domain». Hewlett-Packard. CiteSeerX 10.1.1.24.633 . Consultado em 17 de janeiro de 2023. Cópia arquivada em 17 de agosto de 2007 
  55. «BMRC». Consultado em 17 de janeiro de 2023. Arquivado do original em 3 de maio de 2009 
  56. a b c d e f Thom, D.; Purnhagen, H. (Outubro de 1998). «MPEG Audio FAQ Version 9». ISO/IEC. Consultado em 17 de janeiro de 2023. Arquivado do original em 18 de fevereiro de 2010 
  57. «MPEG Audio Frame Header». Consultado em 17 de janeiro de 2023. Arquivado do original em 8 de fevereiro de 2015 
  58. a b c d e f Church, Steve. «Perceptual Coding and MPEG Compression». NAB Engineering Handbook, Telos Systems. Consultado em 17 de janeiro de 2023. Arquivado do original em 8 de maio de 2001 
  59. a b c d e f g h i j Pan, Davis (1995). «A Tutorial on MPEG/Audio Compression» (PDF). IEEE MultiMedia Journal. 8 páginas. Consultado em 26 de janeiro de 2023. Arquivado do original (PDF) em 19 de setembro de 2004 
  60. Smith, Brian (1996). «A Survey of Compressed Domain Processing Techniques». Cornell University. 7 páginas. Consultado em 9 de abril de 2008. Cópia arquivada em 23 de fevereiro de 2011 
  61. Cheng, Mike. «Psychoacoustic Models in TwoLAME». twolame.org. Consultado em 17 de janeiro de 2023. Cópia arquivada em 22 de outubro de 2016 
  62. Grill, B.; Quackenbush, S. (outubro de 2005). «MPEG-1 Audio». Consultado em 25 de janeiro de 2023. Cópia arquivada em 27 de abril de 2008 
  63. a b Herre, Jurgen (5 de outubro de 2004). «From Joint Stereo to Spatial Audio Coding» (PDF). International Conference on Digital Audio Effects. 2 páginas. Consultado em 26 de janeiro de 2023. Arquivado do original (PDF) em 5 de abril de 2006 
  64. C.Grewin, and T.Ryden, Subjective Assessments on Low Bit-rate Audio Codecs, Proceedings of the 10th International AES Conference, pp 91 - 102, London 1991
  65. J. Johnston, Estimation of Perceptual Entropy Using Noise Masking Criteria, in Proc. ICASSP-88, pp. 2524-2527, May 1988.
  66. J. Johnston, Transform Coding of Audio Signals Using Perceptual Noise Criteria, IEEE Journal on Select Areas in Communications, vol. 6, no. 2, pp. 314-323, Feb. 1988.
  67. Wustenhagen et al., Subjective Listening Test of Multi-channel Audio Codecs, AES 105th Convention Paper 4813, San Francisco 1998
  68. a b B/MAE Project Group (Setembro de 2007). «EBU evaluations of multichannel audio codecs» (PDF). European Broadcasting Union. Consultado em 25 de janeiro de 2023. Arquivado do original (PDF) em 30 de outubro de 2008 
  69. a b Meares, David; Watanabe, Kaoru; Scheirer, Eric (fevereiro de 1998). «Report on the MPEG-2 AAC Stereo Verification Tests» (PDF). ISO/IEC. p. 18. Consultado em 26 de janeiro de 2023. Arquivado do original (PDF) em 14 de abril de 2008 
  70. Painter, Ted; Spanias, Andreas (Abril de 2000). «Perceptual Coding of Digital Audio (Proceedings of the IEEE, VOL. 88, NO. 4)» (PDF). Proceedings of the IEEE. Consultado em 26 de janeiro de 2023. Arquivado do original (PDF) em 16 de setembro de 2006 
  71. Amorim, Roberto (19 de setembro de 2006). «GPSYCHO - Mid/Side Stereo». LAME. Consultado em 26 de janeiro de 2023. Cópia arquivada em 16 de dezembro de 2016 
  72. ISO (Outubro de 1998). «MPEG Audio FAQ Version 9 – MPEG-1 and MPEG-2 BC». ISO. Consultado em 26 de janeiro de 2023. Arquivado do original em 18 de fevereiro de 2010 
  73. D. Thom, H. Purnhagen, and the MPEG Audio Subgroup (Outubro de 1998). «MPEG Audio FAQ Version 9 - MPEG Audio». Consultado em 26 de janeiro de 2023. Cópia arquivada em 7 de agosto de 2011 
  74. MPEG.ORG. «AAC». Consultado em 26 de janeiro de 2023. Arquivado do original em 31 de agosto de 2007 
  75. ISO (15 de janeiro de 2006). «ISO/IEC 13818-7, Fourth edition, Part 7 – Advanced Audio Coding (AAC)» (PDF). Consultado em 26 de janeiro de 2023. Cópia arquivada (PDF) em 6 de março de 2009 
  76. Chiariglione, Leonardo (11 de novembro de 1994). «Press Release». ISO/IEC. Consultado em 26 de janeiro de 2023. Arquivado do original em 8 de agosto de 2010 

Ligações externas editar