-->

quarta-feira, 12 de maio de 2010

MyBinComp: comparação simples de arquivos binários.

No meu post sobre o Treediff o leitor Nickfeio perguntou sobre o que fazer quando Treediff aponta que dois arquivos tem CRC diferente, para saber que diferença é essa. Afinal, é um byte só ou milhares deles? Existem vários programas que fazem isso, mas como nenhum dos que eu conheço atende inteiramente minhas necessidades eu já vinha preparando o meu próprio utilitário com essa finalidade. E decidi que poderia ser útil para outras pessoas.




Em comparações realmente complexas (quando eu estou estudando hacks em firmwares, por exemplo) eu uso o modo binário do UltraCompare Professional, mas esse tipo de programa falha miseravelmente quando os arquivos a comparar são muito grandes, por causa da forma complexa com que tentam comparar.  MyBinComp opera do mesmo jeito com arquivos de alguns KB ou vários GB, porque apenas faz uma comparação byte-por-byte, sem tentar sincronizar diferenças.

Mais informações e download no site.

terça-feira, 11 de maio de 2010

Como assistir H.264 consumindo tão pouco quanto 0% de CPU (DXVA).

E sem precisar da ajuda de Hermione Granger. Mas você precisa do hardware adequado, pois não se trata  de magia, nem de milagre.

Notas:
  • Com o hardware indicado abaixo serão 0% de CPU sem legendas e uns 16% com legendas externas/embutidas ativadas. Isso independe, até onde sei, da complexidade ou bitrate do filme;
  • Cuidado para não se perder: H.264 é um termo genérico que, para os fins deste post, é sinônimo de x264 e MPEG-4 AVC. A diferença entre x264 e H.264 é a mesma que existe entre XVID e DivX (para os fins deste texto, nenhuma). Leia os artigos na en.Wikipedia para entender melhor.

Essa façanha pode ser realizada se sua placa de vídeo tiver suporte nativo a H.264 e puder ser acessada através de DXVA. Por default todos os codecs/filtros instalados no Windows sempre tentam fazer a decodificação por software, mesmo que sua GPU (a placa de vídeo) tenha suporte e esteja completamente livre e que sua CPU esteja engasgando com a carga. É preciso ativar manualmente o DXVA, que é o que explico neste post.

O hardware

Estou usando uma Geforce 8200, embutida na minha motherboard ECS GF8200A. Supostamente toda a série 8xxx e 9xxx de GPUs Nvidia decodificam H.264. Mesmo as onboard, como a minha.

Minha CPU é um Athlon X2 5200+.

O software

Basta usar o ffdshow * revision 3305 ou superior. Como se trata de um filtro DirectShow o benefício fica disponível para quase todos os players no Windows que não estejam usando filtros próprios.

* Baixe a versão SSE do ffdshow porque é improvável que você tenha uma GPU compatível com H.264 mas não tenha uma CPU compatível com SSE. E se sua CPU é compatível com SSE você vai perder desempenho se usar qualquer outra versão do ffdshow.

Eu testei com os seguintes players:
Atenção para o fato de que alguns desses players vem com seus próprios mecanismos de decodificação, que precisam ser desativados. O mais "fácil" de funcionar é o WMP (embora ele não goste da extensão MKV).

Testes feitos no Windows XP SP3. É preciso um procedimento especial para rodar o ffdshow no Seven, caso queira tentar com essa versão do Windows.


Configurando DXVA no ffdshow

O ffdshow tem um atalho específico para isto no Menu Iniciar:



Em tray, dialogs and paths, selecione Modern. Isso é dispensável, mas muito útil enquanto durarem os testes.




Esta é a configuração para assistir sem legendas externas/embutidas (CPU zero):



E esta é a modificação para habilitar as legendas:




Clique em OK e execute um H.264 para testar.

Como saber que está sendo usado o DXVA

O ffdshow mostra um icone distinto na bandeja. Tem que ser este, marrom, com o texto "FFVA" (requer que você tenha configurado o padrão "Modern").


Para funcionar no WMP o trabalho de configuração acaba aqui. Vou explicar adiante o que é preciso fazer para que isso funcione também com outros players.

Configurando outros players

Atenção: excetuando o WMP, todos os meus players estão em inglês porque eu não suporto tentar decifrar o português da maioria deles. Todos tem o idioma definido em algum lugar nos menus.

KMplayer

Para abrir esta janela tecle F2. Desmarque os itens destacados.


GOM player

Para abrir esta janela tecle F5. Marque o item destacado.


Media Player Classic - Home Cinema

Para abrir esta janela tecle "O" (Options). Desmarque os itens destacados.



Problemas

Se seu sistema estiver configurado corretamente o Graphedit mostrará um gráfico como este para um arquivo cujo stream de vídeo seja H.264:

Nota: se você tentar abrir um MKV e o Graphedit acusar que o formato não é suportado, instale o Haali Media Splitter 



Somente nos importa o caminho do video, destacado em vermelho.

Se o Graphedit mostrar algo diferente, DXVA não funcionará para o arquivo H.264 especificado. Se estiver diferente disso para todos os seus H.264, você tem um problema na sua instalação. Geralmente o Graphedit lhe dará pistas suficientes no gráfico para você saber quem é o culpado. Leia meu texto sobre o Graphedit para saber um pouco mais sobre isso.



Nem todo H.264 é compatível.

Pois é. Alguns filmes não podem ser acelerados por DXVA e vão precisar ser decodificados por software. Mas o ffdshow se encarrega de determinar isso e ativar o decoder correto. O ícone mostrado na bandeja será diferente.

Eu ainda não sei ao certo o que causa a incompatibilidade, mas em todas as amostras incompatíveis que testei, Mediainfo reportou um profile High@L5.1 e pelo menos 6 reframes no stream de vídeo:



Isso possivelmente é um problema da mesma natureza que o causado por Packet Bitstream em XviD e à medida que as "fontes" forem tomando conhecimento de que o problema existe você verá menos filmes incompatívels, porque elas aprenderão a evitar as configurações problemáticas. Se você procurar por "DXVA x264" no Google verá que alguns na "scene" já estão marcando alguns "releases" como compatíveis.

O consumo de energia

Como eu disse antes, não se trata de magia. Você pode até usar 0% de CPU, mas sua GPU vai cobrar pelo esforço extra. O quanto ela vai cobrar depende exclusivamente dela, mas como GPUs são teoricamente mais eficientes que CPUs quando o assunto é vídeo, dá para esperar uma economia de energia ao usar DXVA, o que pode ser particularmente interessante em notebooks.

Eu fiz um teste de alguns minutos aqui e meu medidor de energia no pior caso mostrou um aumento de 10W em relação ao consumo em idle. Comparando com as medições que fiz em dezembro eu estou chutando um consumo pelo menos 10W menor do que fazendo a mesma coisa sem DXVA. Eu ainda preciso fazer testes mais elaborados mas uma coisa parece garantida: você consome menos energia usando DXVA.

segunda-feira, 10 de maio de 2010

Comentários do blog estão desaparecendo ao publicar.

Esta foi a terceira vez que aconteceu (pelo menos, que eu notei). Acabo de publicar um comentário de "Pedro" no post anterior e este nem chegou a aparecer no post. Simplesmente sumiu. Se eu tento publicar de novo o Blogger diz que já foi moderado.

Encontrei outro usuário com o mesmo problema. Mas ainda nenhuma explicação.

Edit: só porque agora eu reclamei, o comentário apareceu!

domingo, 9 de maio de 2010

Mais um software "byRyan": MyPlay

Esse é destinado a usuários testando idéias para HTPC.



Mais informações no site.

domingo, 2 de maio de 2010

O consumo de energia de um Sempron 3000

Hardware
  • PCChips M861G V1.6a;
  • Um módulo DDR de 512MB;
  • Gravador LG GSA-H12N;
  • HDD SATA 7200RPM 160GB Western Digital WD1600JS;
  • Fonte vagabunda "300W" Clone cod.15048;
  • Nenhum overclock;
  • Nenhuma ventilação extra.
Windows XP SP3

Medições

Comum
  • Parado no post - 70W
  • Iniciando Windows - 80W
Cool'n'Quiet desabilitado (gerenciamento de energia default do XP)
  • Em idle no XP - 60W
  • Em idle no XP com drive de DVD aberto - 70W *
  • CPU a 100% (SuperPI) - 80W
Cool'n'Quiet habilitado (no BIOS e no Windows)
  • Em idle no XP - 50W
  • CPU a 100% (SuperPI) - 70W
  • Rodando um X.264 720p a partir do drive de DVD (90-100%) - Entre 80 e 90W
* Descobri isso por acaso. Preciso investigar por que esse drive de DVD consome mais energia quando está aberto do que fechado sem disco. E verificar se acontece com outros drives.


Notas:
  • Não faz diferença (mensurável) o Cool'n'Quiet enquanto o driver não estiver carregado