Alguns antecedentes rápidos: O
Ambilight é um sistema em algumas TVs Philips que analisa as informações de cores na tela e define alguns LEDs na parte traseira do monitor para projetar a cor da tela na parede. É um efeito bastante bacana. Agora, existem clones desse sistema que usam um PC para processar o vídeo e controlar os LEDs. Acho que isso é um pouco exagerado - usar uma máquina inteira para dançar alguns LEDs ...
Gostaria de modificar o NeTV do bunnie para processar um processo não criptografado.Alimentação de vídeo HDMI e conduza alguns LEDs. Sei que o NeTV foi projetado para outros fins, mas sinto que ele pode ser modificado para alcançar meu objetivo. Não ligo para o subsistema Linux subjacente, a falsificação I2C, a sobreposição de vídeo etc. Neste momento, não estou preocupado em trabalhar com fluxos criptografados em HDCP.
Diagrama de blocos do FPGA
Este é um diagrama de blocos de um dos slides da apresentação de bunnie.
O restante do conjunto de slides está aqui .
Esse slide parece sugerir que os pixels do vídeo são decodificados (não necessariamente descriptografados ) .
Finalmente ... alguns dos meus pensamentos e perguntas:
Isso pode ser feito no meu hardware desejado? Se "sim", continue! Se "não", me diga o que mais eu preciso!
Serei capaz de processar informações de vídeo sem nenhuma memória externa? Não há memória que o FPGA possa acessar diretamente, pelo que sei. Provavelmente depende de qual algoritmo eu uso para processar os dados de vídeo - para usar o mínimo possível de RAM de bloco FPGA, acho que eu gostaria de usar algum tipo de 'soma iterativa' dos pixels que chegam, em vez de armazenar um todo quadro de dados da imagem e, em seguida, calculando a média das cores. Alguma dica em relação à implementação desse algoritmo? Como começar com isso é o meu maior obstáculo.
Eu investiguei o código-fonte para onde eu deveria 'acessar' os dados do vídeo.
Parece o local apropriado:
eu sei, essa imagem é longa - é o melhor que eu poderia fazer enquanto deixava a leitura clara. Culpe a ferramenta da Xilinx por isso!
Isso parece absorver os dados do TMDS e gerar 8 bits para cada cor.Eu deveria ter algum tipo de máquina de estado para o driver de LED - a cada ciclo de relógio, ele obtém as informações de pixel de qualquer módulo que eu criar para processar os dados de vídeo.
Desculpe se isso é prolixo ou longo - estou tentando ser meticuloso ... só preciso de ajuda para decolar com isso. Esta é a minha primeira tentativa de um projeto FPGA - alguns podem dizer que é muito difícil para um iniciante, mas eu digo ... tenho que começar em algum lugar :) Obrigado pela leitura.