Технологія оптимізованої передачі жестової мови в мережі Інтернет
Запропоновано метод передачі змодельованого процесу анімації мови жестів глухих у мережі Інтернет, який дозволяє ефективно передавати інтерактивні медіа дані на клієнтський комп'ютер. Реалізовано принципи оптимізації передачі даних. Предложен метод передачи смоделлированого процесса анимации яз...
Gespeichert in:
| Datum: | 2009 |
|---|---|
| Hauptverfasser: | , , |
| Format: | Artikel |
| Sprache: | Ukrainian |
| Veröffentlicht: |
Інститут програмних систем НАН України
2009
|
| Schlagworte: | |
| Online Zugang: | https://nasplib.isofts.kiev.ua/handle/123456789/4600 |
| Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
| Назва журналу: | Digital Library of Periodicals of National Academy of Sciences of Ukraine |
| Zitieren: | Технологія оптимізованої передачі жестової мови в мережі Інтернет / Ю.В. Крак, О.В. Бармак, Б.А. Троценко // Пробл. програмув. — 2009. — № 3. — С. 73-79. — Бібліогр.: 6 назв. — укр. |
Institution
Digital Library of Periodicals of National Academy of Sciences of Ukraine| id |
nasplib_isofts_kiev_ua-123456789-4600 |
|---|---|
| record_format |
dspace |
| spelling |
Крак, Ю.В. Бармак, О.В. Троценко, Б.А. 2009-12-08T12:04:57Z 2009-12-08T12:04:57Z 2009 Технологія оптимізованої передачі жестової мови в мережі Інтернет / Ю.В. Крак, О.В. Бармак, Б.А. Троценко // Пробл. програмув. — 2009. — № 3. — С. 73-79. — Бібліогр.: 6 назв. — укр. 1727-4907 https://nasplib.isofts.kiev.ua/handle/123456789/4600 004.85, 004.89 Запропоновано метод передачі змодельованого процесу анімації мови жестів глухих у мережі Інтернет, який дозволяє ефективно передавати інтерактивні медіа дані на клієнтський комп'ютер. Реалізовано принципи оптимізації передачі даних. Предложен метод передачи смоделлированого процесса анимации языка жестов глухих в сети Internet, который позволяет ефективно передавать интерактивные медиаданные на клиентский компьютер. Реализованы принципы оптимизации передачи данных. A method for transmission via Internet an animation containing visuals in sign language has been suggested. The method provides an effective way to transfer custom media data to the client’s computer. A principle of data transfer optimization has been applied. uk Інститут програмних систем НАН України Прикладне програмне забезпечення Технологія оптимізованої передачі жестової мови в мережі Інтернет Технология оптимизированной передачи языка жестов в сети Интернет Technology for optimized transmission of visuals via Internet Article published earlier |
| institution |
Digital Library of Periodicals of National Academy of Sciences of Ukraine |
| collection |
DSpace DC |
| title |
Технологія оптимізованої передачі жестової мови в мережі Інтернет |
| spellingShingle |
Технологія оптимізованої передачі жестової мови в мережі Інтернет Крак, Ю.В. Бармак, О.В. Троценко, Б.А. Прикладне програмне забезпечення |
| title_short |
Технологія оптимізованої передачі жестової мови в мережі Інтернет |
| title_full |
Технологія оптимізованої передачі жестової мови в мережі Інтернет |
| title_fullStr |
Технологія оптимізованої передачі жестової мови в мережі Інтернет |
| title_full_unstemmed |
Технологія оптимізованої передачі жестової мови в мережі Інтернет |
| title_sort |
технологія оптимізованої передачі жестової мови в мережі інтернет |
| author |
Крак, Ю.В. Бармак, О.В. Троценко, Б.А. |
| author_facet |
Крак, Ю.В. Бармак, О.В. Троценко, Б.А. |
| topic |
Прикладне програмне забезпечення |
| topic_facet |
Прикладне програмне забезпечення |
| publishDate |
2009 |
| language |
Ukrainian |
| publisher |
Інститут програмних систем НАН України |
| format |
Article |
| title_alt |
Технология оптимизированной передачи языка жестов в сети Интернет Technology for optimized transmission of visuals via Internet |
| description |
Запропоновано метод передачі змодельованого процесу анімації мови жестів глухих у мережі Інтернет, який дозволяє ефективно передавати інтерактивні медіа дані на клієнтський комп'ютер. Реалізовано принципи оптимізації передачі даних.
Предложен метод передачи смоделлированого процесса анимации языка жестов глухих в сети Internet, который позволяет ефективно передавать интерактивные медиаданные на клиентский компьютер. Реализованы принципы оптимизации передачи данных.
A method for transmission via Internet an animation containing visuals in sign language has been suggested. The method provides an effective way to transfer custom media data to the client’s computer. A principle of data transfer optimization has been applied.
|
| issn |
1727-4907 |
| url |
https://nasplib.isofts.kiev.ua/handle/123456789/4600 |
| citation_txt |
Технологія оптимізованої передачі жестової мови в мережі Інтернет / Ю.В. Крак, О.В. Бармак, Б.А. Троценко // Пробл. програмув. — 2009. — № 3. — С. 73-79. — Бібліогр.: 6 назв. — укр. |
| work_keys_str_mv |
AT krakûv tehnologíâoptimízovanoíperedačížestovoímovivmerežíínternet AT barmakov tehnologíâoptimízovanoíperedačížestovoímovivmerežíínternet AT trocenkoba tehnologíâoptimízovanoíperedačížestovoímovivmerežíínternet AT krakûv tehnologiâoptimizirovannoiperedačiâzykažestovvsetiinternet AT barmakov tehnologiâoptimizirovannoiperedačiâzykažestovvsetiinternet AT trocenkoba tehnologiâoptimizirovannoiperedačiâzykažestovvsetiinternet AT krakûv technologyforoptimizedtransmissionofvisualsviainternet AT barmakov technologyforoptimizedtransmissionofvisualsviainternet AT trocenkoba technologyforoptimizedtransmissionofvisualsviainternet |
| first_indexed |
2025-11-27T02:01:16Z |
| last_indexed |
2025-11-27T02:01:16Z |
| _version_ |
1850792556456050688 |
| fulltext |
Прикладне програмне забезпечення
73
УДК 004.85, 004.89
Ю.В. Крак, О.В. Бармак, Б.А. Троценко
ТЕХНОЛОГІЯ ОПТИМІЗОВАНОЇ ПЕРЕДАЧІ ЖЕСТОВОЇ
МОВИ В МЕРЕЖІ ІНТЕРНЕТ
Запропоновано метод передачі змодельованого процесу анімації мови жестів глухих у мережі Інтернет,
який дозволяє ефективно передавати інтерактивні медіа дані на клієнтський комп'ютер. Реалізовано
принципи оптимізації передачі даних.
Вступ
Кількість людей з вадами слуху, для
яких потрібно розробляти сучасні засоби
навчання і спілкування відповідно до
світового науково-технічного розвитку –
становить мільйони. Розвиток сучасної
науки, комп’ютеризація суспільства,
використання мультимедійних та Інтернет
технологій створили достатні умови для
розробки комп’ютерних систем комуніка-
ції цих людей у формах і образах близьких
і зрозумілих для них і для оточуючого
середовища.
Основною формою спілкування
глухих є мова жестів. На користь їм
можуть стати комп’ютерні технології: у [1]
обґрунтовується необхідність розробки та
концепція комп’ютерної інформаційної
технології невербального спілкування
людей з вадами слуху (нечуючими та
слабочуючими) з можливістю реалізації у
її рамках крім іншої і такої функціо-
нальності:
• відображення на обличчі триви-
мірної комп’ютерної моделі людини мов-
леннєвого процесу з урахуванням емоцій-
них складових;
• синтез рухів мови жестів глухих
та дактильної абетки на трьохмірній
моделі людини.
Подібні мультимедійні системи, що
мають велику базу даних аудіо- та
візуальної інформації, в обробленому та
передобробленому виглядах, на основі якої
будуть будуватись певні відповіді на
запити клієнта, наприклад, такі як
«показати фрагмент заданого тексту
візуально». У випадку, коли потрібно
«перекласти» певний фрагмент тексту зі
звичайної мови на мову глухонімих,
доцільно зберігати не відео-фрагмент
відповіді, а лише таку інформацію, з якої
дану відповідь можна отримати за
розумний час алгоритмічно. Перевагами
даного підходу, зокрема, є: відносна
компактність бази даних, що стосується
задачі в порівнянні зі збереженням готової
інформації; можливість видозмінювати та
доповнювати базу даних; можливість
отримання медіа виводу різної якості в
залежності від потужностей або потреб.
Зважаючи на соціальний запит до
подібних систем, їх слід зробити якомога
найбільш розповсюдженими, для чого
доцільно використати можливості мережі
Інтернет.
Оскільки обчислювальні можливо-
сті комп’ютерів широкого кола користу-
вачів значно різняться, так само як і значно
різняться можливості їх каналів зв’язку,
даний аспект слід урахувати при продуму-
ванні способу масового обслуговування,
для передачі даних через мережу Інтернет.
Користувач, на загал, бажає або
відразу почати використовувати техно-
логію, або, у найгіршому випадку, заван-
тажити певну розумну кількість інформації
з сервера. Адже не має сенсу для потреби
відображення жестовою мовою фрази
«доброго дня, Україно», довжиною у 10
секунд, заважувати сотні мегабайт інфор-
мації бази даних для препроцесингу, а
також спеціалізоване програмне забезпе-
чення для його обробки та відображення.
Зазначимо також таку рису задачі, як:
потрібний результат відносно легко фор-
мується з бази даних на єдиному ком-
п’ютері для кожного конкретного запиту,
водночас як зберігання готового відео-ряду
для множини всіх можливих запитів є
заширокою і нераціональною задачею.
© Ю.В. Крак, О.В. Бармак, В.А. Троценко, 2009
ISSN 1727-4907. Проблеми програмування. 2009. № 3
Прикладне програмне забезпечення
74
Отже, узагальнюючи, потрібна тех-
нологія постачання інтерактивної медіа
інформації на комп’ютер клієнта. Дана
медіа інформація в існуючій системі не
зберігатиметься у готовому вигляді, а
будуватиметься з певної підготовленої до
обробки інформації відповідно до вимог
клієнта. Слід розробити розумний спосіб
передачі відео-ряду з можливістю адап-
тації до потужностей цільової клієнтської
машини та ширини каналу передачі даних.
Слід використати компресію; при ком-
пресії надати можливість програмісту,
який використовує дану технологію, вра-
ховувати природу побудови зображень для
конкретної задачі.
Розробка форматів та методів
швидкої передачі високоякісних зобра-
жень, які генеруються динамічно, в мережі
Інтернет – досить актуальна задача. Існує
ціла лінійка програмних Інтернет-
технологій які призначені для 3D-візуалі-
зації предметного та сценічного простору,
для інтерактивного та динамічного відо-
браження графічних об’єктів. До найбільш
відомих варто віднести:
• Java [2] – внесла новий сенс інте-
рактивним здібностям Web. У Java багато
областей застосування, тривимірність
лише одна з них. На сайті Silicon Graphics
(www.sgi.com/fun/java) є посилання на
опис Java-системи VisAnimator, яка слу-
жить для інтерактивної візуалізації та ані-
мації в Інтернеті. Результат роботи аплета
VisAnimator – це вікно з 3D-об’єктом, який
обертається, під яким знаходяться три
кнопки керування: “Зупинити”, “Запус-
тити”, “Змінити швидкість”;
• технологія MetaStream [3] дозво-
ляє дискретно наближувати та віддаляти
об’єкт, переміщувати його на площині,
виділяти область зображення з тим, щоб
показати її загальним планом. Ця техно-
логія зарекомендувала себе на рекламному
ринку Інтернета завдяки простоті та функ-
ціональності;
• Flash [4] – технологія виробницт-
ва візуальних ефектів. Часто Flash застосо-
вують для динамічних заставок, організа-
ції багатофункціонального та розгалужено-
го меню. З допомогою Flash робляться і
тривимірні сцени.
Аналізуючи існуючі технології
можна прийти до висновку, що вони або не
мають інтерактивності, або для досягнення
її слід використовувати спеціальні плагіни,
які необхідно інсталювати на комп’ютер
клієнта. Це пов’язано з тим, що чим
простіший спосіб відтворення, тим більше
інформації слід зберігати. І навпаки: чим
компактніше представлена інформація,
тим більше обчислювальних витрат
потрібно для її використання. Ще недавно,
при використанні анімації персонажа в
мережі Інтернет або в інших
комп’ютерних мережах потрібно було
відповісти на питання: що більш критично
для метода представлення руху –
компактність чи швидкість обчислень?
Тому чим компактніше буде представлена
інформація, тим швидше вона передасться
по мережі і, отже, користувач не побачить
небажаних затримок у русі. Але з іншого
боку швидкість обчислень також важлива.
Який сенс швидко передавати інформацію
про рух, якщо перед тим як відобразити
рух, комп’ютер буде вимушений провести
обчислення, які займають більше часу, чим
передача інформації? На думку авторів
теперішня швидкість каналів передачі
інформації та швидкодія комп’ютерів
дозволяє кінцевим користувачам комфор-
тно користуватись інтерактивними медіа-
даними, для чого потрібно розробити пра-
вильний програмний засіб. Потреба в
такому засобі продиктована наступними
практичними задачами:
• навчальні задачі-тренажери (імі-
татори виробничих та інших процесів) – в
цих задачах анімація генерується дина-
мічно, в залежності від сценарію та команд
користувача; для реалізації цих задач
потрібно використовувати існуючі засоби
(Flash, VRML [5] тощо) і в клієнта має
бути завантажений відповідний плагін (не
завжди безкоштовний);
• задачі, пов’язані з передачею
відео-потоків, які формуються динамічно,
в залежності від команд користувача.
У даній роботі пропонується підхід
який дозволятиме вирішувати такого типу
задачі без необхідності прив’язки до
обмеженого списку стандартних засобів та
Прикладне програмне забезпечення
75
без необхідності у клієнта викори-
стовувати відповідні плагіни для браузера.
Постановка задачі
Слід запропонувати узагальнений
засіб оптимальної передачі динамічного
створеного зображення в мережі Інтернет з
можливістю керування ним. Для цього слід
розробити програмну реалізацію Web-
застосування з наступною функціональ-
ністю:
1) серверна частина застосування
має містити базовий метод створення
зображення у пам’яті (для можливості
наступного рендерінгу трьохмірним API у
цю область);
2) мають бути реалізовані методи
динамічної зміни цього зображення (зміна
формату зображення, оконтурювання
зображення тощо);
3) має бути реалізована можливість
динамічного виводу цього зображення у
стандартний елемент управління HTML-
сторінки;
4) має підтримуватись протокол
обміну між HTML-сторінкою та сервер-
ною частиною для керування процесом
рендерінгу (динамічна зміна формату зоб-
раження, обертання сцени, зміна перспек-
тиви тощо).
Концептуально потрібна функціо-
нальність, яка показана на схемі (рис.1).
Рис. 1. Схема передачі анімаційних
зображень у мережі Інтернет
Реалізація технології
Для реалізації технології запро-
поновано використовувати платформу
DOT.NET, тобто серверну частину реалізо-
вувати на ASP.NET. Для реалізації динамі-
чної передачі зображень з сервера та
отримання запитів від клієнта пропо-
нується використовувати технологію
Silverlight [6]. Вибір саме таких засобів
обумовлено наступними перевагами:
• ASP.NET пропонує повністю
об’єктно-орієнтовану модель програмуван-
ня, яка включає у себе архітектуру, що
керує подіями, яка базується на елементах
управління; ця архітектура забезпечує
інкапсуляцію та повторне використання
коду;
• ASP.NET підтримує всі основні
пристрої та браузери.
Але основною перевагою, з точки
зору потрібної функціональності є поява в
ASP.NET нової технології Silverlight. Вона
працює з використанням підключеного до
браузера модуля та надає скорочену
версію бібліотеки класів .NET Framework.
В цю скорочену версію входить міні-версія
WPF технології, якою розробники корис-
туються для створення інтерфейсів корис-
тувача наступного покоління для операцій-
них систем сім’ї Windows. Silverlight
дозволяє створювати більш функціональні
сторінки, ніж можна створювати викорис-
танням лише за допомогою HTML,
DHTML або JavaScript.
Для реалізації серверної та
клієнтської частин використано об’єктно-
орієнтовний підхід. Серверна частина
реалізована на ASP.NET.
Клієнтська частина, очевидно, не
може бути стандартним компоненом
браузера. Реалізація поставленої задачі
включатиме наперед непередбачувану по-
ведінку обробки зображень за допомогою
наперед незазначених алгоритмів. На
сьогоднішній день, це звужує коло базових
технологій клієнтської частини до Micro-
soft Silverlight, Adobe Flash, та Sun Java
Applets. Для забезпечення найбільшої зру-
чності розробки пари сериалізації та
десериалізації потоку даних було вибрано
Microsoft Silverlight для клієнтської части-
Прикладне програмне забезпечення
76
ни, та Microsoft ASP.Net для серверної
частини.
Робота технології на клієнтській
частині складатиметься з трьох етапів:
1) браузер клієнта завантажує
Silverlight-код відтворення відео, що вклю-
чає у себе спеціалізовані для конкретної
задачі алгоритми десериалізації потоку
кадрів;
2) Silverlight-код отримує певну
порцію загальних даних, якщо такі є, і
здійснює препроцесинг, який закладений в
алгоритмі. Разом з ними він отримує і 128-
бітний ідентифікатор сесії передачі даних,
який буде потрібен на наступному етапі;
3) Silverlight-код, по-перше, продов-
жує отримувати один за одним команди, за
допомого яких будуються фрейми; по-
друге, дає можливість серверу через окре-
ме з’єднання передавати інформацію, яка
визначає або дає можливість визначити
швидкість передачі даних.
Оскільки велика кількість користу-
вачів знаходиться у середовищі, захище-
ному проксі-сервером, то вибір було зроб-
лено на користь HTTP-протоколу, який або
використовується напряму, або підтриму-
ється всіма проксі-серверами. Альтерна-
тивою могло б бути пряме TCP-підключен-
ня.
Для двосторонньої передачі даних
між клієнтом та сервером з використанням
НТТР-протоколу, а зокрема, – передачі
даних з сервера та нотифікації сервера про
момент отримання пакета даних викорис-
товувався наступний підхід:
• клієнт (silverligth-код) надсилає
HTTP-GET запит. У відповідь він отримує
не наперед встановлену кількість даних, а
потік, що передається фрагментами
(“chunked”);
• клієнт (silverlight-код) надсилає
HTTP-PUT запит. Аналогічно, кількість
даних, що буде передана, не встанов-
люється, потік передається фрагментами
(“chunked”).
На багатьох серверах, у тому числі
на IIS, який потрібен для використання
платформи APS.Net, у разі застосування
даного підходу виникає проблема,
пов’язана з віртуалізацією обробки запи-
тів. Зокрема код, який буде обробляти пер-
ший, типу HTTP-GET, запит не має досту-
пу та безпосереднього зв’язку до коду, що
оброблятиме другий, типу HTTP-PUT,
запит; їхні адресні простори розділені.
Подібна віртуалізація, яка доцільно
реалізо-вана з точки зору безпеки, у дано-
му випадку ускладнює потрібну комуніка-
цію.
Зважаючи на те, що нам потрібно
всього лиш повідомляти перший код про
доставлені дані, а щонайбільше передавати
обмежену кількість команд, було
використано об’єкти ядра, що дозволяють
міжпроцесну комунікацію; найдоціль-
ніший у даному випадку – іменований
канал передачі даних: перший код
(обробник HTTP-GET запиту) вибирає ім'я
(текстове представлення 128-бітного ви-
падкового числа), створює іменований
канал і запускає потік читання даних з
нього. Ім'я каналу передається у відповіді
на HTTP-GET. Клієнт отримає ім'я і ство-
рить інше підключення типу HTTP-PUT.
Обробник даного підключення прочитає
ім'я іменованого каналу, відкриє такий
канал і записуватиме туди отримані коман-
ди. Таким чином перший обробник буде
проінформований.
Архітектура системи
Було створено і побудовано інформа-
ційну модель процесу, що оптимізується.
На першому (найвищому) логічно-
му рівні, відео інформація передається з
серверної сторони на сторону клієнта.
На наступному, другому, логічному
рівні, сервер закодовує відео інформацію
фрейм за фреймом, а також може
передбачати певну ініціалізацію клієнта,
клієнт — проводить ініціалізацію, а також
відтворює картинку на основі команд. На
цьому логічному рівні програміст (інже-
нер, розробник) може враховувати специ-
фіку задачі і структруру медіа даних, тобто
надати власну пару компресора-декомпре-
сора даних. На цьому рівні окремий потік
відповідає за обслуговування іменних
каналів та передачу команд компресора.
Рекомендований рівень компресії
виходить з розрахунку, що 10 відсотків
часу канал має або простоювати, або
резервується на непередбачену ситуацію,
Прикладне програмне забезпечення
77
наприклад, передачу даних іншим прог-
рамним забезпеченням на стороні клієнта.
На наступному, третьому, логіч-
ному рівні, команди сериалізуються на
стороні сервера і десериалізуються на сто-
роні клієнта. Це є останній логічний рівень
даної технології. Інформація на даному
рівні передається використанням HTTP
(Silverlight/Asp.net).
Оскільки код, який буде викону-
ватися на стороні клієнта, завантажується
або щоразу при передачі сторінки, або
використовується з кешу при наявності (на
відміну від постачання клієнта окремого
програмного забезпечення), дана техноло-
гія не потребує передбачення версій
протоколу: при зміні останнього (напри-
клад, розширення), модифікується також і
код, що буде виконуватись на стороні
клієнта.
Будемо вважати основною ту
частину, яка генерує медіа потік. У
розробленій технології є підтримка
встановлення бажаних параметрів (розмір,
частота кадрів), але остаточне рішення
надасть клас, який генерує медіа потік.
Оскільки ми маємо можливість
надсилати програвач кожного разу при
завантаженні сторінки, відпадає необхід-
ність підтримки версії протоколу.
Послідовність ініціалізації:
• користувач вводить дані, що
визначають вміст медіа інформації (напри-
клад, фразу, яку слід показати на мові
жестів);
• клієнтська частина запитує клас
відображення про бажані параметри;
• бажані параметри та параметри
ініціалізації надсилаються на сервер;
• на сервері створюється клас, що
генеруватиме медіа потік;
• серверний клас здійснює ініціалі-
зацію, валідує параметри;
• дані ініціалізації серверного
класу і валідовані параметри надсилаються
на клієнтську сторону;
• клієнтська сторона здійснює
ініціалізацію, встановлює додаткове з'єд-
нання для інформування про надіслані
команди і отримання фреймів.
Класи реалізації
Загальні класи, які використову-
ються технологією, показані на рис. 2.
Статичний клас BinaryIOTools міс-
тить методи передачі даних найнижчого
рівня для даної технології. Ці методи
використовуються серверними та клієнт-
ськими класами обслуговування передачі
даних і включають в себе читання та запис
масивів байт, рядків, асоціативних масивів
рядків та глобальних ідентифікаторів.
Рис. 2. Класи, які використовуються
Клас ViewerCommand інкапсулює
команду, яку клієнт надсилає на сервер.
Окремо виділені інформаційні команди
підтримки сесії, повідомлення про закін-
чення ініціалізації клієнтської сторони,
повідомлення про отримання фрейма.
Інтерфейси
Інтерфейс IFramesProducer (рис. 3)
створено для роботи з класами, які тран-
слюють медіа дані. За допомогою нього
отримуються медіа дані з вищого (ніж дана
технологія) рівня. Практично даними може
бути довільний відео-потік, або клас, де
зображено віртуальну людину, яка говори-
ть мовою жестів.
Передбачено задання бажаних для
клієнта розміру фрейма та частоти його
зміни через методи SetPreferableFrameSize
та SetPreferableFrameRate відповідно, але
архітектурно останнє слово залишається за
класом-наслідником IFramesProducer: дій-
сні розмір фрейма і частота його зміни,
яку можна отримати через методи
GetFrameSize, GetFrameRate. Передбачає-
ться що виклик цих методів є підготовчим
етапом ініціалізації класу-транслятора.
Прикладне програмне забезпечення
78
Рис. 3. Інтерфейси
Безпосередньо для ініціалізації
передбачено метод Prefetch. У цьому
методі клас-транслятор може, наприклад,
створити підключення до бази даних і
завантажити у відео-пам’ять базовий меш
трикутників. Даний метод повертає масив
байт, які будуть передані на сторону
клієнта для ініціалізації. Конкретна
реалізація цих інтерфейсів може, для
прикладу, передавати базові налаштування
голосу, спрайти — все, що буде
використане для побудови фреймів.
Робочий режим реалізується через
метод GetNextFrame. Через параметри він
повертає асоційований масив рядків
“ключ-значення” та масив байт. Передба-
чається, що саме масив байт визначатиме
побудову фрейма, а асоційований масив
містить опціональні параметри відоб-
раження. Для рапортування про кінець
трансляції сервер повертає порожній масив
байт.
Передбачено вплив на трансляцію у
процесі. Асинхронно з викликами методів
Prefetch і GetNextFrame може бути виклик
методу ConsiderCommand. Цьому методу
передається ідентифікатор команди,
отриманої від клієнтської сторони.
Інтерфейс IFramesConsumer створено
для роботи з класами, які приймають і
відтворюють трансляцію. Передбачено
отримання бажаних розміру фрейма та
частоти його зміни через методи
GetPreferableSize та GetPreferableRate, але
зрештою буде виконане налаштування на
дані транслятора методами SetSize та
SetRate.
Ініціалізація клієнтської сторони
проводиться у методі Initialize. Цей метод
буде виконаний після ініціалізації сервер-
ної частини і йому буде передано масив
байт, отриманий з методу Prefetch. Після
ініціалізації рекомендується надсилати
серверу інформаційну команду закінчення
ініціалізації.
Робочий режим клієнта є серією
викликів AddFrame. Даному методу
передається асоціативний словник та
масив байт, які отримані від виклику
GetNextFrame серверної частини. Після
отримання фрейма рекомендується
надсилати інформаційну команду
отримання фрейма.
На стороні сервера
Клас ServerSideStreamer (рис. 4)
реалізує логіку передачі медіа даних на
сторону клієнта. Його конструктору слід
передати канал виводу інформації
(наприклад, потік виводу відповіді на
HTTP запит) і клас, який здійснюватиме
трансляцію. Конструктор створює два
потоки:
• перший потік створює
іменований канал даних, у циклі отримує
ідентифікатори команд та передає їх класу-
транслятору;
• другий потік ініціалізує
транслятор і у циклі генерує та надсилає
фрейми.
Рис. 4. Класи на стороні сервера
Таким чином, створення екземпляра
класу ServerSideStreamer не блокує потік,
який створюється.
Клас ServerSideStreamerInformer
створено для інформування класу-
транслятора про отримані команди. Конс-
труктору класу передається потік, з якого
приходять ідентифікатори команд. За
домовленістю, перший ідентифікатор є
іменем іменованого каналу, через який
команди будуть передаватись класу
ServerSideStreamer. Цей клас передбачено
для обробника HTTP-put запиту.
Прикладне програмне забезпечення
79
На стороні клієнта
Клас ClientSideServerInformer (рис. 5)
створений для зручного надсилання
команд з клієнтської сторони на серверну.
Конструктору даного класу передається
потік виводу. Конструктор створює
додатковий потік для надсилання даних,
чергу команд і семафор – для інформуван-
ня потоку про появу елемента в черзі.
Керування повертається відразу, потік,
який викликає конструктор, не блокується.
Рис. 5. Класи на стороні клієнта
Метод SendCommandAsync додає
ідентифікатор команди в чергу і відразу
повертає керування.
Клас ClientSideStreamConsumer є ло-
гічною парою до класу ServerSideStreamer
і, відповідно, отримує з заданого прото-
колу дані та десериалізує їх, ініціалізує і
веде робочий цикл класу, який відображає
дані, а також надсилає інформаційні
команди серверній частині. Відповідно
конструктор даного класу приймає потік,
об'єкт класу, який реалізує IFrames-
Consumer і об'єкт ClientSideServerInformer.
Результати прототипного
моделювання
Для тестування запропонованої
технології було створене прототипне
застосування (рис. 6). Як медіа дані для
передачі використовувався потік змоде-
люваного трьохмірним API анімаційного
зображення морфем мови жестів. Тесту-
вання показало спроможність запропо-
нованої технології.
Рис. 6. Прототипне застосування технології
Висновки
У роботі запропоновано і роз-
роблено метод передачі зображень у
мережі Інтернет, який дозволяє ефективно
передавати інтерактивні медіа дані на
клієнтський комп'ютер. Результати прото-
типного моделювання показали життє-
спроможність технології. Розроблена
технологія – універсальний засіб для
передачі інформації як для універсальних,
так і для спеціалізованих систем, нап-
риклад, дистанційного навчання жес-
тової мови.
Подальші дослідження будуть
направлені на використання запропо-
нованої технології для створення різного
роду застосувань, для передачі синте-
зованої мови жестів у мережі Інтернет.
1. Кривонос Ю.Г., Крак Ю.В., Бармак О.В.,
Тернов А.С. Інформаційна технологія
невербального спілкування людей з вадами
слуху // Журн. Штучний інтелект. – 2008 –
№ 3. – С. 325–331.
2. www.java.com
3. www.bitek.ru/technologies/3d/metastream
4. www.adobe.com/flashplatform/
5. xml.coverpages.org/vrml-X3D.html
6. www.silverlight.net
Отримано 24.03.2009
Прикладне програмне забезпечення
80
Про авторів:
Крак Юрій Васильович,
доктор фізико-математичних наук,
професор,
Бармак Олександр Володимирович,
кандидат технічних наук,
старший науковий співробітник,
Троценко Богдан Анатолійович,
аспірант, інженер-програміст
другої категорії.
Місце роботи авторів:
Інститут кібернетики імені В.М. Глушкова
НАН України
03187, Київ-187,
Проспект Академіка Глушкова, 40.
Тел.: 8(067) 930 6752; 8(068) 172 9821;
8(068) 351 1074.
yuri.krak@gmail.com
alexander.barmak@gmail.com
modosansreves@gmail.com
|