Introdução à Tecnologia de Processamento Paralelo HEVC

A complexidade do h265 em comparação com o h264

  1. Reflexão de Complexidade
    ○ h265 tem mais modos de previsão intra-frame, h265 inclui 35 modos de previsão, como previsão de ângulo, previsão DC e modo planar, excedendo em muito os 17 modos de h264, e a complexidade da seleção do modo intra-frame é bastante aumentada; ○ divisão de área h265
    O método é mais diversificado, a estrutura de partição em árvore é proposta, o tamanho da unidade de partição é mais diversificado, a partição assimétrica aparece e a compensação de movimento é mais complicada; ○ h265 adiciona o conceito de
    unidade de transformação e o o tamanho da unidade de transformação máxima é determinado por h264 8x8 é aumentado para 32x32, e a quantidade de cálculo não é a mesma;
    ○ A responsabilidade geral de h265 pode ser dezenas de vezes maior que a dos codificadores anteriores;
  2. Solução
    ○ O processamento paralelo em um ambiente multi-core pode dobrar a velocidade de codificação e decodificação e se tornar uma solução eficaz.

Tecnologia de processamento paralelo de codec de vídeo

  1. Conceitos básicos de processamento paralelo
    ○ O processamento paralelo geralmente se refere ao modo de processamento no qual muitas instruções podem ser realizadas ao mesmo tempo. O processamento paralelo geralmente decompõe o processo de processamento em pequenas partes e, em seguida, usa várias unidades de computação para resolvê-las simultaneamente maneiras;
  2. Paralelismo Funcional
    ○ O Paralelismo Funcional refere-se à divisão do programa aplicativo em módulos funcionais mutuamente independentes.A troca de dados e a comunicação são realizadas por meio de fluxos e, finalmente, as várias unidades são conectadas em série.
    ○ Por exemplo, decodificação de entropia, quantização inversa, transformação inversa, etc. no processo de decodificação em h265. Esses módulos são interconectados e seus mecanismos operacionais podem ser redivididos e combinados para alcançar o paralelismo funcional.
    ○ Fazer pleno uso do paralelismo de tempo para obter o efeito das enzimas, que é mais adequado para implementação de hardware.
    ○ A desvantagem é que é fácil causar desequilíbrio de carga. Além disso, é necessária a comunicação de dados entre diferentes unidades de computação e são necessários recursos adicionais para armazenamento; além disso, a escalabilidade do paralelismo funcional é ruim.
  3. Paralelismo de dados
    ○ O paralelismo de dados divide as informações de dados em partes mutuamente independentes, e cada parte é entregue a diferentes unidades de computação para execução, realizando assim o processamento paralelo; nesse caso, os programas executados em diferentes unidades de computação são os mesmos e o processamento é Informações de dados mutuamente independentes não requerem comunicação entre unidades de computação.
    ○ h265 fornece unidades estruturais adequadas para processamento paralelo de dados, como fatias e ladrilhos. Em diferentes fatias e ladrilhos, as informações de dados são independentes umas das outras, o que é propício para atribuí-las a diferentes unidades de computação para processamento.
    ○ Para unidades de divisão menores que fatias e ladrilhos, o h265 oferece suporte ao Wavefront Parallel Processing (WPP), que é um método de processamento paralelo de dados para unidades de imagem mutuamente dependentes.
    ○ É fácil obter balanceamento de carga, tem escalabilidade muito boa e é fácil de implementar no software.
    insira a descrição da imagem aqui

método de processamento paralelo h265

  1. Considerando as características do padrão h265, durante o processo de decodificação, a decodificação por entropia pode inicializar o modelo de probabilidade no início das linhas Slice, Tile e CTB.Para imagens diferentes, as posições de inicialização são diferentes;

  2. Como a relação de dependência da decodificação de entropia é inconsistente com a da decodificação subsequente, se nenhuma distinção for feita no processo paralelo, isso trará muitos problemas para toda a decodificação paralela e a eficiência da decodificação será bastante reduzida;

  3. O processo de decodificação do h265 pode ser dividido em dois módulos funcionais seriais, ou seja, decodificação de entropia e decodificação paralela. .

  4. O modelo de decodificação paralela h265 combina o paralelismo funcional e o paralelismo de dados .
    insira a descrição da imagem aqui

  5. Dependências de dados da unidade de codificação h265
    ○ Para unidades de codificação de processamento paralelo, a influência das dependências de dados deve ser eliminada;
    ○ A tecnologia paralela Wavefront deve ser realizada sob a premissa de satisfazer as dependências entre cada unidade de dados CTB;
    ○ Unidade de codificação h265 As dependências de dados são principalmente gerado por predição intra, predição inter verdadeira, filtro de desbloqueio e compensação adaptativa de ponto de amostra;
    ○ Previsão intra: o CTB atual pode depender das informações de pixel dos CTBs esquerdo, superior esquerdo, superior e direito superior e informações de modo; ○ Previsão
    inter : o vetor de movimento do CTB atual pode precisar ser previsto a partir do CTB esquerdo, superior esquerdo, superior e superior direito;
    ○ Filtragem de desbloqueio: o processo de filtragem de limite de linha para o bloco CTB atual precisa se referir às quatro colunas de pixels no lado direito, quatro fileiras de pixels na parte inferior do CTB superior;
    ○ Compensação adaptativa do ponto de amostra SAO: A compensação de borda SAO tem quatro situações: 0, 45, 90 e 135. Quando o CTB atual é compensado, o 8 blocos provavelmente serão referenciados;

tecnologia de processamento paralelo h265

  1. Tile
    ■ Tile é uma unidade de dados recém-adicionada em h265. Ela divide a imagem original em áreas retangulares independentes, e cada área retangular é codificada independentemente sem referência mútua; ■ A introdução de Tile é
    principalmente para paralelismo, não para sincronização e correção de erros, alterando o método de digitalização original, CTB in Tile digitaliza de acordo com o raster;
    insira a descrição da imagem aqui

    ■ Uma fatia pode conter vários ladrilhos, e um ladrilho também pode conter várias fatias, mas nem uma fatia nem um ladrilho podem cruzar o limite de uma fatia; ■ quando vários ladrilhos estão localizados na mesma fatia
    Quando , eles podem compartilhar a mesma fatia cabeçalho, economizando assim a taxa de código;
    ■ O preço introduzido pelo Tile é que o desempenho da distorção de taxa diminui com o aumento do número de Tile, porque a divisão de unidades Tile destrói a correlação de informações perto do limite Tile e, além disso, CABAC também atualizará o modelo de probabilidade no limite Tile;
    insira a descrição da imagem aqui

  2. Wavefront Parallel Processing WPP
    ■ A introdução de Tile e Slice destruirá a correlação e causará uma certa queda de desempenho, enquanto a tecnologia WPP introduzida pelo h265 permite que várias linhas de CTB sejam processadas ao mesmo tempo, mas o processamento da última linha fica lento atrás da linha anterior por dois CTB, para que a decodificação paralela possa ser realizada sem destruir a correlação normal, mantendo o desempenho original;
    insira a descrição da imagem aqui

  3. Fatia dependente
    h265 adiciona a unidade de dados da fatia dependente, que divide uma fatia completa em diferentes áreas e as encapsula em diferentes unidades NAL independentes, e essas áreas podem estar relacionadas entre si. A introdução de fatias dependentes é propícia ao processamento de paralelismo, especialmente no final da decodificação:
    ■ Um pedaço de dados de linha CTB ou um Tile para processamento paralelo de frente de onda pode ser empacotado em uma unidade NAL separada, tal unidade é chamada de fatia dependente;

h265 estratégia paralela

  1. Paralelismo no nível GOP O
    paralelismo no nível GOP em h265 é viável, mas como o volume de dados do GOP é enorme, a leitura frequente e a leitura do armazenamento de dados consomem muito tempo e consomem muitos recursos, e o atraso também é muito grande;

  2. Paralelismo em nível de imagem
    Na estrutura de dados em nível de imagem, devido à existência de previsão de movimento, haverá dependência temporal entre diferentes imagens, mas essa dependência não é inevitável. Uma sequência de vídeo geralmente inclui três imagens de IPB, I Ambos quadro e As imagens do quadro P podem ser referenciadas, mas as imagens do quadro B podem ser divididas em quadros de nível B, e as imagens do quadro B do mesmo nível podem ser independentes umas das outras e obter paralelismo; ■ O método de implementação é muito limitado pelo número de imagens
    B ;

  3. Paralelismo em nível de fatia
    CABAC em h265 atualizará o modelo de contexto no final de cada fatia, o que permite que a codificação de entropia de diferentes fatias seja executada em paralelo; além da codificação de entropia, dados de fatia diferentes também podem ser enviados para diferentes unidades de computação sem Considere sua correlação;
    ■ O paralelismo de fatias tem desvantagens óbvias. O número de fatias em cada imagem é determinado pelo codificador e o número de decodificadores paralelos é difícil de determinar; ao desbloquear a filtragem, é possível cruzar o limite das fatias, o que reduz a expansão paralela. Sexo; causa desequilíbrio de carga; pode fazer com que a taxa de código dobre;
    insira a descrição da imagem aqui

  4. Paralelismo em nível de ladrilho
    Decodificação e previsão de entropia, diferentes dados de ladrilhos são independentes uns dos outros e o CABAC também atualizará o modelo de contexto no final de cada ladrilho, o que é benéfico para realizar o paralelismo de ladrilhos; ■ Filtragem de desbloqueio e amostragem A compensação adaptativa pode
    ser executado através dos limites Tile, exigindo processamento adicional para eliminar dependências,
    ■ A desvantagem é que pode causar desequilíbrio de carga e aumento das taxas de bits;

  5. Paralelismo de nível CTB
    ■ O algoritmo WPP da tecnologia de processamento paralelo de frente de onda é usado para paralelismo de nível CTB;
    ■ A desvantagem é que a tecnologia WPP não pode ser implementada na parte de decodificação de entropia e só pode executar decodificação de entropia e processamento paralelo separadamente. Além disso, a estabilidade da taxa de código de saída não pode ser garantida; ■ Visando as deficiências, um método de sobreposição de paralelismo de frente de onda
    é proposto para reduzir a diminuição da eficiência paralela causada pelo aumento e diminuição do número de threads no processo paralelo; mas o a premissa desse algoritmo é que o vetor de movimento é pequeno o suficiente, caso contrário, é fácil causar a última imagem Falta de informações de referência ao decodificar; ■ A partir da análise da estrutura de dados, Tile e CTB podem ser implementados em paralelo ao mesmo tempo, mas as deficiências são ampliadas e não há solução correspondente em h265.

    insira a descrição da imagem aqui

referência

  1. T-REC-H.265-202108-I.
  2. Codificação de vídeo de alta eficiência da nova geração H.265HEVC Princípios, padrões e implementação [Editado por Wan Shuai, Yang Fuzheng] Edição de 2014.

Acho que você gosta

Origin blog.csdn.net/yanceyxin/article/details/131962164
Recomendado
Clasificación