Tecnologias Colaborativas Populares


Motion JPEG (MJPEG)

MJPEG, para “motion-JPEG”, é uma técnica de codificação que simplesmente comprime na forma JPEG cada quadro de vídeo antes da transmissão. Há muitas vantagens na utilização dessa tecnologia, assim como desvantagens.

As principais vantagens do MJPEG são que a compressão JPEG é muito barata para se fazer em hardware e ele suporta quase que qualquer tamanho de quadro de vídeo que você queira transmitir (sujeito somente a uma restrição de preenchimento de 8x8, portanto a imagem talvez tenha que ser preenchida em um software). Isso quer dizer que você pode usar o MJPEG para quadros de vídeo de tamanho sub-QCIF até tamanho grande 1080i-HDTV (1920x1080) ou além.

MJPEG não usa compressão inter-quadro, o que resulta em transmissão com baixo período de latência. A qualidade da imagem irá variar de forma gigantesca baseada na velocidade e qualidade do codec, assim como na disponibilidade de largura de banda para a transmissão.

O único empecilho do MJPEG é a falta de produtos que o utilizem e os problemas de interoperabilidade que cercam uma tecnologia que possui poucos defensores. Ele também tem sido visto como uma tecnologia fracassada do passado, amplamente suprimida por tecnologias de codificação mais modernas e com maior eficiência de largura de banda.

A arquitetura do MJPEG usa tiles JPEG normais e nenhuma informação inter-quadros, significando que erros ou perda de pacotes na rede somente influenciam um tile, ou uma linha de tiles, em uma imagem, e o erro não se propaga for vários quadros. Se ocorrer uma maior perda de pacotes entretanto, os usuários podem presenciar um maior tiling assim como uma significante degradação da imagem do vídeo.

Uma abordagem comum dos codecs MJPEG é dar ao usuário duas escolhas para compressão. Um determina um nível de compressão fixo, ou "Q-value" na terminologia JPEG, para o codec DCT, que, então, comprime cada quadro de vídeo e o transmite. Enquanto este fornece um fluxo de vídeo bastante estável, ele pode consumir largura de banda muito rápido, especialmente se houver muitos detalhezinhos (“alta freqüência de dados”) nas imagens.

Uma abordagem alternativa permite estabelecer uma capacidade de largura de banda, dessa forma permitindo que o Q-value varie de quadro para quadro mantendo a cobertura de largura de banda. Nesta abordagem, a qualidade da imagem vai variar um pouco de quadro-a-quadro. Essa abordagem é melhor usada em cenários de videoconferência onde há pouco ou nenhum movimento.

O MJPEG comprime automaticamente a taxa de quadro do vídeo bruto baseando-se no codec usado, de tal modo que não há problemas em lidar com NTSC, PAL, SECAM ou qualquer outro codec, todos no mesmo sistema. Alguns produtos permitem que você especifique uma taxa de quadros particular (como, por exemplo, uma fração do fluxo fonte) e, novamente, utiliza o Q-factor versus a disposição da largura de banda acima para ajustar com grande precisão a performance de um vídeo-link.

A respeito da precisão do quadro, o material codificado pelo MJPEG é bastante consistente, fazendo a edição ser bem mais fácil – em comparação ao material comprimido pelo inter-quadro, onde você precisa trabalhar com quadros-chave ou descomprimir e recomprimir quadros intermediários com suas freqüentes perdas de qualidade. Uma variedade de software editores de vídeo usam o MJPEG para armazenamento no disco por essa razão, convertendo para MPEG ou outros formatos quando escrevendo para uma fita ou VCD/DVD.

O MJPEG baseado em DCT não irá funcionar bem em um ambiente com largura de banda restrita. Um sinal PAL/NTSC com 25/29.97fps parece bom em 2Mbps. Muito abaixo dessa velocidade, a imagem rapidamente se tornará quadriculada, já que o Q-factor deve ser dirigido com valores menores. Tipicamente, você pode melhorar a imagem utilizando uma taxa de quadros mais baixa, mas isso irá funcionarl somente em cenários específicos de colaboração. Para larguras de banda abaixo de 2Mbps em resolução PAL/NTSC, seria melhor você considerar o uso de um codec como o H.263, MPEG ou um com uma resolução mais baixa.

A mais nova mudança é o suporte ao mais novo padrão JPEG-2000. Isso afastou a compressão DCT usada no “velho” JPEG, e também H.261/H.263, MPEG e outros, em direção a compressões "wavelet" de dados de imagens. A compressão alcançada possui mais flexibilidade (por exemplo, você pode identificar regiões de quadros que são mais importantes do que outras e, portanto, obter um melhor tratamento do codec). Ela possui melhor capacidade de recuperação de erros (uma de suas aplicações é a transmissão de vídeo wireless para dispositivos de largura de banda baixa) e você pode embutir metadados mais facilmente com os dados da imagem. Neste estágio, o suporte a MJPEG2000 está ainda em sua infância e tudo é feito em software, mas possui potencial significante. O material amostrdo em 64-256Kbps é comparável a qualidade H263 e mesmo CIF a 32Kbps é aceitável para certos usos.

Produtos que suportam MPEG incluem codecs baseados em ATM, assim como os produtos StreamRunner da Marconi (ex-Fore's), placas de PC, tais como a LML33 do LinuxMediaLabs ou software como os produtos PICVideo da Pegasus Imaging Corp's (www.jpg.com) e o software mjpeg da Morgan Multimediam (e mjpeg2000). Experimente entrar com "MJPEG" em seu site favorito de busca na web.