O que é codificação em bloco?
Parte da teoria do código, a codificação de blocos é uma forma de correção direta de erros (FEC), também conhecida como código de canal, que converte mensagens em códigos específicos e envia as informações como um bloco de dados com um comprimento predeterminado. Blocos maiores de dados facilitam a decodificação do computador receptor e corrigem os erros que ocorrem durante a transferência. Códigos de bloco e códigos convolucionais são dois tipos de código comumente usados no FEC. Esses tipos de código permitem que uma mensagem seja enviada por uma conexão não confiável e ainda sejam decifráveis quando chegar.
O uso da codificação de bloco é necessário devido ao ruído que ocorre quando uma mensagem é enviada. Quando os dados precisam percorrer uma longa distância ou uma conexão não confiável, o peso e a distância de Hamming são usados para determinar a probabilidade de erros. Peso de hamming é o número de dígitos necessários para expressar todas as combinações possíveis de códigos, e a distância de hamming é quantos erros teriam que ocorrer antes que um pouco representasse uma informação legítima, mas errada.
Por exemplo, se um remetente usando código de bloco desejasse enviar uma mensagem que pudesse usar apenas três códigos possíveis com três dígitos cada, o peso de Hamming seria três. Os códigos podem ser 000, 010 e 011. Se um erro resultar na alteração de um dígito, como 000, alterando para 010, o código será lido como um código legítimo (010), mas não o código que o remetente pretendeu (000) . Portanto, a distância de Hamming para esse código é uma porque apenas um dígito precisa ser alterado para causar um erro que o computador não pode corrigir.
Para diminuir a distância de Hamming e reduzir erros, os dados são enviados como um bloco de código que é codificado em palavras de código específicas de um determinado comprimento. Os bits de dados da mensagem original são referidos como k bits. Os k bits são convertidos nos n bits correspondentes, que são códigos que foram selecionados para permanecer como códigos mais longos para cada k bit. Uns ou zeros são adicionados para tornar os bits um comprimento uniforme e reduzir a distância de Hamming. Em seguida, esses blocos de n bits são transmitidos para o computador receptor.
Pensar na codificação de blocos é mais simples quando comparado a duas pessoas conversando. Ao conversar em uma sala barulhenta ou gritar a longa distância, há mais espaço para erros no que a pessoa receptora ouve. Se a sentença for longa, a pessoa poderá corrigir mais erros colocando a sentença inteira no contexto, mas as sentenças curtas terão uma taxa de erro mais alta, pois é mais difícil decifrar o que a pessoa está dizendo.
Como exemplo, se uma pessoa grita "Gato vermelho" e a outra pessoa ouve "Gato Fed", eles interrompem a frase incorretamente. Se, no entanto, a primeira pessoa disser "eu tenho um gato de cor vermelha" e a segunda pessoa ouvir "eu tenho um gato de cor", o contexto da frase facilita a determinação da pessoa que realmente disse "vermelho" e não "alimentado". Esse é o princípio básico por trás da codificação de blocos e do uso de códigos uniformes e mais longos para ajudar os computadores a traduzir com precisão um bloco de informações.