segunda-feira, 15 de agosto de 2016

Expansão funcional de captura HDMI para Raspberry Pi já existe, embora com limitações de software

raspberry pi captura hdmi
Módulo B101

Algumas pessoas esperaram muito para que isso fosse possível. Na verdade há muito tempo esse recurso já havia sido usado internamente pela Fundação Raspberry Pi na época de testes com seu Display Oficial, embora essa placa nunca tenha sido lançada de fato.

O blog pi3g reportou em sua visita ao Embedded World 2014 em Nuremberga a demonstração da placa de desenvolvimento utilizada na época pela Fundação.

Nesse módulo específico na imagem abaixo tirada por ele é perfeitamente visível a entrada HDMI e seu redirecionamento para o conector da câmera (CSI).

raspberry pi captura hdmi

A placa com o logo do Raspberry Pi à esquerda contém um chip Toshiba TC358743XBG que é uma ponte HDMI para MIPI CSI-2. Basicamente um conversor HDMI para um padrão aceito pelo input da GPU.

No mesmo ano de 2014 a Auvidea tentava emplacar sua campanha para uma expansão de captura HDMI. Na época que postei sobre o projeto aqui, ele já havia sido cancelado previamente pois a Auvidea que embora já tenha experiência com vídeo encontrou problemas que não conseguiram solucionar. Sua ideia era de alguma forma passar o formato diretamente pela interface e aparentemente não utilizavam um chip conversor para MIPI CSI-2.

A Auvidea não desistiu. A placa B101 utiliza o mesmo princípio e chip da placa demo utilizada pela fundação.

raspberry pi captura hdmi
Placa B101

Disponível desde 2015, esse módulo é algo praticamente experimental. A placa apesar de funcionar (justamente como a da fundação) carece de software. O preview via raspivid para apresentar na tela a entrada do HDMI é possível (por enquanto sem áudio), mas gravar o output é algo problemático, gravando a entrada em framerates errados por exemplo. Isso acontece pois originalmente as opções do raspivid repassam para o dispositivo de entrada o bitrate/framerate desejado (no caso da câmera). Para o HDMI, o chip da Toshiba simplesmente pega o input HDMI seja qual for a configuração, há detalhes que envolvem a leitura de EDID entre outros que a aplicação não suporta.

O suporte ao chip no firmware, originalmente utilizado para demonstração da fundação não é oficialmente suportado e pode parar de funcionar a qualquer momento.

No fórum oficial do Raspberry Pi há uma larga discussão (em inglês) na tentativa de desenvolver a parte de software sem depender do código legado e não mantido no firmware. Um ex-engenheiro (6by9) da Broadcom tem ajudado como pode no seu tempo vago a escrever uma ferramenta (um patch do raspivid) para controlar o chip via userland. Mas sua ideia final é uma integração da entrada via CSI2 no kernel do linux com o driver V4L2 de vídeo, que facilitaria bem as coisas.

O ex-engenheiro não responde pela fundação, mas tem uma boa relação com ela e continua a desenvolver voluntariamente os firmwares do Raspberry Pi com sua aprovação. Devido a essa relação, ele pediu emprestado o protótipo da fundação para ajudar nesse desenvolvimento por fora.

Após ler o tópico deixo também as seguintes observações:

- O suporte à modos entrelaçados (ex 1080i) não estão sendo desenvolvidos por enquanto, o foco é suportar bem os modos comuns.
- 1080p60 não será possível devido ao conector da câmera somente ter 2 linhas CSI-2 de 1gbps cada. Para 60fps nessa resolução seria necessário 2,9gbps, o que ultrapassa o máximo de 2gbps das duas em conjunto. Na teoria seria possível utilizando o Raspberry Pi Compute Module que contém mais linhas CSI-2, mas o encoder de vídeo só suporta até 1080p30 (H264 level 4). Entretanto pelo que deu a entender 720p60 será possível.
- Streams com HDCP naturalmente não serão suportados.

Apesar de estar ajudando muito, o ex-engenheiro o faz em seu tempo livre e de todo modo não entende todas as entranhas do V4L2 por exemplo. Ele pede que os que queiram ajudar de qualquer forma, entrem em contato.

Ele conta que vai tentar suportar os modelos antigos mas seus avanços estão sendo todos feitos em um Raspberry Pi 2. Para o funcionamento no Raspberry Pi 3 será necessário o redirecionamento de alguns GPIOs por exemplo, mas parece que ainda não foi testado.

No vídeo abaixo um dos compradores demonstra o funcionamento da versão da Auvidea com um framework que utiliza o driver legado do firmware (não suportado oficialmente):



A placa B101 vendida pela Auvidea sem os impostos (dependem de localidade) custa €69.80 (R$248,58).

raspberry pi captura hdmi

Há ainda uma versão para o Raspberry Pi Compute Module, a B102 que custa €139.00 (R$495,02). A diferença básica é que essa versão vem com conector e cabo de 22 pinos utilizado na placa mãe modelo do CM.

raspberry pi captura hdmi

A placa hoje é destinada mais para desenvolvedores que queiram testar ou ajudar no desenvolvimento para o software, visto que não há algo estável e utilizável de forma plena até o momento. Mas não deixa de ser um grande avanço.

Imagem: http://blog.pi3g.com/wp-content/uploads/2014/03/toshiba-raspberry-pi-adapter-chips.jpg
Fontes:
http://auvidea.eu/index.php/theme-styles/2014-12-30-22-32-06/b101
http://auvidea.eu/index.php/theme-styles/2014-12-30-22-32-06/b102
https://www.raspberrypi.org/forums/viewtopic.php?f=38&t=120702

Nenhum comentário:

Postar um comentário