Algoritmo :: FEC.

Correção de erro para a frente usando matrizes Vandermonde
Baixe Agora

Algoritmo :: FEC. Classificação e resumo

Propaganda

  • Rating:
  • Licença:
  • Perl Artistic License
  • Preço:
  • FREE
  • Nome do editor:
  • Marc Lehmann
  • Site do editor:
  • http://www.goof.com/pcg/marc/

Algoritmo :: FEC. Tag


Algoritmo :: FEC. Descrição

Forward Error Correction usando Vandermonde Matrizes Algorithm :: FEC é uma interface de Perl para a biblioteca fec por Luigi Rizzo et al., Consulte o arquivo README.fec na distribuição para mais detalhes. Esta biblioteca implementa um simples (encoded_blocks, data_blocks) código de apagamento com base em matrizes Vandermonde. O codificador leva data_blocks blocos de tamanho block_size cada, e é capaz de produzir até encoded_blocks diferentes blocos codificados, numerados de 0 a encoded_blocks-1, de tal modo que qualquer subconjunto de membros data_blocks permite a reconstrução dos dados originais. Os valores permitidos para data_blocks e encoded_blocks deve obedecer à seguinte equação: data_blocks. Envie-me se você quer que isso aconteça. Se chamado sem argumentos, o armazenamento interno associado com os blocos é libertado novamente. $ = $ Bloco fec-> codificam ($ block_index) Cria um único bloco codificado de índice block_index, que deve estar entre 0 e encoded_blocks-1 (inclusive). Os blocos de 0 a data_blocks-1 são simplesmente cópias dos blocos de dados originais. O bloco codificado é retornado como um escalar perl (de modo que os blocos devem caber na memória. Se este é um problema para você enviar-me e eu vou torná-lo um arquivo. $ Fec-> set_decode_blocks (, ) prepara-se para data_blocks de descodificação de blocos (ver set_encode_blocks para o parâmetro array_of_blocks). uma vez que estas não são normalmente os blocos de dados originais, uma matriz de índices (variando de 0 a encoded_blocks-1) deve ser fornecido como o segundo ARRAYREF. Ambas as matrizes devem ter exactamente data_blocks entradas. Este método também reordena os blocos e índice de matriz em local (se necessário) de modo a reflectir a ordem dos blocos terão no resultado descodificado. a matriz índice representa a ordenação descodificada, em que a n-ésima entrada nos índices corresponde matriz para a n-ésima bloco de dados do resultado descodificado. o valor armazenado na n-ésima lugar na matriz conterá o índice do bloco de dados codificado. blocos de entrada com índices inferiores a data_blocks será movido para a sua posição final (k bloco a posição k), enquanto que os espaços entre eles serão preenchidos com blocos de verificação. O processo de decodificação não vai modificar os blocos de dados já decodificados, mas vai modificar os blocos de verificação. Ou seja, se você chamar essa função com índices = , com data_blocks = 3, então essa matriz será devolvida: . Isto significa que a entrada de bloco de 0 corresponde a bloco de arquivo 0, o bloco de entrada para um bloco de arquivo 2 e bloco de entrada 2 para o bloco de dados 1. É possível apenas iterar sobre essa matriz e de escrita para o bloco de dados correspondente (embora isto é ineficiente): para my $ i (0 .. $ # idx) if ($ idx ! = $ i) # necessidade de passarmos este bloco? copiar codificado bloco $ idx para a posição $ i}} O método de cópia pode ser útil aqui. Este método destrói a matriz de bloco como definido acima por set_encode_blocks. $ Fec-> shuffle (, ) O mesmo mesmo que set_decode_blocks, com a ressalva de que os blocos não são realmente definido para a descodificação. Este método não é usado normalmente, mas se você deseja mover blocos ao redor após a reordenação e antes de decodificação, em seguida, chamar aleatório seguido por set_decode_blocks incorre menor sobrecarga do que chamar set_decode_blocks duas vezes, como arquivos não são mmapped etc. $ fec-> decodificação Decode os blocos definido por uma chamada anterior à set_decode_blocks. Este método destrói a matriz de bloco como definido acima por set_decode_blocks. $ Fec-> copiar ($ srcblock, $ dstblock) função de utilitário que simplesmente copia um bloco (definidos como nos set_encode_blocks) em outro. Este, btw., Destrói os blocos definidos pelo conjunto _ * _ blocos. SINOPSE usar Algorithm :: FEC; Requisitos: · Perl.


Algoritmo :: FEC. Software Relacionado