P. 1
Quantizacao

Quantizacao

|Views: 4|Likes:
Published by Thiago Cavalcante

More info:

Published by: Thiago Cavalcante on Oct 15, 2013
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOC, PDF, TXT or read online from Scribd
See more
See less

10/15/2013

pdf

text

original

Notas de Aula – Codificação de Fonte

 Objetivo da Codificação de Fonte: reduzir a quantidade de bits necessária para representar a fonte de informação, sem que haja perda na qualidade desta informação. Extrair a redundância na informação para economizar bits.

 Objetivo da Codificação de Canal: inserir bits de redundância para permitir detecção e correção de erro, com fins de organizar o fluxo de bits de maneira a combater as “intempéries” (ruído, “fading”, etc.) que ocorrem no canal de transmissão.  Objetivo da Modulação: Converter os bits em um sinal cuja forma de onda e espectro de freqüências é adequado para transmissão no canal.

Revisão de Quantização Escalar
Quando a fonte de informação gera um sinal analógico, a primeira etapa no processo de codificação é digitalizar este sinal. A digitalização é composta por duas etapas: amostragem e quantização. 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 não exista alising no domínio da frequência. O processamento de sinais digitais envolve amostragem de um sinal analógico e quantização dos dados amostrado em um número finito de níveis. A quantização envolve a representação dos dados amostrados por um número finito de níveis baseado no critério de minimização da distorção do quantizador.
Entr f ada QUANTIZA DOR Saíd ˆ f a

Figura 3.1 A saída quantizada de f é

ˆ f

. O erro de quantização é

ˆ f

- f

Os quantizadores podem ser classificados como sem memória ou com memória. A discussão deste texto estará limitada aos quantizadores sem memória. Uma outra classificação é uniforme ou não uniforme. Um quantizador uniforme é definido pelo número de níveis que tem o tamanho do passo constante. Um quantizador não uniforme implica que o tamanho do passos não é constante. O projeto do quantizador baseia-se nas estatísticas do sinal. Por exemplo, a partir de um histograma, o projetista determina a faixa dinâmica do quantizador, ou seja, estipula os valores mínimo e máximo do quantizador. Uma vez escolhida a faixa dinâmica Xmin a Xmax de um quantizador de b bits, basta que se tenha o número de bits deste quantizador para determinar o passo (ou degrau, ou ainda “step”) de quantização, ∆. O valor de ∆ pode ser dado, por exemplo, por ∆=( Xmax - Xmin)/N, onde N=2b é o número de níveis de quantização. Um quantizador uniforme é totalmente especificado a partir das informações: (a) do

d d d01 3 2 1 Entrada f (a) (b) Figura 3. Quantizadores Uniformes são mostrados na figura 3.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 não uniformes: (a) midtreader (b)midriser.. (c) de X min ou Xmax.número de bits do quantizador.d d d r1 2 3 r 1 r 2 r 3 4 . (d) do código binário que será usado no quantizador. O ri são os níveis de saída e os d i são os níveis de entrada.d d d d r1 2 3 4 r 1 r 2 3 Saída ˆ f r r 4 r 3 r 2 . O ri são os níveis de saída e os d i são os níveis de entrada.3.2 Quantizadores uniformes: (a) midtreader. .d d d d01 4 3 2 1 Entrada f . Saída ˆ f r r 3 r 2 . (b) midriser.2 enquanto quantizadores não uniformes são mostrados na figura 3. (b) do passo de quantização.. Saída ˆ f r 3 Saída ˆ f r 3 r d 3 r d 4 d 3 2 r . O tamanho de passo constante.1 dd d d 2 1 1 r 2 r 1 2 r 3 d 3 d 4 f Entrada d 2 1 1 1 1 1 0 0 r ..

O numerador desta expressão corresponde à faixa dinâmica de X. Poderíamos atribuir o valor X mín = 1 ao índice "00".1. Contudo. o que corresponde à potência média do erro (em watts. essa fórmula é a mais usada na prática. Normalmente. costuma-se dizer que o EQM é o valor esperado da variável ao quadrado: EQM = E{x 2}. devemos inicialmente determinar o intervalo de ocorrência da variável X. o EQM é a média aritmética dos valores do erro instantâneo ao quadrado. A $. É útil recordar que E{x2} é igual à variância mais a média ao quadrado. a discussão seguinte irá basear-se na fórmula ∆ = ( X máx − X mín ) / ( 2 b − 1) . O erro partir dos b bits disponíveis. conhecido como passo de quantização. $ = Q b {X} . Por exemplo. corresponde à potência instantânea do erro de quantização. seja X um número real na faixa de 1 ≤ X ≤ 2 . O valor de ∆ . A quantização escalar uniforme é uma forma simples de representar X através de b $ apresentam o mesmo espaçamento ∆ bits. Como o nome diz. tem-se o erro de quantização dado por e=a-â.∆ . A subtração no denominador indica que devemos reservar um dos 2 b índices disponíveis para representar a referência. Nessa caso. os níveis do quantizador não atingiriam Xmín até Xmáx. Considerando ∆ = 0. dispomos de 2 b níveis de quantização para X $ − X) 2 é uma das medidas mais utilizadas para avaliar a precisão desta quadrático e 2 = ( X quantização. a referência inicial corresponde ao valor de X mín . Para um sinal x[n]. nesta caso. A variância corresponde à potência da componente AC do sinal e a média ao quadrado. os ( 2 b − 1) índices restantes correspondem ao número de passos. é dado por ∆ = ( X máx − X mín ) / ( 2 b − 1) . "10" e "11". No quantizador uniforme. 33. os 2 b valores de X entre si. ou seja. o quantizador corresponderia à Tabela 3. Apesar disso. O sinal pe[n].1 . corresponde à potência da componente DC do sinal. um quantizador escalar deve representá-la utilizando b bits. as amostras do erro instantâneo são e[n]. Tabela 3. o ruído é justamente o erro de quantização. ou a potência instantânea.Quando uma amostra a é quantizada para um valor â. por exemplo). onde o quantizador alcança o valor máximo de X máx . onde X Esta representação equivale à determinação do valor quantizado X E $. A potência do ruído (denominador da razão chamada RSR) é justamente o EQM ! FUNDAMENTOS TEÓRICOS DA QUANTIZAÇÃO ESCALAR Dada uma variável X. obtido como sendo os valores de e[n] ao quadrado. Quando se calcula a razão sinal / ruído (RSR) no contexto de quantização. Cada um destes 2 b valores é representado por um índice binário de b bits. Este valor de erro seria instantâneo. Quando se usa o conceito de variáveis aleatórias. Uma medida muito mais útil do que o erro instantâneo. é o erro quadrático médio (EQM). De qualquer forma. seus valores máximo X máx e mínimo X mín . Um quantizador uniforme de 2 bits dispõe das seguintes combinações de bits: "00". Para projetarmos um quantizador uniforme.Exemplo de quantização uniforme . contabilizados a partir do valor da referência inicial. "01". Uma outra fórmula para calcular o valor de ∆ seria ∆ =(Xmáx-Xmín)/2b.

Em nosso exemplo. O primeiro passo seria $ que mais se aproxima de X. o armazenamento desta tabela exige uma quantidade significativa de memória.33 a este índice. executa também o "software" de recepção. O valor de $ . a cada valor de X $ deve respeitar apenas condições de armazenamento de memória. onde TRUNC representa a função de truncamento. ou seja. Ao utilizarmos "look-up tables".1 quanto para a Tabela 3. Assim. t=2 bits/amostra.4. encontrarmos o índice correspondente ao valor numérico de X A Tabela 3. esta tabela poderia ser compartilhada. No caso de um quantizador escalar que utilize uma "look-up table". geralmente não existe um valor inteiro de n que leve exatamente ao valor X. A construção da Tabela 3. precisão nos valores de X Já ressaltamos anteriormente que muitas vezes isto é um fator significativo. Uma forma alternativa de implementação seria armazenar apenas o valor de referência (geralmente X mín ) e o valor de ∆ . o sistema deveria determinar o número n de passos que conduzisse a X = X mín + n∆ . Ressalta-se que no caso de uma variável aleatória discreta. O projeto de um quantizador não-uniforme freqüentemente corresponde à construção destas tabelas de acordo com a função densidade de probabilidade (FDP) da variável X.1 pode suscitar diversos questionamentos.2. Tanto para a Tabela 3. seria transmitido o índice "01" para representar X=1. é então calculado tanto no codificador quanto no descodificador. por que não organizar esta tabela de forma independente de X mín e ∆ ? Esta é a idéia básica da quantização escalar nãouniforme. Devido ao uso consagrado (no .665 $ Valor numérico de X 10 1. X i Nesta implementação. O receptor determina o valor de X $ partir de X = X mín + n∆ .Exemplo de quantização não-uniforme Índice 00 01 1. O valor inteiro mais próximo é dado por n = TRUNC{0.66 10 X mín + 3∆ 1. Contudo.1 poderia ter sido pré-calculada e armazenada em memória ROM.2 1. não importa o valor numérico de X correspondente. associado ao índice i.2 . Para quantizadores com um número elevado de bits. 5 + ( X − X mín ) / ∆}. pois é transmitido apenas o índice transmissão.33 01 X mín + 2 ∆ 1. ei 2 = ( X i O receptor faria a operação inversa. bastaria percorrermos a tabela para determinarmos o índice i que acarrete o menor erro quadrático $ − X) 2 . de X Tabela 3.4 ao receptor.2 mostra um exemplo de quantização não-uniforme. atribuindo o valor 1. o mais correto seria chamar de função massa de probabilidade. Esta operação é uma simples consulta a uma tabela. a taxa seria de 2 bits para $ transmitido.Índice $ Valor literal de X Valor numérico de 00 $ X X mín 1 X mín + ∆ 1. Nestas condições. Neste tipo de implementação. a tabela é conhecida como "look-up table". A soma de 0. de forma a economizar memória de armazenamento. onde o transmissor deve enviar o valor X=1. ao invés de FDP. Muitas vezes o mesmo processador que executa o "software" de transmissão.5 é um artifício para que $a este truncamento corresponda a um arredondamento.9999 A idéia da quantização não-uniforme é reforçada pelo fato de que para fins de taxa de $. onde os valores $ são propositadamente aleatórios. A Tabela 3.99 11 Podemos supor que este quantizador é utilizado em um sistema de telecomunicações.38 11 1.

formulou-se o algoritmo mais utilizado atualmente em quantização vetorial: o LBG. Fig. muitas vezes não dispomos da FDP de X. Vamos supor que o levantamento do histograma de ocorrências da variável X corresponda ao gráfico apresentado na Fig. os coeficientes de um polinômio. concentramos a maior parte dos pontos da tabela em torno do valor médio destes pontos. Esta seqüência pode representar um variável. Neste caso. 3. os sistemas de telecomunicações não transmitem apenas uma quantizada X $( n) das mesmas.INTRODUÇÃO Nosso objetivo neste texto é apresentar os conceitos básicos da quantização vetorial (QV).1. exemplificamos a transmissão da variável $.1. É razoável aceitar que um quantizador uniforme como o da Tabela 3. manteremos FDP. Os vetores são a forma natural de manusearmos os sinais em sistemas de processamento digital e em simulações dos mesmos. devemos utilizar um quantizador não-uniforme gaussiano. podemos utilizar um histograma de ocorrências para estimar a FDP. mas sim uma seqüência X sinal de voz digitalizado (PCM).1 . O trabalho de Lloyd apresenta justamente uma solução para esta questão. estes dados podem ser vistos como vetores. etc. De forma geral. Por exemplo.Exemplo de histograma Quando não dispomos da FDP de X. o quantizador uniforme só irá apresentar bom desempenho quando X tiver uma FDP aproximadamente uniforme. Existem diversas outras referências bibliográficas que complementam as informações apresentadas neste texto. Na verdade. não represente uma alocação adequada para os níveis do quantizador. Daí. caso X apresente uma FDP gaussiana. Todavia. devemos basear o projeto do quantizador apenas em uma seqüência de ocorrências de X. QUANTIZAÇÃO VETORIAL 1 . O algoritmo de Lloyd determina a tabela de quantização a partir da seqüência de ocorrências (seqüência de treino) disponível.FUNDAMENTOS DA QUANTIZAÇÃO VETORIAL Na discussão sobre quantização escalar. Veremos adiante que a partir do trabalho de Lloyd.3 . .3.português). 3. Na prática.

66} 1011 {1. Em nosso sistema de telecomunicações fictício. estes vetores poderiam ter um número infinito de elementos.66. || representa a norma euclidiana de um vetor.1} 1101 {1.1} $ X i $ X i Tabela 3.1.1} 0101 {1.1.99} {1.2.Exemplo de quantização vetorial 0001 0010 0011 0100 {1.66.1 está contida na Tabela 3. devemos agora quantizar um vetor X de duas amostras (dimensão K=2). Assim.7}.3 . através de um vetor reprodução X i i escolhido dentre N vetores ("codewords" ou palavras-códigos) de um dicionário de códigos também chamado de dicionário ou "codebook".3 apresenta uma alternativa possível. E .66.1.66.1.33} 1010 {1.33.99} 1000 {1. Podemos afirmar que a QV através da Tabela 3. A eficiência do sistema de QV reside no fato de ser necessário transmitir apenas o índice i da "codeword" escolhida. A Teoria da Distorção pela Taxa indica que a QV é o caminho natural para a obtenção de desempenhos. a taxa de bits da QV (Tabela 3.1. por exemplo.1.33.1 e 3. A Tabela 3. Um quantizador para vetores deve ser definido através de uma tabela semelhante às Tabelas 3.33} {1. O motivo principal para utilizarmos a QV é a inerente diminuição da taxa de bits que esta técnica pode proporcionar. também de dimensão K. a QV resultará em uma taxa de bits menor do que a taxa respectiva à quantização escalar. Podemos concluir desta argumentação que a QV obtém um desempenho.33. Suponhamos que a quantização escalar de um número elevado de amostras a partir da Tabela 3. Isto ocorre porque a Tabela 3. Podemos considerar a QV como a extrapolação da idéia da quantização escalar nãouniforme.1.99. Esta medida indica o grau de X K . Esta é a mesma taxa da Tabela 3.99. = ∑ (X j − X j j=1 K onde || .99. Índice Valor de Índice Valor de 0000 {1.Em uma transmissão ininterrupta de voz.4.99} $ que melhor representa Para determinarmos qual a palavra-código ("codeword") X i $ ) .99.1.1. definimos uma medida de distorção d ( X K . em termos da relação entre taxa e distorção.1 corresponda a um erro quadrático médio (EQM). onde são realizadas todas combinações possíveis entre os elementos da Tabela 3. Neste caso.99} 1100 {1. O vetor X $ é com dimensão K. cada elemento da tabela de quantização representa agora um vetor de K amostras ao invés de um escalar. X i semelhança entre dois vetores. por exemplo. X={1. Para uma dada distorção.66} 0111 {1.1.66} 1111 {1. Um quantizador vetorial mapeia um vetor X de entrada $ .3.1. A medida de distorção mais utilizada em QV é o erro quadrático (EQ). .3 conduzirá a um EQM menor ou igual a E . Nosso objetivo nesta seção é justificar esta afirmação através de exemplos simples. Entretanto. Este é o passo inicial para que possamos submeter cada um destes segmentos a uma quantização vetorial (QV).1.33} 1110 {1.1. próximos aos limites teóricos.1} 1001 {1. dado por: $ EQ = X K − X K 2 $ )2 .66} {1.1. em termos de taxa e distorção.33. no mínimo equivalente à quantização escalar.33} 0110 {1. A "codeword" escolhida é a que conduzir à menor distorção.3) é de 4 bits para 2 amostras (t=2 bits/amostra).1. podemos seccionar este sinal em um determinado número K de amostras e representar cada um destes segmentos por vetores de dimensão K.

por exemplo.1. 33 .1.1.3. 3. Índice Valor de Tabela 3.33} {1. Quando estamos realizando simulações experimentais que envolvam o projeto de diversos quantizadores.66.3 que não ocorrem em X(n). Contudo.33.66} 110 111 $ X i - - Os exemplos acima apresentam de maneira informal a vantagem que a QV obtém ao explorar a correlação existente entre as amostras do sinal X(n).4).Complexidade da QV .66} {1.1. devemos atentar para o fato de que a QV acarreta sempre uma maior complexidade computacional. Por simplicidade.3) para t=1. não ocorreriam jamais.3.1. Vetores como X={1.Exemplo da possível diminuição da taxa através da QV 000 001 010 011 100 101 {1.66}.66. 3. Contudo.33. uma vez projetado o quantizador. suponhamos que a variação entre amostras consecutivas deste sinal (e conseqüentemente do vetor X) é sempre de ±0. A etapa de projeto do quantizador é realizada "off-line".4 corresponde à eliminação dos vetores da Tabela 3. Fig. Isto implica em uma probabilidade nula de ocorrência para diversos vetores da Tabela 3.4 .Façamos outras considerações no intuito de definir o motivo pelo qual a QV sobrepuja a quantização escalar. a complexidade da etapa de operação do quantizador é geralmente a mais relevante. cuja natureza física imponha que não haja variações bruscas entre amostras consecutivas.1.5 bits/amostra (Tabela 3. com a garantia de que a distorção não se alterou.1} {1.33} {1. A complexidade da QV pode ser classificada de acordo com a Fig. A Tabela 3.1} e X={1. Com isto.99. o custo de sua implementação é determinado apenas pela memória e pelo número de cálculos necessários para selecionar a melhor "codeword" (vizinho mais próximo).3 . a complexidade desta etapa torna-se um fator significativo. Suponhamos que o vetor X corresponda a amostras de um sinal discreto X(n).99} {1. Observamos que a taxa foi reduzida de t=2 bits/amostra (Tabela 3. A QV sempre apresenta desempenho superior à quantização escalar em termos do compromisso entre taxa de bits e distorção.

dimensão das "codewords" e dos vetores da seqüência de treinamento. Faremos. não dispomos da FDP conjunta do vetor X a ser quantizado. os algoritmos determinam o "codebook" através de processos iterativos. Pode ser inicializado com números randômicos. para o caso de vetores de dimensão K. desejamos estabelecer o importante conceito de centróide. por exemplo.distorção média da iteração anterior. Além disso.armazena o "codebook" : N "codewords" de dimensão K. Contudo. Seu nome corresponde às iniciais dos autores do artigo: Linde. São necessários b = log 2 N bits para representar os índices das "codewords". os algoritmos de projeto do "codebook" exigem a definição de uma medida de distorção. Nosso objetivo é apresentar uma visão prática do algoritmo de forma a simplificar a tarefa daqueles que queiram. Quando utilizamos o erro quadrático como medida de distorção. A taxa de bits por amostra do sinal codificado a partir deste "codebook" é t=b/K. K . porventura. devemos dispor de 20 a 1000 vetores na ST. professor da UCSB. DIS . o número de vetores N = 2 tK aumenta exponencialmente. Para uma determinada taxa de bits por amostra. Apesar da apresentação do algoritmo estar estrutrada na forma de um programa. O algoritmo LBG é uma extrapolação do trabalho de Llyod. Assume um valor inicial bastante elevado (ex.número de "codewords" do "codebook". que não tem tempo de receber candidatos brasileiros a doutorado :(. A partir disto. Calculada a partir da distorção de cada vetor da seqüência de treinamento.: 1030 ). 1 %. uma descrição sucinta de uma implementação do algoritmo LBG. Na maior parte dos casos. Por este motivo. implementá-lo.Para o armazenamento de um "codebook" com N "codewords" de dimensão K necessitamos de NK endereços de memória. O aumento de N implica em aumento de complexidade computacional na etapa de busca da melhor "codeword" e um aumento também na quantidade de memória necessária para o armazenamento do "codebook". a seguir. sua descrição é puramente conceitual.Inicialização: N . Buzo e Gray. Além da ST. podemos reduzir a distorção aumentando K e N. O termo GLA ("Generalized Lloyd Algorithm") é utilizado principalmente pela equipe de Allen Gersho. Algoritmo LBG Passo 1. a busca exaustiva da melhor "codeword" requer NK operações de multiplicação e acumulação (MAC). CONSIDERAÇÕES SOBRE O ALGORITMO LBG O algoritmo mais utilizado em QV para o projeto de "codebooks" é o LBG. para manter t constante. os algoritmos de projeto do "codebook" utilizam um número razoavelmente grande de vetores para estimar a estatística de X. . ALGORITMO LBG PARA O PROJETO DE "CODEBOOKS" Até este momento ainda não discutimos a respeito dos algoritmos utilizados para o projeto do "codebook". Estima-se que para cada "codeword" do "codebook". CBK[N][K] . o LBG também é conhecido como algoritmo "K-means" ou GLA. LIMIAR .limiar de parada do algoritmo.distorção média. DISANT. Geralmente. Este conjunto de vetores é conhecido como seqüência de treinamento (ST).

Codificação da seqüência de treinamento: Etapa que será conhecida internacionalmente como WDWTCWM (“Who does want to come with me ?). corresponde um grupo de vetores de SEQ. A forma mais utilizada é inicializá-lo com números aleatórios.. A principal responsável pela complexidade computacional do LBG é a etapa de codificação da ST (passo 2).vetor auxiliar: armazena o índice da "codeword" correspondente a cada vetor da seqüência de treinamento. Por exemplo. Armazenar esta informação no vetor auxiliar AUX. Passo 2. buscar para cada um dos VT vetores qual a "codeword" de CBK que melhor o representa.SEQ[VT][K] . Se o primeiro termo for maior do que LIMIAR. uma nova "codeword". Passo 4. AUX[VT] . para N=1024. Esta estimativa não inclui o "overhead" associado. A centróide deve ser o vetor que minimiza a distorção média para o respectivo grupo de vetores. Determinar para cada um destes grupos. O processo iterativo no qual se baseia o LBG. Este teste é feito através da comparação de (DISANT . exige que a cada iteração do algoritmo toda a ST seja codificada.DIS) / DIS com LIMIAR. A definição da expressão da centróide é vinculada à medida de distorção utilizada.Teste de parada do algoritmo: A partir do valor de LIMIAR. significa que o algoritmo ainda está convergindo e deve continuar com o passo 4. K operações MAC.seqüência de treinamento: VT vetores de dimensão K. o processo termina com o "codebook" final sendo dado pelas N "codewords" de CBK neste momento.Atualizar o "codebook": De acordo com a informação de AUX. Calcular o valor da distorção média e armazenar este valor em DIS. Para cada "codeword". Passo 3. seriam necessárias 209 milhões de MAC's para codificar a ST em cada iteração. a centróide é o centro de gravidade dos vetores do grupo. Uma vez calculado o novo "codebook". onde VT é o número de vetores da ST.. .480 vetores. sabe-se quais os vetores que cada "codeword" representa. De acordo com a medida de distorção definida. Esta nova "codeword" é a centróide deste grupo de vetores. determinar se o algoritmo não está mais apresentando diminuição significativa na distorção média. No caso do EQ. Caso contrário. atualizar CBK e retornar ao passo 2. N. esta codificação requer VT. K=10 e VT=20. um dia. Existem diversas formas de determinar o "codebook" inicial para o LBG. Quando a medida de distorção é o erro quadrático.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->