Suíte de processamento de imagem e vídeo
A suíte de processamento de vídeo e imagem Intel FPGA é uma coleção de funções de propriedade intelectual (IP) Intel FPGA que você pode usar para facilitar o desenvolvimento de projetos de processamento de vídeo e imagem personalizados. Essas funções Intel FPGA são adequadas para uso em uma ampla variedade de aplicações de processamento e exibição de imagem, como transmissão em estúdio, videoconferência, rede AV, imagens médicas, cidade/varejo inteligente e consumidores.
Guia do usuário da suíte de processamento de vídeo e imagem ›
Suíte de processamento de imagem e vídeo
O Pacote de processamento de vídeo e visão é o pacote de IPs de próxima geração para processamento de vídeo, imagem e visão. Os IPs transportam o vídeo usando o protocolo de vídeo de transmissão Intel FPGA, que usa o protocolo padrão do setor AXI4-Stream. Um IP de conversor de protocolo permite interoperabilidade com o padrão de vídeo Avalon Streaming e o IP do Pacote de processamento de vídeo e imagem existente ou outros IPs compatíveis com o protocolo de vídeo Avalon Streaming.
A Suíte de processamento de vídeo e imagem possui núcleos que variam desde funções de blocos de construção simples, como a conversão de espaço de cores, até funções de escalonamento de vídeo sofisticadas, capazes de implementar escalonamento polifásico programável.
- Todos os núcleos VIP usam um padrão de interface Avalon® Streaming (Avalon-ST) aberto e com baixa sobrecarga para que possam ser conectados com facilidade.
- Você pode usar núcleos VIP para construir rapidamente uma cadeia de sinal de processamento de vídeo personalizada usando o software Intel® Quartus® Prime Lite ou Standard Edition e o Platform Designer associado.
- Você pode misturar e combinar os núcleos de processamento de vídeo e imagem com seu próprio IP proprietário.
- Você pode usar o Platform Designer para integrar automaticamente processadores e periféricos integrados e gerar lógica de arbitragem.
- Capaz de suportar Vídeo 8K a 60 fps e além.
Recursos
Funções da suíte de processamento de vídeo e imagem Intel FPGA IP
Função Intel FPGA IP |
Descrição |
---|---|
Implementa um filtro de resposta de impulso finito (FIR) a 3x3, 5x5 ou 7x7 em um fluxo de dados de imagem para suavizar ou intensificar imagens. |
|
Mistura e combina vários fluxos de imagem — útil para implementar sobreposição de texto e mistura picture-in-picture. |
|
Captura pacotes de dados de vídeo sem acréscimo de atrasos adicionais e conecta-se ao IP do sistema de rastreamento para coleta de dados de rastreamento de vídeo. |
|
Remove e repara as sequências não ideais e os casos de erro presentes no fluxo de entrada de dados para produzir um fluxo de saída que esteja de acordo com o modelo de uso ideal implícito. |
|
Altera a taxa de amostragem dos dados chroma para quadros de imagem, por exemplo, de 4:2:2 para 4:4:4 ou 4:2:2 para 4:2:0. |
|
Oferece uma maneira de recortar fluxos de vídeo e pode ser configurado no momento da compilação ou durante a execução. |
|
Os núcleos IP de interface de vídeo com clock convertem formatos de vídeo com clock (como BT656, BT1120 e DVI) para vídeo Avalon-ST e vice-versa. |
|
Altera o modo como as amostras de plano de cor são transmitidas em toda a interface Avalon-ST. Essa função pode ser usada para dividir e juntar fluxos de vídeo, dando controle sobre o roteamento de amostras de plano de cores. |
|
Converta dados de imagem entre vários espaços de cores diferentes, como RGB para YCrCb. |
|
Bandas de proteção configuráveis |
O núcleo IP das bandas de proteção configuráveis compara cada plano de cores no fluxo de vídeo de entrada com valores de bandas de proteção superiores e inferiores. |
Sincroniza as alterações feitas no fluxo de vídeo em tempo real entre duas funções. |
|
Converte formatos de vídeo entrelaçados para formato de vídeo progressivo usando um algoritmo de desentrelaçamento adaptável em movimento. Suporta também algoritmos “bob” e “weave”, detecção de borda com baixa angular, detecção de cadência 3:2 e baixa latência. |
|
Armazena quadros de vídeo em buffer em memória RAM externa. Esse núcleo suporta buffer duplo ou triplo com uma variedade de opções para queda e repetição de quadros. |
|
Lê vídeo da memória externa e o envia como um fluxo. |
|
Permite que fluxos de vídeo sejam corrigidos para as propriedades físicas dos dispositivos de exibição. |
|
Converte vídeo progressivo em vídeo entrelaçado soltando metade das linhas de quadros progressivos de entrada. |
|
A função Scaler II Intel FPGA IP baseada no código HDL usa menos área do que a primeira geração do Scaler na suíte de processamento de vídeo e imagem enquanto oferece desempenho mais elevado. A função Scaler II reduz ainda mais os recursos necessários com o novo suporte da taxa de amostragem de dados de chroma 4:2:2. Algoritmos lineares e polifásicos estão disponíveis com o novo recurso do algoritmo adaptável de borda para reduzir a descoloração enquanto mantém o realismo. |
|
Permitir que fluxos de vídeo sejam comutados em tempo real. |
|
Gerar um fluxo de vídeo que contém barras de cor fixa para uso como um padrão de teste. |
|
Monitora os dados capturados do monitor de vídeo e conecta-se ao Console do Sistema host por meio do JTAG ou USB para exibição |
Primeiros passos
Exemplos de projeto e Kits de desenvolvimento
Os seguintes exemplos de projeto estão disponíveis para você executar nos kits de desenvolvimento.
Nome do produto |
Dispositivos suportados/Kit de desenvolvimento |
Placa filha |
Conformidade do Platform Designer |
Fornecedor |
---|---|---|---|---|
✓ |
Intel |
|||
Nenhum |
✓ |
ALSE |
||
Demonstração do conjunto de processamento de vídeo e imagem no VEEK |
Nenhum |
✓ |
Terasic |
|
Exemplo de projeto de processamento de vídeo e imagem Intel FPGA |
✓ |
Intel |
Tutoriais em vídeo
Métricas de qualidade IP
Básico |
|
---|---|
Ano em que o IP foi lançado |
2009 |
Versão mais recente do software Intel® Quartus® suportada |
18.1 |
Status |
Produção |
Resultados |
|
Os resultados do cliente incluem o seguinte: Arquivo de projeto (código de fonte criptografado ou netlist pós-síntese) Modelo de simulação para ModelSim*-Intel® FPGA Edition Restrições de cronograma e/ou de layout Testbench ou exemplo de projeto Documentação com controle de revisão Arquivo readme |
Sim Sim Sim Sim Sim Não |
Quaisquer resultados de clientes adicionais fornecidos com IP |
Nenhum |
GUI de parametrização permitindo que o usuário final configure o IP |
Sim |
O núcleo de IP está habilitado para o suporte ao Intel FPGA IP Evaluation Mode |
Sim |
Idioma da fonte |
Verilog |
Linguagem do banco de testes |
Verilog |
Drivers do software fornecidos |
Arquivo sw.tcl |
Suporte do sistema operacional (SO) do driver |
N/D |
Implementação |
|
Interface do usuário |
vídeo com clock (em entrada de vídeo com clock e fora de saída de vídeo com clock), Avalon® -ST (todos os outros datapaths) |
Metadados IP-XACT |
Não |
Verificação |
|
Simuladores suportados |
ModelSim, VCS, Riviera-PRO, NCSim |
Hardware validados |
Arria® II GX/GZ, Arria® V, Intel® Arria® 10, Cyclone® IV ES/GX, Cyclone® V, Intel® Cyclone® 10, Intel® MAX® 10, Stratix® IV, Stratix® V |
Testes de conformidade padrão da indústria realizados |
Não |
Em caso afirmativo, quais testes? |
N/D |
Em caso afirmativo, em quais dispositivos Intel FPGA? |
N/D |
Em caso afirmativo, a data da realização |
N/D |
Em caso negativo, estão planejados? |
N/D |
Interoperabilidade |
|
O IP sofreu testes de interoperabilidade |
Sim |
Em caso afirmativo, em quais dispositivos Intel FPGA? |
Intel Arria 10, Intel Cyclone 10 |
Relatórios de interoperabilidade disponíveis |
N/D |
Corretor de gamma
O Corretor gama é usado quando você precisa restringir os valores de pixel para intervalos específicos com base em informações sobre a tela para a qual ele será enviado. Alguns monitores têm uma resposta não linear à tensão de um sinal de vídeo e, como resultado, um remapeamento de valores de pixel torna-se necessário para corrigir o monitor. O Corretor gama usa uma tabela de pesquisa da interface Avalon®-MM para fornecer o mapeamento dos valores de pixel para os valores alterados.
Um exemplo do Corretor gama é exibido onde uma entrada Y'CbCr com valores de cor de 8 bits que variam de 0 a 255 e são passados através do Corretor gama, que então remapeia os valores para caber dentro da faixa de 16 a 240, e é enviada para uma Saída de vídeo com clock.
Filtro FIR 2D
O núcleo de propriedade intelectual (IP) de vídeo do filtro 2D de resposta ao impulso finito (FIR) é usado para processar planos de cor em série e passar os valores de pixel por um filtro FIR. Os coeficientes são entradas por meio de uma interface com memória mapeada Avalon (Avalon-MM) que pode ser interfaceado por um processador Nios® II ou por outros periféricos acessando o projeto Qsys contendo o datapath. de vídeo.
Um diagrama de bloco de exemplo usando o filtro FIR 2D é exibido com uma entrada de vídeo com clock com planos de cor RGB formatados de forma serial para passar pelo filtro FIR. Quando a filtragem é feita, o Sequenciador de plano de cores é usado para reformatar os planos de cor de três planos em serial para três planos em paralelo. Com três planos de cor em paralelo, o quadro de vídeo está pronto para ser transmitido externamente pelo núcleo de Saída de vídeo com clock.
Mixer de combinação alfa e Mixer II
Os núcleos Mixer de combinação alfa e Mixer II oferecem a capacidade de misturar até 12 ou 4 camadas de imagem respectivamente e são controláveis pelo tempo de execução por meio de uma interface Avalon-MM. Acessando a partir de um processador Nios II através da interface Avalon-MM, você pode controlar dinamicamente a localização de cada camada exibida e a ordem em que as camadas são sobrepostas (apenas Mixer I). O recurso de combinação alfa do Mixer I suporta a exibição de pixels transparentes ou semitransparentes (apenas Mixer I).
O núcleo Mixer II inclui um gerador de padrão de teste integrado para usar como uma camada de fundo. Este é um benefício adicional, já que uma das quatro entradas não precisa ser de um núcleo de gerador de padrão de testes. Outro benefício do Mixer II é sua capacidade de suportar o vídeo 4K.
Um diagrama de bloco de exemplo de como os núcleos Mixer são usados é apresentado com uma entrada de vídeo com clock, oferecendo o feed de vídeo ativo na entrada 0, uma camada de fundo fornecida pelo Gerador de padrão de teste integrado e um núcleo de Leitor de quadros que está lendo gráficos estáticos, como o logotipo de uma empresa na entrada 1. Esses feeds são combinados para oferecer uma exibição de imagem de vídeo com gráficos e um plano de fundo fornecidos pelo gerador de padrão de testes.
Recomenda-se que as entradas do Mixer sejam alimentadas diretamente de um buffer de quadros, a menos que seja certo que as taxas de quadros respectivas de entrada e de saída e a compensação das camadas de entrada não resultarão em privação de dados e consequente bloqueio de vídeo.
Reamostrador de Chroma
O Reamostrador de Chroma é usado para alterar os formatos chroma dos dados de vídeo. O vídeo transmitido no espaço de cor Y'CbCr pode sub-amostrar os componentes de cor Cb e Cr para economizar na largura de banda de dados. O Reamostrador de Chroma oferece a capacidade de variar entre os formatos 4:4:4, 4:2:2 e 4:2:0.
Um exemplo mostra uma Entrada de vídeo com clock com Y'CbCr em formato chroma 4:2:2 sendo aprimorada pelo Reamostrador de Chroma para o formato 4:4:4. Este formato de vídeo aprimorado é passado para um Conversor de espaço de cor que converte o formato de vídeo de Y'CbCr para RGB para ser enviado para fora do núcleo de Saída de vídeo com clock.
Clipper II
O núcleo de Clipper é usado quando você deseja tirar áreas fixas de um feed de vídeo para serem passadas adiante. O núcleo de Clipper pode ser configurado durante a compilação ou atualizado por meio de uma interface Avalon-MM a partir de um processador Nios II ou outro periférico. O Clipper tem a capacidade de definir o método de corte por meio de compensações das bordas ou por uma área retangular fixa.
Um exemplo mostra duas instâncias do Clipper tirando áreas de 400 x 400 pixels de suas respectivas entradas de vídeo. Esses dois feeds de vídeo cortados são misturados em um núcleo Mixer junto com outra placa gráfica e o gerador de padrão de teste integrado como plano de fundo. O Mixer tem a capacidade de ajustar a localização das entradas de vídeo para que você possa posicionar os dois feeds de vídeo recortados lado a lado com a adição de buffers de quadros, se necessário.
Núcleos de entrada e saída de vídeo com clock (I e II)
Os núcleos de Entrada e saída de vídeo com clock são usados para captar e transmitir vídeo em vários formatos, como BT656 e BT1120.
Os núcleos de Entrada de vídeo com clock convertem dados de vídeo de entrada em dados de pacote formatado de vídeo do Avalon Streaming (Avalon-ST), removendo a supressão de entrada vertical e horizontal e retendo somente dados de imagem ativos. O núcleo permite que você capture vídeo em uma frequência e passe os dados para o resto do seu sistema Qsys que pode ser executado na mesma ou em outra frequência.
Um exemplo de uma Entrada de vídeo com clock é exibido alimentando vídeo em um bloco escalonador para aumentar de 1280 x 720 para 1920 x 1080, após o que é enviado para um núcleo de Saída de vídeo com clock. Se a entrada e a saída tiverem a mesma taxa de quadros, podem ser criados FIFOs na Entrada de vídeo com clock e Saída de vídeo com clock para permitir que a conversão ocorra sem um buffer de quadros.
Sequenciador de plano de cores
O Sequenciador de plano de cor é usado para reorganizar os elementos planos de cor em vídeo em um sistema de vídeo. Ele pode ser usado para converter planos de cor de transmissão em série para transmissão paralela (ou vice-versa), para “duplicar” canais de vídeo (como pode ser necessário para impulsionar um subsistema de monitor de vídeo secundário) ou para “dividir” canais de vídeo (como pode ser necessário para separar um plano alfa de saída de três planos RGB como 4 planos de um leitor de quadros).
Um exemplo de Sequenciador de plano de cores é exibido com o núcleo de IP de vídeo de filtro FIR 2D que requer vídeo para ser inserido e extraído com os planos de cor em série. Para transmitir vídeo para a Saída de vídeo com clock no formato desejado, os planos de cor devem ser convertidos para paralelos pelo Sequenciador de plano de cores.
Conversor de espaço de cores (I e II)
Os núcleos do Conversor de espaço de cores (CSC e Conversor de espaço de cores II) são usados quando você precisa fazer conversão entre os formatos de espaço de cores RGB e Y'CrCb. Dependendo dos requisitos de formato de entrada e saída de vídeo, você pode ter que fazer conversão entre diferentes formatos de cores.
Um exemplo de um Conversor de espaço de cores é exibido com um Reamostrador de Chroma aprimorando vídeo Y'CrCb e depois ele é passado para o Conversor de espaço de cores e é convertido para o formato de cores RGB para ser enviado para uma saída de vídeo com clock.
Sincronizador de controle
O Sincronizador de controle é usado em conjunto com um controlador mestre Avalon-MM, como um processador Nios II ou outro periférico. O Sincronizador de controle é usado para sincronizar alterações na configuração do tempo de execução em um ou mais blocos de vídeo IP em alinhamento com os dados de vídeo à medida que eles estão se alterando. Algumas alterações na configuração podem ocorrer upstream de um núcleo IP de vídeo enquanto os quadros de vídeo ainda estão passando por ele no formato anterior. Para tornar a transição perfeita e evitar a falhas na tela, o Sincronizador de controle é usado para alinhar a troca de configuração exatamente quando os novos dados de quadro de vídeo de entrada estão chegando ao núcleo.
Um exemplo do Sincronizador de controle é exibido com um processador Nios II configurando um Gerador de padrão de teste para alterar o tamanho do quadro de 720 p para 1080 p. O Sincronizador de controle recebe a notificação do processador Nios II de que os dados do quadro de vídeo mudarão em breve, mas evita reconfigurar a Saída de vídeo com clock até que os novos quadros passem pelo Buffer de quadros até o Sincronizador de controle. O Sincronizador de controle lê vídeo os pacotes de dados de controle do quadro para determinar se ele corresponde à nova configuração e atualiza o núcleo de Saída de vídeo com clock para as novas configurações, tornando a alteração da resolução na saída de vídeo perfeita.
Desentrelaçador (I e II) e Desentrelaçador de transmissão
Os núcleos desentrelaçadores (Desentrelaçador, Desentrelaçador II e Desentrelaçador de transmissão) convertem quadros de vídeo entrelaçados em quadros de vídeo de varredura progressiva. É possível escolher entre vários algoritmos para como desentrelaçar vídeo, dependendo da qualidade desejada, área lógica usada e largura de banda de memória externa disponível.
Um exemplo de como o núcleo Desentrelaçador é usado é exibido com uma Entrada de vídeo com clock que recebe quadros entrelaçados e passa pelo Desentrelaçador, que transaciona com uma memória externa e núcleo de Buffer de quadros. Após desentrelaçar o vídeo em formato de varredura progressiva, ele é enviado por meio de um núcleo de Saída de vídeo com clock.
Buffer de quadros (I e II)
Os núcleos de Buffer de quadros e Buffer de quadros II são usados para armazenar em buffer campos de vídeo progressivos e entrelaçados e podem suportar armazenamento em buffer duplo ou triplo com uma variedade de opções para queda e repetição de quadros. Em casos como desentrelaçamento de vídeo, alteração da taxa de quadros do vídeo ou, às vezes, mixagem de vídeo, um Buffer de quadros é necessário.
Um exemplo de como o Buffer de quadros é usado é exibido com um caso no qual um núcleo de Entrada de vídeo com clock está recebendo vídeo a 30 quadros por segundo (fps) e precisa convertê-lo para 60 fps. O núcleo do Buffer de quadros é usado para armazenar em buffer vários quadros e suporta a repetição de quadros, de modo que a taxa de quadros é capaz de ser convertida para 60 fps e é transmitida por meio de um núcleo de Saída de vídeo com clock.
Leitor de quadros
O núcleo do Leitor de quadros é usado para ler quadros de vídeo armazenados em memória externa e os coloca como um fluxo de vídeo Avalon-ST. Os dados são armazenados apenas como valores de pixel de vídeo brutos.
Um exemplo é exibido usando o Leitor de quadros para fazer com que o gráfico de logotipo da empresa se sobreponha a outro fluxo de vídeo e mesclando as camadas por meio de um núcleo Mixer. A partir daí, o vídeo mesclado é enviado para um núcleo de Saída de vídeo com clock. Opcionalmente, o mixer pode ser configurado para incluir um canal alfa. Nesse caso, o leitor de quadros pode ser configurado para ler três planos de cores e um plano alfa, que pode ser “dividido” usando um conversor de espaço de cores (não exibido) antes de ser inserido no Mixer.
Scaler II
O núcleo Scaler II é usado para escalonar vídeo para aumentar ou diminuir de tamanho. Suporta vários algoritmos, incluindo vizinho mais próximo, bilinear, bicúbico e escalonamento polifásico/Lanczos. A memória em chip é usada para armazenar em buffer linhas de vídeo usadas para escalonamento com taxas de escalonamento mais altas que exigem mais armazenamento.
Um exemplo do núcleo Scaler II é exibido tomando um tamanho de quadro de 720p a partir de uma Entrada de vídeo com clock e escalonando-o para 1080p e enviando para uma Saída de vídeo com clock.
Comutador (I e II)
Os núcleos de Comutador permitem que os usuários conectem até doze fluxos de vídeo de entrada com até doze fluxos de vídeo de saída. O Comutador não mescla ou duplica fluxos de vídeo, mas permite alterar o roteamento da porta de entrada para a porta de saída. Não é necessário conectar todas as portas de saída, a menos que você queira continuar a monitorar esses fluxos de vídeo. O controle do Comutador é feito por meio de uma interface Avalon-MM acessível por um processador Nios II ou outro periférico com mapeamento Avalon-MM.
Um exemplo do Comutador é exibido com uma Entrada de vídeo com clock e um Gerador de padrão de teste alimentando duas portas em um Comutador. A segunda porta de saída do Comutador é desconectada e o processador Nios II controla qual das duas entradas é enviada para a porta conectada à Saída de vídeo com clock para exibição.
Gerador de padrão de teste II
O núcleo do Gerador de padrão de teste permite que você crie uma série de imagens para testar rapidamente sua interface de vídeo. O núcleo é configurável para muitos tamanhos de imagem diferentes, bem como formatos de cor RGB e YCbCr.
Você pode usar um núcleo de Gerador de padrão de teste com um núcleo de Saída de vídeo com clock para que a interface de vídeo do seu sistema seja verificada. Com as especificações de vídeo desejadas, a conclusão de um projeto requer apenas minutos para confirmar rapidamente que a interface é capaz de gerar uma imagem em um monitor externo.
Monitor de vídeo Avalon-ST
O Monitor de vídeo Avalon-ST é um núcleo que pode ser inserido em série com o datapath de vídeo que lê informações de pacote de vídeo Avalon-ST e oferece dados de diagnóstico para o Sistema de rastreamento. O Monitor de vídeo é inserido onde você deseja investigar o datapath de vídeo para análise e informações estatísticas. Quando combinado com o núcleo do Sistema de rastreamento e conectado externamente por meio de uma porta de depuração, como JTAG, ou por um Intel® FPGA Download Cable, você pode obter maior visibilidade do comportamento do sistema de vídeo. Você pode usar o Console de Sistema como plataforma virtual para exibir essas informações.
Um exemplo mostra o Monitor de vídeo Avalon-ST inserido antes e depois de um Sequenciador de plano de cores. Eles são usados para monitorar informações de pacote de vídeo oriundas da Saída de vídeo com clock e do Sequenciador de plano de cores. O Monitor de vídeo não altera os dados de vídeo enquanto são passados pelo núcleo. Os Monitores de vídeo são conectados ao Sistema de rastreamento, que é acessado por JTAG neste caso.
Sistema de rastreamento
O Sistema de rastreamento é usado para acessar os núcleos de Monitor de vídeo Avalon-ST inseridos em um projeto para informações de diagnóstico de vídeo. Vários núcleos de Monitor de vídeo podem ser usados para se conectar a um controlador de Sistema de rastreamento. O Sistema de rastreamento conecta-se a um host usando uma interface de depuração, normalmente como um conector JTAG ou interface FPGA Download Cable, se disponível.
Um exemplo mostra o Sistema de rastreamento usado com um par de núcleos de Monitor de vídeo Avalon-ST inseridos antes e depois de um Sequenciador de plano de cores. Os Monitores de vídeo são conectados ao Sistema de rastreamento, que é acessado por JTAG neste caso.
Recursos adicionais
Encontrar PI
Descubra o núcleo de propriedade intelectual Altera® FPGA ideal para as suas necessidades.
Suporte técnico
Para obter suporte técnico neste núcleo de PI, acesse os Recursos de Suporte ou Suporte Premier Intel®. Você também pode pesquisar tópicos relacionados a esta função no Centro de conhecimento e nas Comunidades.
Avaliação e compra de PI
Modo de avaliação e informações de compra dos núcleos de propriedade intelectual Altera® FPGA.
IP Base Suite
Licenças gratuitas para o Altera® FPGA IP Core com uma licença ativa para o Software Quartus® Prime Standard ou Pro Edition.
Exemplos de design
Baixe exemplos de projetos e projetos de referência para dispositivos Altera® FPGA.
Contato de Vendas
Entre em contato com a equipe de vendas para suas necessidades de projeto e aceleração de produtos Altera® FPGA.