O que é codificação por comprimento de sequência?
A codificação por comprimento de sequência é um método de compressão sem perdas que substitui valores repetidos consecutivos por cada valor e pelo comprimento de sua sequência. Sua eficácia depende da frequência com que sequências longas ocorrem nos dados de origem.
Como funciona a codificação por comprimento de sequência
Um codificador RLE percorre os símbolos em uma ordem definida e emite pares ou tokens que descrevem um valor e quantas vezes ele se repete. A decodificação expande cada token de forma determinística, sem descartar nenhuma informação de origem. A ordem de varredura importa para imagens: linhas horizontais podem gerar sequências longas em imagens com áreas de cor uniforme, mas sequências curtas após um percurso diferente ou em fotografias com ruído. A RLE costuma ser incorporada como uma etapa em formatos de bitmap, fax, máscara, legenda ou dados intermediários, em vez de ser usada como um tipo de arquivo independente e universal.
Informações essenciais
- Um codificador precisa de uma convenção de escape ou de tokens para distinguir valores literais de marcadores de sequência; a representação exata depende do formato e não é inerente ao conceito de RLE.
- A expansão no pior caso ocorre quando os valores mudam com frequência, pois metadados de sequência são adicionados a sequências muito curtas; alguns formatos passam a usar blocos literais para limitar esse custo adicional.
- As sequências não devem ultrapassar limites proibidos pelo formato que as contém, como linhas de varredura ou blocos de imagem, mesmo quando o último valor de uma unidade coincide com o primeiro da seguinte.
Quando a codificação por comprimento de sequência é importante
Escolha esse método para máscaras, gráficos simples ou outros dados que contenham sequências longas de pixels idênticos. Uma entrada com ruído ou muito variada pode tornar a forma codificada tão grande quanto a original ou até maior.