Você está na página 1de 5

Codificação e Compressão de Dados

Adão Souza Jr.


May 2, 2018

Abstract
Teoria da quantização. Atividade de reconstrução de sinal quantizado.
As notas de aula sobre quantização seguem a referência 5, capı́tulo 4,
com especial atenção ao exemplo 4.1

1 Quantidade de informação em sinais contı́nuos


Até agora trabalhamos com mensagens constituı́das de conjuntos de dados dis-
cretos cujos sı́mbolos podem ser representados por um alfabeto finito. Podemos,
assim, dizer que a mensagem a se comprimir é uma sequência de N códigos
C0 , C1 , C2 , ...CN −1 e que cada código Cn ∈ ζ = {σ0 , σ1 , σ2 ...σM −1 }, onde ζ é o
alfabeto com M diferentes sı́mbolos.
A codificação da mensagem em um trem de bits é realizada por diferentes
processos em que se transforma a sequencia de códigos Cn em uma sequencia de
bits bj . O tamanho médio de cada código L̄ é dado pelo número de bits utilizados
para representar a mensagem dividido pelo número de sı́mbolos representado.
Pode-se atribuir a cada sı́mbolo uma probabilidade de ocorrência (pk ) e uma
quantidade de informação (Ik ). Com isso é possı́vel determinar a entropia do
conjunto H(ζ) que determina o limite mı́nimo de bits necessário para representar
os mesmos.
Em muitas situações reais, no entanto, nosso conjunto de dados é repre-
sentando por algum tipo de grandeza contı́nua que é amostrado e quantizado.
Assumindo que se tenha um sinal contı́nuo que foiamostrado s(nT ), como seria
possı́vel determinar a codificação mais eficiente para esse sinal?

1.1 Entropia diferencial


Em primeiro lugar poderiamos tentar substituir as probabilidades discretas que
usamos para o calculo de quantidade de informação pela função densidade de
probabilidade da váriável contı́nua (fs ) e buscar um análogo para a entropia.
PM −1 PM −1
Lembrando que H(ζ) = 0 pk · Ik = − 0 pk · log2 (pk ). Para um
intervalo de valores ∆s a partir de s a probabilidade é dada por fs (s)∆s .
Assim:
M
X −1 M
X −1 M
X −1
H(ζ) = − fs (s)∆s ·log2 (fs (s)∆s ) = − fs (s)∆s ·log(fs (s))− fs (s)∆s ·log2 (∆).
0 0 0
(1)

1
PM −1
Ou seja: H(ζ) = − 0 fs (s)∆s · log2 (fs (s)) − log2 (∆). Onde M é o
número de subdivisões de s pelo intervalo ∆s .
Quando se aproxima o intervalo para zero a primeira parte da expressão
pode ser transformada em uma integral e a segunda diverge. Se define a en-
tropia diferencial h(s) de uma variável contı́nua s utilizando a versão integral
da primeira parte dessa expressão:
Z ∞
h(s) = − fs (s) · log2 [fs (s)]dS (2)
−∞

Exemplo 1: Uma váriável x com distribuição uniforme no intervalo x ∈


RA 1 1
[−A, A], tera entropia diferencial h(x) = − −A 2A · log2 [ 2A ]dS
2
1
Exemplo 2: Uma variável x com ditribuição gaussiana fx = √2πσ 2
exp[− (x−µ x)
2σ 2 ]
pode ter sua entropia diferencial calculada como h(x) = 21 log2 2πeσ 2
Obs: É possı́vel provar que para qualquer distribuição com variância dada
por σ a entropia diferencial será sempre menor ou igual a dada para uma dis-
tribuição gaussiana.

1.2 Entropia diferencial e informação


Note-se que a entropia diferencial não é igual a definição de entropia que temos
para fontes discretas e não se pode atribuir a ela as mesmas propriedades. De
fato não existe um equivalente ao teorema da codificação que possa ser aplciado
diretamente a variável contı́nua.
Pode-se, no entanto, usar a entropia diferencial de forma similar a entropia
para se definir a informação mutua para variáveis contı́nuas. Em variáveis
discretas a informação mútua I(x—y) é a quantidade de informação de uma
dada variável x quando se sabe da ocorrência de uma segunda variável y e é
calculada usando-se as distribuições de probabilidade condicionais (Px—y).
A entropia condicional H(X—Y) pode ser considerada a incerteza restante a
respeito da variável X quando se tem conhecimento da variável Y. Desse modo
é sempre menor ou igual a entropia de X. Ou seja: H(X|Y ) ≤ H(X). Note-
se que estamos usando X e Y maı́usculos para denotar os alfabetos de x e y
respectivamente. Pode-se mostrar que I(x|y) = H(Y ) − H(Y |X) = I(y|x)
Em variáveis contı́nuas pode-se ober uma relação similar usando a entropia
condicional: I(X|Y ) = h(X) − h(X|Y ). Ou seja, mesmo não sendo possı́vel
atribuir uma quantidade de informação única a uma variável contı́nua é possı́vel
determinar a quantidade de informação mútua entre variáveis contı́nuas. De fato
a informação mútua pode ser usada, assim como outros critérios como o erro
quadrático, a fim de avaliar a qualidade de uma representação discreta de um
sinal contı́nuo. Isso é feito através de uma função de taxa de distorção (Rate
Distortion Function) e pode ser visto em detalhes na bibliografia (Sayood, seção
8.5, por exemplo).

2 Quantização
A fim de se poder melhor compreender o processo de quantização e seu papel
na codificação e compressão de dados devemos aborda-lo de forma incremental.

2
Inicialmente vamos estudar a quantização escalar, tanto uniforme, quanto não
uniforme para, em seguida, nos preocuparmos com a quantização diferencial.
Algumas definições são importantes: o processo de quantização irá transfor-
mar uma uma variável contı́nua já amostrada x[n] em uma nova série xq [n], onde
cada elemento de xq é um valor discreto selecionado de um alfabeto finito X de M
possı́veis sı́mbolos. Assim, xq ∈ X = {...σ−1 , σ0 , σ1],σ2 ,... . Para isso ser possı́vel
é necessário que os valores de entrada contı́nuos sejam limitados. Chamamos de
faixa dinâmica a variação máxima do valor de x (ou seja DR = |Xmax − Xmin |).
A resolução de um quantizador é dada por r = log2 (M ), onde M é o número de
sı́mbolos usados para representar o sinal quantizado.
O valor de entrada é comparado com um conjunto de limiares que deter-
minam os limites de cada sı́mbolo. Para M sı́mbolos haverão M-1 limiares de
comparação. Os simbolos podem ser representandos pelos seus ı́nidces no alfa-
beto, ou pelo valor que representam. O conjunto dos M valores representandos é
chamado de codebook. Para uma resolução r, haverão 2r sı́mbolos no codebook
e 2r − 1 limiares.

2.1 Quantização uniforme


Uma das maneiras que se pode realizar a quantização é definir que a mesma
seja feita de forma uniforme. Ou seja, que os limiares de quantização sejam
uniformente espaçados. Nesse caso chamamos a menor diferença observada entre
valores de saı́da quantizados de passo de quantização, ou q. Onde:
DR DR
q= = (3)
2r − 1 M −1
O gráfico que indica os valores de saı́da que serão atribuı́dos a cada um dos
sı́mbolos é chamado de relação entrada-saı́da e, de fato, existem duas diferentes
formas de se converter um conjunto de valores contı́nuos, pode-se optar por
representar o zero como um dos sı́mbolos (meio-piso ou mid-thread). Isso é
representado na figura 1.

Figure 1: Entrada-saı́da e quantização de senoide usando mid-thread

A expressão para calcular os valores de saı́da de um quantizador uniforme


meio passo é dada por:
x 1
xq = q · b + c (4)
q 2

3
Alternativamente, pode-se colocar um limiar de comparação em zero, gerado-
se uma relação entrada saı́da conhecida como meio passo (mid rise) que pode
ser vista na figura 2.

Figure 2: Entrada-saı́da e quantização de senoide usando mid-thread

Nesse caso a equação para a quatização fica sendo:


x 1
xq = q · (b c + ) (5)
q 2

2.2 Teoria do ruido aditivo de quantização


Quando o sinal é quantizado a entrada é comparada com diferentes limiares
para definir o código de saı́da. Se observarmos a distribuição de probabilidades
de entrada e a de saı́da a relação entre elas pode ser vista na figura 3. No
exemplo se esta considerando um quantizador mid-thread com M=7. Note-
se que a distribuição de probabilidade da saı́da é discreta e cada um dos seis
impulsos tem uma amplitude que corresponde a área da distribuição de entrada
entre os dois limiares que definem o simbolo. Na figura, a área pintada de cinza
corresponde a probabilidade do sı́mbolo zero.

fx

x
q

−3 −2 −1 1 2 3

Figure 3: Distribuição de uma variável contı́nua gaussiana fx e quantizada fxq

A distribuição de probabilidades da saı́da pode ser calculada como um trem


de impulsos em que cada amplitude é calculada pela área respectiva:
i=M/2 Z q·i+q/2
X
fxq = ( fx (x)dx) · δ(x − i · q) (6)
i=−M/2,i6=0 q·i−q/2

4
Utilizando a relação entre a convolução com um pulso quadrado e a área
delimitada pela base desse quadrado é possı́vel reescrever a equação 6 da seguinte
forma.
i=M/2
x X
fxq = q · rect( ) fx · δ(x − i · q) (7)
q
i=−M/2,i6=0

Ou seja, a distribuição discreta da saı́da corresponde a convoluirmos a dis-


tribuição da entrada com uma distribuição uniforme de largura q e amostrarmos
essa distribuição resultante com nosso passo de quantização.
A partir dessa expressão é possı́vel perceber que essa distribuição é a mesma
que se obteria caso se somasse a entrada com ruido uniforme de amplitude q/2
(ou seja, ruido uniforme n que teria a disribuição de probabilidade dada por
fn = 1/q · rect( xq ). Lembrando-se que quando se somam duas variáveis não
correlacionadas suas distribuições de probabilidade convoluem.
Isso pode ser interpretado pensando-se o seguinte: se a quantização for boa
o bastante o erro será aproximadamente uma função dente de serra não correla-
cionada com a entrada. Essa função teria uma distribuição de probabilidade
exatamente retangular como esperado. Ou seja: o efeito da quantização vai ser
a adição de um ruido uniforme com distribuição fn .
A questão é: qual o passo de quantização suficiente para isso? A resposta
vem dos teoremas de quantização I e II que podem ser lidos em detalhes nos
capitulo 4 de Quantization Noise por Widrow e Kollar que pode ser lido online.
(http://oldweb.mit.bme.hu/books/quantization/)

2.3 Simulação
É esse principio que é ilustrado na simulação dessa semana. Para um conjunto
de dados se aproxima primeiro a densidade de probabilidade (PDF). A partir dai
se calcula sua função caracteristica CF (transformada da PDF). Em cima dessa
transformada se aplica o teorema escolhendo um q o qual obedece a condição
QT I.
Leia atentamente os comentários do código e faça as propostas de mudança
observando os resultados. Depois disso, efetue a leitura do capitulo 4 da refer-
encia (Widrow e Kollar) e realize a tarefa de hoje.

Você também pode gostar