• Nenhum resultado encontrado

Quantização vetorial utilizando códigos esféricos

N/A
N/A
Protected

Academic year: 2021

Share "Quantização vetorial utilizando códigos esféricos"

Copied!
64
0
0

Texto

(1)

Fabiano Boaventura de Miranda

Quantização vetorial utilizando códigos esféricos

CAMPINAS 2015

(2)
(3)

Universidade Estadual de Campinas

Instituto de Matemática, Estatística

e Computação Científica

Fabiano Boaventura de Miranda

Quantização vetorial utilizando códigos esféricos

Dissertação apresentada ao Instituto de Matemá-tica, Estatística e Computação Científica da Uni-versidade Estadual de Campinas como parte dos requisitos exigidos para a obtenção do título de Mestre em Matemática Aplicada e Computacio-nal.

Orientador: Cristiano Torezzan

Este exemplar corresponde à versão final da dis-sertação defendida pelo aluno Fabiano Boaven-tura de Miranda, e orientada pelo Prof. Dr. Cristiano Torezzan.

Assinatura do Orientador

Campinas 2015

(4)

Ficha catalográfica

Universidade Estadual de Campinas

Biblioteca do Instituto de Matemática, Estatística e Computação Científica Ana Regina Machado - CRB 8/5467

Miranda, Fabiano Boaventura de,

M672q MirQuantização vetorial utilizando códigos esféricos / Fabiano Boaventura de Miranda. – Campinas, SP : [s.n.], 2015.

MirOrientador: Cristiano Torezzan.

MirDissertação (mestrado profissional) – Universidade Estadual de Campinas, Instituto de Matemática, Estatística e Computação Científica.

Mir1. Teoria da codificação. 2. Empacotamento de esferas. 3. Algoritmos -Processamento de dados. I. Torezzan, Cristiano,1976-. II. Universidade Estadual de Campinas. Instituto de Matemática, Estatística e Computação Científica. III. Título.

Informações para Biblioteca Digital

Título em outro idioma: Vector quantization using spherical codes Palavras-chave em inglês:

Codification theory Sphere packings

Algorithms - Data processing

Área de concentração: Matemática Aplicada e Computacional Titulação: Mestre em Matemática Aplicada e Computacional Banca examinadora:

Cristiano Torezzan [Orientador]

Antonio Carlos de Andrade Campello Junior Carina Alves

Data de defesa: 06-03-2015

(5)
(6)
(7)

Abstract

We study the vector quantization problem with a special interest in the use of spherical codes for Gaussian sources. This problem appears in several applications involving signal compression such as sound, images and data transmission. The first three chapters are devoted to basic concepts of quantization and also to presented some intuitive examples and geometrical interpretations. We focus our attention on the shape and gain vector quantization and we introduce a new approach to this problem using spherical codes constructed in layers of flat tori in dimension 4. Besides the construction, some results on computations simulations are presented.

Keywords: Vector quantization, spherical codes, Gaussian sources.

Resumo

Neste trabalho estudamos o problema da quantização vetorial, com especial interesse no uso de códigos esféricos para quantização de fontes gaussianas. Este problema tem diversas aplicações envolvendo compressão de sinais, tais como de som e imagem, garantindo altas taxas de compressão. Nos três primeiros capítulos fazemos uma apresentação dos principais fundamentos teóricos do tema, procurando apresentar exemplos que valorizam a intuição e conceitos geométrico, no caso de dimensões 2 e 3, abordando a quantização vetorial com ênfase na técnica conhecida como forma/ganho. No último capítulo apresentamos uma proposta original que utiliza códigos em camadas de toros para a quantização vetorial. A proposta é exemplificada através da construção do esquema de quantização em dimensão 4 e alguns testes de desempenho são apresentados.

(8)
(9)

Sumário

Dedicatória xi Agradecimentos xiii 1 O Processo de Quantização 3 1.1 Quantização escalar . . . 3 1.2 Distribuição de Probabilidades . . . 6 1.2.1 Distribuição Uniforme . . . 7 1.2.2 Distribuição Gaussiana . . . 8 1.2.3 Distribuição de Rayleigh . . . 9

1.3 Quantização Escalar Uniforme . . . 10

1.4 Quantização Escalar Não Uniforme . . . 12

1.4.1 Algoritmo de Lloyd-Max . . . 14

2 Quantização Vetorial 16 2.1 Quantização vetorial - definição . . . 16

2.1.1 Taxa de Distorção . . . 17

2.1.2 Quantização em Reticulados . . . 18

2.2 Quantizador para fontes gaussianas . . . 21

2.2.1 Entropia Diferencial . . . 22

2.2.2 Propriedades Assintóticas de Equipartição . . . 23

2.2.3 Quantização Forma/Ganho . . . 24

2.2.4 Quantização Forma/Ganho em R2 . . . 25

2.2.5 Exemplos de quantização no R2 . . . 27

3 Quantização Vetorial e Códigos Esféricos 30 3.1 Códigos Esféricos . . . 30

3.2 Construção de um Código Esférico . . . 33

4 Quantização vetorial utilizando códigos esféricos em toros planares 36 4.1 Códigos Esféricos em Camada de Toros Planares . . . 36

4.2 Construção de um Código Esférico no R4 . . . 37

4.3 Quantização Vetorial utilizando Códigos Esféricos em Camadas de Toros . . . 40

(10)
(11)

Aos meus Pais e a minha esposa Dedico.

(12)
(13)

Agradecimentos

• À Deus, pela proteção durante este percurso da minha carreira, por ter me dado a oportu-nidade e a capacidade de concluir este mestrado, pois sem Deus nada disso seria possível. À Ele toda honra e toda glória.

• Ao grande amor da minha vida, minha companheira, amiga e insubstituível esposa Hellen Joyce, que com suas doces palavras me acalentou e esteve presente em todo os momentos deste mestrado.

• Aos meus pais, “Israel e Iracema "e meus irmãos “Juliany e Israel Jr.", que sempre me incentivaram e me deram condições para a conclusão deste trabalho. Esta conquista dedico a vocês que são o fundamento da minha vida.

• Em especial, ao Prof. Dr. Cristiano Torezzan, pela amizade, paciência e dedicação que foram indispensáveis para a concretização deste trabalho.

• Aos colegas de turma, que apesar da distância, se mostraram prontos a ajudar e cooperar, pois não se chega até aqui sozinho.

(14)
(15)

Lista de Figuras

1 Gráfico sinal analógico e digital . . . 1

1.1 Processo de quantização escalar . . . 4

1.2 Representação na reta da quantização escalar . . . 5

1.3 Exemplo de quantização escalar . . . 5

1.4 Distribuição uniforme . . . 8

1.5 Histograma com 40 colunas da distribuição uniforme . . . 8

1.6 Distribuição normal . . . 9

1.7 Histograma com 42 colunas da distribuição normal . . . 9

1.8 Função densidade de probabilidade de Rayleigh . . . 10

1.9 Histograma com 50 colunas da distribuição de Rayleigh . . . 10

1.10 Exemplo de quantização para fonte gaussiana com M = 6 . . . 13

2.1 Processo de quantização vetorial . . . 16

2.2 Paralelepípedos fundamentais de diferentes reticulados no R2 . . . 19

2.3 Reticulados no R2 . . . 19

2.4 Tabela do quantizador . . . 20

2.5 Distribuição Uniforme com 3000 amostras aleatórias 4 pontos no reticulado . . . 20

2.6 Distribuição normal no R2. . . 21

2.7 Distribuição uniforme em azul e gaussiana em vermelho no R2 . . . 21

2.8 Decomposição forma/ganho no R2 . . . 25

2.9 Exemplo de quantização forma/ganho no R2 . . . 26

2.10 Quantização forma/ganho no R2 . . . 27

2.11 Distribuição gaussiana com média 0 e diferentes variâncias . . . 27

2.12 Quantização em reticulados no R2 . . . 28

2.13 Quantização forma/ganho no R2 . . . 28

3.1 Ângulo mínimo e chapel esférico . . . 32

3.2 Empacotamento esférico no reticulado hexagonal . . . 32

3.3 Área coberta por três chapeus esféricos tangentes. . . 33

3.4 Construção de um código esférico no R3. Fonte: [11]. . . 34

3.5 Decomposição do Shape . . . 35

4.1 Definindo os pontos de cada toro simétricos em relação a reta y = x. . . 38

(16)
(17)

Lista de Tabelas

2.1 Divisão de pontos forma/ganho . . . 29

2.2 Comparação de reticulados e forma/ganho . . . 29

4.1 Quantidade de pontos no Código Esférico para diferentes distâncias mínimas. . . 40

4.2 Descrição do algoritmo do quantizador proposto . . . 41

4.3 Simulação Quantização forma/ganho utilizando Códigos Esféricos em Toros Planares 43 4.4 Comparação das taxas com diferentes métodos. (∗Dados retirados da tabela em [2].) . . 43

(18)
(19)

INTRODUÇÃO

Nossa realidade tem se tornado cada vez mais “virtual”, o que queremos dizer com isso é que estamos usando cada vez mais os meios tecnológicos para resolvermos problemas reais. Logo, precisamos adaptar nossa realidade física à realidade digital. Como representar a nossa fala, ou uma imagem, ou uma seqüencia delas (vídeo) por meio digital? Qual a melhor maneira de se fazer isso, de forma a otimizar o desempenho das máquinas (celulares, tablet, computadores, etc.) seja transmitindo essa informação ou simplesmente armazenando em sua memória? Este trabalho tem como objetivo estudar os fundamentos matemáticos que estão por trás destas e de outras perguntas relacionadas.

Quando falamos em adaptar informações do meio físico para o digital, estamos falando em codificação de sinais analógicos em sinais digitais. Este processo é feito em duas etapas: i) a amostragem, já que a capacidade de armazenamento de dados em um computador é limitada , ii) quantização, processo este que faz a representação dos dados a serem armazenados. O objetivo da quantização é representar um “grande” volume de informações por um número “pequeno” de símbolos, logo algumas informações serão perdidas. Assim, uma pergunta que surge naturalmente é: qual a melhor maneira de projetar um quantizador?

A compressão de dados pode ocorrer de duas formas: com ou sem perda de informação. A quantização é um processo de compressão de dados onde admitimos perda da informação seguindo critérios baseados na minimização do erro gerado pelo quantizador. Assim, é possível armazenar um grande volume de informações utilizando uma quantidade gerenciável de códigos. Isso ocorre pelo fato do sinal analógico ser contínuo e variar em função do tempo. Já o sinal digital é discreto (descontínuo) em amplitude mas contínuo no tempo, podendo ser representado por um histograma.

Sinal Analgico Sinal Digital

Figura 1: Gráfico sinal analógico e digital

As fontes que geram as informações a serem analisadas podem possuir características distintas, mas é comum encontrarmos fontes que podem ser modeladas como gaussianas, ou seja, fontes em

(20)

que as informações se ajustam ao comportamento de uma distribuição normal, e será este tipo de fonte que estudaremos neste trabalho.

De forma genérica, existem três problemas principais envolvendo a compressão de fontes através de quantização: projetar o quantizador, mensurar o erro gerado e gerenciar o tempo gasto para que a mensagem seja codificada. O erro gerado, que também é chamado de distorção, é uma medida de quão diferente a informação quantizada se torna da informação original e o tempo se refere a complexidade computacional que a implementação de certo quantizador pode demandar.

Este trabalho tem uma estreita relação com códigos esféricos e, no final, apresenta uma con-tribuição original, propondo o uso de códigos esféricos em camadas de toros [3] para projetar um quantizador.

Nosso objetivo neste trabalho é fazer um estudo geral sobre os fundamentos da quantização vetorial, apresentando exemplos e simulações que nos auxiliarão a compreender os conceitos fun-damentais do tema.

No que tange ao processo de quantização, daremos ênfase ao método conhecido forma/ganho, que explora uma combinação de quantização escalar e vetorial e pode ser encontrado com detalhes em [1].

Esta dissertação está organizada da seguinte forma: no capítulo 1 revisaremos os conceitos de quantização escalar uniforme e não-uniforme com diferentes fontes. Iniciaremos os conceitos valorizando o lado intuitivo e geométrico através de exemplos simples e figuras que nos permitam a generalização de tais conceitos. Escolhemos revisar também conceitos básicos sobre distribui-ção de probabilidades e suas funções, o que pode contribuir para uma melhor compreensão do comportamento das informações geradas e nas técnicas que melhor se aplicam a cada situação.

No capítulo 2 descreveremos a quantização vetorial, que pode ser entendida como uma generali-zação da quantigenerali-zação escalar. Daremos ênfase na quantigenerali-zação em reticulados e na técnica conhecida como forma/ganho (tradução literal do inglês shape/gain), pois estes conceitos são fundamentais para o entendimento dos capítulos 3 e 4. Além da apresentação dos conceitos, alguns exemplos simples são construídos para comparar as duas técnicas através de simulação computacional.

No capítulo 3 apresentamos a construção de códigos esféricos para a quantização vetorial e ilustramos os códigos propostos em [11].

No último capítulo apresentamos uma proposta de um novo quantizador vetorial utilizando códigos esféricos em camadas de toros [3] para a forma. A nova proposta é ilustrada através da construção de um quantizador em R4 e alguns resultados de simulações computacionais são

(21)

Capítulo 1

O Processo de Quantização

Neste capítulo apresentaremos uma visão geral sobre quantização escalar, com ênfase nos con-ceitos intuitivos do tema. Para isto, daremos alguns exemplos simples que permitem entender os elementos básicos presentes num processo de quantização. Conceitos de estatística serão revisamos e vários exemplo de distribuições de probabilidade serão construídos. As definições aqui abordadas serão base para generalizarmos o conceito de quantização escalar para vetorial, o que será feito no Capítulo 2. As figuras e gráficos deste capítulo foram construídas especialmente para esta dissertação utilizando os software Mathematica e o IPE.

1.1

Quantização escalar

Imaginemos que um termômetro é responsável por fazer a medição da temperatura de uma máquina a cada segundo e enviar estas informações a um computador que as armazenará para futuras análises. A temperatura é medida em graus Celsius com precisão de uma casa decimal.

Suponha que a temperatura de uma máquina varie entre 99.5ºC e 131.5ºC graus e que pelas características do sistema que armazenará as informações, existam apenas 5 bits disponíveis para este processo. Assim, será possível armazenar no máximo 25 = 32 valores e será necessário algum

tipo de compressão de dados, por exemplo, um arredondamento para o número inteiro mais pró-ximo à temperatura obtida pelo termômetro. Por exemplo, se o termômetro marcar 109.8º esta temperatura será arredondada para 110º que é o inteiro mais próximo a 109.8. Logo qualquer valor que estiver entre 109.5º e 110.4º também será armazenado como 110º.

Este processo de arredondamento define uma função que associa qualquer temperatura entre 99.5º a 131.5º a exatamente um dos valores inteiros do conjunto T = {100, 101, . . . , 129, 131}. Além disso, para simplificar o armazenamento, cada número inteiro t ∈ T pode ser associado a um índice i(t) no conjunto I = {1, ..., 32} e o armazenamento da temperatura mensurada pode ser feito através do armazenamento apenas do índice correspondente através de sua representação binária.

Este procedimento simples ilustra as principais etapas de um processo de quantização e permite explorarmos suas vantagens e desvantagens.

(22)

[99.5, 131.5] utilizando apenas 25 = 32 pontos. A desvantagem é que este processo nos impede de

recuperar de forma exata a temperatura medida pelo termômetro, ou seja, pagamos um preço pela economia no armazenamento. No exemplo, a informação original foi 109.8º e a quantizada 110º, logo cometemos um erro de 0.2, se a medida recebida fosse 109.5º a quantizada ainda seria 110º, mas o erro seria maior. Esse erro é chamado de distorção.

A medida mais utilizada para computar os erros (ou distorções) cometidos neste processo é a média dos erros quadráticos (em inglês, se utiliza a sigla MSE, de Mean Squared Error).

Se n medidas {x1, x2, ..., xn} são armazenadas, respectivamente, como {^x1, ^x2, ..., ^xn}, o MSE é

dado por: M SE = 1 n n X i=1 (xi− ^xi)2 (1.1.1)

Nota-se que o MSE é sensível a escolha dos representantes ^xi e também a distribuição dos pontos xi.

Suponhamos que, devido a restrição de memória em nosso registrador, dispomos de apenas 2 bits, o que equivale a apenas 4 representantes possíveis. Nossa tarefa é decidir onde alocar estes 4 pontos na reta de forma a minimizar o MSE, após o armazenamento de uma quantidade arbitrariamente grande de números. Ou seja, queremos escolher 4 representantes e uma maneira de associar os pontos da reta a estes representantes de forma a resolver o problema anterior.

Analisando este exemplo podemos perceber que aparece uma relação de compromisso entre o número de pontos armazenados e o erro (a distorção) resultante. De maneira geral, gostaríamos de resolver um problema conflituoso: armazenar o mínimo possível de informações e cometer o menor erro.

Um exemplo mais complexo ocorre nas aplicações que envolvem quantização de audio, já que sinais de audio são ondas sonoras que variam continuamente tanto em amplitude como no tempo, carregando assim uma quantidade potencialmente infinita de informações. Para o ouvido humano faz-se desnecessário uma amostra de audio contínua, pelo fato de nossa percepção auditiva ser limitada, podendo este sinal ser comprimido de forma a satisfazer a percepção humana [6], ou seja, possível reduzir a quantidade de informação contida no sinal, deixando este sinal contínuo no tempo mas discreto em amplitude.

Para definirmos formalmente o processo ilustrado nos exemplos, vamos assumir que uma fonte de informação gera uma variável aleatória com função de densidade de probabilidade1 (fdp) p(x). O processo de quantização da fonte envolve duas etapas: codificação e decodificação. O codificador associa a variável x a um único índice Q(x) ∈ {1, 2, · · · , 2R}. O decodificador representa x por

(23)

Na figura 1.2, ilustramos um processo de partição da reta em M = 2R subintervalos. Os

representantes de cada intervalo são denotados por ^xi, δidenota o comprimento do i-ésimo intervalo

e bi denotam os limites dos intervalos de decisão.

b1 bi−1 bi bM−1 δi b2 ˆ x1 xˆ2 xˆi xˆM b0 bM [ )

Figura 1.2: Representação na reta da quantização escalar

A figura 1.3 exemplifica um quantizador escalar com M = 8 intervalos, limitada entre -3.5 e 4.5. Em 1.3(a) tem-se uma tabela com os intervalos de decisão e os respectivos índices e valores quantizados. Em 1.3(b) os mesmos dados são apresentados de forma gráfica.

Intervalo de decisão índice valor quantizador

[-3.5,-2.5) 1 -3 [-2.5,-1.5) 2 -2 [-1.5,-0.5) 3 -1 [-0.5,0.5) 4 0 [0.5,1.5) 5 1 [1.5,2.5) 6 2 [2.5,3.5) 7 3 [3.5,4.5) 8 4

(a) Tabela dos intervalos de decisão

1 2 3 -1 -2 -3 Entrada Sa´ıda -3.5 -2.5 -1.5 1.5 2.5 3.5 -0.5 0.5 4.5 4

(b) Exemplo gráfico da quantização es-calar

Figura 1.3: Exemplo de quantização escalar

Como já citamos, uma medida usual de distorção é o erro quadrático médio que, no caso da variáveis contínuas, é definido de seguinte forma [6]

E[(x − ^x)2] = Z +∞ −∞ (xq− ^xq)2p(x)dx = M X q=1 Z bq bq−1 (xq− ^xq)2p(x)dx (1.1.2)

A estratégia ótima para se definir os intervalos de quantização depende fortemente da dis-tribuição dos pontos a serem quantizados, ou seja, depende da disdis-tribuição de probabilidade da fonte que gera a informação. As informações geradas pela fonte são variáveis aleatórias e logo possuem características estatísticas comuns entre sí, o que nos leva a revisar os principais tipos de distribuição que estarão presentes neste trabalho na seção seguinte.

(24)

1.2

Distribuição de Probabilidades

A teoria de probabilidade e processos estocásticos são ferramentas essenciais para a modelagem matemática dos sistemas de comunicação digital [7]. Nesta seção vamos revisar alguns conceitos relevantes para este trabalho.

Definição 1.1. Um experimento aleatório  é um processo que, quando repetido sob mesmas

condições, possui resultado imprevisível a priori.

Para exemplificar um experimento aleatório podemos citar o lançamento de um dado, a aferição do nível de poluição de um rio ou a medida da altura de uma pessoa selecionada ao acaso numa praça.

Definição 1.2. Para cada experimento aleatório , definimos o espaço amostral S, como o menor

conjunto que contém todos os possíveis resultados de .

Ex.: o espaço amostral do experimento de lançar um dado é S = {1, 2, 3, 4, 5, 6}.

Definição 1.3. Um evento A associado a um experimento aleatório  é qualquer subconjunto não

vazio de um espaço amostral S.

O evento A =obter um número par no lançamento de um dado é representado pelo sub-conjunto {2, 4, 6} ⊂ S = {1, 2, 3, 4, 5, 6}.

Definição 1.4. Seja  um experimento aleatório com espaço amostral S. A cada evento A

as-sociaremos um número real representado por P (A) denominado probabilidade de A, satisfaça as seguintes propriedades:

1. 0 ≤ P (A) ≤ 1.

2. P (S) = 1.

3. Se A e B são eventos mutuamente excludentes, P (A ∪ B) = P (A) + P (B).

Definição 1.5. Sejam  um experimento aleatório com espaço amostral S. Uma função X, que

associe a cada elemento s ∈ S um número real X(s) é denominada variável aleatória.

(25)

3. para quaisquer a, b, com −∞ < a < b < +∞, teremos P (a ≤ X ≤ b) = Z b

a

p(x)dx.

Definição 1.8. Seja X uma variável aleatória discreta que assume os valores {x1, x2, . . .} e seja p(x) a função de probabilidade de X, isto é, p(xi) = P (X = xi). Então, o valor esperado de X,

também chamado de esperança ou média de X e denotado por E(X) ou µX, é definido por

E(X) = µX = ∞ X i=1 xip(xi) = ∞ X i=1 xiP (X = xi). (1.2.1)

Definição 1.9. Seja X uma variável aleatória contínua com função densidade de probabilidade

p(x). Definimos o valor esperado ou esperança matemática ou média de X por E(X) =

Z ∞

−∞xp(x)dx,

(1.2.2)

desde que a integral esteja bem definida.

Matematicamente, a esperança de uma variável aleatória representa o centro de massa da distribuição de probabilidade da variável aleatória.

Definição 1.10. Seja X uma variável aleatória. Definimos a variância de X, denotada por Var(X)

ou σ2

X por

σX2 = Eh(X − E(X))2i. (1.2.3)

O significado deste definição ficará mais clara nos exemplos gráficos construídos no capítulo 2. Existem diversas distribuições de probabilidades que são amplamente estudadas na literatura. Para o caso discreto, destacamos as distribuições Binomial, Bernoulli, Poisson, Geométrica. Para o caso contínuo: Uniforme, Normal, Gama, Exponencial, Rayleigh. Neste trabalho utilizaremos principalmente as distribuições uniforme, normal e Rayleigh, que passamos a descrever.

1.2.1

Distribuição Uniforme

Definição 1.11. Uma variável aleatória X tem distribuição Uniforme no intervalo [a, b] se sua

função densidade de probabilidade for dada por:

p(x) =    1 b − a, se a ≤ x ≤ b

0, para qualquer outro ponto

(26)

f(x)

x

a b

1 b−a

Figura 1.4: Distribuição uniforme

Podemos notar que

Z b

a

1

b − adx = 1

A figura 1.5 mostra o histograma de uma distribuição uniforme num intervalo de [−10, 10] com 2000, 20000 e 200000 pontos respectivamente, gerados aleatoriamente pelo software Mathematica. O histograma de uma distribuição uniforme tende ao gráfico mostrado na figura 1.4 quando o número de pontos tende ao infinito. Resultado que é esperado pela Lei dos Grandes Números2.

(a) Histograma da distribuição

uniforme com 2000 pontos (b) Histograma da distribuiçãouniforme com 20000 pontos (c) Histograma da distribuiçãouniforme com 200000 pontos Figura 1.5: Histograma com 40 colunas da distribuição uniforme

1.2.2

Distribuição Gaussiana

(27)

µ x

Figura 1.6: Distribuição normal

É comum utilizarmos a distribuição normal com média 0 e desvio-padrão 1, X ∼ N (0, 1), chamada de distribuição normal padrão. Os valores da distribuição normal padrão são tabela-dos e por meio disto é possível obter os valores para qualquer média e desvio-padrão através da transformação z = x−µσ na equação 1.4.1, logo a fdp normal padrão passa a ser

p(x) = √1 2πe

z2

2 , para − ∞ < x < ∞

A figura 1.7 mostra o histograma de uma distribuição normal com média 0 e variância 2 com 2000, 20000 e 200000 amostras geradas aleatóriamente pelo software Mathematica. Novamente notamos que quando o número de variáveis aleatórias tende ao infinito, mais próximo a curva que modela o histograma tende ao gráfico da figura 1.6.

(a) Histograma de distribuição

normal com 2000 pontos (b) Histograma de distribuiçãonormal com 20000 pontos (c) Histograma de distribuiçãonormal com 200000 pontos Figura 1.7: Histograma com 42 colunas da distribuição normal

1.2.3

Distribuição de Rayleigh

Definição 1.13. Se X1, X2, . . . , Xn são variáveis aleatórias gaussianas independentes e

identica-mente distribuídas de acordo com Xi ∼ N (0, σ2), então

kXk =qX2 1 + X22+ . . . + Xn2 = v u u t n X i=1 X2 i

(28)

é uma variável aleatória de Rayleigh [7] e sua fdp é uma distribuição dada por p(x) =    xn−1 2n−22 σnτ (n 2) e2σ2x2 para x ≥ 0

0, para qualquer outro ponto

(1.2.6)

onde τ denota a função gamma.

x p(x)

Figura 1.8: Função densidade de probabilidade de Rayleigh

A figura 1.9 mostra o histograma de uma distribuição de Rayleigh de uma variável aleatória

x = (x1, x2) normal com média 0 e variância 2 com 2000, 20000 e 200000 respectivamente, gerados aleatoriamente pelo software Mathematica.

(a) Histograma de distribuição

de Rayleigh com 2000 pontos (b) Histograma de distribuiçãode Rayleigh com 20000 pontos (c) Histograma de distribuiçãode Rayleigh com 200000 pontos Figura 1.9: Histograma com 50 colunas da distribuição de Rayleigh

(29)

Vamos considerar um quantizador onde a variável aleatória x pertence ao intervalo [a,b] dividido em M subintervalos de decisão. O tamanho do passo é dado por

Δ = b − a

M , (1.3.1)

logo os limitantes de decisão podem ser representados como

bq = a + Δ · q, com q = 0, 1, . . . , M.

Em quantização uniforme, o valor quantizador ^xq é escolhido como sendo o centro de cada

intervalo de decisão, então

^

xq = a + Δ · q −

1

2Δ, mboxcom q = 1, 2, . . . , M (1.3.2) Neste projeto de quantização o MSE será dado por

M SE = M X q=1 Z a+Δ·q a+Δ·(q−1) (a + Δ · q −1 2Δ − x) 2p(x)dx

para simplificar os cálculos faremos y = a + Δ · q − 12Δ − x, teremos que dy = −dx e quando

x = a + Δ · (q − 1) ⇒ y = Δ/2 e quando x = a + Δ · q ⇒ y = −Δ/2, logo M SE = M X q=1 − Z 1 2Δ −1 2Δ y2p(a + Δ · q − 1 2Δ − y)(−dy) ! (1.3.3) M SE = M X q=1 Z 1 2Δ −1 2Δ y2p(a + Δ · q − 1 2Δ − y)dy (1.3.4)

Substituindo a equação 1.3.2 na equação anterior temos

M SE = M X q=1 Z 1 2Δ −1 2Δ y2p(^xq− y)dy (1.3.5)

Quando uma variável aleatória é uniformemente distribuída a melhor estratégia de quantização é a uniforme, afirmação que provaremos na próxima seção. Neste caso, sendo x uma variável aleatória uniforme no intervalo [a,b], sabemos da equação 1.2.4 que

p(x) = 1

b − a, se a ≤ x ≤ b

logo o MSE encontrado em 1.3.5 passará a ser

M SE = M X q=1 Z 1 2Δ −12Δ y2 1 b − ady (1.3.6)

(30)

M SE = 1 b − a M X q=1 Δ3 12 (1.3.7) M SE = M b − a Δ3 12 (1.3.8) usando a expressão 1.3.1 M SE = Δ 2 12 (1.3.9)

que é a expressão para o MSE de um quantizador uniformemente distribuído. 3

1.4

Quantização Escalar Não Uniforme

A equação 1.1.2 calcula a contribuição que cada valor quantizado agrega ao MSE ponderado pela função densidade de probabilidade. Quando a fdp é uniformemente distribuída essa ponderação é constante e igual para todo intervalo, mas no caso das fdps normal, de Rayleigh, em geral as fdps não uniformes, para intervalos diferentes a probabilidade de ocorrência da variável aleatória é diferente, ou seja, a ponderação é diferente.

O fato da ponderação ser diferente influencia diretamente na partição do intervalo e conseqüen-temente na escolha do melhor valor que irá garantir o mínimo do MSE. No caso da distribuição ser uniforme, partições iguais da área de probabilidades implicam em partições de intervalos iguais, já para distribuições não uniformes, quando temos áreas de probabilidade igualmente distribuídas os intervalos de decisão são diferentes e seu tamanho dependendo da densidade de probabilidade na região. Isso porque áreas densamente distribuídas terão uma maior contribuição para o MSE, enquanto que áreas com baixa densidade de probabilidade fazem com que o MSE carregue pouca contribuição dessas regiões, logo os intervalos de decisão são inversamente proporcionais a den-sidade de probabilidade da região. A figura 1.10 mostra um exemplo de alocação de pontos de maneira uniforme e não uniforme para uma distribuição normal.

(31)

x ∆

(a) Quantizador uniforme

x

(b) Quantizador não uniforme Figura 1.10: Exemplo de quantização para fonte gaussiana com M = 6

Uma proposta para o problema de quantização não uniforme é trata-lo como um problema de otimização: encontrar os intervalos de decisão e os valores quantizadores para minimizar o MSE.

Dada uma fdp p(x) não uniforme e o número M de intervalos de decisão, queremos construir um quantizador não uniforme que possua limites de decisão {bq}M0 e os valores de quantização

{^xq}M1 que minimize a equação 1.1.2, ou seja, o MSE.

Como temos uma problema de otimização e a função que será otimizada, começaremos encon-trando o valor quantizador ^xq ótimo, calculando a derivada da equação do MSE em relação a ^xq,

então M SE = Z b1 b0 (x − ^x1)2p(x)dx + Z b2 b1 (x − ^x2)2p(x)dx + . . . + Z bq bq−1 (x − ^xq)2p(x)dx+ + Z bq+1 bq (x − ^xq+1)2p(x)dx + . . . + Z bM bM −1 (x − ^xM)2p(x)dx (1.4.1)

como ^xi, com i 6= q são constantes temos

∂(M SE) ∂ ^xq = −2 Z bq bq−1 (x − ^xq)2p(x)dx (1.4.2) = −2 Z bq bq−1 xp(x)dx + 2^xq Z bq bq−1 p(x)dx (1.4.3)

Igualando a zero a equação anterior temos

^ xq = Rbq bq−1xp(x)dx Rbq bq−1p(x)dx (1.4.4)

o que nos indica que ^xq é o valor do centro de massa de probabilidade do intervalo.

Procedendo da mesma maneira para encontrar os intervalos de decisão, derivaremos 1.4.1 em relação a bq, pelo teorema fundamental do cálculo

∂(M SE) ∂bq = ∂bq Z bq bq−1 (x − ^xq)2p(x)dx ! − ∂bq Z bq bq+1 (x − ^xq+1)2p(x)dx !

(32)

∂(M SE) ∂bq

= (bq− ^xq)2p(bq) − (bq− ^xq+1)2p(bq) (1.4.5)

Igualando a zero chegamos a

bq =

^

xq+ ^xq+1

2 (1.4.6)

o que nos indica que os limitantes dos intervalos de decisão são simplesmente o ponto médio dos valores quantizadores vizinhos.

Resolvendo as equações 1.4.4 e 1.4.5 encontraremos os intervalos de decisão e os valores quan-tizadores. O problema encontrado aqui é que para calcularmos o valor quantizador precisamos conhecer os limitantes dos intervalos de decisão e para encontrar os limitantes dos intervalos de decisão precisamos do valor quantizador, que até o momento são desconhecidos, o que nos leva ao algoritmo de Lloyd-Max.

Antes de tratarmos sobre o algoritmo citado, provaremos a afirmação feita na seção anterior de que quando uma variável aleatória é uniformemente distribuída a melhor estratégia de quantização é a uniforme, usando os mesmos argumentos anteriores.

Seja p(x) uma fdp uniforme. Da equação 1.4.4 temos

^ xq = Rbq bq−1xp(x)dx Rbq bq−1p(x)dx = Rb ax  1 b−a  dx Rb a b−a1 dx = b2 q−b2q−1 2(b−a) bq−bq−1 b−a ^ xq = bq+ bq−1 2 (1.4.7)

que podemos ver que o valor de xq deve ser exatamente o ponto médio do intervalo de decisão,

mostrando estar de acordo com os critérios da quantização uniforme.

(33)

O Algoritmo segue os seguintes passos:

1. Escolha um valor aleatório para ^x1.

2. Faça q = 1.

3. Substitua ^xq e bq−1 na equação 1.4.4 para encontrar o valor de bq. Isso pode ser feito integrando

as duas integrais variando o limite superior, começando em bq−1 até a equação ser válida.

4. Após encontrar o valor de bq e ^xq, substitua-os na equação 1.4.8 e encontre ^xq+1.

5. Faça q = q + 1.

6. Volte ao passo 3 enquanto q ≤ M . Quando q = M avance para o próximo passo.

7. Calcule θ = ^xM − RbM bM −1xp(x)dx RbM bM −1p(x)dx 8. Pare se |θ| < limite pré determinado.

9. Diminua o valor de ^x1 se θ > 0 e aumente, caso contrário.

10. Volte ao passo 2.

O algoritmo de Lloyd-Max é bastante utilizado para propósitos práticos pois, uma vez obtido os valores quantizadores, pode-se utilizar 1.4.6 para se determinar os intervalos de quantização.

(34)

Capítulo 2

Quantização Vetorial

Neste capítulo iremos generalizar os conceitos de quantização escalar apresentando a ideia de quantização vetorial. Exemplos de quantização vetorial no R2 serão construídos utilizando

quantização em reticulados e quantização forma/ganho, analisando as vantagens e desvantagens de cada processo de quantização.

2.1

Quantização vetorial - definição

A quantização vetorial (QV) pode ser entendida como uma generalização da quantização es-calar. Na quantização vetorial, vamos assumir que uma fonte de informação gera uma sequencia

Xk = (x1, x2, · · · , xk) de variáveis aleatórias independentes e identicamente distristribuídas (iid)

com função de densidade de probabilidade (fdp) p(x). Novamente o processo de quantização da fonte envolve duas etapas: codificação e decodificação. O codificador associa a sequencia Xk a

um único índice Q(Xk) ∈ {1, 2, · · · , 2kR}. O decodificador representa Xk por um estimador ^Xk

associado ao índice Q(Xk). O valor R é denominado taxa de quantização, em bits. O processo é

ilustrado na figura 2.1 .

Codifica¸c˜ao

Decodifica¸c˜ao

k

Xk Qk(xk) ∈ {1, 2, . . . , 2kR}

(35)

2.1.1

Taxa de Distorção

No processo de QV, como abordado em quantização escalar, devemos medir a performance de nosso quantizador calculando o qual diferente é o vetor emitido pela fonte X e o vetor quantizado

^

X. Para isso, poderíamos usar a sensibilidade humana para fazer tal avaliação, por exemplo, se

estamos trabalhando com compressão de imagens, poderíamos pedir que um profissional da área analisasse as duas imagens e desse seu parecer, mas isso seria muito subjetivo, pois iria depender de vários critérios pessoais de cada profissional, por isso, iremos introduzir critérios matemáticos para podermos fazer a avaliação do resultado final dos dados após a QV.

Calcular o quanto a informação recebida se diferencia da original é o que chamamos de distorção. Umas das mais utilizadas e que também fará parte deste estudo será o quadrado da distância euclidiana entre o vetor quantizado e o vetor de entrada. Se x é o vetor de entrada e ^x é o vetor

quantizador então teremos:

d(x, ^x) = k

X

i=1

(xi− ^xi)2 (2.1.2)

O erro médio quadrático (MSE) é definido como sendo a esperança do quadrado da distância euclidiana, ou seja, D = 1 k k X i=1 (xi − ^xi)2 = E[x − ^x]2 (2.1.3)

Um quantizador ideal é aquele que minimiza esta medida, logo nosso problema é sabermos onde alocar os pontos do quantizador de forma a minimizar o MSE.

Um medida equivalente para medir a performance do quantizador é a SNR (do inglês signal-to-noise ratio) definida como

SN R = 10 log10Ekxk 2

D (2.1.4)

onde a unidade de medida é a decibels (dB) e Ekxk2 é a potência (energia) do sinal de entrada

com relação a norma euclidiana. Podemos dizer que o SNR compara o nível do sinal desejado (vetor entrada) pela distorção gerada pelo quantizador. Logo quanto maior for SNR, melhor será a performance do quantizador, ou seja, mais próximo o vetor entrada estará do vetor quantizador. Assim, como já comentado, queremos minimizar o MSE, e quando isso acontecer, o SNR será maximizado. Podemos também dizer, das equações 2.1.1 e 2.1.4, que SNR é uma relação da taxa em função da distorção, SN R = R(D).

Existe um limitante inferior teórico para a performance do quantizador para fontes gaussianas, proposto por Shannon e que calcula a distorção em função da taxa [11]

D(R) = σ22−2R (2.1.5)

podendo esse limite ser alcançado quando a dimensão k tender ao infinito (k → ∞), que gera o seu equivalente

SN R = 10 log10D(R)

σ2 = 6.02R (2.1.6)

(36)

Na QV, o valor quantizador pertencerá a uma região de decisão δi, que desempenha papel

semelhante aos intervalos de decisão em quantização escalar. Um vetor x será quantizado para ^

xi, se e somente se, ele pertence a região de decisão δi. Essas regiões são chamadas de região de

Voronoi, que definimos como sendo o conjunto

δi = {x|d(x, ^xi) ≤ d(x, ^xj), ∀i 6= j} (2.1.7)

ou seja, o vetor x pertencerá a região de voronoi de ^xi (ou será quantizado para ^xi) se a distância

entre eles for a menor dentre todos os outros vetores quantizadores ^xj, para i 6= j.

Técnicas diferentes de quantização vem sendo estudadas, desenvolvidas e bons resultados estão sendo alcançados. As técnicas se diferenciam entre sí principalmente na maneira de encontrar os pontos do quantizador. Daremos foco em duas principais técnica de quantização, a de reticulados e a conhecida forma/ganho.

2.1.2

Quantização em Reticulados

A teria de reticulados tem sido amplamente estudada em problemas de empacotamento e cobertura esférica e aplicada em diversas situações [3]. Nesta seção definiremos reticulados e nos restringiremos a exemplos no R2.

Um reticulado no Rn é um conjunto infinito de ponto dispostos de forma regular e definido

algebricamente como o conjunto de vetores que são gerados pela combinação linear de vetores linearmente independentes (LI) com coeficientes inteiros, isto é,

Λ = (m X i=1 aiui : ai ∈ Z ∀ i ) ,

onde β = {u1, u2, . . . , um} são vetores LI e base para o reticulado Λ do espaço vetorial Rn (m ≤ n).

Diferentes bases para o reticulado podem ser tomadas e dependendo do ângulo entre os ve-tores da base obteremos diferentes paralelepípedos fundamentais, que pode ser entendido como o conjunto de todos os pontos y ∈ Rn que satisfazem (ver figura 2.3)

y = m

X

i=1

tiui, 0 ≤ i < 1, ti ∈ R

(37)

paralelep´ıpedo fundamental

Regi˜ao de Voronoi

(a) Reticulado gerado pelos ve-tores canônicos

paralelep´ıpedo fundamental

Regi˜ao de Voronoi

(b) Reticulado gerado por veto-res com ângulo de 60º

Figura 2.2: Paralelepípedos fundamentais de diferentes reticulados no R2

A quantização em reticulados é construída alocando os valores quantizadores no centro de cada região de Voronoi, ou seja, os próprios pontos do reticulado são os valores quantizadores. A grande vantagem nesse sistema é que conhecemos bem a região de Voronoi gerada, facilitando a implementação da QV.

Nesse contexto podem ocorrer duas situações, o reticulado ser gerado por um vetor ou ser gerado por dois vetores LI. A região gerada pelo reticulado contendo um vetor na base são intervalos sobre a reta, com a direção desse vetor e a gerada por dois vetores LI são polígonos do R2. A figura 2.3

exemplifica essas duas situações.

(a) Reticulado gerado pelo vetor

(1,1) (b) Reticulado gerado pelos ve-tores canônicos Figura 2.3: Reticulados no R2

Vemos na figura 2.3(a) que as regiões de Voronoi do reticulado representado em (a) são inter-valos da forma

[0.5i, 0.5i), com i = ±1, ±2, . . . , ±n,

(38)

em (b) são quadrados com vértices em (i, j), com i = 0, ±1, ±2, . . . , ±n e j = 0, ±1, ±2, . . . , ±n. Os pontos estarão no centro de cada quadrado, sendo portanto os pontos

(0.5 + i, 0.5 + j) com i = 0, 1, . . . , n e j = 0, 1, . . . , n.

É intuitivo notar que, como os pontos quantizadores são distribuídos de forma uniforme sobre o R2, uma QV utilizando reticulados deve funcionar bem com fdps uniformes, pois além de alocar

seus quantizadores de forma uniforme, ela contempla o espaço amostral.

Exemplo 2.1. Suponha que a fonte possua distribuição uniforme e que x ∈ R2 limitado a [−1, 1]× [−1, 1]. Se quisermos uma taxa de 1 bit por dimensão, pela equação 2.1.1 o dicionário terá tamanho

N = 4. Logo, usaremos 2 bits para representar cada palavra código, que pode ser visualizado

na tabela da figura 2.4. Simulações com 3000 e 500000 amostras foram realizadas utilizando o software Matlab, em que primeiro geramos vetores aleatórios com distribuição uniforme, em seguida identificamos em qual região de Voronoi cada vetor pertence. Após quantizá-los pelos vetores da tabela 2.4, calculamos o erro de cada quantização e finalizamos calculando o MSE e o SNR. A figura 2.5 mostra os pontos que foram gerando aleatoriamente utilizando software Mathematica.

Palavra código índice Representação binária

^x1= (0.5, 0.5) 1 00

^x2= (−0.5, 0.5) 2 01

^x3= (−0.5, −0.5) 3 10

^x4= (0.5, −0.5) 4 11

(39)

Exemplo 2.2. Suponha que a fonte possua distribuição normal com média 0 e variância 0.28

(para aproximar ao alcance da distribuição uniforme do exemplo anterior) e o dicionário e taxa obedecendo as condições já citadas. Simulações com 3000 e 500000 amostras foram realizadas utilizando o software Matlab seguindo os mesmos passos do exemplo anterior. A figura 2.6 mostra os pontos que foram gerando aleatoriamente utilizando o software Mathematica.

Figura 2.6: Distribuição normal no R2.

O MSE encontrado para 3000 amostra foi de 0.21 e SN R = −1.33. Para 500000 amostras, nas mesma condições, o MSE tende a se estabilizar em 0.21 e o SN R = −1.2642.

A razão para o MSE ter aumentado e do SNR não ter convergido para o valor esperado é devido as características da distribuição normal. Quantização com reticulados favorece a distribuição uniforme, pelo fato dos pontos do reticulado serem distribuídos uniformemente e a distribuição normal não. A figura 2.7 compara as duas distribuições e esse fato pode ser notado.

Figura 2.7: Distribuição uniforme em azul e gaussiana em vermelho no R2

2.2

Quantizador para fontes gaussianas

Nesta seção vamos explorar a quantização vetorial de fontes gaussianas (normais), assumindo então que os vetores de entrada, que serão quantizados, são variáveis aleatórias gaussianas

(40)

indepen-dentes e identicamente distribuídas (iid), obedecendo então a função densidade de probabilidade (fdp) gaussiana já revisada no capítulo 1.

É comum encontrarmos fontes com amostras distribuídas normalmente, por isso daremos mais atenção a QV nesses termos. Revisaremos os conceitos teóricos que relacionam a teoria da in-formação com os processos estocásticos, importantes para podermos estimar quão perto a função da taxa pela distorção de um quantizador pode se aproximar do limite teórico estabelecido por Shannon em 1948 [11] e também, para construirmos o quantizador forma/ganho, responsável.

2.2.1

Entropia Diferencial

Entropia foi um conceito introduzido por Shannon para a busca e correção de erros em sinais com ruídos e também para a codificação de mensagens. Podemos definir entropia como sendo a medida de incerteza ou da falta de informação de variáveis aleatórias individuais ou conjuntas, associada a uma possível distribuição de probabilidade. Para uma variável aleatória discreta, a entropia é

H(X) = − X

x∈X

fX(x) log fX(x) (2.2.1)

para uma dada função massa de probabilidade [8].

Este conceito pode ser estendido para variáveis aleatórias contínuas com uma função densidade de probabilidade pela seguinte definição.

H(X) = −

Z

X

fX(x) log fX(x)dx (2.2.2)

Para o caso contínuo chamamos H(X) de entropia diferencial. Quando o log está na base 2 dizemos que a entropia diferencial será expressa em bits. Esta definição é similar em muitos aspectos ao caso discreto, devendo portanto estarmos atento as diferenças entre elas, sendo uma das principais, o fato da entropia diferencial poder assumir valores negativos, enquanto no caso discreto só se assume valores positivos.

Neste trabalho iremos nos concentrar em uma fonte gaussiana sem memória com função den-sidade de probabilidade X ∼ N (0, σ2), com média 0 e variância σ2

fX(x) = 1 √ 2πσ2ex 2σ2 (2.2.3)

(41)

na parte 2.2.7 usamos o fato de Z ∞

−∞fX(x)dx = 1 para uma distribuição normal. Maiores detalhes

podem ser vistos em [8, 10].

2.2.2

Propriedades Assintóticas de Equipartição

Uma das importantes teorias da probabilidade que necessitamos aqui é a lei dos grandes nú-meros, em especial a chamada lei fraca dos grandes núnú-meros, que já utilizamos na equação 2.1.3, e diz que, para variáveis aleatórias (x1, . . . , xn) iid e integráveis vale a relação

1 n n X i=1 xi −→ E(x) (2.2.9)

que pode ser descrita como a média convergindo em probabilidade para a esperança.

Em teoria da informação, o análogo a esta lei é a propriedade assintótica de equipartição (PAE). A relação que esta nos impõe para variáveis aleatórias contínuas é [8]

1 n log 1 f (x1, . . . , xn) = −1 n log f (x1, . . . , xn) (2.2.10)

converge em probabilidade para a entropia H(X), onde f (x1, . . . , xn) é a função densidade de

probabilidade conjunta da seqüencia de variáveis aleatórias [9].

A densidade de probabilidade conjunta para variáveis aleatórias iid é

fX(x1, x2, . . . , xn) = f (x1)f (x2) . . . f (xn) (2.2.11)

Ao analisarmos o caso da fdp ser uma distribuição normal e o vetor x ser de dimensão n a equação anterior assume a forma

fX(x) =  1 2πσ2 n2 en X i=1 x2i 2σ2 (2.2.12)

Aplicando o log na equação 2.2.11 temos

log fX(x1, x2, . . . , xn) = n

X

i=1

log fX(xi) (2.2.13)

igualando as equações 2.2.10 e 2.2.13 obtemos

−1

nlog fX(x) ≈ H(x) ⇒ fX(x) ≈ 2 −nH(x)

(2.2.14)

A relação 2.2.14 nos sugere uma distribuição aproximadamente uniforme em torno do vetor

x para dimensões grandes, quando temos uma fonte gaussiana sem memória [9], [11]. Este fato

remete a construirmos quantizadores distribuindo os seus N pontos uniformemente em torno de uma superfície esférica, sendo esta última afirmação podendo ser justificada observando que da equação 2.2.14 e 2.2.8, temos

fX(x) ≈ 2−n log

2πσ2e

(42)

igualando a equação 2.2.15 com 2.2.12 obtemos  1 2πσ2 n2 en X i=1 x2i 2σ2 ≈ 2−n log2πσ2e (2.2.16)

reescrevendo esta última equação encontramos uma relação para as coordenadas do vetor x

1 n n X i=1 x2i ≈ σ2 n X i=1 x2i ≈ (σn)2 (2.2.17)

relação esta que descreve uma equação da esfera de dimensão n e raio σn. Justificando assim

a afirmação feita de que os vetores do dicionário estarão posicionados na superfície de uma esfera n-dimensional.

Passaremos a revisar um quantizador que será projetado utilizando as características aqui descritas.

2.2.3

Quantização Forma/Ganho

Um quantizador forma/ganho é um quantizador para fontes gaussianas e é composto por duas partes: a forma, que são as coordenadas do vetor entrada normalizado e a norma euclidiana do vetor.

Seja x ∈ Rn uma variável aleatória gaussiana, se S for a forma do vetor x e g o ganho, teremos

S = x

kxk e g = kxk,

logo x = gS. Como o ganho de x é escalar, ou seja, g ∈ R e a forma é um vetor, a quantização forma/ganho é a composição de uma quantização escalar com uma quantização vetorial. Chama-remos de ^g o valor que quantiza g e ^S o valor quantiza o vetor S. Assim, o vetor ^x que quantiza x

é ^x = ^g ^S.

Tanto a quantização da forma quanto a quantização do ganho dessa estrutura serão calculados utilizando a região de Voronoi, fazendo uso do algoritmo de Lloyd-Max. Os pontos ^gi são variáveis

aleatórias de Rayleigh e representados por circunferências com centro na origem, sendo o raio o valor do próprio ponto. Na quantização do shape, alocaremos os vetores quantizadores ^Si uniformemente

(43)

A taxa R deste quantizador é medida somando a taxa da quantização do ganho Rg com a da forma RS, R = Rg+ RS, logo R = Rg+ RS = log2Ng k + log2NS k = log2Ng.NS k (2.2.19)

2.2.4

Quantização Forma/Ganho em R

2

Um quantizador forma/ganho no R2 é estruturado da seguinte forma: seja a variável aleatória gaussiana x = (x1, x2), teremos que o ganho será g =

q

x2

1 + x22 e a forma S =

(x1,x2)

g . Os

pontos quantizadores ^gi do ganho, como já citado, serão calculados pelo algoritmo de Lloyd-Max

e encontrado através do método da distância mínima e os pontos da ^Si forma, como estarão sobre

um círculo unitário, podem ser calculados fazendo

^ Si =  cos 2.i.π n  , sen 2.i.π n  com i = 0, 1, . . . , n − 1,

onde n é a quantidade de pontos, dessa forma, dividimos o círculo unitário em n partes iguais. Ainda precisamos encontrar o valor de i para identificarmos quem será o ponto a ser quantizado. Um maneira é: calculamos o ângulo θ do vetor x, θ = arctanx2

x1



e α = n, que é o tamanho de cada arco. O índice i será o inteiro mais próximo de θ

α.

A figura 2.8 mostra um exemplo de quantização forma/ganho no R2 com 4 pontos na forma e

8 no ganho.

(a) Quantização forma/ganho pela distribui-ção de Rayleigh

(44)

Exemplo 2.3. Afim de exemplificarmos o processo de quantização forma/ganho no R2, suponha que queremos quantizar o vetor x = (1.2, 1.9). Logo, calculando o ganho g = k(1.2, 1.9)k = 2.247, e a forma, S = (1.2,1.9)2.247 = (0.533, 0.845) e assumindo como dicionário os conjuntos

Cg = {1, 2, 3, 4} e CS =  cos 2.i.π n  , sen 2.i.π n  com i = 0, 1, 2, 3;

o ganho mais proximo de g = 2.247 do dicionário de Cg é 2, então ^g = 2 e ^S = (cos (2π/4) , sen (2π/4)),

logo o vetor quantizado seria ^x = (2 cos(π/2), 2 sen (π/2)), como mostra a figura 2.9.

Figura 2.9: Exemplo de quantização forma/ganho no R2

O próximo exemplo calcularemos o MSE e SNR de um processo de quantização forma/ganho para um distribuição gaussina com média 0 e variância 1.

Exemplo 2.4. Vamos supor que temos uma fonte com distribuição normal e dispomos de 3 bits.

(45)

Figura 2.10: Quantização forma/ganho no R2

O valores encontrados foram M SE = 0.0707 e SN R = 14.5577. Na próxima seção faremos uma comparação dos projetos de quantização em reticulados e forma/ganho através de um exemplo.

2.2.5

Exemplos de quantização no R

2

Nesta seção, faremos alguns exemplos de quantização vetorial no R2, com distribuição de

proba-bilidades uniforme e gaussiana, usando quantização em reticulados e forma/ganho. Estes exemplos são importantes para ganharmos intuição e entendermos o que estará acontecendo em dimensões maiores que 3, onde perdemos a interpretação geométrica.

Na figura 2.7 é possível notar nitidamente que os pontos de uma distribuição uniforme estão igualmente concentrados e os pontos de uma distribuição normal estão mais concentrados entorno da média, e de acordo com a variância eles podem se espalhar mais para variâncias maiores. Veja a figura 2.11.

(46)

Pelas características que observamos na distribuição uniforme, vemos intuitivamente que a quantização utilizando reticulados deveria se ajustar melhor a fontes uniformes enquanto a quanti-zação forma/ganho representaria melhor fontes gaussianas. A figura 2.12 exemplifica um reticulado com 400 pontos e o comportamento de diferentes distribuições. Para melhor visualização da figura utilizaremos uma malha maior, enquanto normalmente se faz com malhas mais finas.

(a) Distribuição uniforme (b) Distribuição gaussiana Figura 2.12: Quantização em reticulados no R2

Analisando agora a distribuição gaussiana em relação as duas formas de quantização, confirma-mos nossa expectativa de que a decomposição forma/ganho parece representar melhor os pontos do que a malha reticulada. Isso se deve ao fato dessa distribuição se espalhar com as características de um círculo, conforme vimos. A figura 2.13 mostra uma quantização forma/ganho com diferentes distribuições.

(47)

no R2. Em reticulados teremos 210 = 1024 pontos para distribuir e na forma/ganho essa quantidade

deve ser dividida pelos quantizadores da forma e do ganho, segundo a tabela 2.1. Essa divisão obedece os critérios da equação 2.2.18.

Tabela 2.1: Divisão de pontos forma/ganho

Número de pontos no dicionário forma/ganho

forma ganho

bits nº de pontos bits nº de pontos

0 1 5 1024 1 4 4 256 2 16 3 64 3 64 2 16 4 256 1 4 5 1024 0 1

Tabela 2.2: Comparação de reticulados e forma/ganho

forma ganho σ2= 1 σ2= 2 σ2= 3 σ2= 4 σ2= 5 0 5 3.9740 15.9009 36.0945 64.4795 99.2913 1 4 0.3992 1.6021 3.6053 6.4433 9.9987 2 3 0.0258 0.1033 0.2328 0.4120 0.6374 3 2 0.0050 0.0200 0.0447 0.0809 0.1221 4 1 0.0453 0.1796 3.8725 0.7272 1.1265 5 0 0.4281 1.7208 0.3987 6.9054 10.7842

A simulação computacional com 5 bits para a quantização em reticulado (utilizando o reticulado

Z2) resultou em um M SE igual a 0.1668, enquanto a quantização forma/ganho obteve alguns

melhores resultados, destacados em negrito, conforme pode ser visto na tabela 2.2. Quanto menor a variância, melhores são os resultados obtidos, o que era de se esperar, pois quantizaremos uma dispersão cada vez menor e os quantizadores se adaptam para cada variância através do algoritmo de Lloyd-Max, enquanto em reticulados os pontos quantizadores permaneceram fixos, independente da variância. Esta simulação foi apenas para ilustrar o potencial da técnica forma/ganho.

(48)

Capítulo 3

Quantização Vetorial e Códigos Esféricos

No capítulo anterior construímos um quantizador vetorial para fontes gaussianas com variáveis aleatórias iid conhecido como shape/gain. Como já citado, o quantizador para o gain é escalar e o interpretamos como um problema de otimização e o quantizador para o shape é esférico e suas palavras-código são pontos uniformemente distribuídos sobre a superfície de uma esfera unitária.

A alocação ótima de pontos sobre a esfera é um problema clássico, ainda em aberto para o caso geral. Para o caso em que k = 2, este problema se resume em alocar pontos igualmente espaçados sobre o círculo unitário e pode ser facilmente resolvido tomando os vértices de polígonos regulares inscritos no círculo unitário. Para k ≥ 3, estamos interessados em alocar pontos distribuídos uniformemente sobre a esfera unitária, o que deixa de ser um problema trivial. No processo de quantização esférica do shape temos dois principais problemas a serem resolvidos: o primeiro é referente a encontrar os pontos do dicionário, ou seja, como distribuir os pontos sobre a superfície da esfera, o que equivale a desenhar um código esférico que melhor represente o quantizador do shape, o segundo é como encontrar o vetor código ^x que melhor representa um dado vetor de

entrada x.

Neste capítulo, definiremos brevemente os conceitos de códigos esféricos e sua relação com o processo de quantização. Para exemplificar, construiremos um código esférico no R3 nos baseando

no trabalho de Utkovski [11]. Este exemplo é importante para termos a ideia do que acontece em dimensões maiores.

(49)

dicionário e um ponto qualquer da esfera e também da distribuição estatística da fonte. Portanto, temos o seguinte problema:

• Como alocar M pontos {^x1, ^x2, . . . , ^xM} sobre Sk−1 de modo a minimizar E[x − ^x2]?

Em geral este problema é abordado de forma sub-ótima, utilizando-se de técnicas clássicas para construção de códigos esféricos para o problema do empacotamento, que pode ser descrito como:

• Como alocar M pontos {^x1, ^x2, . . . , ^xM} sobre Sk−1 de modo a maximizar a distância mínima

entre eles? maximizar  min i6=j k^xi− ^xjk 

É útil considerarmos em algumas aplicações o problema dual:

• Dada a distância mínima d, qual é o maior número de pontos M que podem ser alocados em

Sk−1 com distância maior ou igual a d?

Seja C(M, k, d) um código esférico com distância mínima d e x, y ∈ C, o ângulo de separação mínimo entre x e y é (figura 3.1)

θ = 2 arcsen d

2 !

(3.1.1)

Uma outra maneira de enxergarmos este problema é o chamado empacotamento de chapéus esféricos de raios iguais na superfície da esfera unitária, ou simplesmente empacotamento de esferas. Um chapeu esférico é o conjunto de todos os pontos y da esfera Sk−1 cuja separação angular de

um ponto X ∈ Sk−1, (centro do chapeu esférico) é φ e denotamos por

CX(k, φ) = {y ∈ Sk−1; hx, yi > cos(φ)} (3.1.2)

Trabalhando o problema dessa forma passamos a analisar a densidade do empacotamento, que é a porcentagem da área da superfície esférica Sk−1 que é coberta pelos chapéus esféricos. Quando

a distância mínima de um código esférico é d, o chapeu esférico de raio angular φ são disjuntos. A área de superfície de um chapeu esférico é dada por [11]

A(C(k, φ)) = Kk−1 Z φ 0 ( sen α)k−1dα, onde Kk =            (2π)k/2 (k − 2)!!, k = 2, 4, . . . 2(2π)(k−1)/2 (k − 2)!! , k = 3, 5, . . . (3.1.3) k!! =    k(k − 2)(k − 4) . . . 1 n ímpar k(k − 2)(k − 4) . . . 2/ n par

A densidade (Δ) de um código esférico é definido por

Δ(k, d) ≡ M.A(C(k, φ))

A(Sk−1) (3.1.4)

(50)

θ

d

1

x

y

(a) Relação do ângulo mínimo θ e distância mínima d

X

(b) Chapel Esférico de centro em X

Figura 3.1: Ângulo mínimo e chapel esférico

A maior densidade de um código esférico em Sk−1 ⊂ Rk é limitada superiormente pela maior

densidade de empacotamento de esferas no Rk−1 [12]. Assim, a maior densidade possível de um código esférico em R3 é π√3

6 ≈ 0, 90689, que equivale ao melhor empacotamento possível em R 2,

proveniente do reticulado hexagonal. Esta densidade que pode ser obtida calculando a razão entre a área de um círculo de raio r e a área do hexágono que o inscreve.

(51)

Figura 3.3: Área coberta por três chapeus esféricos tangentes.

Existem várias técnicas para se construir códigos esféricos, as quais se destacam: códigos em reticulados, como já apresentado, obtidos de códigos binários, via métodos de otimização [3]. O grande problema é que essas técnicas apenas são válidos para alguns valores de M , não permi-tindo a construção para distâncias assintoticamente pequenas, ou seja, quando d → 0. Existem algumas técnicas que são capazes de distribuir pontos com distância assintoticamente pequenas, as quais destacamos: Apple-Peeling, Wrapped e Laminated [12]. Os códigos em camadas de toros, introduzidos em [3, 13], tem se mostrado uma boa alternativa para distâncias não assintoticamente nulas.

3.2

Construção de um Código Esférico

Em [11] é apresentado uma maneira de construir códigos esféricos similar aos códigos Apple

Peeling Codes e também uma forma de utilizar estes códigos para quantização vetorial.

O primeiro passo desta construção consiste em cortar a esfera Ω3 = {(x, y, z) ∈ R3/x2+y2+z2 =

1} com n planos perpendiculares ao eixo-z. Cada plano pode ser descrito pela equação

Σi = {(x, y, z) ∈ R3/z = zi}, i = 1, 2, . . . , n (3.2.1)

Em cada corte, isto é, em cada intersecção do plano Σi com a esfera Ω3 (Σi∩ Ω3) será gerado

um círculo Li

Li = {(x, y, z) ∈ R3 x2+ y2 = 1 − zi}, i = 1, 2, . . . , n (3.2.2)

Os M pontos serão distribuídos uniformemente entres os círculos Li proporcionalmente ao

comprimento de cada círculo, isto é, proporcional ao raio Ri do círculo Li. Como os círculos

(52)

Figura 3.4: Construção de um código esférico no R3. Fonte: [11].

Uma vez construído um código esférico C(M, 3), para sua utilização em quantização vetorial, é necessário definir uma regra que associa, para cada vetor x ∈ R3 um único escalar ^g e um único

ponto ^S ∈ C(M, 3), com o objetivo de minimizar a distorção kx − ^xk = kx − ^g ^Sk.

Os processos de quantização do ganho e da forma podem ser feitos de forma independentes ou dependentes [11]. Uma das maneiras de definir este processo consiste em fazer g = kxk e utilizar um processo de quantização escalar para mapear g em ^g. Para quantização do shape pode-se

utilizar algum algoritmo de busca pelo ponto mais próximo para encontrar ^S ∈ C(M, 3), tal que,

k ^S −x

gk ≤ kW − x

gk, ∀ W ∈ C(M, 3).

Se todas as palavras-código de C(M, 3) tiverem suas coordenadas armazenadas explicitamente, é possível fazer uma busca exaustiva para encontrar ^S, mas isto implica num alto custo

computa-cional tanto em memória (para armazenar as coordenadas de C(M, 3)), quanto em processamento para o cálculo de todas as distâncias.

(53)

Li Li+1 S S ˆ S X Y Z Y X

Figura 3.5: Decomposição do Shape

Uma generalização deste método para Rk foi proposta em [11] e diferentes variações foram

im-plementadas e testadas através de simulações para várias taxas e dimensões, apresentando razoável complexidade computacional e bom desempenho em termos de MSE, embora não se tenha muitas comparações com outros trabalhos.

No próximo capítulo apresentaremos uma proposta nova para a construção de um código esfé-rico no processo de quantização vetorial, mais especificamente, um código esféesfé-rico para quantização do Shape.

(54)

Capítulo 4

Quantização vetorial utilizando códigos

esféricos em toros planares

Em [3] é introduzida uma maneira de alocar pontos na superfície da esfera unitária utilizando camadas de toros. A construção proposta baseia-se na folheação da esfera unitária por toros planares.

Neste capítulo apresenta-se uma síntese da construção de códigos esféricos em camadas de toros, baseada em [3, 13], com o objetivo de utilizar estes códigos para quantização vetorial. Um exemplo no R4 será construído, já que mesmo nesta dimensão ainda se tem uma satisfatória interpretação

geométrica, pois este código esférico no R4 será decodificados em R2, isto é, os pontos do código

esférico estão distribuídos no plano.

A principal contribuição desta dissertação é apresentada na seção 4.3, onde propõe-se a utili-zação de códigos em camadas de toros para a quantiutili-zação vetorial utilizando uma estratégia de shape/gain. A construção será ilustrada através de um exemplo no R4e os resultados de simulações numéricas serão apresentados.

4.1

Códigos Esféricos em Camada de Toros Planares

Seja c = (c1, c2, . . . , ck) ∈ Sk−1 ⊂ Rk, ci > 0 com k X 1 c2i = 1 e y = (y1, y2, . . . , yk) ∈ Rk. Seja Φc: Rk→ R2k definida por

Referências

Documentos relacionados

Ao nível municipal não são contemplados Centros de Coordenação Operacional, no entanto, de acordo com a Directiva Operacional n.º 1/2009 da Autoridade Nacional de Protecção

Este subsídio é para aqueles que forem reformar a casa usando os serviços de alguma construtora que possua endereço na cidade de Hikone.. Informações Setor de Promoção da

After purging and evacuation, the containers were submitted to collection and storage tests (Figure 1S). These tests used different types of synthetic and real samples containing

Após estes questionamentos, revogação e promulgação de decretos foram feitos e algumas mudanças ao programa se efetivaram, como a ampliação no que se refere a sua abrangência

Instituto Estadual de Medicina Veter1nar1a Instituto de Pesqu isas e Experimentação A-.. l ' 0rto

This process of fusioning gluons slows down and then stops the growth of gluon distribution functions when going into smaller and

Este refere-se às atividades realizadas no Gabinete de Comunicação e Imagem (GCI) no Centro Hospitalar de Trás-os-Montes e Alto Douro (CHTMAD, E.P.E) na Unidade

Os resultados demonstraram que a utilização dos diferentes tipos de amido não afetou as propriedades da mortadela quando comparados entre eles durante o shef life, não houve