Existem vários métodos de compressãodependendo do tipo de dados ou informações a que se destina. Aqui mostramos os mais importantes, para que você possa aprender mais sobre eles. Desde compressão estatística, por dicionário, até imagem, vídeo e áudio, com ou sem perda, através de métodos como wavelet, etc.
Mais sobre compactação de dados
Métodos de compressão estatística
O Os métodos estatísticos são baseados em modelagem probabilística de dados para reduzir despedimentos. Esses métodos analisam a frequência de ocorrência de símbolos ou padrões, atribuindo códigos mais curtos aos elementos mais frequentes.
As vantagens deste método o tornam ideal para dados com alta redundância. No entanto, não é eficiente para pequenos fluxos de dados devido à complexidade.
Dentro desses métodos de compressão existem vários algoritmos, como:
- Compressão de Huffman– Cria uma árvore binária com base na frequência dos símbolos nos dados. A cada símbolo é atribuído um código único, sem prefixos comuns, o que garante uma representação ideal de acordo com a distribuição estatística. Por exemplo, para compactar um texto em que as letras A, B, C, D aparecem com frequências relativas de 45%, 30%, 15% e 10%, ou seja, nas vezes que se repetem, seriam gerados códigos binários. : A=0, B=10, C=110, D=111.
- Codificação aritmética: Representa um fluxo de dados como um único intervalo entre 0 e 1, dividindo esse espaço proporcionalmente às probabilidades do símbolo. Para ser mais claro, um exemplo seria um fluxo de dados com probabilidades de A=0,5, B=0,25, C=0,25. O intervalo inicial é subdividido em [0, 0.5] para A, [0.5, 0.75] para B, e [0.75, 1] para C.
Você também pode estar interessado em conhecer a melhor mídia externa de armazenamento de dados
Métodos de dicionário
O Os métodos de compactação de dicionário substituem sequências repetidas de dados por referências a entradas em uma tabela ou dicionário. Esta abordagem é útil quando os dados contêm padrões repetitivos. Este método é simples, mas requer dicionários completos para cobrir todos os dados a serem compactados, caso contrário não é eficaz.
Como você pode ver nos exemplos anteriores da imagem, é simplesmente usado um dicionário que contém todos os dados possíveis e uma referência/código binário.
Métodos de imagem
O compressão de imagem concentra-se na eliminação de redundâncias espaciais, espectrais ou visualmente irrelevantes. É dividido em métodos com e sem perdas. Por exemplo, na imagem acima podemos ver como uma imagem de um coração composta por pixels de grade 7×7 é comprimida. Como você pode ver, a ideia neste método RLE seria simplesmente marcar o número de pixels em uma determinada cor para cada linha, neste caso Branco e Preto. Por exemplo, no primeiro temos W1+B1+W3+B1+W1, ou seja, um pixel branco, outro preto, três brancos, um preto e um branco.
Porém, nem tudo é tão fácil, existem variantes mais complexas para diferentes formatos e em imagens muito mais complexas e com muito mais cores. Por exemplo, em Formato JPEG Uma transformada discreta de cosseno (DCT) é usada para converter a imagem do domínio espacial para o domínio da frequência, onde os coeficientes de alta frequência são removidos, pois têm impacto mínimo na percepção visual. O processo resumido seria:
- A imagem é dividida em porções de 8×8 px.
- É aplicado DCT, um procedimento matemático complexo que tenta converter intensidades de pixel em frequências.
- Coeficientes menos significativos são reduzidos.
- Finalmente, um código Huffman é usado para simplificá-los ou um RLE (Run-Length Encoding) como aquele que expliquei antes de coração.
Outro exemplo de compactação usando DEFLATE está no formato PNG, que utiliza compactação sem perdas e técnicas de filtragem preditiva…
Compressão baseada em wavelet
O métodos baseados em wavelets Eles decompõem os dados em níveis hierárquicos de frequências, usando funções básicas chamadas “wavelets”, daí seu nome. Esses métodos são populares em imagens e vídeos devido à sua capacidade de preservar detalhes importantes e, ao mesmo tempo, remover informações irrelevantes. Por exemplo, em JPEG 2000 utiliza-se DWT em vez de DCT, ou seja, Discret Wavelet Transform, evitando artefatos que podem ser comuns em JPEG com DCT.
Wavelets são funções que permitem analisar um sinal em diferentes escalas. Para fazer isso, eles decompõem os dados em aproximações (baixa frequência) e detalhes (alta frequência). Por exemplo, imagine a imagem de um céu azul homogêneo com uma nuvem. Todo o céu pode ser entendido como aproximações ou baixa frequência e a nuvem, uma rápida mudança de pixels com bordas e texturas como detalhes de alta frequência.
Dentro do método DWT podemos encontrar o 1D ou o 2D, ou seja, o primeiro decompõe um sinal unidirecional como uma linha de pixels, e o 2D para imagens aplica primeiro linhas e depois colunas, que se divide em quatro subbandas em vez de duas. : aproximação (LL), detalhes horizontais (HL), detalhes verticais (LH) e detalhes diagonais (HH).
Graças a esta técnica pode-se obter uma elevada taxa de compressão, embora também tenha suas desvantagens, como a maior complexidade em relação ao DCT.
compressão de vídeo
O compressão de vídeo Combina técnicas espaciais e temporais, explorando redundâncias dentro de frames (intraframe) e entre frames consecutivos (interframe). Como podemos ver na imagem de exemplo, você pode partir de um vídeo com uma série de frames que são iguais e não variam, e pegar apenas o primeiro deles e o que muda nos demais que o seguem. Desta forma temos uma compressão.
Por exemplo, imagine um vídeo em que aparece uma paisagem e uma pessoa caminhando. O fundo ou paisagem não muda, é o mesmo, para que o fundo e a diferente posição da pessoa possam ser salvos nos quadros seguintes. Dessa forma você não precisa armazenar também o plano de fundo de todos esses quadros. Ou seja, basta retirar o que é redundante e não muda…
Além disso, existem também algoritmos muito mais avançados que são capazes de prever movimentos, etc., ou técnicas como Quadros-chave (armazena quadros completos em intervalos) e o Compensação de movimento (codifica apenas as diferenças entre os quadros).
Dentro deste tipo de compressões temos muito várias formas ou codecs diferentes, ou seja, algoritmos que tratam os vídeos de uma forma ou de outra para compactá-los. Por exemplo:
- H.264/AVC: Baseia-se em transformadas DCT, quantização adaptativa e previsão de movimento para obter compressões bastante grandes. Por exemplo, um vídeo de 1 GB pode ser reduzido para 100 MB mantendo uma qualidade aceitável.
- HEVC (H.265): É uma melhoria em relação ao anterior, e utiliza blocos maiores de até 64×64 px, além de ter melhor previsão de movimento.
compressão de áudio
O compressão de áudio aproveita características psicoacústicas descartar sons inaudíveis que podem ser removidos, simplificando o áudio final e reduzindo seu tamanho. Isto consegue um efeito semelhante ao do ouvido humano, mas sem ocupar tanto espaço.
Por exemplo, como você bem sabe, o ouvido humano só ouve de 20 Hz a 20 Khz ou 20.000 Hz, então tudo que está abaixo disso (infra-som) e acima disso (ultra-som) não é perceptível pelo ouvido humano e pode ser removido sem nenhum. perda perceptível de qualidade.
É claro que, como acontece com o vídeo, na compressão de áudio existem vários codecs o algoritmos para compressão:
- MP3– Utiliza transformadas como DCT e quantização perceptiva. Ele divide o espectro de frequência em bandas críticas e elimina dados irrelevantes para o ouvido humano.
- AAC: o formato Advanced Audio Coding (AAC) é mais eficiente que o MP3, suportando taxas de bits mais baixas e oferecendo melhor qualidade para a mesma compactação.
- FLAC: formato sem perdas que utiliza técnicas preditivas para codificar diferenças entre amostras.
Não esqueça de deixar seus comentários ou dúvidas…