Visão geral do algoritmo ISP (Image Signal Processing), princípio de funcionamento, arquitetura, fluxo de processamento

índice

A principal estrutura interna do ISP : ISP inclui CPU, SUP IP (nome comum para vários módulos funcionais), IF e outros equipamentos

Estrutura de controle do ISP: 1. Lógica do ISP 2. Firmware rodando nele

O firmware no ISP consiste em três partes:

Como o AP controla o ISP: Externo: I2C / SPI. Integrado: MEM MAP, MEM SHARE

Esquema de arquitetura do ISP: integrado, externo

Fluxo de processamento do ISP:

Bayer, compensação de nível de preto, correção de sombra de lente, correção de pixel ruim, interpolação de cor (demosaic), remoção de ruído Bayer, correção de balanço de branco (AWB), correção de cor (cor correção), correção de gama, conversão de espaço de cor (RGB para YUV), remoção de ruído de cor e aprimoramento de bordas, aprimoramento de cor e contraste no espaço de cor YUV, controle automático de exposição no meio e, em seguida, formato YUV (ou RGB) de saída Os dados são transferidos para a CPU para processamento por meio da interface de E / S.

 

conceito

ISP é a abreviaturade Image Signal Processor , ou seja, processador de sinal de imagem .

DSP é a abreviaturade Digital Signal Processor , ou seja, digital signal processor .

O ISP é geralmente usado para processar os dados de saída do sensor de imagem, como AEC (controle de exposição automática), AGC (controle de ganho automático), AWB (balanço de branco automático), correção de cor, sombreamento de lente, correção de gama e remoção de pixels mortos , Nível de preto automático, Nível de branco automático e outras funções.

E a função DSP é mais, pode fazer algumas fotos e fazer eco (JPEGCodificação e decodificação ), gravação e reprodução ( codificação e decodificação de vídeo), codificação e decodificação H.264e muitos outros aspectos do processamento, enfim, é o processamento de sinais digitais. O ISP é um tipo especial de DSP que processa sinais de imagem.

Esquema de arquitetura do ISP : é dividido emduas formas : independente ( externa ) e integrada ( embutida ) .

O processador CPU inclui: AP, BP, CP. Entre eles, BP : processador de banda base, AP : processador de aplicativos, CP : acelerador de multimídia.

 

A principal estrutura interna do ISP

Conforme mostrado na figura abaixo, o ISP contém CPU, SUP IP, IF e outros equipamentos, de fato, pode-se considerar que o ISP é um SOC (sistema de chip), que pode executar vários programas de algoritmos para processar sinais de imagem em tempo real.

CPU : CPU é a unidade de processamento central, que pode executar vários algoritmos de processamento de imagem, como AF e LSC, para controlar dispositivos periféricos. As CPUs em ISPs modernos geralmente são da série ARM Cortex-A, como Cortex-A5 e Cortex-A7.

SUB IP : SUB IP é um termo geral para vários módulos funcionais , que realizam processamento profissional em imagens. SUB IP comum, como DIS, CSC, VRA, etc.

Interface de transmissão de imagem : Existem duas interfaces de transmissão de imagem principais, ITU paralela e CSI serial. CSI é a abreviatura de MIPI CSI. Em vista das muitas vantagens de MIPI CSI, no campo de câmeras de telefones celulares, a interface MIPI-CSI tem sido amplamente utilizada para transmitir dados de imagem e vários dados personalizados. O ISP externo geralmente inclui duas interfaces: MIPI-CSIS e MIPI-CSIM. O ISP embutido geralmente só precisa da interface MIPI-CSIS.

Periféricos gerais : os periféricos gerais referem-se a I2C, SPI, PWM, UART, WATCHDOG, etc. O ISP contém um controlador I2C, que é usado para ler informações de OTP e controlar VCM. Para um ISP externo, o próprio ISP também é um dispositivo escravo I2C. O AP pode controlar o modo de trabalho do ISP por meio do I2C e obter seu status de trabalho.

 

Estrutura de controle do ISP

O ISP inclui: 1. Lógica do ISP 2. Firmware rodando nele

Conforme mostrado na figura, depois que a lente projeta o sinal de luz para a área fotossensível do sensor, o sensor passa por conversão fotoelétrica e envia a imagem original no formato Bayer para o ISP. O ISP processa o algoritmo e envia a imagem no domínio do espaço RGB para a unidade de captura de vídeo back-end. Nesse processo, o ISP controla a lógica do ISP por meio do firmware executado nele para controlar a lente e o sensor de acordo e, a seguir, completa funções como íris automática, exposição automática e balanço de branco automático. Dentre eles, o funcionamento do firmware é impulsionado pela interrupção da unidade de captura de vídeo. PQ Tools implementa ajuste de qualidade de imagem online do ISP através da porta de rede ou porta serial.

O ISP é composto da lógica do ISP e do firmware executado nele.Além de completar parte do processamento do algoritmo, a unidade lógica também pode calcular as informações em tempo real da imagem atual. O firmware obtém as informações estatísticas da imagem da lógica do ISP, recalcula e controla o feedback da lente, do sensor e da lógica do ISP para atingir o objetivo de ajustar automaticamente a qualidade da imagem.

 

O Firmware no ISP contém três partes

O firmware do ISP consiste em três partes, uma é a unidade de controle do ISP e a biblioteca de algoritmos básicos, uma é a biblioteca de algoritmos AE / AWB / AF e a outra é a biblioteca de sensores. A ideia básica do projeto de firmware é fornecer uma biblioteca de algoritmos 3A separada. A unidade de controle do ISP agenda a biblioteca de algoritmos básicos e a biblioteca de algoritmos 3A. Ao mesmo tempo, a biblioteca de sensores registra retornos de chamada de função com a biblioteca de algoritmos básicos do ISP e a biblioteca de algoritmos 3A para obter uma adaptação diferenciada do sensor. . A arquitetura do firmware do ISP é mostrada na figura.

Sensores diferentes registram funções de controle com a biblioteca de algoritmos do ISP na forma de funções de retorno de chamada. Quando a unidade de controle do ISP programa a biblioteca de algoritmo básico e a biblioteca de algoritmo 3A, ela obterá os parâmetros de inicialização por meio dessas funções de retorno de chamada e controlará o sensor, como ajustar o tempo de exposição, ganho analógico, ganho digital, controlar o foco da lente ou girar a íris, etc.

 

Como o AP controla o ISP

O processador CPU inclui: AP , BP, CP. BP : processador de banda base , AP : processador de aplicativo , CP : acelerador de multimídia

O método de controle mencionado aqui é como o AP controla o ISP.

I2C / SPI : geralmente é a prática de um ISP externo. O SPI é geralmente usado para baixar firmware e I2C é geralmente usado para controle de registro. No driver ISP do kernel, o ISP externo geralmente é implementado como um dispositivo I2C e, em seguida, empacotado como V4L2-SUBDEV.

MEM MAP : Esta é geralmente a prática do ISP integrado. Mapeie o espaço de endereço de registro dentro do ISP para o espaço de endereço do kernel,

MEM SHARE : Esta também é a prática do ISP integrado. O AP aloca memória e então passa o endereço de memória para o ISP. Os dois realmente compartilham a mesma memória. Portanto, as operações do AP nesta memória compartilhada serão alimentadas de volta ao ISP em tempo real.

 

Esquema de arquitetura ISP

Mencionei o ISP externo e o ISP integrado muitas vezes acima, que na verdade é a arquitetura do ISP.

Arquitetura de ISP externo

A arquitetura ISP externa significa que um chip ISP é organizado separadamente fora do AP para processamento de sinal de imagem. O diagrama de arquitetura de um ISP externo é geralmente o seguinte:

As principais vantagens da arquitetura do ISP externo são:

Pode fornecer melhor qualidade de imagem : na competição acirrada do mercado, os fabricantes de ISP externos que podem sobreviver até o presente geralmente têm conhecimentos profundos neste campo e acumularam uma rica experiência em depuração de qualidade de imagem. Melhor desempenho e efeito. Portanto, a escolha de um ISP externo de alta qualidade pode fornecer qualidade de imagem profissional e excelente.

Pode oferecer suporte a um planejamento de design mais rico : A seleção de um ISP externo basicamente não é afetada pelo AP, então Meizu pode selecionar o dispositivo mais adequado de muitos produtos de excelentes fornecedores de chips de ISP para projetar produtos mais excelentes.

Ele pode realizar a diferenciação do produto : o ISP embutido é encapsulado dentro do AP e está intimamente conectado com o AP. Se o AP for o mesmo, o ISP é o mesmo. Portanto, o desempenho do ISP dos telefones celulares produzidos com base no mesmo AP também é o mesmo, e as condições disponíveis para o ajuste também são fixas, o que não é propício à diferenciação do produto. Se você escolher um ISP externo, o mesmo AP pode ser combinado com diferentes tipos de ISPs, que podem realizar a diferenciação do produto e fornecer aos usuários produtos mais ricos e de alta qualidade.

As principais desvantagens da arquitetura do ISP externo são:

Preço de custo alto : ISPs externos precisam ser adquiridos separadamente, seus preços costumam ser caros e algumas funções especiais exigem taxas adicionais. O uso de um ISP externo requer design esquemático e LAYOUT adicionais, e componentes adicionais são necessários.

Longo ciclo de desenvolvimento : O design de um driver de ISP externo requer muito esforço e tempo. Ao usar um ISP externo, o driver ISP fornecido pelo fornecedor do AP não pode ser usado e um driver ISP externo precisa ser projetado e escrito. Além disso, para fazer uma combinação perfeita com o AP e maximizar o efeito, geralmente é necessário mais esforço de depuração. Conforme mencionado acima, o uso de um ISP externo requer design esquemático adicional e LAYOUT, e componentes adicionais são necessários, o que também leva tempo para processar.

Arquitetura ISP integrada :

A arquitetura ISP embutida significa que o IP ISP está embutido no AP, e o ISP dentro do AP é usado diretamente para processamento de sinal de imagem. O diagrama de arquitetura do ISP integrado é geralmente o seguinte:

As principais vantagens da arquitetura ISP integrada são:

Pode reduzir custo e preço : o ISP embutido é embutido no AP, então não há necessidade de comprar extras como um ISP externo e não ocupa espaço de PCB, e não há necessidade de projetar circuitos periféricos separadamente para ele, o que pode economizar BOM e reduzir custos. Tendo em vista que a maioria dos usuários coloca o fator preço em uma posição importante na compra de telefones celulares, a redução de custos pode efetivamente reduzir o preço dos produtos terminais e ajudar a ocupar o mercado.

Pode melhorar a velocidade da lista de produtos : o ISP embutido e o AP estão intimamente integrados, sem a necessidade de design esquemático e design de layout, portanto, pode reduzir o ciclo de desenvolvimento e acelerar a velocidade da lista de produtos.

Pode reduzir a dificuldade de desenvolvimento : Se o ISP embutido for usado, o fornecedor do AP pode fornecer materiais relevantes no estágio inicial e os desenvolvedores de driver podem ter tempo suficiente para se familiarizar com os materiais relevantes e não haverá problemas de adaptação de versão de software ou compatibilidade de arquitetura de plataforma problema. No entanto, se um ISP externo for usado, o fornecedor do ISP geralmente não pode fornecer código / informações para uma determinada plataforma e geralmente há problemas de compatibilidade de versão de software, o que requer experiência e tempo dos desenvolvedores da unidade.

É claro que usar o ISP integrado também tem deficiências correspondentes. Consulte a análise acima para obter detalhes, portanto, não entrarei em detalhes aqui.

Na verdade, dada a importância dos ISPs, a fim de promover seus APs e melhorar sua competitividade, os ISPs integrados aos APs estão se tornando cada vez mais poderosos e seu desempenho é suficiente para atender às necessidades do mercado de telefonia móvel. Junto com sua série de vantagens, cada vez mais telefones celulares usam programas ISP integrados .

 

Fluxo de processamento de ISP

Processo de geração de imagem: a cena é projetada na superfície do sensor por meio da imagem óptica gerada pelo Lens, convertida em sinal elétrico analógico após a conversão fotoelétrica, após a eliminação do ruído, convertida em sinal de imagem digital após a conversão A / D e enviada para o chip de processamento de sinal digital (DSP) Em processamento.

Portanto, a imagem proveniente do sensor é uma imagem Bayer, que passou por compensação de nível de preto, correção de sombra de lente, correção de pixel ruim, interpolação de cor (demosaic) e remoção de ruído Bayer. Correção de equilíbrio de branco (awb), correção de cor (correção de cor), correção de gama, conversão de espaço de cor (RGB para YUV), remoção de ruído de cor e aprimoramento de borda no espaço de cor YUV, aprimoramento de cor e contraste e exposição automática no meio Controle e assim por diante e, em seguida, produza os dados no formato YUV (ou RGB) e, em seguida, transmita-os para a CPU para processamento por meio da interface de E / S.

1.Bayer ( filtro Bayer para obter cor )

Quando a imagem converte a cena real em dados de imagem, o sensor geralmente recebe as informações dos três componentes de vermelho, verde e azul, respectivamente, e então sintetiza as informações dos três componentes de vermelho, verde e azul em uma imagem colorida. Essa solução requer três filtros, que são caros e difíceis de fabricar, porque os três filtros devem garantir que cada pixel esteja alinhado.

Adicionando uma estrutura de filtro de cores e um módulo de processamento de informações de cores com base no sensor de imagem CMOS preto e branco, as informações de cores da imagem podem ser obtidas e, em seguida, as informações de cores podem ser processadas para obter uma imagem de cores vivas. A filtragem da cobertura da superfície do sensor de imagem colorida é geralmente chamada de matrizes de filtros de cores ( Matrizes de Filtros de Cores, CFA ).

No momento, a matriz de filtro mais comumente usada está no formato xadrez, e há muitos tipos, e a maioria dos produtos de câmera usa a cor primária Bayer Pattern CFA (Bayer Pattern CFA). R, G e B representam unidades de matriz de filtro vermelha, verde e azul, respectivamente. Como a visão humana é mais sensível ao verde, o componente G em Bayer CFA é duas vezes R e B. Apenas uma informação do componente de cor pode ser obtida em cada pixel, e então um algoritmo de interpolação é usado de acordo com as informações do componente de cor Obtenha uma imagem colorida.

2. BLC (correção do nível de preto) ( compensação do nível de preto )

a. Corrente escura

Dispositivos físicos podem não ser ideais. Devido a impurezas, calor e outros motivos, mesmo que nenhuma luz seja irradiada para o pixel, a unidade de pixel irá gerar cargas, e essas cargas geram corrente escura. Além disso, é difícil distinguir entre a corrente escura e a carga elétrica gerada pela luz.

b. Nível Preto

Nível de preto é usado para definir o nível de sinal correspondente quando os dados da imagem são 0. Devido à influência da corrente escura, os dados brutos reais do sensor não são o balanço de escuridão de que precisamos (os dados não são 0). Portanto, a fim de reduzir a influência da corrente escura no sinal de imagem, um método eficaz que pode ser usado é subtrair o sinal de corrente escura de referência do sinal de imagem obtido. Geralmente, no sensor, os pixels reais são maiores do que os pixels efetivos. Conforme mostrado na figura abaixo, as primeiras linhas da área de pixels são usadas como áreas insensíveis (na verdade, esta parte da área também é feita de filtro de cor RGB) para preto automático Para correção de nível, o valor médio é usado como o valor de correção e, em seguida, o valor de correção é subtraído dos pixels na área inferior, então o nível de preto pode ser corrigido.

A correção do nível de preto é feita e a correção do nível de preto não. A imagem sem a correção do nível de preto ficará mais clara, o que afetará o contraste da imagem.

3. LSC (Correção de sombreamento de lente) ( correção de lente )

Devido às propriedades físicas da própria lente, o brilho ao redor da imagem é gradualmente reduzido em relação ao brilho do centro. Além disso, quando a imagem é irradiada através da lente para o pixel, o ângulo focal nos cantos é maior do que o ângulo focal central, fazendo com que os cantos percam luz . O efeito mostrado na imagem é que o brilho atenua gradualmente do centro da imagem para os arredores, e quanto mais longe do centro da imagem, mais escuro é o brilho. Para compensar o brilho do ambiente, é necessária a correção do Lens Shading.

O método de correção do Lens Shading é calcular o valor de correção de brilho correspondente a cada pixel de acordo com um determinado algoritmo, compensando assim o brilho atenuado da periferia.  

Existem dois métodos de correção e quatro métodos de correção.

4.BPC (de )correção de ( correção de pixel morto )

a. Pixels mortos

Os pixels mortos são os pontos brancos na imagem de saída sob o ambiente totalmente preto e os pontos pretos na imagem de saída sob o ambiente claro.

b. Método de reparo de pixel morto

Em circunstâncias normais, o sinal RGB deve ter uma relação de resposta linear com o brilho da cena, mas o sinal de saída é anormal devido à parte inferior da Senor do pixel e pontos brancos ou pretos aparecem.

Normalmente, existem dois métodos para reparar pixels mortos:

Um é detectar automaticamente os pixels mortos e repará-los automaticamente, e o outro é estabelecer uma lista vinculada de pixels mortos para corrigir os pixels danificados em uma posição fixa.Esse método é um método OTP.

5. Interpolação de cores demósica  (para mosaico )

Depois que a luz passa pelo array CFA (Color Filter Arrays) do tipo Bayer, a luz monocromática atinge o sensor e cada pixel é uma luz monocromática, então a imagem Bayer ideal é uma imagem em mosaico relativamente fraca.

A primeira coisa que precisa ser explicada é que demosaiced não é remover algumas imagens de mosaico do filme literalmente, mas é usado no processamento de imagem digital para gerar amostras de cores completas a partir de amostras de cores incompletas (porque bayer O padrão parece um mosaico, por isso é denominado demosaicing). No lado do sensor, um filtro CFA é geralmente usado para obter o padrão Bayer e, no processamento subsequente, o padrão bayer precisa ser transformado em uma imagem RGB444 (true color) completa. Esse módulo é necessário no ISP.

Existem muitos algoritmos para esta interpolação no ISP tradicional, incluindo método do vizinho mais próximo, interpolação bilinear, interpolação cúbica, etc.

6.Bayer Denoise ( para remover o ruído )

Use o sensor CMOS para obter imagens, o nível de luz e os problemas do sensor são os principais fatores que geram muito ruído na imagem. Ao mesmo tempo, quando o sinal passa pelo ADC, outros ruídos são introduzidos. Estes ruídos irão borrar a imagem como um todo e perder muitos detalhes, portanto, é necessário diminuir a ruído da imagem.Os métodos tradicionais de remoção de ruído espacial incluem a filtragem de médias e a filtragem de Gauss.

No entanto, a filtragem gaussiana geral considera principalmente a relação de distância espacial entre os pixels durante a amostragem e não considera o grau de semelhança entre os valores dos pixels, portanto, o resultado de desfoque obtido dessa forma é geralmente um desfoque de toda a imagem. Portanto, algoritmos de eliminação de ruído não linear, como filtros bilaterais, são geralmente usados. Na amostragem, não apenas a distância espacial dos pixels é considerada, mas também o grau de similaridade entre os pixels é levado em consideração, de modo que o bloco geral da imagem original possa ser mantido, e então Beira.

7.AWB ( )Equilíbrio de ( equilíbrio de branco automático )

O princípio básico do equilíbrio de branco é restaurar objetos brancos em objetos brancos em qualquer ambiente, ou seja, localizando os blocos brancos na imagem e, em seguida, ajustando a proporção de R / G / B, como segue:

R '= R * R_Gain

G '= G * G_Gain

B '= B * B_Gain

R '= G' = B '

O algoritmo AWB geralmente inclui as seguintes etapas:

(1) Estatísticas da temperatura da cor: De acordo com as estatísticas da imagem, temperatura da cor;

(2) Calcule o ganho do canal: Calcule o ganho dos canais R e B;

(3) Execute a correção de projeção de cores: De acordo com o ganho fornecido, calcule a correção da projeção de cores.

8. Correção de cor ( correção de cor )

Devido à diferença entre a responsividade do espectro da luz visível do olho humano e a responsividade do espectro do sensor semicondutor, bem como a influência da lente, etc., a cor do valor RGB obtido será tendenciosa, então a cor deve ser corrigida. A prática usual é passar de 3x3 Matriz de mudança de cor para correção de cor. 

9. Correção de gama ( correção de gama )

A sensibilidade dos olhos humanos às fontes de luz externas e a intensidade da luz de entrada não são lineares, mas exponenciais. Sob baixa iluminância, o olho humano pode distinguir mais facilmente a mudança de brilho e, com o aumento da iluminância, o olho humano não consegue distinguir facilmente a mudança de brilho. A sensibilidade à luz da câmera tem uma relação linear com a intensidade da luz de entrada. Para facilitar o reconhecimento da imagem pelo olho humano, a imagem coletada pela câmera precisa de correção de gama.

A correção gama é uma operação não linear realizada no valor de cinza da imagem de entrada, de modo que o valor de cinza da imagem de saída e o valor de cinza da imagem de entrada tenham uma relação exponencial:

out = Vin ^ gamma

Este índice é gama, a abscissa é o valor cinza de entrada, a ordenada é o valor cinza de saída, a curva azul é a relação de entrada e saída quando o valor gama é menor que 1 e a curva vermelha é a relação de entrada e saída quando o valor gama é maior que 1. Pode-se observar que quando o valor gama é menor que 1 (curva azul), o valor de brilho geral da imagem é melhorado e o contraste em níveis de cinza baixos é aumentado ao mesmo tempo, o que é mais propício para distinguir detalhes da imagem em valores de cinza baixos.

10. Conversão de espaço de cor

YUV é um espaço de cor básico, e o olho humano é muito mais sensível às mudanças de brilho do que às mudanças de cor. Portanto, para o olho humano, o componente de luminância Y é muito mais importante do que os componentes de crominância U e V. Portanto, alguns componentes U e V podem ser descartados apropriadamente para atingir o propósito de compressão de dados.

YCbCr é na verdade uma versão modificada de YUV que foi redimensionada e deslocada. Y representa o brilho, Cr e Cb representam a diferença de cor, e a diferença entre os valores de brilho do sinal RGB são os componentes vermelho e azul, respectivamente. Na família YUV, o YCbCr é o membro mais amplamente utilizado em sistemas de computador e seus campos de aplicação são muito amplos, tanto JPEG quanto MPEG usam esse formato. De um modo geral, YUV se refere a YCbCr. YCbCr tem muitos formatos de amostragem, como 4: 4: 4, 4: 2: 2, 4: 1: 1 e 4: 2: 0.

Cb: Reflete a diferença entre a parte azul do sinal de entrada RGB e o valor de brilho do sinal RGB.
Cr: Reflete a diferença entre a parte vermelha do sinal de entrada RGB e o valor de brilho do sinal RGB.

Nas duas fórmulas a seguir, o valor de cada componente de RGB e YCbCr varia de 0 a 255.

Fórmula RGB para Ycbcr:

Y = 0,257 * R + 0,564 * G + 0,098 * B + 16

Cb = -0,148 * R-0,291 * G + 0,439 * B + 128

Cr = 0,439 * R-0,368 * G-0,071 * B + 128

YCbCr convertido para fórmula RGB:

R = 1,164 * (Y-16) + 1,596 * (Cr-128)

G = 1,164 * (Y-16) -0,392 * (Cb-128) -0,813 * (Cr-128)

B = 1,164 * (Y-16) + 2,017 * (Cb-128)

O módulo de conversão do espaço de cores deve converter RGB em YUV444 e, em seguida, executar a remoção de ruído de cor subsequente e o aprimoramento de bordas no espaço de cores YUV, além de fornecer conveniência para conversão de saída subsequente em imagens jpeg.

11. Cor Denoise

A fim de suprimir o ruído de cor da imagem, um filtro passa-baixa geralmente é usado para processamento. Por exemplo, um filtro passa-baixo gaussiano M × N é usado para processamento no canal de crominância.

 

referência:

Estrutura da câmera Qualcomm (introdução básica da câmera)

https://blog.csdn.net/weijory/article/details/70225392

Visão geral do algoritmo ISP

https://blog.csdn.net/weijory/article/details/53306545

Visão geral do ISP, princípio de funcionamento e arquitetura

https://blog.csdn.net/l18318931829/article/details/78274790

A diferença entre ISP DSP

https://blog.csdn.net/hunanchenxingyu/article/details/49750177

Espaço de cor de processamento de imagem digital RGB, HSI, CMYK, conversão mútua YUV

https://blog.csdn.net/aoshilang2249/article/details/38070663

Estrutura básica do ISP e introdução de algoritmo

https://blog.csdn.net/a1809032425/article/details/81272965

SP (Processamento de Sinal de Imagem) - Visão geral do processamento de imagem

https://blog.csdn.net/lyfwill/article/details/81220380

Visão geral do sistema de câmeras - ISP

http://kernel.meizu.com/camera-isp-intro.html

Acho que você gosta

Origin blog.csdn.net/a8039974/article/details/108978379
Recomendado
Clasificación