Jauvane Cavalcante de Oliveira





TVS: Um Sistema de Videoconferência
Uma versão PostScript está disponivel aqui

 

 

 

Dissertação apresentada ao Departamento de Informática da PUC/RJ como parte dos requisitos para obtenção do título de Mestre em Ciências em Informática.

 

Orientador: Prof. Luiz Fernando Gomes Soares
 
 
Departamento de Informática
 
PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO DE JANEIRO
 
Rio de Janeiro, 15 de agosto de 1996

À meus pais pelo carinho, dedicação e incentivo à busca de um continuado aprimoramento pessoal e acadêmico

Agradecimentos


Resumo

Esta dissertação descreve a implementação de um sistema de videoconferência, o TVS (TeleMídia Videoconferencing System), resultado dos estudos realizados no Laboratório TeleMídia do Grupo de Redes e Sistemas Multimídia do Departamento de Informática da PUC-Rio. O TVS é um sistema que possibilita, além da transmissão básica das mídias áudio e vídeo de forma síncrona e padronizada, a manipulação de documentos multimídia/hipermídia, baseada no Modelo de Contextos Aninhados (MCA), em conformidade com a proposta de padrão MHEG. O sistema apresenta suporte à votação e envio de mensagens entre os participantes, além de permitir uma ampla configuração do ambiente. Todo o controle de acesso ao ambiente é realizado por deteção de silêncio, por razões de eficiência com relação à interatividade em uma reunião.


Abstract

This dissertation describes the implementation of a videoconferencing system, the TVS (TeleMídia Videoconferencing System), result of the research done at the TeleMídia Laboratory, part of the Computer Networks and Multimedia Systems Team from the Computer Science Department of the Pontifical Catholic University of Rio de Janeiro, PUC-Rio. TVS is a system that allows the basic transmission of medias such as video and audio in a synchronized and standardized mode. In addition, TVS handles multimedia/hypermedia documents through the Nested Context Model (NCM), according to the MHEG standard proposal. The TVS system supports voting and message sending facilities among participants, in addition to allowing ample environment configuration. The floor control is done by silence detection, in order to improve the interaction among conferees.



Índice

1. Introdução

2. Características Desejáveis de um Sistema de Videoconferência

2.1. A Recomendação ITU-T F.730

2.1.1. Nomenclatura
2.1.2. Características básicas
2.1.3. Características adicionais
2.1.4. Aplicações
2.1.5. Procedimentos
2.1.6. Compatibilidade
2.2. A Pré-Conferência

2.3. Início e Término da Conferência

2.4. Gerenciamento da Conferência

2.5. O Controle de Acesso

2.6. Manipulação Cooperativa de Documentos

2.7. Votação

2.8. Minimização na Utilização do Sistema de Comunicação

2.9. Facilidades Adicionais Desejáveis

3. Trabalhos Relacionados

3.1. Codificação das mídias básicas: áudio e vídeo

3.2. Empacotamento de dados

3.3. Transferência segura de informações

3.4. Sincronismo entre as mídias áudio e vídeo

3.5. Tratamento de Documentos

3.6. Suporte a Votações

3.7. Envio de Mensagens Textuais

3.8. Controle de Acesso (Floor Control)

3.9. Existência de um Coordenador

3.10. Identificação do Interlocutor

3.11. Minimização na Utilização do Sistema de Comunicação

4. Arquitetura do TeleMídia Videoconferencing System

4.1. O Modelo de Contextos Aninhados

4.2. A Estrutura Distribuída do TVS

4.3. O Daemon de Controle e de Conexão

4.4. Interface com o Usuário

4.5. Pré-Conferência

4.6. Início e Término da Conferência

4.7. Gerenciamento da Conferência

4.8. Controle de Acesso ao Ambiente

4.9. A Codificação da Mídia Áudio

4.10. A Codificação da Mídia Vídeo

4.10.1. O Codificador da Fonte
4.10.2. O Codificador de Vídeo Multiplexado
4.11. Empacotamento das Mídias 4.11.1. A Recomendação H.320
4.11.2. O padrão ISO-MPEG
4.11.3. O Formato de Quadro Utilizado
4.12. Suporte à Manipulação de Documentos 4.12.1. A Máquina HyperProp
4.12.2. O Browser de Base e de Hiperbase
4.12.3. Interação TVS / HyperProp / Browsers
4.13. Votação

4.14. Envio de Mensagens Textuais

5. A Implementação

5.1. O Módulo de Interação com o Usuário

5.2. O Daemon de Controle e de Conexão

5.2.1. Estruturas de Dados Utilizadas
5.2.2. Recursos Utilizados
5.2.3. Formato dos Quadros Transmitidos
5.3. A Interface Configurável

5.4. A Interação do TVS com os Browsers

5.5. A Interação do TVS com a Máquina HyperProp

5.6. A Manipulação Cooperativa de Documentos Multimídia/Hipermídia

5.7. A Codificação de Áudio e Vídeo

5.8. A Estrutura do Quadro

5.9. O Sincronismo das Mídias Básicas

5.10. O Controle de Acesso ao Ambiente

5.11. A Votação

5.12. Mensagens Textuais

5.13. Números da Implementação

6. Conclusão

6.1. Contribuições da Dissertação

6.2. Trabalhos Futuros

Referências Bibliográficas

A. Código Fonte do Sistema


Lista de Figuras

Figura 3.1: Interface Cornell/CU-SeeMe

Figura 3.2: Interface Xerox Parc/nv

Figura 3.3: Interface LBL-UCB/vic

Figura 3.4: Interface Inria/IVS

Figura 3.5: Arquitetura Ottawa/MCRLab

Figura 3.6: Interface Ottawa/MCRLab

Figura 3.7: Codificação de Vídeo do nv

Figura 3.8: O formato IVS / Super-CIF

Figura 4.1: Hierarquia de Classes do MCA

Figura 4.2: Arquitetura HyperProp

Figura 4.3: Camadas TVS

Figura 4.4: Interações numa Sessão de Videoconferência

Figura 4.5: Interface PUC-Rio/TVS

Figura 4.6: Menu de Conferências

Figura 4.7: Codificador PCM

Figura 4.8: Conversão de valores m -law para A-law

Figura 4.9: Blocos Componentes de um Macro-Bloco

Figura 4.10: Codificador/Decodificador de Vídeo

Figura 4.11: O Macrobloco

Figura 4.12: Camadas H.261

Figura 4.13: Camada Imagem: Diagrama de Sintaxe

Figura 4.14: Camada de Imagem: Diagrama de Bloco

Figura 4.15: Grupos de Blocos CIF e QCIF

Figura 4.16: Camada GOB: Diagrama de Sintaxe

Figura 4.17: Camada GOB: Diagrama de Bloco

Figura 4.18: Macroblocos em um GOB

Figura 4.19: Camada Macrobloco: Diagrama de Sintaxe

Figura 4.20: Endereços dos Macroblocos

Figura 4.21: Tabela de Códigos para MTYPE

Figura 4.22: Códigos para MVD

Figura 4.23: Códigos para CBP

Figura 4.24: Camada de Bloco: Diagrama de Sintaxe

Figura 4.25: Transmissão em Ziguezague

Figura 4.26: H.320: Estrutura de Bloco

Figura 4.27: Recuperação de um Documento

Figura 5.1: Hierarquia de Classes do TVS

Figura 5.2: Formato do Quadro da Camada de Controle

Figura 5.3: Mensagens de Controle

Figura 5.4: Diagrama de Estados do Daemon

Figura 5.5: Formato do Quadro da Camada Browser

Figura 5.6: Formato do Quadro da Camada HyperProp

Figura 5.7: Formato do Quadro de Transmissão de Mídias

Figura 5.8: Valores do Campo cType

Figura 5.9: O Mecanismo de Controle de Acesso

Figura 5.10: O Diálogo de Envio de Mensagens

Figura 5.11: Dados da implementação

Figura 6.1: Quadro Comparativo dos Sistemas de Videoconferência

Figura 6.2: TVS sobre ATM, Modelo A

Figura 6.3: TVS sobre ATM, Modelo B



Capítulo I

1. Introdução

O ser humano, por sua natureza social e para aquisição de conhecimentos, necessita de grande interação com os seus semelhantes. Com o avanço da espécie, a dispersão em áreas cada vez maiores trouxe dificuldades na tão necessária troca de informações. Para amenizar o problema, se criou métodos para troca de mensagens a longa distância, desde os primários sinais de fumaça dos nossos ancestrais até os dispositivos atuais de telecomunicações. Entretanto, quando existe a necessidade de reunião de um grupo de indivíduos para discutir assuntos quaisquer com qualquer intuito, ainda é necessária a locomoção dos mesmos para um lugar comum. Este procedimento acarreta desperdício de tempo e dinheiro, sem contar com o risco envolvido. Considere, por exemplo, uma reunião mundial, como a ECO 92, onde a maioria dos chefes de nação do planeta se deslocaram até o Rio de Janeiro para discutir problemas sobre o meio ambiente.

Na tentativa de melhorar este quadro, vários grupos de pesquisa iniciaram estudos com o objetivo de desenvolver um novo conjunto de serviços de comunicação denominados serviços de teleconferência.

Serviços de teleconferência são definidos [SoMB 88, Fluc 95] como um conjunto de facilidades de telecomunicações que permite aos participantes, em duas ou mais localidades distintas, estabelecer uma comunicação bidirecional através de dispositivos eletrônicos de comunicação, enquanto compartilham, simultaneamente, seus espaços acústicos e visuais, tendo a impressão de estarem todos em um único ambiente.

Os serviços de teleconferência são classificados em geral pela literatura [H.200, SoMB 88, Fluc 95], em:

Além dos serviços de teleconferência, outros serviços audiovisuais [H.200], de características bastante próximas, compartilham os mesmos padrões e soluções desenvolvidos para teleconferência. Entre eles destacam-se: O serviço de videoconferência ocupa um lugar de destaque nesse conjunto, uma vez que todos os outros serviços podem ser considerados casos particulares de videoconferência. Por exemplo, uma conferência audiográfica seria uma videoconferência suprimindo-se a transmissão de vídeo.

Como resultado das pesquisas desenvolvidas nos últimos anos, vários protótipos de sistemas de teleconferência, em particular videoconferência, foram apresentados e se encontram operacionais. Tais protótipos apresentam, no entanto, algumas limitações. Muitos não seguem os padrões acordados, além de se limitarem apenas às transmissões sem sincronismo das mídias áudio e vídeo e, mesmo assim, com qualidade duvidosa.

Para ser interoperável, o sistema deve seguir os padrões estabelecidos para transmissão das diversas mídias, bem como para o intercâmbio dos objetos multimídia/hipermídia manipulados. Os organismos de padronização internacional (ISO e ITU-T) indicam a utilização do H.261 [H.261] ou mais recentemente H.262 e H.263 [Draft H.263] para codificação de vídeo on-line e em tempo real, MPEG, MPEG-2 ou MPEG-4 [Fluc 95] para armazenamento e recuperação de vídeo, JPEG [Wall 91] para codificação de imagens estáticas, G.711 [G.711] obrigatoriamente, para a codificação de áudio e opcionalmente G.722, G.728, G.723 [G.722, G.728, G.723]. A obediência a padrões de codificação das várias mídias é condição necessária, mas não suficiente, se se deseja um sistema de videoconferência aberto. Padrões para codificação de informações multimídia/hipermídia em sua forma final, incluindo aí o sincronismo espacial e temporal das diversas mídias e a descrição da apresentação, devem ser igualmente seguidos. A proposta de padrão MHEG [MHEG 95] da ISO preenche esta lacuna. Da mesma forma, o empacotamento dos dados multimídia deve seguir padrões adequados, como o H.221 [H.221] ou os mais recentes H.222 e H.223 [H.223], bem como os mecanismos de segurança [Schn 95]. Recentemente uma proposta para a transmissão dos dados de controle foi também apresentada pela ITU-T [Draft H.245].

O uso de padrões adequados é muito importante, pois além de permitir a portabilidade do sistema, permite a interoperabilidade com sistemas afins, por exemplo videofonia [F.720, F.721], conferência audiográfica [F.710, F.711, T.120], outros sistemas de videoconferência, e até a própria telefonia convencional. Adotados e seguidos os padrões, a compatibilização pode ser realizada através da filtragem das mídias de modo apropriado, sendo transmitidas apenas as mídias conhecidas em cada serviço. O áudio [G.711] é a mídia básica, para fins de compatibilização, estando presente em todos os serviços audiovisuais [H.200, F.710, F.711, F.720, F.721, F.730], o que possibilita que um indivíduo num aparelho telefônico participe da mais refinada videoconferência, obviamente enviando e recebendo apenas os sinais de áudio básicos.

Um grande problema na implementação de um sistema de videoconferência é a sobrecarga gerada no sistema de comunicação pela transmissão das várias mídias. O sistema deve prover mecanismos de diminuição no fluxo das mídias, em especial o áudio e vídeo, que mais utilizam recursos de banda passante da rede. Tais mecanismos devem evitar, por exemplo, que um vídeo seja transmitido mais de uma vez para uma mesma sub-rede, se possível.

Um sistema de videoconferência deve oferecer outras facilidades adicionais à simples transmissão síncrona de áudio e vídeo. Tais facilidades incluem uma etapa anterior à conferência (denominada pré-conferência) para agendamento e configuração do ambiente, facilidades para manipulação de documentos e trabalho cooperativo, suporte à votação, facilidades para troca de mensagens entre os usuários, possibilidade de gravação da conferência para posterior assistência e, em todas as suas funções, mecanismos de segurança.

Em qualquer sistema de teleconferência o controle de acesso ao ambiente (comumente denominado "floor control"), que gerencia quais participantes têm direito à fala, à manipulação de documentos, etc. em um dado instante, bem como o controle do período máximo de tempo que cada participante tem, quando detém um controle específico do ambiente, é um mecanismo chave e, em geral, de difícil implementação. Um sistema ideal deve permitir a configuração completa do acesso às suas facilidades, e se encarregar de gerenciar as regras estabelecidas.

Esta dissertação descreve a implementação de um sistema de videoconferência, o TVS (TeleMídia Videoconferencing System), resultado dos estudos realizados no Laboratório TeleMídia do Grupo de Redes e Sistemas Multimídia do Departamento de Informática da PUC-Rio. Tal sistema busca cumprir os requisitos anteriormente mencionados, procurando estar em conformidade com as recomendações ITU-T e padrões ISO pertinentes.

O TVS é um sistema que possibilita, além da transmissão das mídias áudio [G.711] e vídeo [H.261] de forma síncrona e padronizada, a manipulação de documentos multimídia/hipermídia, baseada no Modelo de Contextos Aninhados (MCA), em conformidade com a proposta de padrão MHEG [MHEG 95]. O sistema apresenta suporte à votação e envio de mensagens entre participantes, além de permitir uma ampla configuração do ambiente. Todo o controle de acesso ao ambiente é realizado por deteção de silêncio [Fari 92], por razões de eficiência com relação à interatividade em uma reunião.

Esta dissertação está organizada em mais cinco capítulos, além desta introdução.

O Capítulo 2 discorre sobre as características desejáveis de um sistema de videoconferência, apresentando a recomendação F.730 da ITU-T, bem como levantando características de um sistema de videoconferência ideal.

O Capítulo 3 apresenta alguns dos protótipos disponíveis e em desenvolvimento por outros grupos de pesquisa espalhados pelo mundo. São apresentadas características do CuSee-Me - Cornell/EUA, nv - Xerox Park/EUA, ViC - LBL e UCB/EUA, do Sistema do Multimedia Communication Research Laboratory/Canadá, IVS - Inria/França e do TVS - PUC-Rio/Brasil.

O Capítulo 4 apresenta o TVS, sua arquitetura distribuída, a interface com o usuário e demais características provenientes do sistema de videoconferência ideal proposto no Capítulo 2, sempre levando em conta a aderência aos padrões pertinentes.

O Capítulo 5 apresenta detalhes da implementação do TVS em um ambiente distribuído, destacando os principais algorítmos, análise de possibilidades de implementação e motivação da opção disponibilizada.

O Capítulo 6 é dedicado à conclusão, incluindo trabalhos futuros e contribuições da dissertação.

O Apêndice A (em anexo) apresentam ainda o código fonte do sistema em C++.

A terminologia utilizada no restante da dissertação, uma extensão daquelas apresentadas por Szypersky [SzVe 93] e Soares [SoMB 88], pode ser resumida como se segue:



Capítulo II

2. Características Desejáveis de um Sistema de Videoconferência

2.1. A Recomendação ITU-T F.730

A ITU-T, através da recomendação F.730, define um serviço de videoconferência como um serviço de teleconferência audiovisual de conversação interativa que provê uma troca bidirecional, e em tempo real, de sinais de áudio (voz) e vídeo entre grupos de usuários em dois ou mais locais distintos.

2.1.1. Nomenclatura

A ITU-T introduz a seguinte terminologia na sua recomendação F.730:

2.1.2. Características básicas

Qualquer sistema de videoconferência deve, pelo menos, prover a transmissão das mídias de áudio e vídeo, cuja qualidade define dois tipos de videoconferência, a básica e a de alta qualidade. A videoconferência de alta qualidade fornece uma qualidade de áudio e vídeo similar à difusão de sinais de televisão (CCIR 601, entre outros). A videoconferência básica fornece uma transmissão de sinais de áudio e vídeo com qualidade reduzida (G.711 e H.261, por exemplo). Não existe ainda proposta de padrão para serviços de videoconferência de alta qualidade.

Assim, pela definição da ITU-T, apenas protótipos que apresentarem a transmissão básica das mídias áudio e vídeo podem ser classificadas como provedores de um serviço de videoconferência.

2.1.3. Características adicionais

A ITU-T estabelece ainda uma série de características adicionais que um sistema de videoconferência pode, opcionalmente, oferecer suporte. Entre outras:

2.1.4. Aplicações

Sistemas de videoconferência devem poder ser utilizados para várias aplicações onde a intercomunicação humana através de troca de informações audiovisuais é fundamental. Dentre elas pode-se destacar:

2.1.5. Procedimentos

Para a realização de uma conferência, existe uma série de etapas que devem ser realizadas. São elas:

2.1.6. Compatibilidade

Um sistema de videoconferência deve ser capaz de trocar informações com outros sistemas de videoconferência, conferência audiográfica, videofonia e até a própria telefonia convencional.

A compatibilidade do sistema de videoconferência com os demais sistemas do mesmo tipo e com a videofonia é realizada através do uso de padrões comuns para a codificação de áudio, de vídeo e estrutura do quadro, como por exemplo G.711, H.261 e H.221, respectivamente.

A compatibilidade do sistema de videoconferência com a telefonia convencional deve ser implementada através da filtragem da única mídia presente na telefonia, o áudio G.711. Na videoconferência, deve aparecer mensagem indicativa na janela de vídeo do usuário que participa da conferência via telefonia convencional.

2.2. A Pré-Conferência

Um sistema ideal deve implementar uma etapa anterior à conferência, denominada pré-conferência, onde o organizador configura o ambiente da conferência. A etapa de reserva apontada pela recomendação F.730 é implementada aqui.

Na pré-conferência, configura-se a data e horário de uma conferência, quais participantes terão acesso à conferência, quais os acessos que cada participante possui, quem é o coordenador (se existir um) e informações para o algoritmo de controle de acesso, entre outras informações.

As informações de uma conferência devem poder ser alteradas em qualquer instante anterior à realização da mesma, devendo ser os participantes notificados das alterações ocorridas. Por exemplo, no caso de adiamento de uma determinada conferência.

2.3. Início e Término da Conferência

A conferência deve se iniciar no momento que o primeiro participante realizar a operação de conexão à mesma. Na operação de conexão a uma conferência, um participante em potencial deve visualizar uma lista de conferências que estejam agendadas e selecionar a que deseja participar. Neste instante, o sistema deve verificar se o participante em questão tem acesso ou não àquela conferência. Opcionalmente, a lista de conferências apresentada a um determinado usuário poderia conter apenas as conferências as quais aquele usuário tem permissão de conexão.

Uma conferência somente deve terminar quando o último participante se desconectar da conferência (voluntariamente ou pelo sistema). Quando um participante deixa uma conferência, os participantes, ou pelo menos o coordenador, deve ser informado.

Um participante deve estar habilitado a sair de uma conferência e retornar a qualquer instante da conferência, bastando que os participantes, ou o coordenador, sejam informados, e o coordenador permita.

2.4. Gerenciamento da Conferência

Tudo o que o organizador configurar antes do início da conferência deve poder ser alterado, em tempo de execução, pelo coordenador da conferência. Através desta característica, o coordenador estaria habilitado a incluir novos participantes na conferência, excluir algum participante inconveniente, alterar a configuração de acesso de cada usuário, além de intervir no algoritmo de controle de acesso implementado pelo sistema.

O sistema deve prover mecanismos que garantam que as regras de acesso estabelecidas pelo organizador, na pré-conferência, ou coordenador na conferência propriamente dita, sejam obedecidas. Por exemplo: se um determinado participante tiver uma fatia de tempo de cinco minutos no máximo como interlocutor, o sistema tem que garantir que findos os cinco minutos, o controle de acesso poderá ser passado para um outro participante.

Também faz parte do gerenciamento da conferência a garantia de consistência nos documentos multimídia/hipermídia que estejam sendo manipulados de modo cooperativo pelos vários participantes da conferência. Desse modo, o sistema deve evitar que mais de um usuário possa alterar um mesmo trecho do documento.

2.5. O Controle de Acesso

Indica qual participante tem direito de acessar os recursos da conferência e com quais direitos. Existem dois grandes grupos de recursos: a voz e a manipulação em documentos multimídia/hipermídia. Um sistema ideal deve prover mecanismo de controle de acesso a cada um destes grupos.

O sistema é quem determina qual dos diversos participantes da conferência será promovido a interlocutor, tendo direito de transmitir sinais de áudio para todas as demais estações, e secretário, tendo direito de manipular os documentos multimídia/hipermídia.

Os dois grupos de recursos não têm de estar, necessariamente, nas mãos de um único participante, embora seja perfeitamente aceitável que um interlocutor seja também secretário.

Os mecanismos de gerenciamento de controle de acesso podem ser implementados de várias formas, das quais destacamos:

Os dois mecanismos têm suas vantagens e devem ser implementados. O primeiro mecanismo é mais fácil de ser implementado e impede disputas desnecessárias. O segundo mecanismo tem a vantagem de prender a atenção de um participante que deseja falar, já que ele precisa estar atento ao discurso em andamento para iniciar sua locução logo em seguida, participando assim da disputa pelo controle do recurso [Fari 92].

O sistema de videoconferência deve permitir que o coordenador modifique a regra de acesso, podendo indicar qual participante será o próximo a ganhar o controle de acesso ao recurso.

O algoritmo de escolha deve selecionar o participante com maior prioridade dentre os vários candidatos a controlar o recurso. Caso exista mais de um participante com a mesma prioridade, o sistema deve escolher os participantes de modo a garantir a equidade na distribuição de controle sobre cada recurso. Idealmente, o sistema deve oferecer diversos mecanismos de prioridade.

Uma vez que o participante tenha ganho o controle de um determinado recurso, ele terá uma fatia de tempo máxima para utilização exclusiva do recurso, depois da qual o recurso é automaticamente liberado e o controle passado a outro participante. Um participante com controle de um dispositivo pode liberar o recurso antes do término da fatia de tempo a ele alocada. Os valores da fatia de tempo máxima de cada usuário são configurados pelo organizador ou pelo coordenador.

O sistema deve permitir que, a qualquer instante, o coordenador possa retirar, de um determinado participante, o direito de acesso a um dispositivo. Esta característica, conjugada com a modificação da regra de seleção do próximo participante a ganhar o controle, permite por exemplo, que o coordenador passe a palavra para um determinado usuário quando achar conveniente.

2.6. Manipulação Cooperativa de Documentos

Um sistema de videoconferência deve prover a manipulação cooperativa de documentos multimídia/hipermídia pelos diversos participantes da conferência. Tal característica deve incluir, adicionalmente, um completo mecanismo de controle de alterações no documento de forma a evitar inconsistências.

2.7. Votação

O processo de votação é extremamente natural quando da reunião de indivíduos, por ser o modo mais usual para tomada de decisões. O sistema de videoconferência deve prover mecanismo para que, durante a conferência seja possível criar uma votação, coletar e apurar os votos dos participantes. O mecanismo deve prover segurança num nível que evite fraudes e votos influenciados pelos votos dos outros participantes.

2.8. Minimização na Utilização do Sistema de Comunicação

Um sistema de videoconferência deve prover mecanismos para minimizar o uso da banda passante do meio, uma vez que as mídias utilizadas, principalmente áudio e vídeo, requisitam muitos recursos do sistema de comunicação.

2.9. Facilidades Adicionais Desejáveis

Adicionalmente, um sistema de videoconferência deve oferecer facilidades adicionais que sejam interessantes no sentido de melhorar o suporte à troca de informações entre indivíduos ou grupos de indivíduos de um determinado tipo de reunião, como a transmissão de mensagens textuais ¾ bilhetes ¾ entre os participantes, além daquelas citadas na seção 2.1.3.

Existem outros mecanismos úteis, como uma função que permita que indivíduos que não tenham tido oportunidade de participar de uma conferência, possam posteriormente assisti-la, através da recuperação da conferência previamente gravada.


Capítulo III

3. Trabalhos Relacionados

Muitos protótipos de sistemas de videoconferência já se encontram operacionais. Este capítulo apresenta alguns desses protótipos, através de uma análise comparativa de suas características, incluindo o TVS, proposto nesta dissertação.

Os protótipos aqui considerados são:

Figura 3.1: Interface Cornell/CU-SeeMe
Figura 3.2: Interface Xerox Parc/nv
Figura 3.3: Interface LBL-UCB/vic
Figura 3.4: Interface Inria/IVS
Figura 3.5: Arquitetura Ottawa/MCRLab

A seguir enumera-se um subconjunto das características levantadas no Capítulo 2, aquelas presentes em pelo menos um dos protótipos, tecendo comentários sobre o comportamento de cada um dos protótipos com respeito à característica mencionada.

Figura 3.6: Interface Ottawa/MCRLab

3.1. Codificação das mídias básicas: áudio e vídeo

Figura 3.7: Codificação de Vídeo do nv
Figura 3.8: O formato IVS / Super-CIF
3.2. Empacotamento de dados 3.3. Transferência segura de informações 3.4. Sincronismo entre as mídias áudio e vídeo 3.5. Tratamento de Documentos

3.6. Suporte a Votações

3.7. Envio de Mensagens Textuais 3.8. Controle de Acesso (Floor Control) 3.9. Existência de um Coordenador 3.10. Identificação do Interlocutor 3.11. Minimização na Utilização do Sistema de Comunicação   

Capítulo IV

4. Arquitetura do TeleMídia Videoconferencing System

Desde sua especificação, o TVS procurou seguir ao máximo os padrões estabelecidos para sistemas de videoconferência, bem como para o intercâmbio de objetos multimídia/hipermídia. O TVS foi desenvolvido buscando cumprir os requisitos levantados no Capítulo II, aproveitando as características apresentadas pelos protótipos apresentados no Capítulo III.

No TVS, o apoio ao trabalho cooperativo é realizado pela máquina hipermídia, denominada HyperProp. É sobre esse sistema, por exemplo, que todo o tratamento de documentos na teleconferência é realizado. Assim, antes de se entrar na definição da arquitetura do TVS propriamente dita, este capítulo traz uma breve introdução, na próxima sessão, ao Modelo de Contextos Aninhados, o modelo conceitual de dados do sistema HyperProp. Espera-se com isso definir alguns termos que serão utilizados no restante do capítulo.

4.1. O Modelo de Contextos Aninhados

O TVS utiliza as definições do MCA para possibilitar o trabalho cooperativo, através da manipulação de documentos multimídia/hipermídia, detalhada na seção 4.12.

O MCA possui a hierarquia de classes apresentada na Figura 4.1. Descreve-se a seguir, sucintamente, as classes relevantes, no contexto do TVS. Uma descrição detalhada do MCA pode ser encontrada em [SoRC 95]:

Figura 4.1: Hierarquia de Classes do MCA
O MCA possui ainda um completo mecanismo de controle de versões dos nós terminais ou nós de contexto de usuário. O histórico das versões de um determinado nó são armazenadas num nó de contexto denominado contexto de versões, como apresentado na Figura 4.1.

Uma implementação em conformidade com o MCA, denominada Máquina HyperProp, provê o armazenamento das várias entidades MCA, bem como o controle de versões descrito. Tal implementação possui um módulo servidor, que implementa a camada de armazenamento e apresentação, e um módulo cliente, que implementa a camada de apresentação e aplicação, como apresentado na Figura 4.2.

Figura 4.2: Arquitetura HyperProp

O sistema TVS utiliza o módulo cliente para se comunicar com o servidor HyperProp. A comunicação possibilita o armazenamento e recuperação dos documentos multimídia/hipermídia. Uma discussão detalhada sobre o funcionamento da máquina HyperProp é encontrada em [Bati 94] e [UcMu 96].

Com o intuito de facilitar a navegação na estrutura dos documentos multimídia/hipermídia, foram criadas interfaces gráficas de navegação, denominadas browsers de base privada e de hiperbase pública. A tarefa dos browsers é facilitar a navegação do participante através de técnicas que forneçam sentido de orientação. Uma discussão detalhada sobre os browsers pode ser encontrada em [Much 96, MuSC 95].

O TVS troca mensagens com a máquina HyperProp e com os Browsers, com o intuito de prover o trabalho cooperativo sobre os documentos multimídia/hipermídia, detalhado na seção 4.12.

As seções seguintes discutem sobre as características principais do TVS, apresentando as soluções adotadas, bem como detalhado as demais interações do sistema com a máquina HyperProp e Browsers.

4.2. A Estrutura Distribuída do TVS

O TVS possui uma estrutura distribuída, apresentada na Figura 4.3, utilizando a pilha de protocolos TCP/IP [Come 95], mais precisamente o protocolo UDP. Acima dessa camada, o TVS apresenta uma camada de comunicação, com quatro subdivisões:

  1. Mensagens de controle (Camada de Controle);
  2. Mensagens de transporte das mídias propriamente ditas (Camada de Mídias);
  3. Mensagens de interação com a máquina HyperProp (Camada HyperProp) e
  4. Mensagens de interação com o Browser de Base Privada e de Hiperbase Pública (Camada Browser ou Camada de Seleção), que é utilizada para indicar os nós selecionados pelos participantes.
Figura 4.3: Camadas TVS

Acima da camada de comunicação está a camada MIU ¾ Módulo de Interação com o Usuário ¾ que é responsável pelas interações do sistema com o usuário.

Ainda faz parte da arquitetura distribuída TVS, o daemon de controle e de conexão ¾ TVSD ¾ que apenas possui a implementação da camada de comunicação de mensagens de controle.

O esquema de funcionamento de uma sessão de videoconferência é apresentado na Figura 4.4, onde as trocas de informação entre os vários componentes do ambiente TVS são ilustradas {A}. As trocas de mensagens de controle são efetuadas entre MIU’s de participantes distintos {B}, entre o MIU de um participante, via camada de comunicação de controle, e o daemon de controle e de conexão {C} ou do daemon para um ou mais participantes {D}. O envio das diversas mídias é realizado, pela camada de comunicação de mídias, entre os MIU’s dos participantes envolvidos na comunicação, sem passar pelo daemon {E}, visando um melhor desempenho do sistema de comunicação. Uma exceção a esta regra é o envio das mensagens textuais ¾ bilhetes ¾ que se utilizam de transmissões de controle. As trocas de mensagens entre a máquina HyperProp e o MIU de um participante são realizadas através da camada de comunicação HyperProp {F} e as mensagens trocadas com o Browser de Hiperbase Pública e de Base Privada através da camada de Comunicação de Seleção {G}.

  
  
Figura 4.4: Interações numa Sessão de Videoconferência

4.3. O Daemon de Controle e de Conexão

O daemon é um processo, continuamente em execução, que troca mensagens de controle com o MIU de cada participante, em particular o coordenador. As mensagens do daemon são enviadas e recebidas pelo MIU através da camada de comunicação de mensagens de controle, de acordo com a Figura 4.4.c. As trocas de mensagens efetuadas tem como finalidade geral a configuração e o gerenciamento da conferência. São funções do daemon de controle e conexão:

4.4. Interface com o Usuário

O ambiente da conferência é composto de duas janelas obrigatórias e dez janelas configuráveis. As obrigatórias são: Janela Principal e Console. As janelas configuráveis são subdivididas em quatro grupos: Bases de Informação, Vídeos, Controle e Votação, conforme ilustra a Figura 4.5.

Figura 4.5: Interface PUC-Rio/TVS

Nas janelas do grupo Bases de Informação encontra-se a janela de Hiperbase, Base Privada e Base Compartilhada.

As bases individuais de documentos multimídia/hipermídia estão mapeadas nas janelas Base Privada (onde se encontra a sessão de trabalho privada do participante) e Hiperbase (onde são exibidos, apenas para leitura, os documentos da conferência) e consistem de um browser [MuSC 95] da Hiperbase Pública e Base Privada do usuário, respectivamente, conforme o conceito do MCA [Hype 95, SoRC 95].

A Base Compartilhada consiste de uma abstração criada para a manipulação cooperativa de documentos. A mesma janela Base Compartilhada é exibida em todas as estações dos participantes. Esta janela é preenchida com documentos que podem ser modificados por qualquer participante da conferência, desde que lhe seja permitida a operação. Uma descrição mais detalhada do funcionamento da Base Compartilhada é apresentada na Seção 4.12.3.

Nas janelas do grupo Vídeo encontram-se a janela do vídeo do interlocutor, a do vídeo local (do participante da estação) e a do vídeo de participante, onde o vídeo de um participante qualquer, selecionado, é exibido. O vídeo do interlocutor é apresentado no formato CIF (352´ 288 pixels), por ser a imagem que deve ter maior atenção do usuário. Os demais vídeos utilizam o formato QCIF (176´ 144 pixels) de menor resolução. A Seção 4.10 apresenta detalhes sobre estes formatos.

No grupo Janelas de Controle encontram-se as janelas de controle de transmissão de vídeo, de áudio e a lista de participantes.

Na janela de controle de vídeo, o usuário faz seleções sobre o tipo de vídeo que ele próprio pretende enviar aos demais participantes da conferência. Esta janela apresenta botões para seleção de envio ou não de vídeo, envio de vídeo em cores ou em preto e branco e, finalmente, envio de vídeo ou de uma imagem estática (foto). Com estas opções o usuário pode desligar a transmissão do seu próprio vídeo se este for o seu desejo, pode enviar uma foto JPEG [Wall 91] se não dispuser de câmera, etc. Se a exibição do vídeo de um participante que tenha desligado sua transmissão for selecionada por outro participante, este último receberá na janela correspondente uma mensagem "Not Sending".

Na janela de controle de áudio o usuário configura o envio e recepção de sinais de áudio [G.711]. As seleções apresentadas são: saída de áudio desejada (Loudspeaker, External Loudspeaker ou Headphone), volume de saída de áudio e dispositivo de entrada de áudio desejada (Built-In Microphone, External Microphone ou No Audio). Os usuários que não enviam sinais de áudio não são considerados na disputa do controle de acesso, sendo portanto ouvintes. A janela de controle de áudio possui ainda o botão "lock", que pode ser utilizado pelo interlocutor para desabilitar a deteção de silêncio nas estações dos demais participantes da conferência. Esta operação permite que o interlocutor esteja em silêncio, sem que um outro participante esteja habilitado a lhe tomar o direito à fala. Neste caso, apenas quando a fatia de tempo de fala do interlocutor esgotar, ou quando o coordenador achar conveniente, o controle de acesso ao ambiente da conferência poderá ser disponibilizado para um outro participante.

Na janela de participantes o usuário recebe uma série de informações sobre os demais participantes da conferência. Nessa janela aparecem os nomes dos vários participantes, com indicação gráfica dos usuários que o estão observando. Ainda nesta janela o usuário pode selecionar qual o participante cujo vídeo deve ser exibido na janela de vídeo de participante. É também nesta janela que o usuário pode requisitar o envio de uma mensagem textual para o participante selecionado.

A Janela de Votação completa o ambiente da conferência, conforme ilustrado na Figura 4.5. Nesta janela o usuário pode, em tempo real, criar uma nova votação, apagar uma votação existente (caso ele próprio a tenha criado) ou selecionar uma das votações e efetivamente votar.

O ambiente TVS é completamente configurável, podendo o organizador otimizar a interface para o tipo de reunião desejada, excluindo janelas desnecessárias, reorganizando os vários diálogos etc. O participante pode alterar o seu ambiente, se desejar, durante a sessão.

4.5. Pré-Conferência

O TVS prevê uma etapa anterior à conferência propriamente dita, denominada pré-conferência. Nessa etapa, o organizador agenda e configura o ambiente da conferência. Nesse agendamento, se disponibiliza o assunto principal a ser tratado, a data da conferência, bem como o número de assentos disponíveis. Cada assento pode ter seu preenchimento configurado de uma entre três formas possíveis:

Com estes três tipos de preenchimento, pode-se configurar diversos tipos de reunião, desde reuniões fechadas, com fins militares por exemplo, onde todos os assentos seriam assentos cativos aos participantes habilitados a participar da reunião, até seminários abertos à comunidade em geral, que possuiria somente assentos gerais. O exemplo de uma defesa de dissertação ilustra bem o caso de uma reunião que teria vários tipos de preenchimento dos assentos, como apresentado.

Pode-se ainda idealizar a utilização do sistema para suporte à educação à distância, onde as conferências seriam aulas para determinadas turmas. Os professores e alunos teriam assentos cativos e, opcionalmente, alguns assentos gerais poderiam ser disponibilizados. Educação à distância desponta como uma aplicação que pode vir a tirar bom proveito de sistemas de videoconferência.

Além dos assentos e tipos de preenchimento, o organizador deve indicar os direitos de acesso de cada participante. Esta operação é realizada através de operações de habilitação e desabilitação de cada uma das funções do sistema (como envio de áudio, vídeo e mensagens textuais, acesso à base compartilhada, hiperbase pública e base privada, visualização do vídeo do interlocutor, vídeo local ou vídeo de participante, votação etc.). O organizador pode selecionar um dos participantes para ser o coordenador da conferência.

Ainda na fase de pré-conferência, vários outros aspectos, como o tempo máximo dado a cada interlocutor, o tamanho do intervalo de silêncio a ser considerado para cada interlocutor e o formato da interface da conferência devem ser determinados.

O TVS implementa as operações de pré-conferência através de interações do MIU com o daemon de controle e de conexão. O daemon é responsável pela manutenção de um cadastro de conferências agendadas, dos assentos e seus tipos de ocupação, das votações ativas e apuração de votos de cada conferência. É o daemon que controla o acesso dos usuários às conferências e coordena a passagem do controle do ambiente (Floor Control) do interlocutor para outro participante. Uma discussão detalhada sobre a implementação é apresentada no Capítulo V desta dissertação.

4.6. Início e Término da Conferência

Uma vez iniciado o sistema, a primeira tarefa do MIU é requisitar ao daemon a lista de conferências agendadas, possibilitando ao usuário escolher a conferência que deseja participar, conforme apresentado na Figura 4.6. Selecionada a conferência, o MIU solicita ao daemon uma autorização de entrada. Neste ponto, o acesso é negado ou o ambiente da conferência selecionada é apresentado ao usuário, dependendo da existência ou não de um assento que pode ser ocupado pelo participante em potencial.

Nas demais estações, dos participantes de uma conferência em andamento, as informações do novo usuário são acrescentadas à janela de participantes, além de surgir uma mensagem na console (ao menos do coordenador da conferência) indicando o ocorrido. Imediatamente o novo participante passa a ter os mesmos direitos e deveres dos demais.

Figura 4.6: Menu de Conferências

Quando um participante deseja se desconectar de uma conferência, temporariamente ou não, a sua MIU deve enviar uma mensagem de desconexão ao daemon de controle e de conexão e este retransmite a mensagem em difusão para os demais usuários. Todas as estações atualizam a sua janela de lista de participantes, excluindo o ex-participante, e as operações dependentes dele são canceladas (por exemplo: se o ex-participante for o interlocutor, imediatamente a permissão é passada para outro candidato).

Na console (ao menos do coordenador da conferência) aparece uma mensagem indicando que o participante em questão se desconectou.

4.7. Gerenciamento da Conferência

Durante uma conferência o coordenador possui uma janela, acrescentada à sua interface, que permite que ele modifique a configuração de qualquer participante em qualquer instante e tantas vezes quantas ele julgue necessárias. Deste modo, o coordenador está habilitado a desligar o microfone de um participante qualquer, tornando-o mero ouvinte, ou até mesmo desconectar o participante da conferência (expulsá-lo).

O coordenador está habilitado ainda a interferir no algoritmo de passagem de controle de acesso ao ambiente da conferência, para isto basta que ele selecione quem deve ser o próximo interlocutor e, quando chegar o instante de permuta do interlocutor, o participante indicado ganha o controle.

A conjunção da indicação do próximo interlocutor com o desligamento do microfone do interlocutor atual, permite que o coordenador escolha quem será o próximo interlocutor e em qual momento, ignorando deste modo o algoritmo gerenciamento de passagem de permissão implementado pelo sistema.

Considerando estas características, pode-se configurar o TVS para que as mudanças de controle de acesso ao ambiente sejam realizadas, inclusive, manualmente pelo coordenador, bastando que se configure o tempo de locução de cada interlocutor e o tamanho do intervalo de silêncio com um valor suficientemente elevado.

4.8. Controle de Acesso ao Ambiente

O TVS implementa o controle de acesso, usualmente denominado floor control, através da técnica de deteção de silêncio [Fari 92]. O MIU do interlocutor envia sinais de áudio e vídeo diretamente para as demais estações. Os MIU’s receptores executam um algoritmo de deteção de silêncio em tempo real, buscando um intervalo de silêncio acima de um limite, estipulado pelo organizador para aquele interlocutor. O limite pode ser modificado pelo coordenador durante a conferência.

O algoritmo de deteção de silêncio é baseado na medição otimizada da amplitude e freqüência médias do sinal de áudio, através da média dos valores absolutos das amostras PCM [G.711] e da taxa de cruzamento por zero, respectivamente. Quando estas medidas se encontram abaixo de um limite configurado, o pacote de áudio é assumido como sendo de silêncio. Após um número de pacotes de silêncio consecutivos o sistema assume que foi finalmente detetado silêncio no sinal de áudio transmitido. O número de pacotes de silêncio que o sistema utilizará para a indicação de deteção de silêncio é calculado a partir do intervalo de tempo indicado pelo organizador de modo individual para cada participante da conferência.

Uma vez detetado o silêncio, o MIU do participante colhe algumas amostras do áudio local, analisa e envia um pacote de requisição do controle "Asking for the Floor" para o daemon de controle e de conexão. O pacote contém a média dos valores absolutos das amostras locais de áudio ou o valor nulo, se a análise das amostras indicar silêncio local.

Uma vez que o daemon tenha recebido as mensagens "Asking for the Floor" de todos os participantes da conferência, ele executa um algoritmo de seleção do próximo interlocutor e envia uma mensagem "Giving the Floor" de difusão para todos os participantes da conferência indicando o novo interlocutor. Automaticamente o novo interlocutor ganha o acesso ao ambiente da conferência.

O algoritmo de seleção do próximo interlocutor escolhe o participante cuja média dos valores (amplitude) das amostras PCM de áudio possuam valor acima do limite considerado silêncio e cujo participante possua a maior prioridade, isto é, escolhe o participante que demonstrou interesse em falar (não está em silêncio) e possui maior prioridade. Caso haja empate na prioridade de vários participantes, o sistema escolhe um deles de forma aleatória.

O coordenador pode interferir no mecanismo de escolha do próximo interlocutor através do envio de uma mensagem de prioridade para a estação de um participante que deve ser o próximo interlocutor. Quando um participante recebe a mensagem de prioridade do coordenador, o valor da prioridade é modificado para um valor padrão de maior prioridade que aquelas utilizadas pelos demais participantes. Desta forma fica garantida a seleção deste participante para próximo interlocutor.

Figura 4.7: Codificador PCM

4.9. A Codificação da Mídia Áudio

A codificação de áudio utiliza a recomendação G.711 da ITU-T, como indicado na recomendação F.730, apresentada na Seção 2.1. O PCM é um método de digitalização de um sinal, ou seja, transformação de um sinal analógico (a voz no nosso caso) em sinal digital. A recomendação G.701 define o PCM como um processo no qual um sinal é amostrado e cujas amostras são quantizadas de modo independente das outras e posteriormente convertidas para um sinal digital através de codificação. A Figura 4.7 apresenta um esquema do funcionamento do codificador PCM.

A ITU-T define, na sua recomendação G.711, uma codificação linear e duas codificações logarítmicas a m -law e A-law [G.711].

O sinal trocado pelas estações TVS é composto de amostras PCM com a codificação logarítmica m -law.

m-law
A-law
m-law
A-law
m-law
A-law
m-law
A-law
m-law
A-law
0
1
20
13
40
37
60
59
80
81
1
1
21
14
41
38
61
60
81
82
2
2
22
15
42
39
62
61
82
83
3
2
23
16
43
40
63
62
83
84
4
3
24
17
44
41
64
64
84
85
5
3
25
18
45
42
65
65
85
86
6
4
26
19
46
43
66
66
86
87
7
4
27
20
47
44
67
67
87
88
8
5
28
21
48
46
68
68
88
89
9
5
29
22
49
48
69
69
89
90
10
6
30
23
50
49
70
70
90
91
11
6
31
24
51
50
71
71
91
92
12
7
32
25
52
51
72
72
92
93
13
7
33
27
53
52
73
73
93
94
14
8
34
29
54
53
74
74
94
95
15
8
35
31
55
54
75
75
95
96
16
9
36
33
56
55
76
76
.
.
17
10
37
34
57
56
77
77
.
.
18
11
38
35
58
57
78
78
.
.
19
12
39
36
59
58
79
79
127
128
Figura 4.8: Conversão de valores m -law para A-law

O PCM com codificação m -law é o padrão da telefonia nos Estados Unidos, Canadá e Japão, sendo utilizada a codificação logarítmica A-law no restante do mundo, inclusive o Brasil, bem como nas conexões internacionais. A conversão do PCM m -law para o PCM A-law é extremamente simples, bastando realizar a conversão apresentada na tabela da Figura 4.8, e pode ser utilizada para interconexão do TVS com a telefonia local, como requisitado no Capítulo II. A conversão consiste da troca dos valores m -law para os valores A-law correspondentes.

No instante da execução do algoritmo de deteção de silêncio, apresentado na Seção 4.7, as amostras PCM com codificação m -law de 8 bits são convertidos em amostras PCM linear de 14 bits, uma vez que a codificação linear se mostra mais apropriada para o algoritmo, que analisa a amplitude e freqüência do sinal.

4.10. A Codificação da Mídia Vídeo

O TVS utiliza a recomendação ITU-T H.261 [H.261] para codificar os sinais de vídeo, como requisitado pela recomendação ITU-T F.730 [F.730] apresentada na seção 2.1 desta dissertação. O H.261, também conhecida como p´ 64, é um método de codificação de sinal de vídeo desenvolvido para aplicações em tempo real. O H.261 define dois formatos de imagem, o CIF e o QCIF, respectivamente com resolução de 352 pixels por linha e 288 linhas por imagem e 176 pixels por linha e 144 linhas por imagem, ambas codificadas com uma componente de luminância e duas de crominância, como apresentado na Figura 4.9. A razão de apresentação das imagens é de 3:4, proporcional a uma imagem de televisão convencional.

Figura 4.9: Blocos Componentes de um Macro-Bloco

O Codificador/Decodificador de Vídeo desta recomendação tem duas partes principais, apresentadas na Figura 4.10.

A recomendação adota, para comprimir o sinal, uma combinação de predição inter-picture, para reduzir a redundância temporal, e codificação por transformadas de cosenos do sinal resultante, para tirar proveito da redundância espacial.
Figura 4.10: Codificador/Decodificador de Vídeo

As próximas sessões apresentam resumidamente o processo de codificação e decodificação H.261 com o intuito de definir a estrutura de dados gerada. Maiores detalhes sobre os algoritmos, no entanto, devem ser buscados em [H.261, Turl 95, Turl 93, Liou 91, Reev 94].

4.10.1. O Codificador da Fonte

O Codificador da Fonte trabalha com blocos, que são grupos de 8´ 8 pixels. Cada quatro blocos de luminância são combinados com um par de componentes de crominância, conforme a Figura 4.9, formando o que se denomina um macrobloco.

A codificação de uma imagem pode ser verificada através da Figura 4.11, onde pode-se ver cada pixel do macrobloco com seus respectivos componentes de crominância.

Figura 4.11: O Macrobloco

4.10.2. O Codificador de Vídeo Multiplexado

O Codificador de Vídeo Multiplexado utiliza uma estrutura hierárquica com as seguintes camadas:

Figura 4.12: Camadas H.261

Descreve-se a seguir a composição detalhada de cada uma destas camadas, mostradas na Figura 4.12, apresentando um diagrama de sintaxe e outro de blocos com os componentes da camada.

4.10.2.1. Camada de Imagem

Esta é a camada de nível mais alto cuja função é dividir a figura em grupos de blocos, que compõem a camada posterior.

Um diagrama de sintaxe para esta camada é apresentado pela Figura 4.13. Cada imagem é composta por um cabeçalho precedido de grupos de blocos. É importante ressaltar que os cabeçalhos das imagens que não são transmitidas, são desprezados.

Figura 4.13: Camada Imagem: Diagrama de Sintaxe

Onde:

bit 1 - Split Screen Indicator (0 - desativado; 1 - ativado)

bit 2 - Document Camera Indicator (idem)

bit 3 - Freeze Picture Release (idem)

bit 4 - Formato utilizado (0 - CIF; 1 - QCIF)

bit 5 - Modo opcional HI_RES (0 - desativado; 1 - ativado)

bit 6 - spare.

Um diagrama de blocos de uma camada de imagem pode ser visto na Figura 4.14.
Figura 4.14: Camada de Imagem: Diagrama de Bloco

4.10.2.2. Camada de Grupo de Blocos (GOB)

Cada imagem é dividida em 12 grupos de blocos se o formato utilizado for CIF e 3 se for o QCIF. Cada GOB tem 176 pixels por 48 linhas de sinais de luminância e 88 pixels por 24 linhas de cada um dos sinais de crominância, Figura 4.9. A disposição dos GOB's na imagem são apresentados na Figura 4.15.

Cada grupo de blocos tem um cabeçalho precedido por dados de macroblocos, que são a camada posterior, conforme apresentado no diagrama de sintaxe da Figura 4.16.

Figura 4.15: Grupos de Blocos CIF e QCIF

Os componentes do cabeçalho de um GOB são:

Figura 4.16: Camada GOB: Diagrama de Sintaxe
Um diagrama de blocos para a camada de GOB's pode ser visto na Figura 4.17.
Figura 4.17: Camada GOB: Diagrama de Bloco

4.10.2.3. Camada de Macroblocos (Macroblock layer - MB)

Cada Grupo de Blocos da camada anterior é dividida em 33 Macroblocos, como mostrado na Figura 4.18. Cada macrobloco possui 16 pixels por 16 linhas de valores de luminância e 8 pixels por 8 linhas de cada um dos sinais de crominância.

Figura 4.18: Macroblocos em um GOB

Cada macrobloco possui um cabeçalho e dados de Blocos, a próxima camada. O cabeçalho de um macrobloco tem a estrutura mostrada pelo diagrama de sintaxe visto na Figura 4.19.

Figura 4.19: Camada Macrobloco: Diagrama de Sintaxe

Onde:

MBA Código MBA Código
1 1 17 0000 0101 10
2 011 18 0000 0101 01
3 010 19 0000 0101 00
4 0011 20 0000 0100 11
5 0010 21 0000 0100 10
6 0001 1 22 0000 0100 011
7 0001 0 23 0000 0100 010
8 0000 111 24 0000 0100 001
9 0000 110 25 0000 0100 000
10 0000 1011 26 0000 0011 111
11 0000 1010 27 0000 0011 110
12 0000 1001 28 0000 0011 101
13 0000 0000 29 0000 0011 100
14 0000 0111 30 0000 0011 011
15 0000 0110 31 0000 0011 010
16 0000 0101 11 32 0000 0011 001
  33 0000 0011 000
MBA stuffing 0000 0001 111
Start Code 0000 0000 0000 0001
Figura 4.20: Endereços dos Macroblocos
Predição MQUANT MVD CBP TCOEF MTYPE
Intra       X 0001
Intra X     X 0000 001
Inter     X X 1
Inter X   X X 0000 1
Inter + MC   X     0000 0000 1
Inter + MC   X X X 0000 0001
Inter+MC X X X X 0000 0000 01
Inter+MC+FIL   X     001
Inter+MC+FIL   X X X 01
Inter+MC+FIL X X X X 0000 01
Figura 4.21: Tabela de Códigos para MTYPE
MVD Código MVD Código MVD Código
-16 & 16 0000 0011 001 -5 & 27 0000 1011 6 & -26 0000 1000
-15 & 17 0000 0011 011 -4 & 28 0000 111 7 & -25 0000 0110
-14 & 18 0000 0011 101 -3 & 29 0001 1 8 & -24 0000 0101 10
-13 & 19 0000 0011 111 -2 & 30 0011 9 & -23 0000 0101 00
-12 & 20 0000 0100 001 -1 011 10 & -22 0000 0100 10
-11 & 21 0000 0100 011 0 1 11 & -21 0000 0100 010
-10 & 22 0000 0100 11 1 010 12 & -20 0000 0100 000
-9 & 23 0000 0101 01 2 & -30 0010 13 & -19 0000 0011 110
-8 & 24 0000 0101 11 3 & -29 0001 0 14 & -18 0000 0011 100
-7 & 25 0000 0111 4 & -28 0000 110 15 & -17 0000 0011 010
-6 & 26 0000 1001 5 & -27 0000 1010    
Figura 4.22: Códigos para MVD

Os códigos para CBP são apresentados na Figura 4.23.

CBP Código CBP Código CBP Código
60 111 5 0010 111 51 0001 0010
4 1101 9 0010 110 23 0001 0001
8 1100 17 0010 101 43 0001 0000
16 1011 33 0010 100 25 0000 1111
32 1010 6 0010 011 37 0000 1110
12 1001 1 10 0010 010 26 0000 1101
48 1001 0 18 0010 001 38 0000 1100
20 1000 1 34 0010 000 29 0000 1011
40 1000 0 7 0001 1111 45 0000 1010
28 0111 1 11 0001 1110 53 0000 1001
44 0111 0 19 0001 1101 57 0000 1000
52 0110 1 35 0001 1100 30 0000 0111
56 0110 0 13 0001 1011 46 0000 0110
1 0101 1 49 0001 1010 54 0000 0101
61 0101 0 21 0001 1001 58 0000 0100
2 0100 1 41 0001 1000 31 0000 0011 1
62 0100 0 14 0001 0111 47 0000 0011 0
24 0011 11 50 0001 0110 55 0000 0010 1
36 0011 10 22 0001 0101 59 0000 0010 0
3 0011 01 42 0001 0100 27 0000 0001 1
63 0011 00 15 0001 0011 39 0000 0001 0
Figura 4.23: Códigos para CBP

4.10.2.4. Camada de Blocos (Block Layer)

Um macrobloco é composto de quatro blocos de luminância e dois de crominância, conforme apresentado na Figura 4.9. Cada bloco tem uma palavra com os coeficientes da transformada precedidos por uma marca de fim de bloco. Vide Figura 4.24, que apresenta um diagrama de sintaxe para esta camada.

Figura 4.24: Camada de Bloco: Diagrama de Sintaxe

O campo TCOFF está presente em todos os seis blocos de um macrobloco, quando MTYPE indica INTRA mode, caso contrário MTYPE e CBP indicam que existem coeficientes de dados transmitidos. Os coeficientes da transformada são transmitidos na seqüência em ziguezague indicada pela Figura 4.25.

1
2
6
7
15
16
28
29
3
5
8
14
17
27
30
43
4
9
13
18
26
31
42
44
10
12
19
25
32
41
45
54
11
20
24
33
40
46
53
55
21
23
34
39
47
52
56
61
22
35
38
48
51
57
60
62
36
37
49
50
58
59
63
64
Figura 4.25: Transmissão em Ziguezague

4.11. Empacotamento das Mídias

4.11.1. A Recomendação H.320

A recomendação H.320 da ITU-T especifica a estrutura básica de serviços de conferência audiográfica, videofonia e videoconferência. Esta recomendação aponta um conjunto de outras recomendações necessárias para estes serviços, como apresentado abaixo e na Figura 4.26.

Figura 4.26: H.320: Estrutura de Bloco

Sobre o sincronismo entre as mídias áudio e vídeo, deve-se considerar as seguintes características do conjunto de recomendações da família H.320:

Para implementar um serviço com o desejável sincronismo entre as mídias áudio e vídeo, necessita-se utilizar algum mecanismo adicional que possibilite a ressincronização dos sinais de áudio e vídeo na estação destino. A medida de sincronismo é realizada através da observação do sincronismo labial, que consiste da coincidência entre o sinal de áudio emitido com os movimentos labiais da imagem do interlocutor [F.730].

4.11.2. O padrão ISO-MPEG

O padrão ISO-MPEG possui cinco partes, a saber:

O padrão MPEG possui ainda quatro especificações distintas, MPEG-1, MPEG-2, MPEG-3 e MPEG-4, sendo que o último está em estudos e o penúltimo foi abandonado.

O MPEG-1 apresenta uma qualidade similar à de um VCR e taxa de transmissão inferior a 1.2 Mbps.

O MPEG-2 possui qualidade equivalente a sinais de vídeo de estúdios de TV, além de sinais de vídeo HDTV. A taxa de transmissão é inferior a 10 Mbps para TV convencional e inferior a 20 Mbps para HDTV.

O MPEG-3 estava sendo desenvolvido para HDTV, quando este formato foi incluído na especificação MPEG-2.

O MPEG-4 está sendo idealizado tendo qualidade razoável para sistemas de videoconferência em ambientes com baixíssima disponibilidade de banda passante. A taxa de transmissão deve ser inferior a 64 Kbps, com 10 quadros por segundo de imagens no formato ITU-T QCIF.

O sincronismo entre as mídias de áudio e vídeo é implementado através do uso de time-stamps, que consiste de marcar o sinal de áudio e vídeo com valores que indicam a relação entre as mídias. Estes valores são utilizados pela estação destino para o consumo simultâneo das mídias com a mesma marca.

4.11.3. O Formato de Quadro Utilizado

O TVS utiliza um formato de quadro genérico. O padrão H.221 não foi utilizado por introduzir uma complexidade no codificador e decodificador das mídias sem trazer benefício do sincronismo das mídias. Optou-se pela utilização da técnica de time-stamp utilizada no padrão ISO MPEG.

4.12. Suporte à Manipulação de Documentos

4.12.1. A Máquina HyperProp

A máquina HyperProp, na sua implementação atual, apresenta uma arquitetura cliente/servidor. No caso, a implementação da máquina é o servidor, continuamente em execução, aguardando requisições dos clientes. Cada uma das sessões do TVS são clientes, que enviam as requisições e recebem as respostas do servidor através da camada de comunicação HyperProp, que nada mais é que a implementação do módulo cliente HyperProp discutida na seção 4.1.

A máquina HyperProp armazena a estrutura de todos os documentos multimídia/hipermídia de todas as bases privadas, bem como da hiperbase. A máquina armazena também informações necessárias para a recuperação de um documento. Uma versão futura deve fornecer o próprio armazenamento dos documentos multimídia/hipermídia.

São ações usuais do TVS, quando interage com a máquina HyperProp, requisitar o tipo de um nó, requisitar os elos de um nó, requisitar o destino de um determinado elo, entre outras.

4.12.2. O Browser de Base e de Hiperbase

O browser de hiperbase é utilizado para possibilitar a navegação pela Hiperbase Pública, que consiste de um repositório de documentos acessível a todos os participantes de uma conferência.

O browser de base é utilizado para possibilitar a navegação pela Base Privada do participante, que consiste de um repositório volátil de documentos com acesso restrito ao participante em questão.

A função dos browsers é facilitar a navegação de um participante pelas estruturas aninhadas dos documentos multimídia/hipermídia que, quando possuem uma quantidade elevada de nós e elos, não é uma tarefa trivial [Much 96, MuSC 95]. Uma vez que a quantidade de nós pode dificultar a localização daqueles de interesse, os browsers utilizam a técnica de filtragem "olho de peixe". Esta técnica consiste do cálculo da "proximidade" de cada nó do "nó em foco", apresentando apenas os nós próximos ou de importância elevada. Os nós apresentados devem ser suficientes para que o participante tenha intuição sobre a sua localização temporal e espacial. Uma discussão detalhada sobre estes tópicos é apresentada em [Much 96].

Através dos browsers é possível selecionar nós, seguir seus elos e alcançar outros nós, criar novos nós etc. É possível, ainda, o secretário selecionar um nó cuja versão se deseja incluir na base compartilhada do TVS.

No ponto de vista do sistema, os browsers funcionam como processos de navegação e seleção pelos documentos multimídia/hipermídia. Os browsers enviam mensagens, indicando as seleções do secretário, para o sistema através da camada de comunicação de seleção ou comunicação do Browser.

Os browsers trocam mensagens com a máquina HyperProp com o intuito de recuperar e apresentar a estrutura dos documentos multimídia/hipermídia. Esta troca de mensagens está, entretanto, fora do escopo do sistema TVS, estando também detalhada em [Much 96].

4.12.3. Interação TVS / HyperProp / Browsers

O TVS provê suporte ao trabalho cooperativo através da função de manipulação cooperativa de documentos multimídia/hipermídia implementados na janela de base compartilhada, que funciona como uma área visualizada por todos os participantes da conferência.

Versões de documentos da Hiperbase Pública podem ser manipulados nesta janela de modo cooperativo pelos participantes. A regra de controle de acesso é simples: o interlocutor acumula as funções de secretário, podendo delegar estas funções a um outro participante da conferência. Periodicamente, as alterações, efetuadas pelo secretário, são espelhadas nas demais janelas de base compartilhada dos outros participantes. No instante em que ocorre uma mudança de interlocutor, o sistema automaticamente consolida as últimas alterações do secretário anterior e passa a permissão de alteração para o novo secretário, indicado pelo novo interlocutor. Caso o novo secretário seja o mesmo anterior, a operação fica transparente podendo o secretário prosseguir com suas alterações, sem interrupções. Conceitualmente, os documentos da janela Base Compartilhada fazem parte de uma base privada cujo "dono" é o próprio sistema. Assim, as alterações realizadas são na realidade requisições de alteração que o secretário faz ao sistema e este (dono da base) as realiza.

A Base Compartilhada pode ainda receber documentos provenientes da Base Privada do usuário, desde que tal documento obedeça as regras de versionamento do MCA, conforme detalhado em [SoCR 95].

Os documentos apresentados na base compartilhada consistem de uma versão dos documentos originais disponíveis nas demais bases do sistema. As alterações realizadas nesta versão compartilhada do documento não modificam o conteúdo do documento original, sendo necessária a operação de check-out definida pelo Modelo de Contextos Aninhados [SoCR 95] para que a nova versão do documento original seja consolidada na Hiperbase Pública, a única persistente.

O tempo de vida da base compartilhada de uma conferência, bem como das bases privadas de seus participantes, está limitado ao tempo de realização da conferência.

Figura 4.27: Recuperação de um Documento

A Figura 4.27 apresenta a esta troca de mensagens realizada quando o secretário seleciona um documento multimídia/hipermídia em um dos browsers e uma versão do documento é apresentada na base compartilhada. Os seguintes passos são realizados:

As alterações realizadas pelo secretário nos documentos multimídia/hipermídia são enviadas aos demais participantes periodicamente pela camada de comunicação de controle.

Conceitualmente o documento apresentado na base compartilhada é uma versão do documento original, proveniente de uma das duas outras bases.

A operação de check-out consiste do envio de mensagem à máquina HyperProp, para incluir a nova versão do documento na Hiperbase Pública, com posterior armazenamento do conteúdo do documento.

As operações de "abertura" de uma versão de um documento, em conjunto com a operação de check-out e controle de acesso aos documentos, permitem a manipulação cooperativa de documentos com as características levantadas no Capítulo II.

4.13. Votação

O TVS provê suporte a votações. Em qualquer instante um participante pode criar uma votação, indicando o título e as opções da votação, selecionar uma votação previamente configurada e finalmente votar. Um participante pode ainda apagar uma votação cujo criador for ele próprio.

Todas as operações relacionadas à votação implicam em troca de mensagens do MIU do participante com o daemon de controle e de conexão, via camada de comunicação de mensagens de controle.

Desta forma, o daemon centraliza a responsabilidade de criar e manter os dados de cada votação, bem como receber e validar os votos dos participantes, realizando a apuração dos resultados e indicando aos participantes, ou ao menos ao coordenador da conferência, o resultado da votação. Entre as operações de validação dos votos, o daemon evita que um mesmo participante vote mais de uma vez, através do descarte dos votos adicionais.

Um participante somente estará habilitado a votar se o coordenador, ou o organizador, o tiver habilitado a esta função. É usual que os assentos gerais ou restritos a um domínio não tenham direito a voto, uma vez que não se pode garantir qual participante o ocupará.

4.14. Envio de Mensagens Textuais

Em qualquer instante, um participante pode enviar uma mensagem textual para um outro participante ou grupo de participantes da conferência. Deste modo o sistema garante a troca de informações entre usuários, uma vez que não permite conversas paralelas. O organizador pode desabilitar esta função para um determinado usuário ou grupo de usuários, podendo também o coordenador habilitar/desabilitar esta função para cada usuário durante o desenrolar da conferência.

Existem dois tipos de mensagens textuais: aquelas endereçadas a um participante específico e aquelas endereçadas a todos os participantes da conferência. As primeiras mensagens são enviadas através da camada de comunicação de controle, do participante origem diretamente para o destino, sem passar pelo daemon. Já as outras são enviadas, também pela camada de controle, para o daemon e este envia em difusão para todos os participantes. O daemon, intermediando esta operação, diminui a sobrecarga sobre o MIU do usuário.


Capítulo V

5. A Implementação

5.1. O Módulo de Interação com o Usuário

A interface do TVS foi implementada utilizando o sistema de interfaces IUP/LED [Levy 93], desenvolvido no Departamento de Informática da PUC-Rio. A versão utilizada é a do IUP-Motif. O código do sistema TVS está escrito em C++, estando o daemon escrito em C.

A implementação atual cria uma abstração da interface apresentada ao usuário. Existe basicamente uma classe que dispara os métodos relacionados a cada elemento de interface (diálogo), uma classe que é responsável pela transmissão de sinais de controle, outra para transmissão das mídias e mais uma responsável pelas comunicações com a máquina HyperProp, como apresentado na Figura 5.1. Todas as transferências de informações são realizadas através de envio de datagramas através de soquetes UDP.

O MIU utiliza dois soquetes, um para envio de dados de controle e outro para envio das mídias, associados às portas 5551 e 5552, respectivamente. Adicionalmente o MIU utiliza um soquete, associado à porta 5555, para troca de mensagens com os Browsers de Base Privada e Hiperbase Pública, e outro, cuja porta é configurável, para troca de mensagens com a máquina HyperProp.

Figura 5.1: Hierarquia de Classes do TVS

O TVS implementa a camada de comunicação através de três classes: Transmissão de Controle, Transmissão das Mídias e Comunicação HyperProp. A classe de transmissões de controle implementa as sub-camadas de comunicação de controle e de seleção (Browser). A classe de comunicação das mídias implementa a sub-camada de mesmo nome. A Classe HyperProp consiste do módulo cliente da implementação da máquina HyperProp, como apresentado em [UcMu 96], e implementa a sub-camada de mesmo nome.

A classe de vídeo local é a responsável pela captura e codificação das mídias de áudio e vídeo, uma vez que esta classe é responsável pela apresentação da mídia vídeo na janela de vídeo local. Posteriormente, os dados são enviados, através da camada de comunicação de mídias, para os participantes adequados. Os métodos desta classe são ainda responsáveis pelo empacotamento das mídias nos quadros TVS Mídia, cuja estrutura é apresentada adiante. A transmissão das demais mídias ¾ texto, imagem estática etc. ¾ é realizado quando da abertura de um nó da hiperbase pública ou da base privada de um participante. Posteriormente, apenas as atualizações são transmitidas, em tempo real.

Todas as mensagens enviadas através da camada de comunicação de mídias utilizam a codificação TVS Mídia, já as mensagens enviadas pela camada de controle utilizam um formato de pacote genérico, apresentado adiante.

5.2. O Daemon de Controle e de Conexão

5.2.1. Estruturas de Dados Utilizadas

Os dados sobre as conferências e votações são armazenadas em arquivos criptografados, lidos quando da ativação do daemon. Os arquivos possuem a seguinte nomenclatura, com as respectivas estruturas:

tvsd.cfg

0001 HyperProp Project Metting 04 10/02/1996
0002 Thesis Defense 05 08/15/1996
0003 ITU-T Geneva Metting (Working Group XV) 04 10/20/1996

Para cada uma das conferências temos ainda o seguinte arquivo com informações sobre os assentos, seus tipos de preenchimento e votações da conferência. No exemplo em questão, apresenta-se os nomes de arquivo para a conferência de código 0001:

tvsd0001.cfg

01 P hprop   inf.puc-rio.br 015 111111111111111
02 P *       inf.puc-rio.br 020 111111111111111
03 P jauvane inf.puc-rio.br 015 111111111111111
04 C lfgs    inf.puc-rio.br 012 111111111111111
v01 Sabor da Pizza

Para cada uma das votações indicadas no arquivo anterior, temos o seguinte arquivo com as opções da votação:

tvsd0001.vote01.cfg

Catupiri
4 Queijos
Mussarela
Vegetariana

Quando ativado, o daemon lê o arquivo de configuração tvsd.cfg. A partir dos dados deste arquivo o daemon lê os arquivos de configuração de cada uma das conferências, tvsd9999.cfg e, dependendo do conteúdo destes, lê cada um dos arquivos que contém dados de votação. Todos os dados armazenados em arquivos são utilizados para criar listas de conferências cujas entradas armazenam os dados da conferência, a saber: o identificador, assunto, número de assentos disponíveis, uma estrutura homogênea para armazenar os dados dos participantes, a data de realização da conferência, o número de votações ativas e uma lista com as informações das votações. De cada votação se armazena o título, um identificador, o identificador do participante que a criou, o número de opções e uma lista com as opções. De cada participante se armazena o nome, a estação e o domínio em que se encontra e dados de controle. As estruturas de dados utilizadas são as seguintes:

struct structVoteOption{
   char sVoteOption[41];
   struct structVoteOption *pNext;
};

struct structVote{
   char sTitle[41];
   int iVoteNumber;
   int iOwnerId;
   int iNumberOfVoteOptions;
   int iCurrentNumberOfVoteOptions;
   struct structVoteOption *pFirstVoteOption, *pLastVoteOption;
   struct structVote *pNext;
};

struct structParticipantNode{
   char sName[21];
   char sHost[21];
   char sDomain[81];
   signed bLive:3;
   unsigned bSeeMe:1;
   int iFloorControlValue;
   struct sockaddr_in stControl;
   struct sockaddr_in stMedia;
};
 
struct structConferencing{
   int iNumber;
   int iSpeakerId;
   char cIsInFloorControlTreatment;
   char sSubject[51];
   int iMaxNumberOfParticipants;
   char sDate[11];
   int iActive;
   int iNumberOfVote;
   struct structParticipantNode *pParticipant;
   struct structVote *pFirstVote, *pLastVote;
   struct structConferencing *pNext;
};

Uma vez que todas as listas estejam preenchidas, o daemon passa ao estado bloqueado, aguardando requisições de serviço. Caso alguma conferência esteja em curso, o daemon, a cada 60 segundos no estado bloqueado, envia uma mensagem de verificação "alive bit" com o intuito de detetar estações inativas. Caso alguma estação não responda à solicitação, o daemon envia uma mensagem de difusão avisando às demais estações da falha ocorrida. Neste instante ocorre a exclusão do participante na estação em falha.

5.2.2. Recursos Utilizados

O daemon possui um único soquete, do tipo datagrama (UDP) [Come 95], associado à porta 5550, para o envio e recepção de mensagens de controle. De acordo com a mensagem recebida, um tratamento adequado é realizado.

O daemon é um processo que usa poucos recursos de CPU, estando a maior parte do tempo bloqueado, aguardando a chegada de mensagens ou do timeout para envio da mensagem "alive bit". Se nenhuma conferência está ativa, ele fica bloqueado até a chegada de alguma requisição. A baixa utilização de CPU permite que a estação onde o daemon está sendo executado possa também executar o MIU do sistema.

5.2.3. Formato dos Quadros Transmitidos

O daemon implementa apenas a camada de transmissão de mensagens de controle. Recebendo e enviando mensagens para os MIU’s dos vários participantes das várias conferências. O quadro da camada de controle, apresentado na Figura 5.2, possui um formato genérico, sendo utilizado nas transmissões através do uso de seus campos para as mensagens de controle, apresentadas na Figura 5.3.

Figura 5.2: Formato do Quadro da Camada de Controle
Com 
Int2
Int3
String1
String2
String3
Alias
100     Nome Particip. Nome do Host Nome Domínio CINFORMREQUEST
101 Qtd Confer.         CINFORMRESPONSE
110 No. Confer. No. Max Partic. Assunto Conf. Data Conf.   CINFORMSUBJECT
111 No. Interloc.         CINFORMENDLIST
200 No. Confer.   Nome Particip. Nome do Host Nome Domínio CONNREQUEST
201 Id. Particip.         CONNACCEPT
202 Tipo Recusa          CONNREFUSED
211 No. Particip. Flag Live Nome Particip. Nome do Host Nome Domínio PLISTMEMBER
212 No. Interloc.         ENDOFLIST
220 No. Confer. No. Participante       DISCONNREQUEST
230           ALIVEBIT
231 No. Confer. No. Participante       ALIVERESPONSE
232 No. Particip.   Nome Particip. Nome do Host Nome Domínio ALIVENORESPONSE
400 No. Particip.         IWANTSEEYOU
401 No. Particip.         INOWANTSEEYOU
410 Part. Origem   Texto Mensag.     MESSAGETOYOU
450 Id. Votação No. Opções Título Votação 1a. Opção 2a. Opção CREATEVOTE
451 Id. Votação         ERASEVOTE
455 No. Votação Quant. Opções Título Votação     ADDVOTE
456 Id. Votação No. Opções Opção Opção Opção ADDVOTEOPTIONS
460 Id. Votação Id. Participante       VOTEINFOREQUEST
461 No. Votação No. Opções Opção Opção Opção VOTEINFOANSWER
465 Id. Votação No Opção Voto Nome Opção     VOTE
470 Id. Particip. Id. Nó Nome Nó Nome Arquivo   OPENSHAREDDOC
471 Id. Particip. Id. Nó       CLOSESHAREDDOC
472 Id. Particip. Id. Nó       SAVESHAREDDOC
480 Id. Particip. Média Amostr.       ASKINGTHEFLOOR
481 No. Interloc.         GIVINGTHEFLOOR
Figura 5.3: Mensagens de Controle

Os seis campos do quadro de controle são os seguintes:

Figura 5.4: Diagrama de Estados do Daemon

A Figura 5.4 apresenta o diagrama de estados do daemon de controle e conexão. Note que o único estado no qual o daemon está bloqueado é o estado pronto, ou seja, em nenhuma ocasião o daemon envia mensagem para alguma estação e fica aguardando retorno. O daemon sempre recebe uma mensagem ou estoura o timeout para envio do alive bit, faz o tratamento adequado para a mensagem em questão (por vezes enviando mensagens às estações), e finalmente retorna ao estado pronto, onde aguarda a próxima mensagem.

5.3. A Interface Configurável

O TVS possui um arquivo de configuração, cujo conteúdo é apresentado abaixo.

tvs.cfg

logum-ede.inf.puc-rio.br
Hyperbase    : 0 0000 0597 0308 0168
Private Base : 0 0549 0597 0305 0168
Shared Base  : 0 0000 0101 0308 0287
Local Video  : 1 0549 0422 0103 0090
Speaker Video: 1 0549 0101 0211 0180
Partic. Video: 1 0738 0422 0103 0090
Partic. List : 1 0927 0422 0089 0090
Video Control: 1 0927 0101 0089 0065
Audio Control: 1 0927 0236 0089 0097
MainWindow   : 1 0000 0000 0308 0046
LogWindow    : 1 0549 0000 0305 0046
VoteWindow   : 0 -1 -1 0089 0110

A primeira linha do arquivo informa em qual máquina o daemon está sendo executado. A primeira tarefa do MIU, conforme comentado na seção 4.6, é enviar uma mensagem ao daemon, que se encontra no endereço especificado. As demais linhas configuram o ambiente padrão do usuário, possuindo, para cada diálogo, a posição dele na tela além de um flag indicando se o diálogo deve ou não ser apresentado.

A primeira tarefa executada pelo MIU do usuário, antes mesmo de contatar o daemon (como anteriormente comentado), é abrir o arquivo de configuração, armazenando então todas as informações nas classes adequadas. Posteriormente o MIU envia uma mensagem de pedido de informação para a porta utilizada pelo daemon na estação indicada no arquivo.

5.4. A Interação do TVS com os Browsers

As interações entre o MIU e os Browsers de base privada e hiperbase pública são realizados através de troca de mensagens de seleção pela camada Browser. A única ocasião onde ocorre o envio de mensagem de seleção é quando o participante seleciona um documento qualquer num dos browsers. Neste momento o browser sinaliza a seleção do participante ao seu MIU através do envio de uma mensagem de seleção, cujo formato é apresentado na Figura 5.5.

Figura 5.5: Formato do Quadro da Camada Browser

O campo iCode indica o código da operação realizada, o campo EntityId 1 consiste do identificador da perspectiva do nó selecionado, finalmente o campo EntityId 2 indica o identificador do nó selecionado. O conteúdo do terceiro campo é utilizado para o envio de mensagem de requisição de informações necessárias à recuperação do nó selecionado.

5.5. A Interação do TVS com a Máquina HyperProp

As interações entre o MIU do sistema TVS com a Máquina HyperProp são realizadas através de trocas de mensagens pela camada HyperProp, cuja implementação consiste do módulo cliente da arquitetura HyperProp, que possui ainda um processo servidor. O módulo cliente fornece uma interface de alto nível para a programação de aplicações que necessitam interagir com o servidor HyperProp. A arquitetura HyperProp é detalhadamente apresentada em [UcMu 96] e [Bati 94]. O formato dos quadros trocados pela camada HyperProp é mostrado na Figura 5.6.

Figura 5.6: Formato do Quadro da Camada HyperProp

As interações entre o TVS e a máquina HyperProp são realizadas:

5.6. A Manipulação Cooperativa de Documentos Multimídia/Hipermídia

O interlocutor ou secretário por aquele indicado, tem o direito exclusivo de alteração nos documentos multimídia/hipermídia que estão na base compartilhada. Todas as operações de edição dos conteúdos dos nós são permitidas. Os demais participantes somente têm permissão de armazenar uma versão dos documentos da base compartilhada na sua base privada ou na hiperbase pública.

Quando o secretário realiza modificações no conteúdo de qualquer documento da base compartilhada, a sua MIU, periodicamente, envia mensagem de atualização do conteúdo dos documentos através da camada de controle.

5.7. A Codificação de Áudio e Vídeo

A codificação de áudio e vídeo é feita, na versão corrente, por software. O algoritmo utilizado é o G.711 [G.711] para o áudio, H.261 [H.261] para a codificação de vídeo. O áudio é capturado diretamente do dispositivo /dev/audio do Solaris com o uso do dispositivo de controle /dev/audioctl, para realizar as operações da classe de controle de áudio (volume, entrada e saída de áudio). O dispositivo de áudio do Solaris fornece as amostras PCM com a transformação logarítmica m-law (8 bits por amostra). Estas amostras são transmitidas pela rede, no destino as amostras PCM m -law são convertidas em amostras PCM linear com 14 bits por amostra para a execução do algoritmo de deteção de silêncio.

A captura de vídeo é feita através de funções da biblioteca Xil, que faz parte do SDK da SUN e executa operações sobre a placa SUNVIDEO de captura de vídeo. Cada quadro é codificado de acordo com a recomendação ITU-T H.261, no formato CIF ou QCIF, conforme o participante seja o interlocutor ou não.

5.8. A Estrutura do Quadro

Após a codificação, os sinais são acomodados em quadros TVS Mídia, apresentados na Figura 5.7. Posteriormente, os quadros são enviados, pelo soquete reservado às mídias, para todos os participantes da conferência, caso o usuário seja o interlocutor, ou, apenas o vídeo, para os participantes com a marca indicativa de observação do usuário em questão em suas janelas de "vídeo do participante".

Figura 5.7: Formato do Quadro de Transmissão de Mídias

Os campos do quadro são:

Não é realizado qualquer controle de erro na transmissão das mídias de áudio e vídeo, uma vez que estas mídias toleram erros sem perda de qualidade perceptível ao ouvido e olho humano [STCN 92]. Na implementação atual, assume-se que as taxas de erros na rede utilizada são suficientemente baixas.
Mídia cType
Vídeo do Interlocutor
0
Vídeo de Participante
1
Áudio
2
Áudio Bloqueado
3
Documento
4
Figura 5.8: Valores do Campo cType

A mídia áudio bloqueado é enviada pelo interlocutor quando este seleciona a opção "lock", indicando que não deseja ser interrompido, mesmo existindo silêncio. Desta forma, apenas é realizado a deteção de silêncio sobre amostras de áudio normais (cType = 2, na Figura 5.8).

5.9. O Sincronismo das Mídias Básicas

O sincronismo do áudio e vídeo é realizado através da utilização do campo iTimeStamp. Na origem, os quadros de vídeo e seu respectivo áudio são transmitidos com o mesmo valor de iTimeStamp. No destino, a mídia que chegar primeiro é retida até a chegada da outra mídia com o mesmo valor, ou valor próximo, de iTimeStamp, para envio simultâneo aos dispositivos de saída.

O objeto da classe de transmissão das mídias possui um atributo, denominado iTimeStamp, que possui um valor inteiro incrementado periodicamente, a cada 500ms. Quando o valor de iTimeStamp chega ao valor 224 -1, retorna a um.

Cada um dos pacotes de mídia enviados carrega o valor atual do atributo iTimeStamp, sendo transmitidos intercaladamente pacotes de áudio e vídeo.

5.10. O Controle de Acesso ao Ambiente

O mecanismo de controle de acesso ao ambiente TVS é realizado através de deteção de silêncio, conforme estudo descrito em [Fari 92]. O mecanismo, esquematizado na Figura 5.9, funciona através de um algoritmo bastante simples: Enquanto um interlocutor está expondo oralmente suas idéias, as demais estações ficam em modo de escuta. Cada estação executa o algoritmo de deteção de silêncio apresentado adiante. Quando se detecta um intervalo de silêncio maior que um intervalo de tempo específico, as estações de todos os participantes coletam amostras do áudio local e realizam o algoritmo de deteção de silêncio local. Se for detetado silêncio local ou se o participante for apenas um ouvinte, o MIU envia mensagem ao daemon indicando não haver interesse de concorrer pelo controle de acesso. Caso não seja detetado silêncio, o MIU envia ao daemon uma mensagem de requisição de controle de acesso. O daemon, após receber todas as requisições, seleciona um dos participantes para ser o novo interlocutor. A decisão leva em conta uma lista de prioridades configurada pelo organizador e coordenador da conferência. A seguir, a decisão é enviada a todos os participantes da conferência, quando então o novo interlocutor ganha o direito de acesso. Este Inicia sua locução, enquanto o secretário por ele indicado, ou ele próprio, ganha o direito de acesso à base compartilhada.

O modo de escolha utilizado pelo daemon pode facilmente ser modificado. Uma versão futura do sistema pode oferecer vários modelos de regra de escolha do próximo interlocutor inclusive, idealmente, permitir que se inclua novas regras, através de alguma linguagem de alto nível.

Figura 5.9: O Mecanismo de Controle de Acesso

O algoritmo de deteção de silêncio utilizado é o seguinte:

iZeroCrossing = iAmplitudeAvg = 0;
iSampleSignal = 1;

for(iCounter=0; iCounter<44; iCounter++)
{
   iAmplitudeAvg+=abs((iLinearPCMSample = pAudioSamples[iCounter]));

   if((iSampleSignal==1) && (iLinearPCMSample<0))
   {
      riZeroCrossing++;
      riSampleSignal=-1;
   }
   else if ((iSampleSignal==-1) && (iLinearPCMSample>0))
   {
      iZeroCrossing++;
      iSampleSignal=1;
   }
}

iAmplitudeAvg/=iCounter;

if ((iAmplitudeAvg>MAXAVERAGE) || (iZeroCrossing>MINZEROCROSSING))
   iState=1;
else
{
   iSilence++;
   iState=0;
}

if ((iOldState==0) && (iState==1))
   iSilence=0;

if (iState==0 && iSilence>iSilenceNumber && !iSilenceDetected)
   iSilenceDetected = 1;

iOldState=iState;

Quando a quantidade de amostras de silêncio especificada pelo organizador, e modificada pelo coordenador, for atingida, o MIU assume que foi detetado silêncio no sinal de áudio transmitido.

5.11. A Votação

O mecanismo de apuração de uma votação é implementado de forma centralizada pelo daemon, através de mensagens enviadas pelo MIU via soquete de controle. O daemon valida o voto e contabiliza os resultados. Os votos enviados são armazenados em um arquivo cujo formato aparece abaixo.

tvsd0001.vote01.votes.cfg

01 01 hprop   inf.puc-rio.br
03 02 jauvane inf.puc-rio.br

O arquivo apresentado acima tem como função principal de controlar a votação de participantes em assentos gerais ou para um domínio, que podem ter vários participantes, um a cada instante. Quando um participante envia uma escolha de uma votação, o daemon pesquisa o arquivo procurando algum voto cujo Nome do Participante e Domínio coincidam com os dados do novo voto. Apenas os votos de participantes não reincidentes serão considerados. Esta operação impossibilita que um mesmo participante vote mais de uma vez numa votação.

Quando a maioria dos participantes cadastrados escolhe uma das opções, o daemon envia uma mensagem em difusão para todos os participantes da conferência indicando o resultado da votação. A indicação é feita através de mensagem na console.

5.12. Mensagens Textuais

Em qualquer instante um usuário pode enviar mensagens textuais ¾ bilhetes ¾ a qualquer outro participante da conferência, desde que este esteja presente. A mensagem é enviada diretamente à estação destino através do canal de controle. No destino a mensagem é apresentada na console do MIU.

A mensagem é enviada através do botão "Send Message To:" existente na janela "Lista de Participantes". Quando o botão é pressionado, aparece um diálogo, apresentado na janela 5.10, endereçado ao participante selecionado. Quando a mensagem é escrita e confirmada, pelo botão "Send", a mensagem é transmitida pela camada de controle até o destinatário e então exibida na console do destinatário.

Figura 5.10: O Diálogo de Envio de Mensagens

5.13. Números da Implementação

A tabela apresentada na Figura 5.11 mostra vários dados quantitativos sobre a implementação do TVS.

Característica
Valor
Quantidade de Linhas de Código do Daemon
1.111
Quantidade de Linhas de Código do MIU
3.522
Número de Arquivos Fonte
37
Número de Classes
15
 
Figura 5.11: Dados da implementação

Capítulo VI

6. Conclusão

6.1. Contribuições da Dissertação

O TVS apresenta grande maleabilidade de configuração de interface, sendo adequado como suporte a vários tipos de reunião, desde teleseminários às reuniões de decisão. Algumas facilidades, em especial a manipulação cooperativa de documentos multimídia/hipermídia, não são encontradas nos protótipos e produtos comerciais hoje disponíveis, embora sejam previstas e solicitadas pelos padrões ITU-T [F.730].

Com o intuito de levantar características e obter referencial para a implementação do TVS, foram instalados nas estações do Departamento de Informática o IVS, o ViC, o nv e já se encontrava instalado o Cu-SeeMe. Estes sistemas foram utilizados em laboratório enquanto em paralelo a documentação disponível destes sistemas e do sistema do MCRLab era estudada. Durante esta etapa de levantamento, iniciou-se a concepção da interface do TVS, bem como a especificação geral do funcionamento detalhado no Capítulo IV. Do IVS veio a inspiração para a utilização de um daemon de controle de conexão, dos demais sistemas foi aproveitada principalmente a bagagem adquirida na sua utilização, o que possibilitou vários refinamentos e a concepção do sistema com as atuais características.

O TVS possui lugar de destaque principalmente pela utilização de um modelo conceitual de para o armazenamento e recuperação de documentos multimídia/hipermídia, o MCA, de acordo com a proposta de padrão MHEG, da ISO. O único protótipo que também possui um mecanismo de compartilhamento de documentos é o sistema do MCRLab, cujo controle de acesso, permite que os usuários modifiquem um mesmo documento, desde que em posições não coincidentes. O TVS utiliza a técnica descrita o Capítulo V, onde existe um participante especial, denominado secretário, que está habilitado a modificar os documentos da base compartilhada. Os demais participantes podem, entretanto, modificar quaisquer documentos das suas bases privadas.

Quanto ao envio de mensagens textuais, os sistemas CU-SeMee possui um esquema equivalente ao utilizado pelo TVS, tendo o CU-SeeMe, o acréscimo da janela de conversação.

O TVS é o único protótipo a apresentar as características de suporte a votação, controle de acesso e existência de um coordenador.

A Figura 6.1 mostra um quadro comparativo dos diversos sistemas do Capítulo 3.

Característica TVS IVS MCRLab nv ViC Cu-SeeMe
Vídeo
h.261
h.261
não integrado
MJPEG, CellB e nv
inexistente
não padrão
Áudio
 
g.711
g.711, ADPCM e VADPCM
 
não integrado
 
inexistente
H.261, MJPEG, CellB e nv
 
não padrão
Mens. Textuais
sim
inexistente
inexistente
inexistente
inexistente
sim
Documentos
compartilha
inexistente
compartilha
inexistente
whiteboard pelo wb
whiteboard
Mod Conceitual
MCA
inexistente
inexistente
inexistente
inexistente
inexistente
Controle Acesso
det. silêncio
inexistente
inexistente
inexistente
inexistente
inexistente
Pré-conferência
sim
inexistente
inexistente
inexistente
inexistente
inexistente
Segurança
só entrada
inexistente
inexistente
inexistente
fim-a-fim DES
só entrada
Empacotamento
não padrão
não padrão
SRTDD
RTP
RTP
não padrão
Votação
tempo real
inexistente
inexistente
inexistente
inexistente
inexistente
Coordenador
sim
inexistente
inexistente
inexistente
inexistente
inexistente
Interlocutor
controla
não controla
inexistente
inexistente
inexistente
não controla
Id. Interlocutor
sim
sim
inexistente
inexistente
inexistemte
sim
Sincronismo
time-stamp
inexistente
inexistente
inexistente
inexistente
inexistente
Utilização S.C.
não otimiza
MBONE
manual
MBONE
MBONE
manual
 
Figura 6.1: Quadro Comparativo dos Sistemas de Videoconferência

6.2. Trabalhos Futuros

Uma versão inicial do TVS se encontra operacional no ambiente OpenWindows de estações SUN Microsystems, interligadas por uma rede Ethernet usando o protocolo TCP/IP. A codificação de vídeo é realizada por software. Pretende-se brevemente realizar esta tarefa por hardware específico para aumentar o desempenho, bem como estender a implementação com o intuito de abranger outras arquiteturas e sistemas operacionais.

Figura 6.2: TVS sobre ATM, Modelo A

Como trabalhos futuros, espera-se implementar a operação de gravação de uma sessão de videoconferência, adaptar o sistema para uso em rede ATM, além de incluir mecanismos de segurança, inexistentes no primeiro protótipo, que devem levar em conta dois pontos de vista: transferência segura de informações confidenciais e autenticação de identidade de usuários. O primeiro problema pode ser resolvido através da utilização de um algoritmo eficiente de criptografia [Schn 95]. Já o segundo, é tema atual de pesquisas em vários centros de pesquisa e figura como problema ainda em aberto.

A adaptação para rede ATM utilizaria amplamente as conexões ponto-multiponto. Cada estação estabeleceria uma conexão ponto-multiponto. O interlocutor teria como destino todos os participantes da conferência e as mídias áudio e vídeo seriam transmitidas por esta conexão. Os demais participantes abririam uma conexão ponto-multiponto cujo destino seria composto pelos participantes da conferência marcados, na janela "Lista de Participantes", com o sinal que indica que aquele usuário deseja receber o sinal de vídeo, que seria transmitido nesta conexão. A Figura 6.2 apresenta um esquema do funcionamento de uma conferência com esta configuração.

Uma outra possibilidade seria implementar um MCU, que possui a função de receber as mídias provenientes dos vários participantes e enviar as mídias adequadas a cada estação. A Figura 6.3 apresenta um esquema do funcionamento de uma conferência com esta configuração.

Figura 6.3: TVS sobre ATM, Modelo B

 

Referências Bibliográficas

[Arro 96] Arrowood, A. - "CU-SeeMe Communications in an Emergent Technology" - LCC/IDT, OIT/NS GRA, Georgia Institute of Technology, February 1996

[Bati 94] Batista, T.C. - "Um Sistema de Autoria para Hiperdocumentos" - Dissertação de Mestrado, Departamento de Informática, PUC-Rio, Março de 1994

[Come 95] Comer, D. - "Internetworking with TCP/IP - Vol I" - 2nd Edition - Prentice-Hall, 1993.

[Come 93] Comer, D. - "Internetworking with TCP/IP - Vol III BSD Socket Version" - 2nd Edition - Prentice-Hall.

[SzVe 93] Szyperski, C. Ventre, G. - "A Characterization of Multi-Party Interactive Multimedia Applications" - International Computer Science Institute TR-93-006, January 1993.

[Dorc 95] Dorcey, T. - "CU-SeeMe Desktop Videoconferencing Software" - Connections, Volume 9, No. 3, March 1995.

[Draft G.723] International Telecommunication Union, Telecommunication Standardization Sector - "Dual Rate Speech Coder for Multimedia Communications Transmitting at 5.3 & 6.3 Kbit/s" - Draft ITU-T Recommendation G.723, September 1995.

[Draft H.263] International Telecommunication Union, Telecommunication Standardization Sector - "Line Transmission of non-Telephone Signals - Video Coding for Low Bitrate Communications" - Draft ITU-T Recommendation H.263, July 1995.

[Draft H.223] International Telecommunication Union, Telecommunication Standardization Sector - "Line Transmission of non-Telephone Signals - Multiplexing Protocol for Low Bitrate Multimedia Communication" - Final Draft ITU-T Recommendation H.223, to be published in next.

[Draft H.324] International Telecommunication Union, Telecommunication Standardization Sector - "Line Transmission of non-Telephone Signals - Terminal for Low Bitrate Multimedia Communication" - Draft ITU-T Recommendation H.324, September 1995.

[Draft H.245] International Telecommunication Union, Telecommunication Standardization Sector - "Line Transmission of non-Telephone Signals - Multimedia Control Protocol" - Draft ITU-T Recommendation H.324, September 1995.

[Erik 94] Erikson, H. - "MBONE: The Multicast Backbone" - Communications of the ACM, August 1994, Vol 37, pp 54-60.

[F.701] Comité Consultatif International de Télégraphique et Téléphonic - "Teleconference Service" - CCITT Recommendation F.710, from CCITT Blue Book. ITU-T Recommendation F.701.

[F.710] International Telecommunication Union, Telecommunication Standardization Sector - "Telematic, Data Transmission and Teleconference Services: Operation and Quality of Service - General Principles for Audiographic Conference Service" - ITU-T Recommendation F.710, March 1991.

[F.711] International Telecommunication Union, Telecommunication Standardization Sector - "Operation and Quality of Service: Audiovisual Service - Audiographic Conference Teleservice for ISDN" - ITU-T Recommendation F.711, August 1993.

[F.720] International Telecommunication Union, Telecommunication Standardization Sector - "Telematic, Data Transmission, ISDN Broadband, UPT and Teleconference Services: Operations and Quality of Service - Videotelefony Service - General" - ITU-T Recommendation F.720, August 1992.

[F.721] International Telecommunication Union, Telecommunication Standardization Sector - "Telematic, Data Transmission, ISDN Broadband, Universal, Personal Telecommunications and Teleconference Services: Operations and Quality of Service - Videotelefony Teleservice for ISDN" - ITU-T Recommendation F.721, August 1992.

[F.730] International Telecommunication Union, Telecommunication Standardization Sector - "Telematic, Data Transmission, ISDN Broadband, Universal, Personal Communications and Teleconference Services: Operation and Quality of Service - Videoconference Service - General" - ITU-T Recommendation F.730, August 1992

[Fari 92] Faria, A.L.A.; - "Implementação do Mecanismo de Controle de Acesso por Deteção de Silêncio em um Sistema de Teleconferência" - Dissertação de Mestrado - Departamento de Engenharia Elétrica / PUC-Rio, 1992

[Fluc 95] Fluckiger, F. - "Understanding Networked Multimedia - Applications and Technology" - Prentice Hall, 1995

[Fred 94] Frederick, R. - "Experiences with real-time software video compression" - Xerox PARC, July 1994.

[G.701]

[G.711] Comité Consultatif International de Télégraphique et Téléphonic - "Pulse Code Modulation (PCM) of Voice Frequencies" - CCITT Recommendation G.711, from CCITT Blue Book.

[G.722] Comité Consultatif International de Télégraphique et Téléphonic - "7kHz Audio-coding Within 64 kbits/s" CCITT Recommendation G.722, from CCITT Blue Book.

[G.725] International Telecommunication Union, Telecommunication Standardization Sector - "General Aspects of Digital Transmission Systems; Terminal Equipment - System Aspects for the Use of the 7 kHz Audio Codec Within 64 kbit/s" - ITU-T Recommendation G.725, 1988.

[G.728] International Telecommunication Union, Telecommunication Standardization Sector - "General Aspects of Digital Transmission Systems; Terminal Equipment - Coding of Speech at 16 kbit/s Using Low-Delay Code Excited Linear Prediction" - ITU-T Recommendation G.728, September 1992.

[H.100] International Telecommunication Union, Telecommunication Standardization Sector - "Line Transmission of non-Telephone Signals - Visual Telephone Systems" - ITU-T Recommendation H.100, 1988.

[H.110] International Telecommunication Union, Telecommunication Standardization Sector - "Line Transmission of non-Telephone Signals - Hypothetical Reference Connections for Videoconferencing Using Primary Digital Group Transmission" - ITU-T Recommendation H.110, 1988.

[H.120] International Telecommunication Union, Telecommunication Standardization Sector - "Line Transmission of non-Telephone Signals - Codecs for Videoconferencing Using Primary Digital Group Transmission" - ITU-T Recommendation H.120, March 1993.

[H.130] International Telecommunication Union, Telecommunication Standardization Sector - "Line Transmission of non-Telephone Signals - Frame Structure for Use in the International Interconnection of Digital Codecs for Videoconferencing or Visual Telephony" - ITU-T Recommendation H.130, 1988.

[H.140] International Telecommunication Union, Telecommunication Standardization Sector - "Line Transmission of non-Telephone Systems - A Multipoint International Videoconferencing System" - ITU-T Recommendation H.140, 1988.

[H.200] International Telecommunication Union, Telecommunication Standardization Sector - "Line Transmission of non-Telephone Signals - Framework for Recommendations for Audiovisual Services" - ITU-T Recommendation H.200, March 1993.

[H.221] International Telecommunication Union, Telecommunication Standardization Sector - "Line Transmission of non-Telephone Signals - Frame Structure for a 64 to 1920 kbit/s Channel in Audiovisual Teleservices" - ITU-T Recommendation H.221, March 1993.

[H.230] International Telecommunication Union, Telecommunication Standardization Sector - "Line Transmission of non-Telephone Signals - Frame Synchronous Control and Indication Signals for Audiovisual Systems" - ITU-T Recommendation H.230, March 1993.

[H.233] International Telecommunication Union, Telecommunication Standardization Sector - "Line Transmission of non-Telephone Signals - Confidentiality System for Audiovisual Services" - ITU-T Recommendation H.233, March 1993.

[H.242] International Telecommunication Union, Telecommunication Standardization Sector - "Line Transmission of non-Telephone Signals - System for Establishing Communication Between Audiovisual Terminals Using Digital Channels up to 2 Mbit/s" - ITU-T Recommendation H.242, March 1993.

[H.261] International Telecommunication Union, Telecommunication Standardization Sector - "Line Transmission of non-Telephone Signals - Video Codec for Audiovisual Services at p´ 64 Kbit/s" - ITU-T Recommendation H.261, March 1993.

[H.320] International Telecommunication Union, Telecommunication Standardization Sector - "Line Transmission of non-Telephone Signals - Narrow-Band Visual Telephone Systems and Terminal Equipment" - ITU-T Recommendation H.320, March 1993.

[Hype 95] Soares, L.F.G. at alii - "HyperProp - Uma visão geral" - I Workshop sobre Sistemas Multimídia Distribuídos, São Carlos, SP, Julho de 1995.

[LaHG 93] Lamont, G.; Henderson G.; Georganas, N.D. - "A Multimedia Real-Time Conferencing System: Architecture and Implementation" - Multimedia Communication Research Laboratory - Department of Eletrical Engineering - University Of Ottawa - September 1993.

[Levy 93] Levy, C.H. - "IUP/LED: Uma Ferramenta Portátil de Interface com o Usuário" - Dissertação de Mestrado - Departamento de Informática / PUC-Rio, 1993.

[Liou 91] Liou, M. - "Overview of the p´ 64 kbit/s video coding standard" - Communications of the ACM, No. 4, April de 1991.

[McJa 95] McCane, S.; Jacobson, V. - "vic: A Flexible Framework for Packet Video" - ACM Multimedia 95, San Francisco, CA, November 1995.

[MHEG 95] MHEG - Information Technology - "Coded Representation of Multimedia and Hypermedia Information Obects - Part 1: Base Notation", Committee Draft ISO/IEC, 1995.

[Much 96] Muchaluat, D. - "Browsers e Trilhas para Documentos Hipermídia Baseados em Modelos com Composições Aninhadas" - Dissertação de Mestrado, Departamento de Informática, PUC-Rio, março de 1996.

[MuSC 95] Muchaluat, D.; Soares, L.F.G; Casanova,M.A. - "Browsing in a Hypermedia System with Nested Composite Nodes" - Monografias em Ciência da Computação MCC23 - DI / PUC-Rio, 1995

[OlSo 96] Oliveira, J.C. de; Soares, L.F.G. - "TVS - Um Sistema de Videoconferência como Aplicação HyperProp" - Relatório Técnico TeleMídia # 96-2, Fevereiro de 1996.

[OlSo 96b] Oliveira, J.C. de; Soares, L.F.G. - "TVS - Um Sistema de Videoconferência com Documentos Compartilhados - Uma Visão Geral" - WoSH’96 - II Workshop em Sistemas Hipermídia, XIV SBRC - Simpósio Brasileiro de Redes de Computadores, Maio de 1996.

[Park 95] Parker, T. - "Cornell Welcome Page - http://CU-SeeMe.cornell.edu/" - Cornell University, 1995.

[Reev 94] Reeves, L. - "News document at /SPIB/news/comp.compression/1994.10" - October 1994.

[RTP 94] Schulzrine, H.; Casner, S.; Jacobson, V.; Frederick, R. - "RTP: A Transport Protocol for Real-Time Applications" - Internet Draft ietf-avt-rtp-05, July 1994.

[Schn 95] Schneier B. - "Applied Cryptografy" - 2nd Edition - John Willey, Novembro de 1995.

[SoMB 88] Soares, L.F.G.; Martins, S. de L.; Bastos, T.L.P. - "Lan Based Real Time Audio-Graphics Conferencing System, General Overview" - CCR066 Technical Report Rio Scientific Center-IBM Brasil, Novembro de 1988.

[SoCL 95] Soares, L.F.G.; Colcher, S.; Lemos, G. - "Redes de Computadores - Das LANS, WANS e MANS às Redes ATM" - Editora Campus, Janeiro de 1995.

[SoRC 95] Soares, L.F.G.; Rodriguez, N.L.R.; Casanova, M.A. - "Nested Composite Nodes and Version Control in an Open Hypermedia System" - Information Systems Vol 20, No. 6, pp. 501-519, 1995.

[Tane 96] Tanembaum, A.S. - "Computer Networks" - Third Edition - Prentice-Hall PTR, 1996.

[STCN 92] Soares, L.F.G.; Tucherman, L.; Casanova, M.A.; Nunes, P.R.R.L. - "Fundamentos de Sistemas Multimídia" - VIII Escola de Computação, Gramado, 1992.

[SzVe 93] Szyperski, C. Ventre, G. - "A Characterization of Multi-Party Interactive Multimedia Applications" - International Computer Science Institute TR-93-006, January 1993.

[Turl 93] Turletti, T. - "A H.261 Software Codec for Videoconferencing over the Internet" - INRIA Research Report, No. 1834, January 1993.

[Turl 94] Turletti, T. - "The INRIA Videoconferencing System (IVS)" - ConneXions, Volume VIII, No. 10, October 1994

[Turl 95] Turletti, T. - "Contrôle de Transmission pour Logiciel de Vidéoconférence sur l'Internet" - Thèse de Doctorat, L'Universite de Nice - Sophia Antipolis, Avril 1995.

[UcMu 96] Uchoa, R.C.; Muchaluat, D.C. - "Implementação do Módulo Cliente da Máuina HyperProp" - Relatório Técnico TeleMídia # 96-7, 1996

[Wall 91] Wallace, G.K. - "The JPEG Still Picture Compression Standard" - Digital Equipment Corporation (Submetido para publicação em dezembro de 1991 em "IEEE Transactions on Consumer Eletronics"), 1991.



Apêndice A

A. Código Fonte do Sistema

Procure o Vol. II desta dissertação ou o arquivo TVS-Code.ps.zip em ftp://ftp.telemidia.puc-rio.br/pub/tvs


TVS: Um Sistema de Videoconferência
 
 
 

Dissertação de Mestrado apresentada por Jauvane Cavalcante de Oliveira, em 15 de agosto de 1996, ao Departamento de Informática da PUC-Rio e aprovada pela comissão julgadora formada pelos seguintes professores: