intel-LOGO

design de conversão de formato de vídeo Intel AN 889 8K DisplayPort Example

intel-AN-889-8K-DisplayPort-Video-Format-Conversion-Design-Example-PRO

Sobre o projeto de conversão de formato de vídeo 8K DisplayPort Example

O projeto de conversão de formato de vídeo 8K DisplayPort Example integra o IP de conectividade de vídeo Intel DisplayPort 1.4 com um pipeline de processamento de vídeo. O design oferece dimensionamento de alta qualidade, conversão de espaço de cores e conversão de taxa de quadros para fluxos de vídeo de até 8K a 30 quadros por segundo ou 4K a 60 quadros por segundo.
O design é altamente configurável por software e hardware, permitindo uma rápida configuração e redesenho do sistema. O design tem como alvo os dispositivos Intel® Arria® 10 e usa o mais recente Intel FPGA IP pronto para 8K do Video and Image Processing Suite no Intel Quartus® Prime v19.2.

Sobre DisplayPort Intel FPGA IP
Para criar designs Intel Arria 10 FPGA com interfaces DisplayPort, instancie o DisplayPort Intel FPGA IP. No entanto, este IP DisplayPort implementa apenas a codificação ou decodificação do protocolo para DisplayPort. Ele não inclui os transceptores, PLLs ou a funcionalidade de reconfiguração do transceptor necessária para implementar o componente serial de alta velocidade da interface. A Intel fornece componentes separados de transceptor, PLL e IP de reconfiguração. Selecionar, parametrizar e conectar esses componentes para criar uma interface de receptor ou transmissor DisplayPort totalmente compatível requer conhecimento especializado.
A Intel fornece esse design para aqueles que não são especialistas em transceptores. A GUI do editor de parâmetros para DisplayPort IP permite que você crie o design.
Você cria uma instância do DisplayPort IP (que pode ser apenas receptor, transmissor apenas ou receptor e transmissor combinados) no Platform Designer ou no Catálogo IP. Ao parametrizar a instância DisplayPort IP, você pode selecionar para gerar um example design para essa configuração específica. O projeto combinado de receptor e transmissor é uma passagem simples, onde a saída do receptor alimenta diretamente o transmissor. Um projeto de passagem fixa cria um receptor PHY totalmente funcional, um transmissor PHY e blocos de reconfiguração que implementam toda a lógica do transceptor e PLL. Você pode copiar diretamente as seções relevantes do design ou usar o design como referência. O design gera um DisplayPort Intel Arria 10 FPGA IP Design Example e, em seguida, adiciona muitos dos files gerados diretamente na lista de compilação usada pelo projeto Intel Quartus Prime. Esses incluem:

  • Files para criar instâncias de IP parametrizadas para transceptores, PLLs e blocos de reconfiguração.
  • Verilog HDL files para conectar esses IPs aos blocos de nível superior do receptor PHY, do transmissor PHY e do Transceiver Reconfiguration Arbiter
  • Restrição de design da Synopsys (SDC) files para definir as restrições de tempo relevantes.

Recursos do projeto de conversão de formato de vídeo 8K DisplayPort Example

  • Entrada:
    • A conectividade DisplayPort 1.4 suporta resoluções de 720 × 480 até 3840 × 2160 em qualquer taxa de quadros de até 60 fps e resoluções de até 7680 × 4320 a 30 fps.
    • Suporte para hot-plug.
    • Suporte para formatos de cores RGB e YCbCr (4:4:4, 4:2:2 e 4:2:0) no
      entrada.
    • O software detecta automaticamente o formato de entrada e configura o pipeline de processamento adequadamente.
  • Saída:
    • Conectividade DisplayPort 1.4 selecionável (através de chaves DIP) para resolução de 1080p, 1080i ou 2160p a 60 fps ou 2160p a 30 fps.
    • Suporte para hot-plug.
    • Interruptores DIP para definir o formato de cor de saída necessário para RGB, YCbCr 4:4:4, YCbCr 4:2:2 ou YCbCr 4:2:0.
  • Pipeline de processamento RGB 10K de 8 bits único com dimensionamento configurável por software e conversão de taxa de quadros:
    • 12-tap Lanczos downscaler.
    • Upscaler Lanczos de 16 fases, 4 toques.
    • O buffer de quadro de vídeo com buffer triplo fornece conversão de taxa de quadros.
    • Mixer com mistura alfa permite sobreposição de ícone OSD.

Introdução ao design de conversão de formato de vídeo 8K DisplayPort Example

Requisitos de hardware e software

O projeto de conversão de formato de vídeo 8K DisplayPort Example requer hardware e software específicos.

Hardware:

  • Kit de desenvolvimento Intel Arria 10 GX FPGA, incluindo a placa filha DDR4 Hilo
  • Placa filha Bitec DisplayPort 1.4 FMC (revisão 11)
  • Fonte DisplayPort 1.4 que produz vídeo de até 3840x2160p60 ou 7680x4320p30
  • Dissipador DisplayPort 1.4 que exibe vídeo de até 3840x2160p60
  • Cabos DisplayPort 1.4 com certificação VESA.

Programas:

  • SO Windows ou Linux
  • O Intel Quartus Prime Design Suite v19.2, que inclui:
    • Edição Intel Quartus Prime Pro
    • Designer de plataforma
    • Nios® II EDS
    • Biblioteca Intel FPGA IP (incluindo a suíte de processamento de vídeo e imagem)

O design só funciona com esta versão do Intel Quartus Prime.

Download e instalação do design de conversão de formato de vídeo Intel 8K DisplayPort Example

O design está disponível na Intel Design Store.

  1. Baixe o projeto arquivado file udx10_dp.par.
  2. Extraia o projeto Intel Quartus Prime do arquivo:
    • a. Abra o Intel Quartus Prime Pro Edition.
    • b. Clique File ➤ Projeto aberto.
      A janela Abrir Projeto é aberta.
    • c. Navegue e selecione udx10_dp.par file.
    • d. Clique em Abrir.
    • e. Na janela Open Design Template, defina a pasta Destination para o local desejado para o projeto extraído. As entradas para o modelo de design file e o nome do projeto devem estar corretos e você não precisa alterá-los.
    • f. Clique em OK.

Projeto Files para o design de conversão de formato de vídeo Intel 8K DisplayPort Example

Tabela 1. Projeto Files

File ou nome da pasta Descrição
ip Contém a instância IP files para todas as instâncias Intel FPGA IP no design:

• Um IP DisplayPort (transmissor e receptor)

• Um PLL que gera relógios no nível superior do projeto

• Todos os IP que compõem o sistema Platform Designer para o pipeline de processamento.

imagem_mestre Contém pre_compiled.sof, que é uma placa de programação pré-compilada file para o projeto.
não_acds_ip Contém código-fonte para IP adicional neste design que o Intel Quartus Prime não inclui.
SDC (Sistema de Distribuição de Energia) Contém um SDC file que descreve as restrições de tempo adicionais que esse design requer. O SDC files incluídos automaticamente com as instâncias IP não lidam com essas restrições.
Programas Contém código-fonte, bibliotecas e scripts de compilação para o software executado no processador Nios II integrado para controlar a funcionalidade de alto nível do design.
udx10_dp Uma pasta na qual o Intel Quartus Prime gera a saída files para o sistema Platform Designer. A saída udx10_dp.sopcinfo file permite gerar a inicialização da memória file para a memória do software do processador Nios II. Você não precisa primeiro gerar o sistema Platform Designer completo.
não_acds_ip.ipx este IPX file declara todo o IP na pasta non_acds_ip para o Platform Designer para que apareça na Biblioteca de IP.
LEIA-ME.txt Breves instruções para construir e executar o projeto.
topo.qpf O projeto Intel Quartus Prime file para o projeto.
topo.qsf As configurações do projeto Intel Quartus Prime file para o projeto. Esse file lista todos os files necessários para construir o projeto, juntamente com as atribuições de pinos e uma série de outras configurações do projeto.
topo.v O Verilog HDL de nível superior file para o projeto.
udx10_dp.qsys O sistema Platform Designer que contém o pipeline de processamento de vídeo, o processador Nios II e seus periféricos.

Compilando o exemplo de design de conversão de formato de vídeo 8K DisplayPortample
A Intel fornece uma programação de placa pré-compilada file para o design no diretório master_image (pre_compiled.sof) para permitir que você execute o design sem executar uma compilação completa.
PASSOS:

  1. No software Intel Quartus Prime, abra o projeto top.qpf file. O arquivo baixado cria este file ao descompactar o projeto.
  2. Clique File ➤ Abra e selecione ip/dp_rx_tx/dp_rx_tx.ip. A GUI do editor de parâmetros para DisplayPort IP é aberta, mostrando os parâmetros para a instância DisplayPort no design.
  3. Clique em Gerar Example Design (não Gerar).
  4. Quando a geração for concluída, feche o editor de parâmetros.
  5. In File Explorer, navegue até o diretório do software e descompacte o arquivo vip_control_src.zip para gerar o diretório vip_control_src.
  6. Em um terminal BASH, navegue até software/script e execute o shell script build_sw.sh.
    O script constrói o software Nios II para o projeto. Ele cria um arquivo .elf file que você pode baixar para o quadro em tempo de execução e um arquivo .hex file para compilar na placa de programação .sof file.
  7. No software Intel Quartus Prime, clique em Processing ➤ Start Compilation.
    • O Intel Quartus Prime gera o sistema udx10_dp.qsys Platform Designer.
    • O Intel Quartus Prime define o projeto como top.qpf.

A compilação cria top.sof no output_files diretório quando ele for concluído.

ViewCriando e regenerando o sistema Platform Designer

  1. Clique em Ferramentas ➤ Designer de plataforma.
  2. Selecione system name.qsys para a opção de sistema Platform Designer.
  3. Clique em Abrir.
    Platform Designer abre o sistema.
  4. Review o sistema.
  5. Regenere o sistema:
    • a. Clique em Gerar HDL….
    • b. Na Janela de Geração, ative Limpar diretórios de saída para destinos de geração selecionados.
    • c. Clique em Gerar

Compilando o exemplo de design de conversão de formato de vídeo 8K DisplayPortamparquivo com o Nios II Software Build Tools for Eclipse
Você configura um espaço de trabalho interativo do Nios II Eclipse para o projeto produzir um espaço de trabalho que usa as mesmas pastas que o script de construção usa. Se você executou anteriormente o script de construção, deverá excluir as pastas software/vip_control e software/vip_control_bsp antes de criar a área de trabalho do Eclipse. Se você executar novamente o script de construção em qualquer ponto, ele sobrescreverá o espaço de trabalho do Eclipse.
PASSOS:

  1. Navegue até o diretório do software e descompacte o arquivo vip_control_src.zip para gerar o diretório vip_control_src.
  2. No diretório do projeto instalado, crie uma nova pasta e nomeie-a como workspace.
  3. No software Intel Quartus Prime, clique em Tools ➤ Nios II Software Build Tools for Eclipse.
    • a. Na janela Workspace Launcher, selecione a pasta do espaço de trabalho que você criou.
    • b. Clique em OK.
  4. Na janela Nios II – Eclipse, clique em File ➤ Novo ➤ Aplicativo Nios II e BSP a partir do modelo.
    A caixa de diálogo Nios II Application and BSP from Template é exibida.
    • a. Nas informações do SOPC File caixa, selecione udx10_dp/ udx10_dp.sopcinfo file. O Nios II SBT para Eclipse preenche o nome da CPU com o nome do processador do .sopcinfo file.
    • b. Na caixa Nome do projeto, digite vip_control.
    • c. Selecione Projeto em branco na lista de modelos.
    • d. Clique em Avançar.
    • e. Selecione Create a new BSP project based on the application project template with the project name vip_control_bsp.
    • f. Ative Usar localização padrão.
    • g. Clique em Concluir para criar o aplicativo e o BSP com base no .sopcinfo file.
      Após a geração do BSP, os projetos vip_control e vip_control_bsp aparecem na guia Project Explorer.
  5. No Windows Explorer, copie o conteúdo do diretório software/vip_control_src para o diretório software/vip_control recém-criado.
  6. Na aba Project Explorer da janela Nios II – Eclipse, clique com o botão direito na pasta vip_control_bsp e selecione Nios II > BSP Editor.
    • a. Selecione Nenhum no menu suspenso para sys_clk_timer.
    • b. Selecione cpu_timer no menu suspenso para timestamp_cronômetro.
    • c. Ative enable_small_c_library.
    • d. Clique em Gerar.
    • e. Quando a geração for concluída, clique em Sair.
  7. Na guia Project Explorer, clique com o botão direito do mouse no diretório vip_control e clique em Properties.
    1. a. Na janela Properties for vip_control, expanda Nios II Application properties e clique em Nios II Application Paths.
    2. b. Clique em Adicionar… ao lado de Projetos de Biblioteca.
    3. c. Na janela Library Projects, navegue até o diretório udx10.dp\spftware \vip_control_src e selecione o diretório bkc_dprx.syslib.
    4. d. Clique OK. Uma mensagem é exibida Converta para um caminho relativo. Clique em Sim.
    5. e. Repita as etapas 7.b na página 8 e 7.c na página 8 para os diretórios bkc_dptx.syslib e bkc_dptxll_syslib
    6. f. Clique em OK.
  8. Selecione Project ➤ Build All para gerar o file vip_control.elf no diretório software/vip_control.
  9. Crie o mem_init file para a compilação Intel Quartus Prime:
    1. a. Clique com o botão direito em vip_control na janela Project Explorer.
    2. b. Selecione Criar destinos ➤ Construir….
    3. c. Selecione mem_init_generate.
      d. Clique em Construir.
      O software Intel Quartus Prime gera o
      udx10_dp_onchip_memory2_0_onchip_memory2_0.hex file no diretório software/vip_control/mem_init.
  10. Com o projeto rodando em uma placa conectada, execute a programação vip_control.elf file criado pela construção do Eclipse.
    • a. Clique com o botão direito na pasta vip_control na guia Project Explorer da janela Nios II -Eclipse.
    • b. Selecionando Run As ➤ Nios II Hardware. Se você tiver uma janela de terminal Nios II aberta, feche-a antes de baixar o novo software.

Configurando o kit de desenvolvimento Intel Arria 10 GX FPGA
Descreve como configurar o kit para executar o 8K DisplayPort Video Format Conversion Design Exampeu.

Figura 1. Kit de desenvolvimento Intel Arria 10 GX com placa filha HiLo
A figura mostra a placa com o dissipador de calor azul removido para mostrar o posicionamento da placa DDR4 Hilo. A Intel recomenda que você não execute o projeto sem o dissipador de calor na posição.

intel-AN-889-8K-DisplayPort-Video-Format-Conversion-Design-Exampa-1
PASSOS:

  1. Encaixe o cartão Bitec DisplayPort 1.4 FMC na placa de desenvolvimento usando a porta FMC A.
  2. Certifique-se de que o interruptor de energia (SW1) esteja desligado e, em seguida, conecte o conector de energia.
  3. Conecte um cabo USB ao seu computador e ao Conector MicroUSB (J3) na placa de desenvolvimento.
  4. Conecte um cabo DisplayPort 1.4 entre a fonte DisplayPort e a porta receptora da placa Bitec DisplayPort 1.4 FMC e certifique-se de que a fonte esteja ativa.
  5. Conecte um cabo DisplayPort 1.4 entre o monitor DisplayPort e a porta do transmissor do cartão Bitec DisplayPort 1.4 FMC e certifique-se de que o monitor esteja ativo.
  6. Ligue a placa usando SW1.

LEDs de status da placa, botões de pressão e chaves DIP
O Intel Arria 10 GX FPGA Development Kit possui oito LEDs de status (com emissores verde e vermelho), três botões de pressão do usuário e oito chaves DIP do usuário. O projeto de conversão de formato de vídeo 8K DisplayPort Example acende os LEDs para indicar o estado do link do receptor DisplayPort. Os botões de pressão e as chaves DIP permitem que você altere as configurações do projeto.

LEDs de estado

Tabela 2. LEDs de status

LIDERADO Descrição
LEDs vermelhos
0 Calibração DDR4 EMIF em andamento.
1 Falha na calibração DDR4 EMIF.
7:2 Não utilizado.
LEDs verdes
0 Acende quando o treinamento do link do receptor DisplayPort é concluído com êxito e o design recebe vídeo estável.
5:1 Contagem de pistas do receptor DisplayPort: 00001 = 1 pista

00010 = 2 pistas

00100 = 4 pistas

7:6 Velocidade da pista do receptor DisplayPort: 00 = 1.62 Gbps

01 = 2.7 Gbps

10 = 5.4 Gbps

11 = 8.1 Gbps

A tabela lista o status que cada LED indica. Cada posição de LED possui indicadores vermelhos e verdes que podem iluminar independentemente. Qualquer LED laranja brilhante significa que os indicadores vermelho e verde estão acesos.

Botões de pressão do usuário
O botão 0 do usuário controla a exibição do logotipo da Intel no canto superior direito da exibição de saída. Na inicialização, o design permite a exibição do logotipo. Pressionar o botão 0 alterna a ativação da exibição do logotipo. O botão 1 do usuário controla o modo de dimensionamento do design. Quando uma fonte ou coletor é conectado a quente, o padrão do projeto é:

  • Modo passagem, se a resolução de entrada for menor ou igual à resolução de saída
  • Modo Downscale, se a resolução de entrada for maior que a resolução de saída

Cada vez que você pressiona o botão 1 do usuário, o design muda para o próximo modo de dimensionamento (passthrough > upscale, upscale > downscale, downscale > passthrough). O botão de pressão do usuário 2 não é usado.

Interruptores DIP do usuário
Os interruptores DIP controlam a impressão opcional do terminal Nios II e as configurações para o formato de vídeo de saída conduzido pelo transmissor DisplayPort.

Tabela 3. Chaves DIP
A tabela lista a função de cada chave DIP. As chaves DIP, numeradas de 1 a 8 (não de 0 a 7), correspondem aos números impressos no componente da chave. Para definir cada chave para ON, mova a chave branca em direção ao LCD e longe dos LEDs na placa.

Trocar Função
1 Ativa a impressão do terminal Nios II quando definido como ON.
2 Definir bits de saída por cor:

DESLIGADO = 8 bits

ON = 10 bits

4:3 Definir espaço de cor de saída e sampling: SW4 DESLIGADO, SW3 DESLIGADO = RGB 4:4:4 SW4 DESLIGADO, SW3 LIGADO = YCbCr 4:4:4 SW4 LIGADO, SW3 DESLIGADO = YCbCr 4:2:2 SW4 LIGADO, SW3 LIGADO = YCbCr 4:2:0
6:5 Definir resolução de saída e taxa de quadros: SW4 OFF, SW3 OFF = 4K60

SW4 DESLIGADO, SW3 LIGADO = 4K30 SW4 LIGADO, SW3 DESLIGADO = 1080p60 SW4 LIGADO, SW3 LIGADO = 1080i60

8:7 Não utilizado

Executando o projeto de conversão de formato de vídeo DisplayPort 8K Example
Você deve baixar o .sof compilado file para o projeto para o kit de desenvolvimento Intel Arria 10 GX FPGA para executar o projeto.
PASSOS:

  1. No software Intel Quartus Prime, clique em Tools ➤ Programmer.
  2. Na janela do programador, clique em Detecção automática para escanear o JTAG cadeia e descobrir os dispositivos conectados.
    Se aparecer uma janela pop-up solicitando que você atualize a lista de dispositivos do programador, clique em Sim.
  3. Na lista de dispositivos, selecione a linha 10AX115S2F45.
  4. Clique em Alterar File…
    • Para usar a versão pré-compilada da programação file que a Intel inclui como parte do download do design, selecione master_image/pre_compiled.sof.
    • Para usar sua programação file criado pela compilação local, selecione output_files/top.sof.
  5. Ative Program/Configure na linha 10AX115S2F45 da lista de dispositivos.
  6. Clique em Iniciar.
    Quando o programador conclui, o design é executado automaticamente.
  7. Abra um terminal Nios II para receber as mensagens de texto de saída do design, caso contrário, o design trava após várias mudanças de chave (somente se você definir a chave DIP 1 do usuário como ON).
    • a. Abra uma janela de terminal e digite nios2-terminal
    • b. Pressione Enter.

conectado na entrada. Sem fonte, a saída é uma tela preta com o logotipo da Intel no canto superior direito da tela.

Descrição Funcional do Projeto de Conversão de Formato de Vídeo DisplayPort 8K Example

O sistema Platform Designer, udx10_dp.qsys, contém o receptor DisplayPort e o IP do protocolo do transmissor, o IP do pipeline de vídeo e os componentes do processador Nios II. O design conecta o sistema Platform Designer ao receptor DisplayPort e à lógica PHY do transmissor (que contém os transceptores de interface) e à lógica de reconfiguração do transceptor no nível superior em um design Verilog HDL RTL file (topo.v). O design compreende um único caminho de processamento de vídeo entre a entrada DisplayPort e a saída DisplayPort.

Figura 2. Diagrama de blocos
O diagrama mostra os blocos no Ex de design de conversão de formato de vídeo 8K DisplayPortample. O diagrama não mostra alguns dos periféricos genéricos conectados ao Nios II, o Avalon-MM entre o processador Nios II e os outros componentes do sistema. O design aceita vídeo de uma fonte DisplayPort à esquerda, processa o vídeo por meio do pipeline de vídeo da esquerda para a direita antes de passar o vídeo para o coletor DisplayPort à direita.intel-AN-889-8K-DisplayPort-Video-Format-Conversion-Design-Exampa-2

DisplayPort Receiver PHY e DisplayPort Receiver IP
A placa Bitec DisplayPort FMC fornece um buffer para o sinal DisplayPort 1.4 da fonte DisplayPort. A combinação de DisplayPort Receiver PHY e DisplayPort Receiver IP decodifica o sinal de entrada para criar um fluxo de vídeo. O receptor DisplayPort PHY contém os transceptores para desserializar os dados recebidos e o IP do receptor DisplayPort decodifica o protocolo DisplayPort. O IP do receptor DisplayPort combinado processa o sinal DisplayPort de entrada sem nenhum software. O sinal de vídeo resultante do IP do receptor DisplayPort é um formato de streaming empacotado nativo. O design configura o receptor DisplayPort para saída de 10 bits.

DisplayPort para IP de vídeo com clock
A saída do formato de dados de streaming empacotados pelo receptor DisplayPort não é diretamente compatível com o formato de dados de vídeo com clock que o IP de entrada de vídeo com clock espera. O DisplayPort to Clocked Video IP é um IP personalizado para este projeto. Ele converte a saída DisplayPort em um formato de vídeo com clock compatível que você pode conectar diretamente à entrada de vídeo com clock. O IP DisplayPort to Clocked Video pode modificar o padrão de sinalização do fio e pode alterar a ordem dos planos de cores dentro de cada pixel. O padrão DisplayPort especifica a ordem de cores que é diferente da ordem de IP do pipeline de vídeo da Intel. O processador Nios II controla a troca de cores. Ele lê o espaço de cores atual para transmissão do IP do receptor DisplayPort com sua interface escrava Avalon-MM. Ele direciona o DisplayPort para IP de vídeo com clock para aplicar a correção apropriada com sua interface escrava Avalon-MM.

Entrada de vídeo cronometrada
A entrada de vídeo com clock processa o sinal da interface de vídeo com clock do DisplayPort para IP de vídeo com clock e o converte para o formato de sinal de vídeo Avalon-ST. Este formato de sinal remove todas as informações de apagamento horizontal e vertical do vídeo, deixando apenas os dados da imagem ativa. O IP o empacota como um pacote por quadro de vídeo. Ele também adiciona pacotes de metadados adicionais (referidos como pacotes de controle) que descrevem a resolução de cada quadro de vídeo. O fluxo de vídeo Avalon-ST através do tubo de processamento é de quatro pixels em paralelo, com três símbolos por pixel. A entrada de vídeo com clock fornece cruzamento de clock para a conversão do sinal de vídeo com clock de taxa variável do IP do receptor DisplayPort para a taxa de clock fixa (300 MHz) para o pipeline de IP de vídeo.

Limpador de fluxo
O limpador de fluxo garante que o sinal de vídeo Avalon-ST passando para o pipeline de processamento esteja livre de erros. O hot plug da fonte DisplayPort pode fazer com que o projeto apresente quadros de dados incompletos para o IP de entrada de vídeo com clock e gere erros no fluxo de vídeo Avalon-ST resultante. O tamanho dos pacotes contendo os dados de vídeo para cada quadro não corresponde ao tamanho relatado pelos pacotes de controle associados. O limpador de fluxo detecta essas condições e adiciona dados adicionais (pixels cinzas) ao final dos pacotes de vídeo ofensivos para completar o quadro e corresponder à especificação no pacote de controle.

Resolução Cromaampler (entrada)
Os dados de vídeo que o design recebe na entrada do DisplayPort podem ser 4:4:4, 4:2:2 ou 4:2:0 chroma sampliderado. A resolução de croma de entradaampO ler pega o vídeo recebido em qualquer formato e o converte para 4:4:4 em todos os casos. Para fornecer maior qualidade visual, o chroma resampler usa o algoritmo filtrado computacionalmente mais caro. O processador Nios II lê os cromas atuaisampling do IP do receptor DisplayPort por meio de sua interface escrava Avalon-MM. Comunica o formato ao chroma resampler através de sua interface escrava Avalon-MM.

Conversor de espaço de cores (entrada)
Os dados de vídeo de entrada do DisplayPort podem usar o espaço de cores RGB ou YCbCr. O conversor de espaço de cores de entrada pega o vídeo de entrada em qualquer formato que ele chegue e o converte em RGB em todos os casos. O processador Nios II lê o espaço de cores atual do IP do receptor DisplayPort com sua interface escrava Avalon-MM; ele carrega os coeficientes de conversão corretos para o chroma resampler através de sua interface de escravo Avalon-MM.

Tosquiadeira
O cortador seleciona uma área ativa do fluxo de vídeo recebido e descarta o restante. O controle de software executado no processador Nios II define a região a ser selecionada. A região depende da resolução dos dados recebidos na fonte DisplayPort e da resolução de saída e modo de dimensionamento. O processador comunica a região ao Clipper por meio de sua interface escrava Avalon-MM.

Escalador
O design aplica escala aos dados de vídeo de entrada de acordo com a resolução de entrada recebida e a resolução de saída necessária. Você também pode selecionar entre três modos de escala (upscale, downscale e passthrough). Dois IPs escalares fornecem a funcionalidade de dimensionamento: um implementa qualquer downscaling necessário; o outro implementa o upscaling. O projeto requer dois scalers.

  • Quando o scaler implementa um downscale, ele não produz dados válidos em cada ciclo de clock em sua saída. por exampPor exemplo, se implementar uma taxa de redução de escala de 2x, o sinal válido na saída é alto a cada dois ciclos de clock enquanto o projeto recebe cada linha de entrada de número par e, em seguida, baixo para a totalidade das linhas de entrada de número ímpar. Esse comportamento de rajada é fundamental para o processo de redução da taxa de dados na saída, mas é incompatível com o IP do Mixer downstream, que geralmente espera uma taxa de dados mais consistente para evitar underflow na saída. O projeto requer o Frame Buffer entre qualquer downscale e mixer. O Frame Buffer permite que o Mixer leia os dados na taxa necessária.
  • Quando o scaler implementa um upscale, ele produz dados válidos em cada ciclo de clock, portanto, o seguinte mixer não apresenta problemas. No entanto, pode não aceitar novos dados de entrada em cada ciclo de clock. Tomando um upscale 2x como example, nas linhas de saída de número par, ele aceita uma nova batida de dados a cada dois ciclos de clock, então não aceita novos dados de entrada nas linhas de saída de número ímpar. No entanto, o Clipper upstream pode produzir dados em uma taxa totalmente diferente se estiver aplicando um clipe significativo (por exemplo, durante um zoom). Portanto, um Clipper e um upscale geralmente devem ser separados por um Frame Buffer, exigindo que o Scaler fique após o Frame Buffer no pipeline. O Scaler deve ficar antes do Frame Buffer para downscales, então o projeto implementa dois scalers separados em cada lado do Frame Buffer: um para upscale; o outro para downscale.

Dois Scalers também reduzem a largura de banda DDR4 máxima exigida pelo Frame Buffer. Você sempre deve aplicar downscales antes do Frame Buffer, minimizando a taxa de dados no lado da gravação. Sempre aplique upscales após o Frame Buffer, o que minimiza a taxa de dados no lado de leitura. Cada Scaler obtém a resolução de entrada necessária dos pacotes de controle no fluxo de vídeo de entrada, enquanto o processador Nios II com a interface escrava Avalon-MM define a resolução de saída para cada Scaler.

Buffer de quadro
O buffer de quadro usa a memória DDR4 para executar o buffer triplo que permite que o pipeline de processamento de vídeo e imagem execute a conversão da taxa de quadros entre as taxas de quadros de entrada e saída. O design pode aceitar qualquer taxa de quadros de entrada, mas a taxa total de pixels não deve exceder 1 giga pixels por segundo. O software Nios II define a taxa de quadros de saída para 30 ou 60 fps, de acordo com o modo de saída selecionado. A taxa de quadros de saída é uma função das configurações de saída de vídeo com clock e do clock de pixel de vídeo de saída. A contrapressão que a saída de vídeo com clock aplica ao pipeline determina a taxa na qual o lado de leitura do buffer de quadros puxa os quadros de vídeo do DDR4.

Misturador
O mixer gera uma imagem de fundo preto de tamanho fixo que o processador Nios II programa para corresponder ao tamanho da imagem de saída atual. O mixer tem duas entradas. A primeira entrada se conecta ao upscaler para permitir que o design mostre a saída do pipeline de vídeo atual. A segunda entrada se conecta ao bloco do gerador de ícones. O design permite apenas a primeira entrada do mixer quando detecta vídeo ativo e estável na entrada de vídeo com clock. Portanto, o design mantém uma imagem de saída estável na saída durante a conexão automática na entrada. O design alfa combina a segunda entrada do mixer, conectada ao gerador de ícones, sobre as imagens de fundo e do pipeline de vídeo com 50% de transparência.

Conversor de Espaço de Cores (Saída)
O conversor de espaço de cor de saída transforma os dados de vídeo RGB de entrada em espaço de cor RGB ou YCbCr com base na configuração de tempo de execução do software.

Resolução CromaampLer (Saída)
A resolução de croma de saídaampler converte o formato de 4:4:4 para um dos formatos 4:4:4, 4:2:2 ou 4:2:0. O software define o formato. A resolução de croma de saídaampler também usa algoritmo filtrado para obter vídeo de alta qualidade.

Saída de vídeo cronometrada
A saída de vídeo com clock converte o fluxo de vídeo Avalon-ST para o formato de vídeo com clock. A saída de vídeo cronometrada adiciona apagamento horizontal e vertical e informações de tempo de sincronização ao vídeo. O processador Nios II programa as configurações relevantes na saída de vídeo com clock, dependendo da resolução de saída e da taxa de quadros solicitada. A saída de vídeo com clock converte o clock, passando do clock de pipeline fixo de 300 MHz para a taxa variável do vídeo com clock.

Vídeo cronometrado para DisplayPort
O componente transmissor DisplayPort aceita dados formatados como vídeo com clock. As diferenças na sinalização do fio e na declaração das interfaces de conduíte no Platform Designer impedem que você conecte a saída de vídeo com clock diretamente ao IP do transmissor DisplayPort. O componente Clocked Video to DisplayPort é um IP personalizado específico do projeto para fornecer a conversão simples necessária entre a Saída de Vídeo Clocked e o IP do transmissor DisplayPort. Ele também troca a ordem dos planos de cores em cada pixel para levar em consideração os diferentes padrões de formatação de cores usados ​​pelo Avalon-ST Video e DisplayPort.

IP do transmissor DisplayPort e PHY do transmissor DisplayPort
O IP do transmissor DisplayPort e o transmissor DisplayPort PHY trabalham juntos para converter o fluxo de vídeo de vídeo com clock para um fluxo DisplayPort compatível. O IP do transmissor DisplayPort lida com o protocolo DisplayPort e codifica os dados DisplayPort válidos, enquanto o transmissor DisplayPort PHY contém os transceptores e cria a saída serial de alta velocidade.

Nios II Processador e Periféricos
O sistema Platform Designer contém um processador Nios II, que gerencia o receptor DisplayPort e os IPs do transmissor e as configurações de tempo de execução para o pipeline de processamento. O processador Nios II se conecta a estes periféricos básicos:

  • Uma memória no chip para armazenar o programa e seus dados.
  • AJTAG UART para exibir a saída printf do software (através de um terminal Nios II).
  • Um cronômetro do sistema para gerar atrasos no nível de milissegundos em vários pontos do software, conforme exigido pela especificação DisplayPort de durações mínimas de eventos.
  • LEDs para exibir o status do sistema.
  • Chaves de botão para permitir a alternância entre os modos de dimensionamento e para habilitar e desabilitar a exibição do logotipo da Intel.
  • Chaves DIP para permitir a troca do formato de saída e habilitar e desabilitar a impressão de mensagens para um terminal Nios II.

Eventos hot-plug na fonte DisplayPort e interrupções de incêndio no coletor que acionam o processador Nios II para configurar o transmissor DisplayPort e o pipeline corretamente. O loop principal no código do software também monitora esses valores nos botões de pressão e nas chaves DIP e altera a configuração do pipeline de acordo.

Controladores I²C
O design contém dois controladores I²C (Si5338 e PS8460) para editar as configurações de três dos outros componentes do Intel Arria 10 10 GX FPGA Development Kit. Dois geradores de clock Si5338 no Intel Arria 10 GX FPGA Development Kit se conectam ao mesmo barramento I²C. A primeira gera o clock de referência para o DDR4 EMIF. Por padrão, esse clock é definido como 100 MHz para uso com DDR1066 de 4 MHz, mas esse projeto executa o DDR4 a 1200 MHz, o que requer um clock de referência de 150 MHz. Na inicialização do processador Nios II, através do periférico controlador I²C, altera as configurações no mapa de registradores do primeiro Si5338 para aumentar a velocidade do clock de referência DDR4 para 150MHz. O segundo gerador de clock Si5338 gera o vid_clk para a interface de vídeo com clock entre o pipeline e o IP do transmissor DisplayPort. Você deve ajustar a velocidade deste clock para cada resolução de saída diferente e taxa de quadros suportada pelo design. Você pode ajustar a velocidade em tempo de execução quando o processador Nios II exigir. A placa filha Bitec DisplayPort 1.4 FMC faz uso do repetidor e retimer de limpeza de jitter Parade PS8460. Na inicialização, o processador Nios II edita as configurações padrão deste componente para atender aos requisitos do projeto.

Descrição do Software

O projeto de conversão de formato de vídeo 8K DisplayPort ExampO arquivo inclui IP do Intel Video and Image Processing Suite e o IP da interface DisplayPort. Todos esses IPs podem processar quadros de dados sem nenhuma intervenção adicional quando configurados corretamente. Você deve implementar o controle externo de alto nível para configurar os IPs para começar e quando o sistema mudar, por exemplo, receptor DisplayPort ou eventos hot-plug do transmissor ou atividade do botão de pressão do usuário. Neste projeto, um processador Nios II, executando um software de controle sob medida, fornece o controle de alto nível. Na inicialização, o software:

  • Define o clock de referência DDR4 para 150 MHz para permitir a velocidade DDR de 1200 MHz e redefine o IP da interface de memória externa para recalibrar no novo clock de referência.
  • Configura o repetidor PS8460 DisplayPort e retimer.
  • Inicializa as interfaces do receptor e do transmissor DisplayPort.
  • Inicializa os IPs do pipeline de processamento.

Quando a inicialização é concluída, o software entra em um loop while contínuo, verificando e reagindo a vários eventos.

Mudanças no modo de dimensionamento
O design oferece suporte a três modos básicos de dimensionamento; passagem, upscale e downscale. No modo de passagem, o design não dimensiona o vídeo de entrada, no modo upscale, o design aumenta o vídeo de entrada e, no modo downscale, o design reduz o vídeo de entrada.
Os quatro blocos no pipeline de processamento; o Clipper, o downscaler, o upscaler e o Mixer determinam a apresentação da saída final em cada modo. O software controla as configurações de cada bloco, dependendo da resolução de entrada atual, resolução de saída e modo de dimensionamento selecionado. Na maioria dos casos, o Clipper passa a entrada inalterada e o tamanho de fundo do Mixer é do mesmo tamanho que a versão final em escala do vídeo de entrada. No entanto, se a resolução do vídeo de entrada for maior que o tamanho da saída, não será possível aplicar um upscale ao vídeo de entrada sem primeiro recortá-lo. Se a resolução de entrada for menor que a saída, o software não poderá aplicar um downscale sem aplicar uma camada de fundo do Mixer maior que a camada de vídeo de entrada, que adiciona barras pretas ao redor do vídeo de saída.

Tabela 4. Tubulações de blocos de processamento
Esta tabela lista a ação dos quatro blocos de pipeline de processamento em cada uma das nove combinações de modo de dimensionamento, resolução de entrada e resolução de saída.

Modo dentro > fora dentro = fora dentro < fora
Passagem Recorte para o tamanho de saída Sem downscale Sem clipe

Sem redução de escala

Sem clipe

Sem redução de escala

continuou…
Modo dentro > fora dentro = fora dentro < fora
  Sem luxo

Sem borda preta

Sem luxo

Sem borda preta

Sem luxo

Almofadas de borda preta para o tamanho de saída

De alto padrão Clipe para tamanho de saída 2/3 Sem downscale

Upscale para o tamanho de saída Sem borda preta

Clipe para tamanho de saída 2/3 Sem downscale

Upscale para o tamanho de saída Sem borda preta

Sem clipe

Sem redução de escala

Upscale para o tamanho de saída Sem borda preta

Reduzir a escala Sem clipe

Reduzir para o tamanho de saída Sem aumentar

Sem borda preta

Sem clipe

Reduzir para o tamanho de saída Sem aumentar

Sem borda preta

Sem clipe

Reduzir para 2/3 do tamanho de entrada Sem aumentar

Almofadas de borda preta para o tamanho de saída

Alterne entre os modos pressionando o botão de pressão do usuário 1. O software monitora os valores nos botões de pressão em cada passagem pelo loop (faz um debounce de software) e configura os IPs no pipeline de processamento adequadamente.

Mudanças na entrada DisplayPort
Em cada execução do loop, o software pesquisa o status da entrada de vídeo com clock, procurando alterações na estabilidade do fluxo de vídeo de entrada. O software considera o vídeo estável se:

  • A entrada de vídeo cronometrado informa que o vídeo cronometrado foi bloqueado com sucesso.
  • A resolução de entrada e o espaço de cores não sofreram alterações desde a execução anterior do loop.

Se a entrada estava estável, mas perdeu o bloqueio ou as propriedades do fluxo de vídeo foram alteradas, o software interrompe o envio de vídeo de entrada de vídeo com clock através do pipeline. Ele também define o Mixer para parar de exibir a camada de vídeo de entrada. A saída permanece ativa (mostrando uma tela preta e o logotipo da Intel) durante qualquer evento de hotplug do receptor ou alterações de resolução.
Se a entrada não estava estável, mas agora está estável, o software configura o pipeline para exibir a nova resolução de entrada e espaço de cores, reinicia a saída do CVI e configura o Mixer para exibir a camada de vídeo de entrada novamente. A reativação da camada do mixer não é imediata, pois o Frame Buffer ainda pode estar repetindo quadros antigos de uma entrada anterior e o design deve limpar esses quadros. Em seguida, você pode reativar a exibição para evitar falhas. O buffer de quadros mantém uma contagem do número de quadros lidos do DDR4, que o processador Nios II pode ler. o softwareampreduz essa contagem quando a entrada se torna estável e reativa a camada Mixer quando a contagem aumenta em quatro quadros, o que garante que o design elimine todos os quadros antigos do buffer.

Eventos hot-plug do transmissor DisplayPort
Eventos hot-plug no transmissor DisplayPort disparam uma interrupção no software que define um sinalizador para alertar o loop principal do software sobre uma alteração na saída. Quando o projeto detecta um hot plug do transmissor, o software lê o EDID para o novo monitor para determinar quais resoluções e espaços de cores ele suporta. Se você definir as chaves DIP para um modo que o novo monitor não suporta, o software volta para um modo de exibição menos exigente. Em seguida, ele configura o pipeline, o IP do transmissor DisplayPort e a parte Si5338 que está gerando o vid_clk do transmissor para o novo modo de saída. Quando a entrada vê mudanças, a camada do Mixer para o vídeo de entrada não é exibida enquanto o software edita as configurações para o pipeline. O software não reativa
a exibição até depois de quatro quadros quando as novas configurações passarem pelo quadro
tampão.

Alterações nas configurações do interruptor DIP do usuário
As posições dos interruptores DIP do usuário 2 a 6 controlam o formato de saída (resolução, taxa de quadros, espaço de cores e bits por cor) conduzidos pelo transmissor DisplayPort. Quando o software detecta alterações nessas chaves DIP, ele executa uma sequência que é virtualmente idêntica a um hot plug do transmissor. Você não precisa consultar o EDID do transmissor, pois ele não muda.

Histórico de revisão para AN 889: design de conversão de formato de vídeo DisplayPort 8K Example

Tabela 5. Histórico de revisão para AN 889: Projeto de conversão de formato de vídeo 8K DisplayPort Example

Versão do documento Mudanças
2019.05.30 Lançamento inicial.


Corporação Intel. Todos os direitos reservados. Intel, o logotipo da Intel e outras marcas da Intel são marcas comerciais da Intel Corporation ou de suas subsidiárias. A Intel garante o desempenho de seus produtos FPGA e semicondutores de acordo com as especificações atuais de acordo com a garantia padrão da Intel, mas reserva-se o direito de fazer alterações em quaisquer produtos e serviços a qualquer momento sem aviso prévio. A Intel não assume nenhuma responsabilidade decorrente do aplicativo ou uso de qualquer informação, produto ou serviço aqui descrito, exceto conforme expressamente acordado por escrito pela Intel. Os clientes da Intel são aconselhados a obter a versão mais recente das especificações do dispositivo antes de confiar em qualquer informação publicada e antes de fazer pedidos de produtos ou serviços.
*Outros nomes e marcas podem ser reivindicados como propriedade de terceiros.

Documentos / Recursos

design de conversão de formato de vídeo Intel AN 889 8K DisplayPort Example [pdf] Guia do Usuário
AN 889 8K DisplayPort Projeto de Conversão de Formato de Vídeo Example, AN 889, design de conversão de formato de vídeo DisplayPort 8K Example, Projeto de Conversão de Formato Example, Design de Conversão Example

Referências

Deixe um comentário

Seu endereço de e-mail não será publicado. Os campos obrigatórios estão marcados *