Archive for the ‘codificação’ Category

DoubleClick lança propaganda com Vídeo HD (H.264)

Thursday, February 28th, 2008

DoubleClick HD VideoA DoubleClick anunciou ontem a disponibilidade de anúncios de vídeo em HD (DoubleClick HD Video) usando o CODEC H.264 com o Flash Player 9.0.115+.

Para os usuários que não tiverem a versão do Flash Player com suporte ao H.264 o fall-back exibe a propaganda na versão não-HD. Veja o Ad em HD e a alternativa de Ad não-HD.

Reparei, entretanto, que o consumo de CPU na minha nova máquina com Core 2 Duo 2.13GHz foi consideravelmente mais alto, como era de se esperar.

Stage6 fecha as portas

Tuesday, February 26th, 2008

Stage6 logo

O projeto de vídeos de usuários da DivX, o Stage6, fechou oficialmente segundo press release da empresa, como já sabiamos a matemática de concorrer com o YouTube é um jogo para poucos e a DivX não conseguiu bancar a operação por muito tempo.

“So why are we shutting the service down? Well, the short answer is that the continued operation of Stage6 is a very expensive enterprise that requires an enormous amount of attention and resources that we are not in a position to continue to provide. There are a lot of other details involved, but at the end of the day it’s really as simple as that.”

http://www.onlinevideowatch.com/divx-shutters-stage6/

BBC lança seu player em Flash Embedded

Wednesday, January 2nd, 2008

Com o anúncio da BBC em Outubro oassado de que adotaria o padrão Flash Video (com codec H.264) era só uma questão de tempo até que ela lançasse seu primeiro player usando a tecnologia da Adobe.

Claro que não é lá grande coisa, mas para uma empresa tradicional, apesar de ser inovadora, como a BBC isso deve ter sido um imenso passo e várias discussões deve ter ocorrido até que esta iniciativa fosse aprovada, mas (felizmente) é inevitável. A distribuição do conteúdo em diversos sites e devices é uma realidade sem volta e este deve ser o caminho que os grandes grupos de mídia devem seguir.

Link para saber como colocar o vídeo embedded:
http://www.bbc.co.uk/later/series30/episode07/kt_tunstall/

Link para o site oficial de share de videos da BBC:
http://www.bbc.co.uk/later/share_video/

Find out more at bbc.co.uk/later

Uso de Algoritimo Genético para melhorar a qualidade dos vídeos

Monday, October 29th, 2007

Dada a complexidade dos codificadores de vídeo atuais, senti a necessidade de automatizar o processo de seleção de um novo perfil de codifição, coisa que pretendemos fazer com mais frequência, já que estamos expandindo as nossas frentes para novos formatos.

O protótipo desse sistema foi concebido para ser um agente que automatiza o processo manual e me ajuda a tomar decisões quando a parâmetros obscuros, para maximizar a qualidade do vídeo, enquanto minimizamos tempo de codificação e o peso do arquivo codificado. Logo na primeira noite que esse avaliador rodou conseguimos resultados animadores — no grafico abaixo, a linha verde mostra o aumento de qualidade e a vermelha como o tempo de codificação se mantem baixo.

gráfico de melhoria do profile de flash para a propaganda do sprite

Tinhamos um perfil rápido de qualidade mediana e um de boa qualidade que demorava muito para processar os vídeos; alimentei o algoritimo com esses dois perfis e vários outros gerados aleatóriamente. Pelo gráfico vemos que pouco a pouco ele vai encontrando parâmetros que proporcionam um aumento notável de qualidade e esse vai passando para quase toda a população (por exemplo próximo ao indivíduo 1000 acontece uma grande melhora no qualidade/PSNR e depois de estabilizar por um bom tempo ele encontra outro próximo ao 5000)

Esse protótipo foi escrito em Perl, com uma versão levemente alterada do AI::Genetic, que logo planejamos alterar ainda mais para paralelizar o processo, que ainda é um tanto demorado por causa da fila de codificação usada para verificar os perfis produzidos pelo algoritmo genético. Para isso temos a intenção de integrar a nova geração do sistema de codificação e de controle de qualidade, que usam a EFMod2ZeroConf (projeto pessoal do Fernando), com esse avaliador de perfis de codificação. E dessa forma otimizar os recursos entre as nossas máquinas de teste (que são usadas para todos esses projetos independentes) e, possivelmente, entre as de produção, que poderiam facilmente usar a mesma infra-estrutura para produzir e verificar a qualidade.

Extrapolando essa ideia, poderiamos fazer o que já queriamos a algum tempo criar profiles especializados para cada tipo de conteudo, mas era inviável, dada a complexidade que era criar e testar novos profiles. Com essa tecnologia poderiamos deixar o sistema se auto-avaliando e otimizando diariamente, no periodo noturno que atualmente é inativo, e tudo isso individualmente, para cada tipo de conteúdo (telejornais, novelas, futebol, basquete, …), cada programa, até mesmo para cada uma da midias, usando o tempo do agendamento ou regerando mais tarde as que não tenham ficado tão boas.

Placas de vídeo modernas reduzem o tempo de codificação de vídeo

Monday, October 8th, 2007

Os resultados preliminares dos testes de codificação de vídeo por GPU são animadores.

Verificamos que a codificações de alta resolução, com codecs da próxima geração, pode ser feita em menos da metade da duração do vídeo; quando com a tecnologia atual, para obter qualidade semelhante, gastaríamos algo como quatro vezes o tempo do vídeo.

Esses testes são tão necessários porque a próxima geração de codificação de vídeo é extremamente onerosa, e mais ainda, se pretendemos acompanhar a tendência de convergência precisamos gerar mais formatos para os diversos aparelhos capazes de consumir vídeo, aumentando ainda mais o custo de codificação.

Para isso temos pesquisado formas de codificar mais rápido, assim como adiar certas codificações menos prioritárias para depois, no caso dos formatos periféricos (como por exemplo: PSP, iPhone, MP4 players, …)

A pesquisa começou sabendo da possibilidade de executar códigos genéricos nas GPUs e tendo em mente que com uma placa dessas um computador simples pode-se tornar mais poderoso que um super computador de alguns anos atrás. Tendo visto vários pequenos projetos para filtros de tirar ruídos de vídeo usando a GPU e outras pequenas coisas.

Logo apareceu nas buscas as tecnologias da ATI e NVIDIA, respectivamente AVIVO e PureVideo. Ambas capazes de decodificar vídeo de alta definição (HD) para que fosse possível aos computadores acompanharem as tendências que alcançam os Home Teathers.

Mas, pra nós, tem uma diferença fundamental entre elas, a AVIVO também codifica vídeo, o que simplifica muito nosso trabalho de usar a GPU para nosso benefício.

Então nos pusemos a testar uma Radeon X300 (chipset RV370). Encadeamos então os filtros DirectShow disponibilizados pela ATI com o graphedit, para decodificar, filtrar ruído, redimensionar o vídeo, codificar no formato final e empacotá-lo no “envelope” final. O resultado foi impressionante, com qualidade equivalente, a codificação terminava em um quinto do tempo, e alem de usar a GPU os drivers da ATI faziam um uso bem melhor da CPU. Mas a placa de vídeo era obviamente inferior, quando aplicados filtros mais sofisticados o kernel time no gráfico de utilização subia desproporcionalmente, indicando que o sistema estava esperando pelo processamento da placa de vídeo.

Recentemente testamos com a Radeon HD 2900 XT (chipset R600), uma placa de vídeo da ATI que ocupa 2 slots e usa 2 cabos de força extra, o que a torna um pouco complicada de ligar num gabinete convencional. Por isso tivemos que fazer um adaptador que tirar energia dos conectores de força para disco que estavam sobrando, já que a fonte utilizada no teste tinha apenas um conector de força extra para PCI-e 2×3 (3xterra, 3×12V) e a placa de vídeo não liga sem ao menos 6 entradas de 12V extra .

É preciso tomar muito cuidado porque existem muitos conectores incorretos no mercado, alguns ligando 1 cabo de 12V em 3 pinos, obviamente sobrecarregando o cabo; outras invertendo o terra com o 12V, o que queimaria a placa; ainda outras com ligações esquisitas, como um par de pinos com terras dos dois lados, no que se esperaria 12V e no que seria terra mesmo.

Tendo resolvido isso notamos que a HD2900 codificava na metade do tempo da X300, mas parece claro que falta CPU para acompanhar o poder de processamento dessa GPU mais nova, então testamos os filtros de redução de ruído mais pesados, para tentar extrair o máximo da placa de vídeo, e obtivemos um resultado bastante satisfatório o vídeo foi processado em real-time para a melhor combinação de filtros que temos.

Ainda estamos muito no começo na pesquisa de codificação por GPU, mas creio que essa seja uma alternativa essencial para reduzir custos e tempo para a próxima geração de vídeo na web.