You are on page 1of 9

Notas de Aula Codificao de Fonte

Objetivo da Codificao de Fonte: reduzir a quantidade de bits necessria para representar a fonte de informao, sem que haja perda na qualidade desta informao. Extrair a redundncia na informao para economizar bits.

Objetivo da Codificao de Canal: inserir bits de redundncia para permitir deteco e correo de erro, com fins de organizar o fluxo de bits de maneira a combater as intempries (rudo, fading, etc.) que ocorrem no canal de transmisso. Objetivo da Modulao: Converter os bits em um sinal cuja forma de onda e espectro de freqncias adequado para transmisso no canal.

Reviso de Quantizao Escalar


Quando a fonte de informao gera um sinal analgico, a primeira etapa no processo de codificao digitalizar este sinal. A digitalizao composta por duas etapas: amostragem e quantizao. Assume-se neste estudo, que a amostragem uniforme (mesmo intervalo de tempo entre as amostras) e que a taxa de amostragem est acima da taxa de Nyquist, tal que no exista alising no domnio da frequncia. O processamento de sinais digitais envolve amostragem de um sinal analgico e quantizao dos dados amostrado em um nmero finito de nveis. A quantizao envolve a representao dos dados amostrados por um nmero finito de nveis baseado no critrio de minimizao da distoro do quantizador.
Entr f ada QUANTIZA DOR Sad f a

Figura 3.1 A sada quantizada de f

. O erro de quantizao

- f

Os quantizadores podem ser classificados como sem memria ou com memria. A discusso deste texto estar limitada aos quantizadores sem memria. Uma outra classificao uniforme ou no uniforme. Um quantizador uniforme definido pelo nmero de nveis que tem o tamanho do passo constante. Um quantizador no uniforme implica que o tamanho do passos no constante. O projeto do quantizador baseia-se nas estatsticas do sinal. Por exemplo, a partir de um histograma, o projetista determina a faixa dinmica do quantizador, ou seja, estipula os valores mnimo e mximo do quantizador. Uma vez escolhida a faixa dinmica Xmin a Xmax de um quantizador de b bits, basta que se tenha o nmero de bits deste quantizador para determinar o passo (ou degrau, ou ainda step) de quantizao, . O valor de pode ser dado, por exemplo, por =( Xmax - Xmin)/N, onde N=2b o nmero de nveis de quantizao. Um quantizador uniforme totalmente especificado a partir das informaes: (a) do

nmero de bits do quantizador, (b) do passo de quantizao, (c) de X min ou Xmax, (d) do cdigo binrio que ser usado no quantizador. Quantizadores Uniformes so mostrados na figura 3.2 enquanto quantizadores no uniformes so mostrados na figura 3.3.
Sada f
r r 3 r 2 - d d d d r1 2 3 4 r 1 r 2
3

Sada f
r r 4 r 3 r 2 - d d d r1 2 3 r 1 r 2 r 3
4

- - - d d d d01
4 3 2 1

Entrada f

- - d d d01
3 2 1

Entrada f

(a) (b) Figura 3.2 Quantizadores uniformes: (a) midtreader; (b) midriser. O tamanho de passo constante. O ri so os nveis de sada e os d i so os nveis de entrada.
Sada f
r
3

Sada f
r
3

r d
3

r d
4

d
3

2 r - 1 dd d d 2 1 1 r 2 r 1 2 r 3

d
3

d
4

Entrada

d
2

1 1 1

1 1 0

0 r - 1 0 1 d 1d 0d 1 1 1 10 r 1 2 0 0 1 r 1 2 r
2 3

0 0 1
d
3

0 0 0

Entrada f

(a) (b) Figura 3.3 Quantizadores no uniformes: (a) midtreader (b)midriser. O ri so os nveis de sada e os d i so os nveis de entrada.

Quando uma amostra a quantizada para um valor , tem-se o erro de quantizao dado por e=a-. Este valor de erro seria instantneo. Para um sinal x[n], as amostras do erro instantneo so e[n]. O sinal pe[n], obtido como sendo os valores de e[n] ao quadrado, corresponde potncia instantnea do erro de quantizao. Uma medida muito mais til do que o erro instantneo, ou a potncia instantnea, o erro quadrtico mdio (EQM). Como o nome diz, o EQM a mdia aritmtica dos valores do erro instantneo ao quadrado, o que corresponde potncia mdia do erro (em watts, por exemplo). Quando se usa o conceito de variveis aleatrias, costuma-se dizer que o EQM o valor esperado da varivel ao quadrado: EQM = E{x 2}. til recordar que E{x2} igual varincia mais a mdia ao quadrado. A varincia corresponde potncia da componente AC do sinal e a mdia ao quadrado, corresponde potncia da componente DC do sinal. Quando se calcula a razo sinal / rudo (RSR) no contexto de quantizao, o rudo justamente o erro de quantizao. A potncia do rudo (denominador da razo chamada RSR) justamente o EQM !

FUNDAMENTOS TERICOS DA QUANTIZAO ESCALAR


Dada uma varivel X, um quantizador escalar deve represent-la utilizando b bits. $ = Q b {X} . A $, onde X Esta representao equivale determinao do valor quantizado X E $. O erro partir dos b bits disponveis, dispomos de 2 b nveis de quantizao para X $ X) 2 uma das medidas mais utilizadas para avaliar a preciso desta quadrtico e 2 = ( X quantizao. A quantizao escalar uniforme uma forma simples de representar X atravs de b $ apresentam o mesmo espaamento bits. No quantizador uniforme, os 2 b valores de X entre si. Cada um destes 2 b valores representado por um ndice binrio de b bits. Para projetarmos um quantizador uniforme, devemos inicialmente determinar o intervalo de ocorrncia da varivel X, ou seja, seus valores mximo X mx e mnimo X mn . O valor de , conhecido como passo de quantizao, dado por = ( X mx X mn ) / ( 2 b 1) . O numerador desta expresso corresponde faixa dinmica de X. A subtrao no denominador indica que devemos reservar um dos 2 b ndices disponveis para representar a referncia. Uma outra frmula para calcular o valor de seria =(Xmx-Xmn)/2b. Contudo, nesta caso, os nveis do quantizador no atingiriam Xmn at Xmx. Normalmente, a referncia inicial corresponde ao valor de X mn . Apesar disso, essa frmula a mais usada na prtica, onde o quantizador alcana o valor mximo de X mx - . De qualquer forma, a discusso seguinte ir basear-se na frmula = ( X mx X mn ) / ( 2 b 1) . Nessa caso, os ( 2 b 1) ndices restantes correspondem ao nmero de passos, contabilizados a partir do valor da referncia inicial. Por exemplo, seja X um nmero real na faixa de 1 X 2 . Um quantizador uniforme de 2 bits dispe das seguintes combinaes de bits: "00", "01", "10" e "11". Poderamos atribuir o valor X mn = 1 ao ndice "00". Considerando = 0, 33, o quantizador corresponderia Tabela 3.1.

Tabela 3.1 - Exemplo de quantizao uniforme

ndice $ Valor literal de X Valor numrico de

00

$ X

X mn
1

X mn +
1,33

01

X mn + 2
1,66

10

X mn + 3
1,99

11

Podemos supor que este quantizador utilizado em um sistema de telecomunicaes, onde o transmissor deve enviar o valor X=1,4 ao receptor. O primeiro passo seria $ que mais se aproxima de X. encontrarmos o ndice correspondente ao valor numrico de X A Tabela 3.1 poderia ter sido pr-calculada e armazenada em memria ROM. Muitas vezes o mesmo processador que executa o "software" de transmisso, executa tambm o "software" de recepo. Assim, esta tabela poderia ser compartilhada, de forma a economizar memria de armazenamento. Neste tipo de implementao, bastaria percorrermos a tabela para determinarmos o ndice i que acarrete o menor erro quadrtico $ X) 2 . Em nosso exemplo, seria transmitido o ndice "01" para representar X=1,4. ei 2 = ( X i O receptor faria a operao inversa, atribuindo o valor 1,33 a este ndice. Esta operao uma simples consulta a uma tabela. Nestas condies, a tabela conhecida como "look-up table". Para quantizadores com um nmero elevado de bits, o armazenamento desta tabela exige uma quantidade significativa de memria. Uma forma alternativa de implementao seria armazenar apenas o valor de referncia (geralmente X mn ) e o valor de . O valor de $ , associado ao ndice i, ento calculado tanto no codificador quanto no descodificador. X i Nesta implementao, o sistema deveria determinar o nmero n de passos que conduzisse a X = X mn + n . Contudo, geralmente no existe um valor inteiro de n que leve exatamente ao valor X. O valor inteiro mais prximo dado por n = TRUNC{0, 5 + ( X X mn ) / }, onde TRUNC representa a funo de truncamento. A soma de 0,5 um artifcio para que $a este truncamento corresponda a um arredondamento. O receptor determina o valor de X $ partir de X = X mn + n . A construo da Tabela 3.1 pode suscitar diversos questionamentos. No caso de um quantizador escalar que utilize uma "look-up table", por que no organizar esta tabela de forma independente de X mn e ? Esta a idia bsica da quantizao escalar nouniforme. A Tabela 3.2 mostra um exemplo de quantizao no-uniforme, onde os valores $ so propositadamente aleatrios. de X
Tabela 3.2 - Exemplo de quantizao no-uniforme ndice 00 01 1,2 1,665 $ Valor numrico de X 10 1,38 11 1,9999

A idia da quantizao no-uniforme reforada pelo fato de que para fins de taxa de $, pois transmitido apenas o ndice transmisso, no importa o valor numrico de X correspondente. Tanto para a Tabela 3.1 quanto para a Tabela 3.2, a taxa seria de 2 bits para $ transmitido, ou seja, t=2 bits/amostra. Ao utilizarmos "look-up tables", a cada valor de X $ deve respeitar apenas condies de armazenamento de memria. preciso nos valores de X J ressaltamos anteriormente que muitas vezes isto um fator significativo. O projeto de um quantizador no-uniforme freqentemente corresponde construo destas tabelas de acordo com a funo densidade de probabilidade (FDP) da varivel X. Ressalta-se que no caso de uma varivel aleatria discreta, o mais correto seria chamar de funo massa de probabilidade, ao invs de FDP. Devido ao uso consagrado (no

portugus), manteremos FDP. Por exemplo, caso X apresente uma FDP gaussiana, devemos utilizar um quantizador no-uniforme gaussiano. Neste caso, concentramos a maior parte dos pontos da tabela em torno do valor mdio destes pontos. Na prtica, muitas vezes no dispomos da FDP de X. Da, podemos utilizar um histograma de ocorrncias para estimar a FDP. Vamos supor que o levantamento do histograma de ocorrncias da varivel X corresponda ao grfico apresentado na Fig.3.1. razovel aceitar que um quantizador uniforme como o da Tabela 3.1, no represente uma alocao adequada para os nveis do quantizador. Na verdade, o quantizador uniforme s ir apresentar bom desempenho quando X tiver uma FDP aproximadamente uniforme.

Fig. 3.1 - Exemplo de histograma

Quando no dispomos da FDP de X, devemos basear o projeto do quantizador apenas em uma seqncia de ocorrncias de X. O trabalho de Lloyd apresenta justamente uma soluo para esta questo. O algoritmo de Lloyd determina a tabela de quantizao a partir da seqncia de ocorrncias (seqncia de treino) disponvel. Veremos adiante que a partir do trabalho de Lloyd, formulou-se o algoritmo mais utilizado atualmente em quantizao vetorial: o LBG.

QUANTIZAO VETORIAL
1 - INTRODUO

Nosso objetivo neste texto apresentar os conceitos bsicos da quantizao vetorial (QV). Existem diversas outras referncias bibliogrficas que complementam as informaes apresentadas neste texto.
3.3 - FUNDAMENTOS DA QUANTIZAO VETORIAL

Na discusso sobre quantizao escalar, exemplificamos a transmisso da varivel $. Todavia, os sistemas de telecomunicaes no transmitem apenas uma quantizada X $( n) das mesmas. Esta seqncia pode representar um varivel, mas sim uma seqncia X sinal de voz digitalizado (PCM), os coeficientes de um polinmio, etc. De forma geral, estes dados podem ser vistos como vetores. Os vetores so a forma natural de manusearmos os sinais em sistemas de processamento digital e em simulaes dos mesmos.

Em uma transmisso ininterrupta de voz, por exemplo, estes vetores poderiam ter um nmero infinito de elementos. Entretanto, podemos seccionar este sinal em um determinado nmero K de amostras e representar cada um destes segmentos por vetores de dimenso K. Este o passo inicial para que possamos submeter cada um destes segmentos a uma quantizao vetorial (QV). O motivo principal para utilizarmos a QV a inerente diminuio da taxa de bits que esta tcnica pode proporcionar. A Teoria da Distoro pela Taxa indica que a QV o caminho natural para a obteno de desempenhos, em termos de taxa e distoro, prximos aos limites tericos. Para uma dada distoro, a QV resultar em uma taxa de bits menor do que a taxa respectiva quantizao escalar. Nosso objetivo nesta seo justificar esta afirmao atravs de exemplos simples. Podemos considerar a QV como a extrapolao da idia da quantizao escalar nouniforme. Assim, cada elemento da tabela de quantizao representa agora um vetor de K amostras ao invs de um escalar. Um quantizador vetorial mapeia um vetor X de entrada $ , tambm de dimenso K. O vetor X $ com dimenso K, atravs de um vetor reproduo X i i escolhido dentre N vetores ("codewords" ou palavras-cdigos) de um dicionrio de cdigos tambm chamado de dicionrio ou "codebook". A eficincia do sistema de QV reside no fato de ser necessrio transmitir apenas o ndice i da "codeword" escolhida. Em nosso sistema de telecomunicaes fictcio, devemos agora quantizar um vetor X de duas amostras (dimenso K=2); por exemplo, X={1,4;1,7}. Um quantizador para vetores deve ser definido atravs de uma tabela semelhante s Tabelas 3.1 e 3.2. A Tabela 3.3 apresenta uma alternativa possvel, onde so realizadas todas combinaes possveis entre os elementos da Tabela 3.1.
ndice Valor de ndice Valor de 0000
{1;1}

$ X i $ X i

Tabela 3.3 - Exemplo de quantizao vetorial 0001 0010 0011 0100


{1;1,33} {1;1,66} {1;1,99} {1,33;1}

0101
{1,33;1,33}

0110
{1,33;1,66}

0111
{1,33;1,99}

1000
{1,66;1}

1001
{1,66;1,33}

1010
{1,66;1,66}

1011
{1,66;1,99}

1100
{1,99;1}

1101
{1,99;1,33}

1110
{1,99;1,66}

1111
{1,99;1,99}

$ que melhor representa Para determinarmos qual a palavra-cdigo ("codeword") X i $ ) . Esta medida indica o grau de X K , definimos uma medida de distoro d ( X K , X i semelhana entre dois vetores. A "codeword" escolhida a que conduzir menor distoro. A medida de distoro mais utilizada em QV o erro quadrtico (EQ), dado por: $ EQ = X K X K
2

$ )2 . = (X j X j
j=1

onde || . || representa a norma euclidiana de um vetor. Suponhamos que a quantizao escalar de um nmero elevado de amostras a partir da Tabela 3.1 corresponda a um erro quadrtico mdio (EQM), E . Podemos afirmar que a QV atravs da Tabela 3.3 conduzir a um EQM menor ou igual a E . Isto ocorre porque a Tabela 3.1 est contida na Tabela 3.3. Neste caso, a taxa de bits da QV (Tabela 3.3) de 4 bits para 2 amostras (t=2 bits/amostra). Esta a mesma taxa da Tabela 3.1. Podemos concluir desta argumentao que a QV obtm um desempenho, em termos da relao entre taxa e distoro, no mnimo equivalente quantizao escalar.

Faamos outras consideraes no intuito de definir o motivo pelo qual a QV sobrepuja a quantizao escalar. Suponhamos que o vetor X corresponda a amostras de um sinal discreto X(n), cuja natureza fsica imponha que no haja variaes bruscas entre amostras consecutivas. Por simplicidade, suponhamos que a variao entre amostras consecutivas deste sinal (e conseqentemente do vetor X) sempre de 0, 33 . Isto implica em uma probabilidade nula de ocorrncia para diversos vetores da Tabela 3.3. Vetores como X={1;1} e X={1;1,66}, por exemplo, no ocorreriam jamais. A Tabela 3.4 corresponde eliminao dos vetores da Tabela 3.3 que no ocorrem em X(n). Observamos que a taxa foi reduzida de t=2 bits/amostra (Tabela 3.3) para t=1,5 bits/amostra (Tabela 3.4), com a garantia de que a distoro no se alterou.
ndice Valor de Tabela 3.4 - Exemplo da possvel diminuio da taxa atravs da QV 000 001 010 011 100 101 {1;1,33} {1,33;1} {1,33;1,66} {1,66;1,33} {1,66;1,99} {1,99;1,66} 110 111

$ X i

Os exemplos acima apresentam de maneira informal a vantagem que a QV obtm ao explorar a correlao existente entre as amostras do sinal X(n). A QV sempre apresenta desempenho superior quantizao escalar em termos do compromisso entre taxa de bits e distoro. Contudo, devemos atentar para o fato de que a QV acarreta sempre uma maior complexidade computacional. A complexidade da QV pode ser classificada de acordo com a Fig. 3.3. A etapa de projeto do quantizador realizada "off-line". Quando estamos realizando simulaes experimentais que envolvam o projeto de diversos quantizadores, a complexidade desta etapa torna-se um fator significativo. Contudo, uma vez projetado o quantizador, o custo de sua implementao determinado apenas pela memria e pelo nmero de clculos necessrios para selecionar a melhor "codeword" (vizinho mais prximo). Com isto, a complexidade da etapa de operao do quantizador geralmente a mais relevante.

Fig. 3.3 - Complexidade da QV

Para o armazenamento de um "codebook" com N "codewords" de dimenso K necessitamos de NK endereos de memria. Quando utilizamos o erro quadrtico como medida de distoro, a busca exaustiva da melhor "codeword" requer NK operaes de multiplicao e acumulao (MAC). So necessrios b = log 2 N bits para representar os ndices das "codewords". A taxa de bits por amostra do sinal codificado a partir deste "codebook" t=b/K. Para uma determinada taxa de bits por amostra, podemos reduzir a distoro aumentando K e N. Contudo, para manter t constante, o nmero de vetores N = 2 tK aumenta exponencialmente. O aumento de N implica em aumento de complexidade computacional na etapa de busca da melhor "codeword" e um aumento tambm na quantidade de memria necessria para o armazenamento do "codebook".
ALGORITMO LBG PARA O PROJETO DE "CODEBOOKS"

At este momento ainda no discutimos a respeito dos algoritmos utilizados para o projeto do "codebook". Na maior parte dos casos, no dispomos da FDP conjunta do vetor X a ser quantizado. Geralmente, os algoritmos de projeto do "codebook" utilizam um nmero razoavelmente grande de vetores para estimar a estatstica de X. Este conjunto de vetores conhecido como seqncia de treinamento (ST). Estima-se que para cada "codeword" do "codebook", devemos dispor de 20 a 1000 vetores na ST. Alm da ST, os algoritmos de projeto do "codebook" exigem a definio de uma medida de distoro. A partir disto, os algoritmos determinam o "codebook" atravs de processos iterativos.
CONSIDERAES SOBRE O ALGORITMO LBG

O algoritmo mais utilizado em QV para o projeto de "codebooks" o LBG. Seu nome corresponde s iniciais dos autores do artigo: Linde, Buzo e Gray. O algoritmo LBG uma extrapolao do trabalho de Llyod, para o caso de vetores de dimenso K. Por este motivo, o LBG tambm conhecido como algoritmo "K-means" ou GLA. O termo GLA ("Generalized Lloyd Algorithm") utilizado principalmente pela equipe de Allen Gersho, professor da UCSB, que no tem tempo de receber candidatos brasileiros a doutorado :(. Faremos, a seguir, uma descrio sucinta de uma implementao do algoritmo LBG. Nosso objetivo apresentar uma viso prtica do algoritmo de forma a simplificar a tarefa daqueles que queiram, porventura, implement-lo. Alm disso, desejamos estabelecer o importante conceito de centride. Apesar da apresentao do algoritmo estar estrutrada na forma de um programa, sua descrio puramente conceitual. Algoritmo LBG Passo 1- Inicializao:
N - nmero de "codewords" do "codebook". K - dimenso das "codewords" e dos vetores da seqncia de treinamento. LIMIAR - limiar de parada do algoritmo, por exemplo, 1 %. DIS - distoro mdia. Calculada a partir da distoro de cada vetor da seqncia de treinamento. DISANT- distoro mdia da iterao anterior. Assume um valor inicial bastante elevado (ex.: 1030 ). CBK[N][K] - armazena o "codebook" : N "codewords" de dimenso K. Pode ser inicializado com nmeros randmicos.

SEQ[VT][K] - seqncia de treinamento: VT vetores de dimenso K. AUX[VT] - vetor auxiliar: armazena o ndice da "codeword" correspondente a cada vetor da seqncia de treinamento.

Passo 2- Codificao da seqncia de treinamento: Etapa que ser conhecida internacionalmente como WDWTCWM (Who does want to come with me ?), um dia... De acordo com a medida de distoro definida, buscar para cada um dos VT vetores qual a "codeword" de CBK que melhor o representa. Armazenar esta informao no vetor auxiliar AUX. Calcular o valor da distoro mdia e armazenar este valor em DIS. Passo 3- Teste de parada do algoritmo: A partir do valor de LIMIAR, determinar se o algoritmo no est mais apresentando diminuio significativa na distoro mdia. Este teste feito atravs da comparao de (DISANT - DIS) / DIS com LIMIAR. Se o primeiro termo for maior do que LIMIAR, significa que o algoritmo ainda est convergindo e deve continuar com o passo 4. Caso contrrio, o processo termina com o "codebook" final sendo dado pelas N "codewords" de CBK neste momento. Passo 4- Atualizar o "codebook": De acordo com a informao de AUX, sabe-se quais os vetores que cada "codeword" representa. Para cada "codeword", corresponde um grupo de vetores de SEQ. Determinar para cada um destes grupos, uma nova "codeword". Esta nova "codeword" a centride deste grupo de vetores. A centride deve ser o vetor que minimiza a distoro mdia para o respectivo grupo de vetores. A definio da expresso da centride vinculada medida de distoro utilizada. No caso do EQ, a centride o centro de gravidade dos vetores do grupo. Uma vez calculado o novo "codebook", atualizar CBK e retornar ao passo 2. Existem diversas formas de determinar o "codebook" inicial para o LBG. A forma mais utilizada inicializ-lo com nmeros aleatrios. A principal responsvel pela complexidade computacional do LBG a etapa de codificao da ST (passo 2). O processo iterativo no qual se baseia o LBG, exige que a cada iterao do algoritmo toda a ST seja codificada. Quando a medida de distoro o erro quadrtico, esta codificao requer VT. N. K operaes MAC, onde VT o nmero de vetores da ST. Por exemplo, para N=1024, K=10 e VT=20.480 vetores, seriam necessrias 209 milhes de MAC's para codificar a ST em cada iterao. Esta estimativa no inclui o "overhead" associado.

You might also like