3.0 Redes de computadores

Propaganda
UNIGUAÇU
UNIDADE DE ENSINO SUPERIOR VALE DO IGUAÇU
PROPOSTA DE UM MODELO DE CODIFICAÇÃO E DECODIFICAÇÃO DE VÍDEO
GERADO POR COMPUTADOR
Joatan José Kruk
Professor Cleverson Bússolo Klettenberg
UNIÃO DA VITÓRIA - PR
2005
UNIGUAÇU - Unidade de Ensino Superior Vale do Iguaçu
Faculdade de Ciências Exatas e Tecnológicas de União da Vitória
Professor Cleverson Bússolo Klettenberg
PROPOSTA DE UM MODELO DE CODIFICAÇÃO E
DECODIFICAÇÃO DE VÍDEO GERADO POR COMPUTADOR
Aluno Ficticio
Trabalho de conclusão de curso apresentado na UNIGUAÇU como critério
de aprovação em Bacharelado em Sistemas de Informação sob orientação
do Professor Cleverson Bússolo Klettenberg.
UNIÃO DA VITÓRIA - PR
2005
REGISTRO DE DEFESA
Trabalho de Conclusão de Curso apresentado nesta data à Banca Examinadora abaixo indicada:
_____________________________
Nome do Professor Orientador
_____________________________
Assinatura
_____________________________
Nome do Professor Convidado
_____________________________
Assinatura
_____________________________
Nome do Professor Convidado
_____________________________
Assinatura
RESULTADO: ______________________________________
UNIGUAÇU: ___/___/_______
Agradecimentos
Agradeço a minha família e a Renata, pela compreensão e apoio, aos
professores e a instituição pelo aprendizado ao longo desses quatro anos,
e a todos que de alguma forma contribuíram para a realização deste
trabalho.
Lista de Ilustrações
Figura 1 - sinal analógico e sinal
14
digital..........................................................
.......................
16
Figura 2 - Etapas do Algoritmo
16
JPEG.............................................................
.......................
20
Figura 3 - Distorção do JPEG, com compactação 0, 25, 50, 75 e 90
respectivamente..........
21
21
Figura 4 - Digrama de
classes.......................................................... 21
.......................................
22
Figura 5 - Diagrama de caso de uso da classe
codificadora...................................................
22
Figura 6 - Digrama de seqüência do caso de uso
"Inicializar"...............................................
23
23
Figura 7 - Digrama de seqüência do caso de uso
"Finalizar".................................................
Figura 8 - Digrama de seqüência do caso de uso "Codifica
quadro".....................................
23
26
28
Figura 9 - Diagrama de caso de uso da classe
decodificadora................................................
Figura 10 - Digrama de seqüência do caso de uso
"Inicializar".............................................
Figura 11 - Digrama de seqüência do caso de uso
"Finalizar"...............................................
Figura 12 - Digrama de seqüência do caso de uso "Decodifica
quadro"................................
Figura 13 - Sistema de contagem dos
blocos...........................................................
...............
Figura 14 - Foto 300x300
pixels...........................................................
..................................
Figura 15 - Janela de um Software 372x317
pixels...........................................................
.....
28
SUMÁRIO
RESUMO .................................................................................................................................. 7
Introdução................................................................................................................................. 9
2.0Revisão Literaria ............................................................................................................... 10
10
3.0Redes de computadores .................................................................................................... 10
4.0Vídeo analógico ................................................................................................................. 10
3. MODELO PROPOSTO .................................................................................................... 11
3.1 método MONTAPACOTE .............................................................................................. 11
3.2 Método KILL.................................................................................................................... 12
4 Resultados ............................................................................................................................ 12
4.1 Implementação das classes e dos softwares de teste...................................................... 12
4.2 Delimitação e área de atuação dos testes ....................................................................... 12
4.2.1 Teste 1............................................................................................................................. 13
4.2.2 Teste 2............................................................................................................................. 13
5. CONCLUSÃO .................................................................................................................... 14
6. REFERÊNCIAS ................................................................................................................. 15
RESUMO
Este trabalho propõe a criação de um modelo de codificação e
decodificação de vídeo gerado por computador para a transmissão por redes
de computadores, que pode ser usado em aplicações como acesso remoto,
ensino de uso de softwares e monitoramento do uso de computadores. O
modelo é baseado na análise orientada a objetos e composto por duas
classes, codificadora e decodificadora. O trabalho descreve por meio de
diagramas de classe, de caso de uso e seqüência, as propriedades e
métodos das classes, detalha as características e a lógica de
funcionamento dos mesmos, além de apresentar o algoritmo proposto. A
Classe codificadora é responsável por criar um pacote contendo um quadro
compactado, o qual deve ser submetido à classe decodificadora que vai
então descompactá-lo. A compactação dos quadros usa dois formatos de
compressão, PNG e JPEG, buscando assim um melhor aproveitamento de cada
tipo de compactação, por meio de uma análise do conteúdo da imagem a ser
compactada. São apresentados testes mostrando o desempenho das classes em
várias
situações
e
em
alguns
computadores
com
capacidades
de
processamento diferentes, e por meio dos resultados é demonstrado a
funcionalidade e eficiência do modelo proposto, bem como as exigências
quanto ao hardware necessário para um desempenho satisfatório das classes
propostas.
Palavras chave: Codificação, decodificação, vídeo gerado por computador,
redes.
Introdução
As redes de computadores possibilitam inúmeros serviços de comunicação,
dos quais podemos destacar aplicações que envolvem transmissão de vídeo,
como acesso, administração e manutenção remotos de computadores que
formam uma modalidade cada dia mais utilizada.
O objetivo deste trabalho é propor um modelo de codificação e
decodificação de vídeo gerado por computador para transmissão por redes
de computadores, baseado em programação orientada a objetos, e com isso
permitir a fácil criação de aplicações que necessitem dessas
funcionalidades.
Os serviços de transmissão de vídeo gerados por computador trazem
praticidade em tarefas como suporte a distância de usuários, acesso
remoto de computadores, administração remota de servidores, aplicações de
ensino de uso de softwares e até mesmo monitoramento do uso de
computadores.
A escopo dessa pesquisa delimita-se a criação de uma proposta de um
sistema de codificação e decodificação de vídeo gerado por computador, a
implementação desse modelo, testes e análise dos resultados obtidos. A
transmissão e recepção via rede não é objeto da pesquisa.
O modelo proposto será apresentado por meio de duas classes, codificadora
e decodificadora. Com o objetivo de detectar os pontos positivos e
problemas durante a criação de aplicativos usando objetos criados a
partir dessas, bem como comprovar o funcionamento e as exigências de
hardware para o uso desses aplicativos, serão criados alguns softwares de
teste, os quais devem registrar estatísticas durante sua execução. A
análise dessas informações deve permitir uma conclusão sobre a eficiência
geral do modelo proposto.
2.0
Revisão Literaria
3.0
Redes de computadores
“A Comunicação é uma das maiores necessidades da sociedade humana desde
os primórdios de sua existência.” Soares (1995, p.3), essa necessidade é
uma característica inerente ao ser humano e impulsionou vários avanços
tecnológicos, desde o surgimento da escrita, imprensa, telégrafo,
telefone, rádio, televisão, chegando aos nossos dias com a Internet, os
telefones celulares e certamente continuará a impulsionar a criatividade
das pessoas em busca do novo.
“Simplicidade é representada em termos XP pela busca pela
“coisa mais simples que possa funcionar”. A ideia é construir
algo simples e direto que solucione problemas de hoje e ter
certeza de que isso seja suficientemente flexível para ser
refinado e expandido de modo a solucionar os problemas de
amanhã, mas não se preocupar hoje com os problemas de amanhã”.
(KENDALL, 2002, pg.137).
Dos vários meios de comunicação hoje disponíveis, um dos mais fascinantes
é a Internet, pois ultrapassa barreiras geográficas, permitindo que
pessoas de qualquer parte do mundo acessem informações sobre os mais
variados assuntos e oferecendo a cada dia novos tipos de serviços,
quebrando assim alguns paradigmas, conforme Held (1999, p.19) “Hoje em
dia, você pode falar em um microfone e ter sua conversação de voz
digitalizada, dividida em pacotes e transmitida pela Internet sem
qualquer custo adicional além da tarifa mensal fixa do seu provedor de
serviços da Internet.”, dessa forma uma ligação telefônica internacional
que tem custo elevado, pode ser substituída por uma conversa via Internet
ao custo uma de ligação local.
Como previu Tanenbaum (1997, p.6) “O e-mail em tempo real permitirá que
usuários remotos se comuniquem instantaneamente, vendo e ouvindo uns aos
outros.”, o aumento de velocidade possibilitou novas aplicações e
serviços na Internet, as páginas têm se tornado cada vez mais
interativas, ricas em recursos gráficos, serviços como vídeo conferência,
voz sobre IP1, televisão e rádio via Internet tornaram-se realidade, até
mesmo para usuários domésticos. Entre os vários serviços de comunicação
disponíveis na Internet, alguns dos mais interessantes são os que
envolvem a transmissão de vídeo.
4.0 Vídeo analógico
A transmissão de vídeo por meio das redes de computadores difere muito de
transmissão de vídeo analógico, utilizada nos aparelhos de televisão
comuns. A própria natureza da informação ou sinal transmitido é
diferente, no vídeo analógico caracteriza-se por um sinal elétrico que
oscila dentro de certa freqüência, essa oscilação é a informação em si,
ou seja, a própria informação. No meio digital as informações são
transmitidas por um sinal que oscila apenas entre dois valores possíveis,
representando 0 (zero) e 1 (um). Outra diferença é o meio de transmissão,
enquanto na televisão o sinal é transmitido pelo ar por ondas de rádio
freqüência emitidas por torres, transmissores ou satélites, no vídeo
1
IP - Internet Protocol.
digital em redes de computadores o sinal trafega por cabos, fibras óticas
e também por ondas de rádio freqüência.
O vídeo analógico pode sofrer vários tipos de interferências, distorções
e atenuações, que prejudicam sua qualidade, isso não acontece no vídeo
digital, que é composto por uma seqüência de 0 (zero) e 1 (um), ou seja,
um sinal pode ser copiado inúmeras vezes sem que haja qualquer tipo de
distorção.
Figura
1 - a) sinal analógico
a
b
b) sinal digital
Quanto ao meio de transmissão, as ondas de televisão que viajam pelo ar
podem ser captadas por inúmeros aparelhos receptores, ao mesmo tempo sem
nenhum tipo de congestionamento ou concorrência. Quando um sinal digital
trafega por uma rede, seja ele um sinal de vídeo ou qualquer outro tipo
de dado, ele deve ser encaminhado para cada um dos destinos, é como se
houvesse uma transmissão exclusiva para cada receptor, além disso, o
tráfego dessa informação está sujeito a vários fatores, como
congestionamento da rede, concorrência com outros pacotes, servidores
sobrecarregados, latência, entre outros. Essas diferenças afetam vários
aspectos da geração, gravação, armazenamento, transmissão e reprodução do
vídeo digital em relação ao analógico.
3. MODELO PROPOSTO
O modelo proposto é um sistema de codificação e decodificação das imagens
geradas por computador, mais especificamente da tela do computador, que
doravante chamaremos de Desktop. O sistema é composto por duas classes. A
classe codificadora que gera como resultado um pacote, contendo um
quadro, o qual será interpretado pela classe decodificadora que por sua
vez, analisa esse pacote e produz como resultado uma imagem, a qual
poderá ser exibida, dessa forma dois softwares podem trabalhar numa
estrutura cliente/servidor, um codificando e outro decodificando imagens
em aplicações como acesso remoto, e-learning (ensino a distância por meio
eletrônico), entre outras.
Os pacotes produzidos pela classe codificadora podem ser transmitidos via
rede local ou Internet para classe decodificadora, ou mesmo armazenados
em disco, para posterior decodificação dos pacotes e exibição das
imagens, no entanto o escopo de trabalho delimita-se a geração e
interpretação dos pacotes contendo quadros, a transmissão e recepção dos
pacotes não é o objetivo das classes propostas.
A compactação dos quadros usa os formatos JPEG e PNG, tentando aproveitar
ao máximo as características de cada tipo de compressão, essa tentativa é
baseada em uma estimativa da complexidade da imagem.
3.1 método MONTAPACOTE
Esse método utiliza todas as informações geradas pelos métodos
anteriores e monta uma string com a imagem do Desktop codificada, que é o
pacote propriamente dito pronto para decodificação.
O pacote gerado contém largura e altura do Desktop, largura e altura do
bloco, índice dos blocos JPEG e o arquivo JPEG, índice dos blocos PNG e o
arquivo PNG.
Depois de gerado o pacote o mesmo pode ser transmitido via rede, ou mesmo
armazenado para posterior decodificação.
Algoritmo do método MONTAPACOTE:
LIMPAR PACOTE
PACOTE = LARGURA_DESKTOP // & = Operador de concatenação
PACOTE = PACOTE & ALTURA_DESKTOP
PACOTE = PACOTE & LARGURA_BLOCO
PACOTE = PACOTE & ALTURA_BLOCO
SE CONTA_JPEG > 0
PACOTE = PACOTE & INDICE_JPEG
PACOTE = PACOTE & TAMANHO_ARQUIVO_JPEG
PACOTE = PACOTE & ARQUIVO_JPEG
FIM SE
SE CONTA_PNG > 0
PACOTE = PACOTE & ARQUIVO_PNG
PACOTE = PACOTE & TAMANHO ARQUIVO_PNG
PACOTE = PACOTE & ARQUIVO_PNG
FIM SE
TAMANHO_PACOTE = LENGHT (PACOTE)
3.2 Método KILL
4 Resultados
4.1 Implementação das classes e dos softwares de teste
As classes e os aplicativos de testes foram implementados em linguagem
Clarion, versão 5b Enterprise Edition da empresa SoftVelocity2, que
compila executáveis em 32 bits compatíveis com o Microsoft Windows.
4.2 Delimitação e área de atuação dos testes
Foram desenvolvidos softwares utilizando as classes codificadora e
decodificadora, que registram o tempo de codificação, decodificação e
tamanho dos pacotes, para os seguintes testes:
 Teste 1: tamanho médio dos pacotes e tempo médio de
codificação, em função do valor limite da estimativa do bloco;
 Teste 2: tempo médio de geração dos pacotes com melhor valor
limite obtido no Teste 1 em computadores com diferentes
capacidades de processamento;
Em todos os testes utilizou-se a resolução de vídeo de 800x600
pixels, com blocos de 50x50 pixels. Foram utilizados os seguintes
computadores:
2
www.softvelocity.com

Computador A: AMD Athlon 64 2800+ de 2.07 Ghz com 512 Mb de
memória RAM, com Microsoft Windows XP e densidade de cor de 32
bits.
4.2.1 Teste 1
Para realização do teste foi criado um software com dez objetos criados a
partir da classe codificadora, cada um com um valor limite da estimativa
diferente, sendo estes: 0, 20, 40, 60, 80, 90, 100, 140 e 180, os valores
menores geram mais blocos compactados com JPEG, enquanto valores maiores
geram mais blocos em PNG. As chamadas dos métodos de cada objeto foram
colocadas em seqüência, dessa forma os dez codificaram as mesmas imagens.
Ao todo foram realizadas 1.000 codificações para cada objeto, ao final de
cada uma foi armazenado o tamanho do pacote gerado e o tempo gasto. O
tamanho médio dos pacotes gerados pode ser visto no gráfico da figura 18.
Como mostra o gráfico a utilização de dois tipos de compressão traz um
resultado positivo, diminuindo significativamente o tamanho dos pacotes
gerados pela classe codificadora.
Por meio da apuração do tempo médio de codificação de cada objeto é
possível perceber que o objeto com valor limite da estimativa definido
como 0 (zero), obteve uma pequena vantagem, em torno de 8 milésimos de
segundo, mas em contrapartida gerou pacotes de 11 Kb contra 4,8 Kb do
objeto com valor limite da estimativa definido como 90, conforme mostra o
gráfico de figura 19.
Tempo em função do valor limite da estimativa
110
105,3
108,1
107,6
106,6
106,5
106,3
107
107,3
40
60
80
90
100 120 140 180
106,5
105
100
98,8
95
90
0
20
Milésimos de segundo
Figura 19 - Gráfico do tempo médio de geração pacotes em função do valor
limite da estimativa
4.2.2 Teste 2
Nesse teste utilizou-se um software codificando quadros a uma taxa máxima
4 quadros por segundo, com um objeto com valor limite da estimativa
definido como 95, conforme resultado obtido no Teste 1. Foram executadas
1000 codificações em cada computador e ao final de cada codificação foi
registrado o tempo gasto, a apuração dos dados pode ser vista no gráfico
da figura 20.
Tempo de codificação
Computador A
75,7
Computador B
95,5
Computador C
199,2
Computador D
660,42
0
200
400
600
800
Milésimos de segundo
Figura 20 - Gráfico do tempo de codificação em computadores com
diferentes capacidades de processamento
Conforme o gráfico é possível perceber que os computadores A, B e C,
obtiveram tempos de codificação satisfatórios, atingindo a taxa de 4
quadros codificados por segundo, enquanto o computador D obteve uma taxa
de 1,51 quadros por segundo,
menos da metade da esperada. Foi
perceptível a queda de desempenho geral do computador D durante a
codificação.
5. CONCLUSÃO
Por meio da realização deste trabalho foi possível perceber que a criação
de softwares usando as classes propostas é uma tarefa simples, devido a
reutilização de código oferecida pela programação orientada a objetos.
A utilização de duas formas de compressão de imagens para geração dos
pacotes mostrou-se um mecanismo eficiente para a redução do tamanho dos
mesmos. No entanto é necessário que o valor limite da estimativa esteja
definido corretamente, os testes mostraram que valores entre 90 e 100 são
os ideais.
Por meio dos testes foi possível concluir que a codificação de imagens é
uma tarefa que tem um custo computacional relativamente elevado, sendo
insatisfatória em computadores com pouca capacidade de processamento. Ao
analisar os gráficos do uso de processador foi possível constatar que o
nível de processamento apresenta picos durante a realização de operações
seguidas que exijam codificação de vários blocos, como a minimização e
rolagem de janelas.
O modelo proposto é eficiente, evidenciando sua viabilidade ao demonstrar
plena funcionalidade durante os testes, além da facilidade de
desenvolvimento de aplicações utilizando as classes. Apesar da exigência
de processamento da codificação ser relativamente alta está dentro dos
padrões atuais dos processadores novos disponíveis no mercado.
6. REFERÊNCIAS
ALBUQUERQUE, F. TCP/IP Internet : Protocolos & Tecnologias.
de Janeiro : Axcel Books do Brasil, 2001.
3.ed. Rio
AZEVEDO, E., CONCI, A. Computação Gráfica : Teoria e Prática.
Janeiro : Elsevier, 2003.
COAD, P., YOURDON, E.
Campus, 1991.
Análise Baseada em Objetos.
FRANKLIN, D., PATTON, B.
Janeiro : Campus, 2000.
Rio de
Rio de Janeiro :
Flash 4! : Animação Criativa na Web.
Rio de
FURLAN, J. Modelagem de Objetos através da UML - the Unified Modeling
Language : Análise e Desenho Orientado a Objeto. São Paulo : MAKRON
Books, 1998.
HELD, G.
Comunicação de Dados.
Rio de Janeiro : Campus, 1999.
JAMSA, K., KLANDER, L. Programando em C/C++ : A Bíblia.
Pearson Education do Brasil, 1999.
MATOS, A. V.
2002.
UML : Prático e Descomplicado. 2. ed.
São Paulo :
São Paulo : Érica,
SOARES, L., LEMOS, G., COLCHER, S. REDES DE COMPUTADORES : Das LANs,
MANs e WANs às redes ATM. Rio de Janeiro : Campus, 1995.
TANENBAUM, A. S.
Redes de Computadores.
Rio de Janeiro : Campus, 1997.
WELLING, L., THOMSON L. PHP e MySQL : Desenvolvimento Web.
Janeiro : Elsevier, 2003.
Rio de
Download