Codificação de Vídeo - Melhor Tolerância à Perda de Pacotes

Sep 25, 2018

Codificação de Vídeo - Melhor Tolerância à Perda de Pacotes


Video Coding - Better Packet Loss Tolerance.png

O stream de vídeo H.264 atual (não hierárquico) é muito maduro em termos de compactação de dados, e todos os métodos aprendidos de livros são usados na compactação de dados. Um dos mais importantes é enviar incrementos. em formação. Se um quadro de imagem de vídeo é apenas ligeiramente alterado com base no quadro anterior, então, ao transmitir a imagem do quadro, não é necessário transmitir as informações que não foram alteradas. O codec transmitirá apenas as informações incrementais e informará ao destinatário: "Esses pixels fizeram essas alterações enquanto os outros pixels permanecem intactos". Desta forma, a informação a ser transmitida é muito menor do que a informação transmitida pela imagem de todo o quadro, de modo que o efeito de compressão é muito melhorado.

 

No entanto, quando a rede tiver perda de pacotes, a desvantagem desse método de transmissão de informações incrementais será destacada. Quando um pacote é perdido, a extremidade receptora não pode obter as últimas informações de alteração do quadro da imagem de vídeo, portanto, a imagem do vídeo terá um pequeno erro. Quando o próximo pacote é alcançado, a imagem em si é construída sobre a informação errada, então a qualidade da imagem é ainda pior. Em resposta a esse problema, o codec atual emprega um método de transmissão de informações completas de quadros de imagem de tempos em tempos. Quando ocorre uma perda de pacotes, o receptor pode solicitar a atualização de um quadro inteiro de imagem para acelerar o processo de corte. No entanto, isso causará um atraso de rede inteiro, além do tempo de processamento interno do codec, o resultado é auto-evidente.

 

Existem também alguns fornecedores que usam algoritmos de correção antecipada de erros (FEC) para resolver esse problema. O FEC é um tipo de algoritmo de codificação de bloco que melhora a precisão criando informações redundantes e transmitindo as informações redundantes junto com o fluxo de pacotes original. Essas informações redundantes podem ajudar a reconstruir os pacotes perdidos na rede, desde que as informações corretas e redundantes sejam suficientes. Esse método parece bom, mas é claro que custa um pouco. Como o codec também precisa enviar informações redundantes, os requisitos de largura de banda para a rede aumentam de acordo. Alguns codecs garantem uma largura de banda de transmissão sustentada (sobrecarga de vídeo mais FEC), sacrificando a largura de banda alocada para o vídeo. Obviamente, isso trará perda para a qualidade do fluxo de vídeo. Além disso, no algoritmo FEC, antes de o código FEC ser transmitido, um pacote de dados deve ser criado e o código FEC deve ser calculado. Na extremidade receptora, um pacote de dados e informações redundantes precisam ser coletados para reconstruir o pacote de dados perdidos, o que inevitavelmente aumenta o atraso. O aumento no atraso reduzirá a interatividade da comunicação por vídeo e aumentará a dificuldade da conversação bidirecional.

 

Então, o que a SVC pode resolver esse problema? Sabemos que o SVC cria imagens de vídeo através de uma camada base e uma ou mais camadas de melhoria, que são transportadas em pacotes de dados diferentes na rede, o impacto da perda dos pacotes de dados da camada base e o resultado da codificação não hierárquica. É consistente, mas o impacto da perda de pacotes da camada de aprimoramento é muito menor. Como a camada de aprimoramento é baseada na camada de base e não na imagem de quadro frontal, a perda de pacote da camada de aprimoramento causa apenas nitidez temporária e degradação da taxa de quadros sem afetar a arquitetura básica da imagem de vídeo.

 

O código FEC pode proteger as informações da camada base do fluxo de vídeo SVC da mesma forma que a codificação não hierárquica. Na comunicação de vídeo SVC com requisitos de resolução mais baixa, o uso de códigos FEC também tem os problemas de limitações, sobrecarga e atraso da codificação não hierárquica de baixa largura de banda. Nos requisitos de maior largura de banda, a diferença entre as técnicas de codificação de vídeo em camadas e não-camadas é muito óbvia. Isso ocorre porque há apenas sobrecarga na camada base, mas não na camada de aprimoramento. Por exemplo, se o código FEC adiciona um total de 20% de sobrecarga e a camada base ocupa apenas 25% da largura de banda de toda a comunicação de vídeo, ou seja, na codificação de vídeo em camadas, o código FEC ocupa apenas 5% do toda a comunicação de vídeo. Largura de banda, enquanto códigos FEC ocupam 20% da largura de banda total em codificação de vídeo não-layerable.

 

Portanto, as vantagens da tecnologia de codificação de vídeo em camadas aqui são refletidas na combinação da arquitetura de fluxo de vídeo em camadas e da proteção FEC da camada de base. Para chamadas de baixa largura de banda, os efeitos alcançados pela codificação de vídeo em camadas e pela codificação de vídeo sem camadas são semelhantes. No entanto, em chamadas de alta largura de banda, a codificação de vídeo em camadas pode fornecer vídeo de maior qualidade em uma rede que é fácil de descartar pacotes e requer menos proteção do que a codificação de vídeo não-estratificável.


Você pode gostar também