ПАРАЛЛЕЛЬНАЯ ВЫЧИСЛИТЕЛЬНАЯ СИСТЕМА АКТИВНОГО ВИДЕО Российский патент 2004 года по МПК G06T1/20 G06F17/00 

Описание патента на изобретение RU2229745C2

Изобретение относится к области вычислительной техники и предназначено для интерактивной обработки видеоинформации, получившей название “активного видео”, и ориентировано в первую очередь на следующие области применений: обучающие системы нового типа, тренажеры различного назначения (например, в машиностроении и медицине), “наглядные советчики” оператору или сборщику, мультимедийные применения (прежде всего компьютерные игры); телевидение, кинематография, игровые автоматы и пр.

Под “активным видео” (АВ) понимается развитый человеко-машинный интерфейс, дающий пользователю возможность в динамике управлять воспроизведением на компьютере одновременно текстовых, графических, видео- и аудиоинформационных потоков, представленных в цифровой форме, и манипулировать ими в интерактивном режиме.

Ближайшим прототипом заявляемого изобретения является “Параллельная вычислительная система активного видео” по патенту на изобретение № 2173883, МПК 7 G 06 Т 1/20, с приоритетом от 11.11.1999 г. Указанная система реализует оригинальную технологию АВ, которая базируется на использовании активных видеообъектов (например, фрагментов или персонажей видеокадров) и обеспечивает реализацию новых функций и эффектов АВ, в частности:

- составление произвольных по желанию, опыту или интуиции пользователя сценарных алгоритмов для манипуляций над упомянутыми информационными потоками и активными объектами, различных версий и комбинаций таких сценариев;

- воспроизведение указанных пользователем последовательностей (потоков) видеоизображений и звукозаписей в реальном масштабе времени;

- автоматическую реализацию заданных пользователем последовательностей переходов по активным видеообъектам в каждом из потоков и между потоками по заранее составленному сценарию, допускающему динамические изменения последовательностей указанных переходов (т.е. динамические замены версий сценариев воспроизведения видео- и аудиопотоков) по сигналам от пользователя непосредственно при воспроизведении видеоизображений и звукозаписей, т.е. в режиме реального времени, соответствующем воспроизведению, например, 30 или 50 видеокадров в секунду;

- упрощение и повышение скорости управления потоками видео- и аудиоинформации в интерактивном режиме, а также процессов взаимодействия пользователя с активными объектами в режиме реального времени, при высокой точности позиционирования курсора манипулятора “мыши” на активных объектах;

- возможность управления скоростью воспроизведения видеообъектов (замедление, остановка воспроизведения).

Перечисленные выше функции технологии АВ реализуются при сохранении достигнутых в настоящее время высоких точности и качества воспроизведения видео- и аудиоинформации в современных персональных компьютерах.

При использовании технологии АВ исходный видеофайл не подвергается ни малейшим изменениям или искажениям. Последовательность воспроизведенных видеокадров может запоминаться в оперативной памяти компьютера программными средствами как “трасса” создаваемой пользователем версии воспроизведения видеофайла. В результате, на основе одного и того же видеофайла может создаваться множество версий воспроизведения из одного и того же исходного материала.

Указанный прототип содержит типовой персональный компьютер (ПК), включающий центральный процессор, оперативное запоминающее устройство, контроллер внешних запоминающих устройств, внешние запоминающие устройства, контроллер периферийных устройств и манипулятор (“мышь”), стандартные видеоадаптер и аудиоадаптер, подключенные к стандартной периферийной шине (названной в прототипе системной шиной), стандартный монитор и стандартную акустическую систему, а также содержит дополнительно введенные блок управления файлами, буфер файлов-сценариев, буфер видеофайлов, буфер аудиофайлов, блок управления видеофайлом, блок управления аудиофайлом со специальными связями между ними, причем информационные входы буфера файлов сценариев, буфера видеофайлов и буфера аудиофайлов также подключены к указанной периферийной шине.

Целью заявляемого изобретения и ожидаемым техническим эффектом от него является, по сравнению с прототипом, существенное упрощение системы, радикальное сокращение объема памяти, требуемой для управления указанными информационными потоками, а также расширение функциональных возможностей системы: некритичность к количеству, формам и размерам активных объектов в видеокадре, к перемещениям и изменениям форм (деформациям) активных объектов по кадрам видеопотока, некритичность к размерности “сетки”, накладываемой на видеокадры в процессе подготовки механизма управления видеопотоками, наряду с реализацией указанных выше функций и эффектов прототипа.

Блок-схема параллельной вычислительной системы активного видео, являющейся предметом изобретения, приведена на фиг.1; на фиг. 2,а приведен упрощенный пример кадра видеофайла, на фиг. 2,б - пример наложения “сетки” XxY на этот кадр; на фиг. 3,а - пример аппроксимации активного объекта прямоугольниками, на фиг. 3,б - пример карты активного объекта с заголовком этого объекта; на фиг. 4,а - пример (k)-го кадра видеофайла с двумя активными объектами, на фиг. 4,б - пример (k+i)-го кадра видеофайла с наложением контуров активных объектов базового кадра и общим смещением координат обоих объектов, на фиг. 4,в - пример (k+i+j)-го кадра видеофайла с общим смещением координат обоих активных объектов и частным смещением одного из объектов, на фиг. 4,г - пример (k+i+j+l)-го кадра видеофайла с новым активным объектом, общим смещением двух прежних активных объектов, частным смещением и деформацией одного из объектов; на фиг. 5,а - базовый кадр файла-сценария, соответствующий (k)-му кадру видеофайла, на фиг. 5,б, 5,в и 5,г - кадры файла-сценария для (k+i)-го, (k+i+j)-го и (k+i+j+l)-го кадров видеофайла соответственно; на фиг. 6 - пример структурной реализации блока распаковки кадра файла-сценария; на фиг. 7,а, 7,б и 7,в - содержимое координатного блока (его таблицы) для рассматриваемых примеров.

Предложенная параллельная вычислительная система (фиг. 1) содержит персональный компьютер 1, включающий центральный процессор 2, оперативное запоминающее устройство 3, контроллер 4 внешних запоминающих устройств и контроллер 5 периферийных устройств, подключенные к стандартной периферийной шине 6 (например, типа PCI), внешние запоминающие устройства (ВЗУ) 7, подключенные к контроллеру 4 ВЗУ, манипулятор (“мышь”) 8, выход которого соединен со входом контроллера 5 периферийных устройств, монитор 9 и акустическую систему 10, входы которых соединены с выходами видеоадаптера 11 и аудиоадаптера 12 соответственно, причем последние также подключены к периферийной шине 6, а также содержит устройство 13 обработки файла-сценария, работающее параллельно с центральным процессором 2 персонального компьютера 1.

Устройство 13 обработки файла-сценария содержит (фиг. 1) блок 14 локальной памяти, блок 15 распаковки кадра файла-сценария, сумматор 16, компаратор 17, локальную шину 18, шину 19 локальной памяти, буфер 20 шины локальной памяти, блок 21 автономного управления, блок 22 регистров, координатный блок 23, стандартный блок 24 интерфейса периферийной шины, тактовый генератор 25.

Перечисленные компоненты устройства 13 обработки файла-сценария имеют следующие связи: блок 14 локальной памяти подключен к шине 19 локальной памяти, к которой подключены также буфер 20 шины локальной памяти, блок 21 автономного управления, блок 22 регистров, координатный блок 23, первый и второй входы компаратора 17, входы блока 15 распаковки кадра файла-сценария и выход сумматора 16, к локальной шине 18 подключены буфер 20 шины локальной памяти, блок 22 регистров и блок 24 интерфейса периферийной шины, подключенный также к периферийной шине 6, причем управляющий выход блока 24 интерфейса периферийной шины соединен с первым входом блока 21 автономного управления, со вторым, третьим и четвертым входами которого соединены выходы блока 22 регистров, компаратора 17 и блока 15 распаковки кадра файла-сценария соответственно, выход блока 21 автономного управления соединен с управляющими входами сумматора 16 и блока 15 распаковки кадра файла-сценария, первый, второй, третий и четвертый выходы последнего соединены соответственно с первым, вторым, третьим и четвертым входами сумматора 16, выход тактового генератора 25 соединен с синхронизирующими входами блока 14 локальной памяти, блока 15 распаковки кадра файла-сценария, сумматора 16, компаратора 17, блока 21 автономного управления, блока 22 регистров и координатного блока 23.

Новыми признаками предложенной системы по фиг.1 являются: устройство 13 обработки файла-сценария в целом и его структура (компоненты 14-25 с их связями, описанными выше).

Предложенная система реализует новую версию технологии “активного видео”. Эта версия включает, как и в прототипе, те же два основных этапа (реализация которых, однако, существенно отличается от прототипа новыми алгоритмическими и аппаратурными средствами их выполнения):

- этап редактирования, который реализуется в статике, в режиме диалога с пользователем (которого на этом этапе реализации технологии будем называть пользователем-редактором), программными и стандартными аппаратурными средствами персонального компьютера 1, периферийной шины 6, ВЗУ 7, “мыши” 8, монитора 9, акустической системы 10, видеоадаптера 11 и аудиоадаптера 12 (фиг. 1) без использования устройства 13 обработки файла-сценария. На этом этапе подготавливается служебная информация, необходимая для выполнения следующего этапа, формируется так называемый файл-сценарий;

- этап воспроизведения видеоизображений и звукозаписей, их различных последовательностей и комбинаций; реализуется в реальном масштабе времени при непосредственном участии пользователя, просматривающего на мониторе 9 компьютера 1 видеозапись (видеофайлы), для которой сформирован файл-сценарий на предыдущем этапе редактирования. Для реализации этого этапа используются новые аппаратурные средства - устройство 13 обработки файла-сценария с его новыми компонентами и связями (фиг. 1) - наряду с использованием указанных ранее стандартных средств воспроизведения видео- и аудиоинформации (устройства 6-12) и собственно персонального компьютера 1 (с устройствами 2-5).

На этапе редактирования, как и в прототипе, используются три потока информации:

- видеофайл, состоящий из видеокадров, каждый из которых содержит оцифрованное цветное изображение (например, в международном стандарте MPEG); упрощенный пример кадра видеофайла приведен на фиг. 2,а;

- аудиофайл, представляющий собой оцифрованную звуковую запись;

- информация от “мыши” 8 - координаты курсора и сигналы нажатия кнопки “мыши”.

Смысл этапа редактирования состоит в формировании упомянутого файла-сценария, соответствующего одному или нескольким видео- и аудиофайлам. Для формирования файла-сценария используются следующие основные программные процедуры:

I) Вывод видеокадра (например, первого кадра видеофайла) на экран монитора 9; упрощенный пример кадра видеофайла приведен на фиг. 2,а.

II) Наложение прямоугольной “сетки” размерностью Х строк и Y столбцов на данный видеокадр, в результате чего видеокадр на экране монитора 9 оказывается разделенным на XxY элементарных прямоугольных ячеек, например X=Y=256 (см. фиг. 2,б, где для наглядности принято X=Y=32). Для этого используется набор “сеток” (16×16, 32×32, 64×64 и т.п.). Выбор размерности “сетки” осуществляется пользователем-редактором в зависимости от требуемой точности выделения фрагментов видеокадра и эргономических возможностей человека.

III) Выделение с помощью “мыши” 8 фрагментов видеокадра, выбираемых пользователем-редактором (по его желанию, опыту или интуиции) в качестве активных объектов (один или несколько персонажей, предметы, части фона видеокадра). Как и в прототипе, использование активных объектов является основой рассматриваемой технологии АВ для достижения эффектов, указанных выше.

Выделение активных объектов осуществляется путем обхода (курсором “мыши” 8) ячеек “сетки”, обрамляющих контур каждого из выбранных пользователем активных объектов частей видеоизображения, с запоминанием координат указанных ячеек “сетки” в оперативном запоминающем устройстве 3 персонального компьютера 1. В отличие от технологии, реализуемой прототипом, контур каждого активного объекта выделяется (аппроксимируется) прямоугольниками, причем каждый объект может аппроксимироваться одним или несколькими прямоугольниками (см. фиг. 3,а, где активный объект А аппроксимирован 9-ю прямоугольниками).

IV) Каждый прямоугольник кодируется координатами Хн, Yн начальной (верхней левой) и Хк, Yк конечной (нижней правой) ячейки “сетки”, принадлежащей данному прямоугольнику. Если “сетка” имеет размерность, например, 256×256, то каждая координата кодируется одним байтом, и тогда описание прямоугольников активного объекта А на фиг. 3,а занимает объем памяти всего в 36 байтов. Заметим, что в прототипе кодируются все ячейки видеокадра вне зависимости от того, принадлежат ли они активным объектам или нет, причем объем памяти, используемой для хранения кодировки объектов, зависит от числа активных объектов в данном видеокадре, а также от размерности “сетки”.

Прямоугольник, принадлежащий активному объекту, может содержать произвольное количество ячеек “сетки” - от одной ячейки до XxY ячеек. В последнем случае все ячейки видеокадра принадлежат одному активному объекту. С другой стороны, количество активных объектов и аппроксимирующих их прямоугольников в видеокадре также может быть в общем случае произвольным, вплоть до XxY. Активные объекты (их прямоугольники) могут соприкасаться сторонами, но не пересекаться, т.е. каждая ячейка может принадлежать не более чем одному активному объекту. В то же время в отличие от прототипа несколько прямоугольников, отнесенных к одному и тому же активному объекту, могут не соприкасаться между собой.

V) Формирование (и запоминание в ОЗУ 3 персонального компьютера 1) карты активного объекта, которая в отличие от прототипа представляет собой либо совокупность координат прямоугольников, принадлежащих данному активному объекту (см. фиг.3,б), либо данные о смещении объекта, которые будут пояснены ниже. Карте объекта присваивается номер (или имя) этого активного объекта. Этот номер записывается в заголовок карты активного объекта (занимающий, например, 4 байта), в котором также указывается длина (объем) карты (например, в 4-байтных словах), а также назначаемый пользователем-редактором признак d смещения координат объекта (1 бит). Карта активного объекта вместе с ее заголовком для примера по фиг. 3,а приведена на фиг. 3,б (здесь d=0 означает отсутствие смещения объекта).

VI) Формирование (и запоминание в ОЗУ 3 персонального компьютера 1) кадра файла-сценария, состоящего из карт всех активных объектов данного видеокадра, заголовка кадра, данных об общем смещении объектов по кадрам видеоряда и ссылки на базовый кадр файла-сценария (примеры кадров файла-сценария и пояснения смещений объектов будут приведены ниже). Таким образом, кадр файла-сценария описывает только контуры активных объектов в соответствующем ему видеокадре, закодированные указанным выше образом (т.е. заданные координатами прямоугольников).

VII) По мере просмотра и анализа кадров видеофайла в ОЗУ 3 персонального компьютера 1 формируется массив кадров файла-сценария, при этом все видеокадры и соответствующие им кадры файла-сценария нумеруются.

VIII) Формирование (и запоминание в ОЗУ 3 персонального компьютера 1) таблицы соответствия номеров всех видеокадров и номеров кадров файла-сценария. Каждая строка этой таблицы содержит:

- номер видеофайла и номер видеокадра в этом файле;

- номер кадра файла-сценария, соответствующего данному видеокадру;

- адрес соответствующего ему кадра файла-сценария в массиве кадров файла-сценария.

Если какой-либо видеокадр не содержит активных объектов, указанных пользователем, то в таблице соответствия, в строке с номером этого видеокадра содержится нулевая информация о кадре файла-сценария.

IX) Формирование и запоминание в ОЗУ 3 персонального компьютера 1 массива свойств (признаков) активных объектов, которые необходимы для реализации указанных выше функций технологии АВ.

Подробно признаки активных объектов изложены в прототипе. Ниже указаны только некоторые признаки, используемые в последующем изложении:

- адрес данного активного объекта: номера видеофайла и соответствующего ему файла-сценария, номер кадра в видеофайле и адрес кадра файла-сценария в массиве кадров файла-сценария, номер объекта (в последующем изложении для простоты рассматривается один видеофайл и только один соответствующий ему массив кадров файла-сценария);

- видеосвойства активного объекта: номера первого и последнего видеокадров (последовательность видеокадров) для воспроизведения активного объекта, число циклических воспроизведений указанной последовательности или повторений одного и того же видеокадра и пр.;

- аудиосвойства активного объекта: номер аудиофайла, из которого берется звукозапись, времена начала и окончания фрагмента звукозаписи (задается от начала аудиофайла), количество циклических воспроизведений фрагмента звукозаписи и пр.;

- параметры управления активным объектом - адрес перехода с данного активного объекта на другой, указанный пользователем-редактором активный объект или видеокадр (используется при нажатии кнопки “мыши”, если ее курсор находится над данным активным объектом на этапе воспроизведения): номер видеофайла, содержащего указанный пользователем активный объект или видеокадр, номер кадра в этом видеофайле, номер указанного пользователем объекта.

Массив свойств объектов является частью файла-сценария и при воспроизведении видеоизображений и звукозаписей хранится в ОЗУ 3 персонального компьютера 1.

В целом файл-сценарий, формируемый на этапе редактирования, включает следующие части:

- массив кадров файла-сценария,

- таблицу соответствия номеров всех видеокадров и номеров кадров файла-сценария,

- массив свойств (признаков) объектов.

Помимо описанного выше метода выделения активных объектов с помощью прямоугольников в рассматриваемой версии технологии АВ и предлагаемой системе используется механизм базовых карт и базовых кадров файла-сценария, а также специальный аппарат описания смещений координат и деформации активных объектов видеокадров. Эти средства позволяют описывать в остальных (небазовых) кадрах файла-сценария только корректирующую информацию о координатах и форме активных объектов по отношению к базовым картам и кадрам.

Базовой картой считается карта кадра файла-сценария, содержащая только координаты прямоугольников, аппроксимирующих активные объекты видеокадра, с признаком d=0 в заголовке карты, что означает отсутствие смещения активного объекта. Соответственно базовым считается кадр файла-сценария, включающий базовую карту.

По мере просмотра видеофайла пользователь-редактор может по своему усмотрению выбрать видеокадр, для которого по описанным выше процедурам III, IV, V и VI формируется базовый кадр файла-сценария; при этом в соответствующей строке таблицы соответствия номеров видеокадров и кадров файла-сценария пользователем устанавливается специальная метка. В общем случае базовый кадр файла-сценария может быть сформирован для каждого кадра видеофайла. Но тогда число базовых кадров файла-сценария было бы равно числу видеокадров. Это, естественно, привело бы к значительному увеличению объема файла-сценария.

В качестве альтернативы такому подходу предлагается использовать, кроме базовых кадров файла-сценария, также и небазовые кадры, что позволяет существенно сократить объем файла-сценария.

Корректирующая информация в небазовых кадрах файла-сценария может включать:

- данные о смещениях координат прямоугольников по отношению к их координатам в базовой карте как для координат всех активных объектов видеокадра, так и для каждого такого объекта в отдельности. Таким образом, полное смещение координат активного объекта является суммой общего смещения для всех активных объектов видеокадра и частного смещения конкретного активного объекта;

- координаты прямоугольников, дополняющих активные объекты видеокадра или исключаемых из таких объектов (в случаях деформации, т.е. изменения формы активных объектов по кадрам видеоряда), вплоть до включения новых активных объектов и/или исключения прежних активных объектов.

Добавление новых фрагментов к существующим активным объектам и включение новых активных объектов производится по описанным выше процедурам III и IV, т.е. на основе аппроксимации этих фрагментов прямоугольниками, с присваиванием этим прямоугольникам номеров соответствующих активных объектов. Аналогичные процедуры производятся при появлении новых активных объектов в видеокадре.

Для исключения активного объекта, описанного в базовой карте, или части такого объекта соответствующие им прямоугольники приписываются к объекту с номером "0". Объект с нулевым номером рассматривается как неактивный объект.

Каждый кадр файла-сценария включает его заголовок. Заголовок создается пользователем-редактором в процессе просмотра видеокадра и создания для него кадра файла-сценария. Структура заголовка одинакова для любого - базового или небазового - кадра файла-сценария.

Заголовок состоит из трех частей, соответствующих, например, трем 4-байтным словам. Первая часть заголовка включает признак S (1 бит) ссылки на базовый кадр файла-сценария и признак D (1 бит) наличия или отсутствия общего смещения координат всех активных объектов текущего видеокадра относительно их координат, описанных в базовой карте, а также включает длину (объем) этой карты (например, в 4-байтных словах), фиг. 5,а. В базовом кадре файла-сценария признаки S и D имеют значения 0. Вторая часть заголовка содержит адрес базового кадра файла-сценария. Третья часть заголовка содержит значения общего смещения ΔХобщ и ΔYобщ координат всех активных объектов текущего видеокадра по отношению к их координатам, описанным в базовой карте. Вторая и третья части заголовка базового кадра файла-сценария имеют значения “0”.

Примеры на фиг. 4 и 5 иллюстрируют изложенные определения и процедуры.

На фиг. 4,а приведено упрощенное изображение некоторого (k)-го видеокадра (здесь выбрана “сетка” XxY=16×16) с двумя активными объектами: с номерами 1 и 2. Пусть пользователь-редактор (произвольно либо по своему желанию или опыту) принял решение, что соответствующий кадр файла-сценария является базовым. Для данного случая базовый кадр файла-сценария, соответствующий (k)-му кадру видеофайла, приведен на фиг. 5,а; признаки S и D в заголовке базового кадра имеют значение "0". Адрес базового кадра файла-сценария и значения общего смещения ΔХобщ и ΔYобщ равны "0".

Если на q последующих видеокадрах координаты и/или формы активных объектов изменяются несущественно, например, отличаясь от их координат в базовой карте на ограниченное количество (назначаемое пользователем-редактором) ячеек “сетки”, то в таблице соответствия в q строках этих видеокадров записывается номер одного и того же базового кадра файла-сценария, а следовательно, этим q видеокадрам соответствует только одна базовая карта вместо q таких же карт. Для реальных видеофайлов число q может быть равно десяткам и даже сотням видеокадров.

Сопоставление координат активных объектов текущего видеокадра с их координатами в базовом кадре файла-сценария выполняется программными средствами путем наложения контуров всех активных объектов базового кадра файла-сценария на текущий видеокадр. Эта процедура аналогична процедуре II наложения “сетки” на видеокадр на экране монитора 9. Пример такого наложения приведен на фиг. 4,б; здесь контуры активных объектов, содержащихся в (k)-м видеокадре (фиг. 4,а), наложены на текущий (k+j)-й видеокадр и выделены пунктиром.

Пусть в некотором (k+i)-oм видеокадре в результате указанной процедуры наложения контуров активных объектов, описанных в базовой карте, пользователем-редактором зафиксировано некоторое смещение координат активных объектов по отношению к их координатам в базовом кадре файла-сценария (фиг. 4,б). В этом случае фиксируется смещение данного активного объекта в ячейках “сетки” по координатам Х и Y. Фиксация смещения может выполняться либо автоматически программными средствами, либо вручную пользователем-редактором. Данная процедура выполняется для всех активных объектов. Если значения смещений по соответствующим координатам одинаковы для всех активных объектов, то фиксируется общее смещение ΔХобщ и ΔYобщ активных объектов. Кадр файла-сценария, соответствующий (k+i)-мy кадру видеофайла, приведен на фиг.5,б и содержит заголовок с признаком S=1 (ссылка на базовый кадр) и признаком D=1 (общее смещение координат всех объектов), адрес базового кадра файла-сценария и значения смещений ΔХобщ и ΔYобщ.

На фиг. 4,в приведен (k+i+j)-й кадр видеофайла, где в результате описанных выше процедур наложения контуров активных объектов обнаружено общее смещение ΔХобщ и ΔYобщ обоих активных объектов 1 и 2, а также частное смещение ΔX1, ΔY1 объекта 1. Соответствующий кадр файла-сценария приведен на фиг. 5,в и включает заголовок карты объекта 1 (с признаком d=1 смещения координат данного объекта), а также значения ΔX1, ΔY1 частного смещения этого объекта.

Заметим, что по усмотрению пользователя-редактора для рассматриваемого (k+i+j)-го кадра видеофайла может быть сформирован иной кадр файла-сценария, в карте которого описываются только частные смещения обоих активных объектов 1 и 2.

Смещения активных объектов, как общие, так и частные, не относятся к координатам прямоугольников, описанных в карте текущего небазового кадра файла-сценария. Они относятся к координатам активных объектов в базовой карте в базовом кадре файла-сценария.

На фиг. 4,г приведен некоторый (k+i+j+l)-й кадр видеофайла, где в результате описанных процедур обнаружено общее смещение обоих активных объектов 1 и 2, частное смещение объекта 1, а также изменение формы (деформация) этого объекта. Изменение формы заключается в том, что из прежнего контура объекта 1 исключены прямоугольники с координатами Хнк=1, Yн=Yк=2 и Xн=Xк=6, Yн=Yк=2, которые обведены пунктиром. Эти прямоугольники приписываются к неактивному объекту с номером "0". Карта нулевого объекта формируется так же, как и карта активного объекта, и заносится в кадр файла-сценария, соответствующий (k+i+j+l)-му кадру видеофайла, на фиг. 5,г. Отметим, что прямоугольники объекта с номером "0" в этом примере не соприкасаются один с другим.

Кроме того, в этом же (k+i+j+l)-ом кадре видеофайла обнаружено появление нового объекта, который обозначен номером 3 (см. фиг. 4,г). По усмотрению пользователя-редактора данный объект может рассматриваться как активный. В этом случае по описанным ранее процедурам III, IV и V формируется карта данного объекта, которая заносится в тот же кадр файла-сценария (см. фиг. 5,г).

Порядок размещения карт объектов в небазовом или базовом кадре файла-сценария произвольный: карты активных объектов не сортируются по номеру объекта, взаимное расположение карт новых объектов и карт, описывающих частные смещения остальных объектов, также произвольно.

Если длина текущего небазового кадра файла-сценария становится соизмеримой с длиной соответствующего ему базового кадра, то пользователь-редактор может задать новый базовый кадр, который формируется по описанным ранее процедурам III-VI. Как и ранее, в соответствующей строке таблицы соответствия номеров видеокадров и кадров файла-сценария пользователем устанавливается очередная специальная метка. Новый базовый кадр файла-сценария используется для формирования других небазовых кадров файла сценария, соответствующих последующим кадрам видеофайла.

Этап воспроизведения видео- и аудиофайлов реализуется в реальном масштабе времени, соответствующем частоте смены видеокадров на экране видеомонитора 9 (например, 30 или 50 видеокадров в секунду), при непосредственном участии любого пользователя в динамическом управлении указанными информационными потоками, переходами в каждом из этих потоков и между потоками в соответствии с информацией в файле-сценарии, сформированной пользователем-редактором. Именно на этом этапе функционирует устройство 13 обработки файла-сценария.

Ключевую роль в реализации технологии АВ играет понятие воспроизведения активного объекта, под которым понимается воспроизведение (на экране монитора 9) последовательности видеокадров, содержащих заданный пользователем-редактором активный объект, от первого до последнего из видеокадров, указанных в свойствах данного активного объекта; при этом воспроизводится также звукозапись, соответствующая этому активному объекту. Воспроизведение начинается с первого видеокадра, указанного пользователем-редактором в признаках заданного активного объекта, и далее следует по связям между активными объектами (или содержащих их видеокадрами), описанными пользователем-редактором в свойствах объектов, переходя от воспроизведения одного активного объекта к другому. Переход может быть связан как с завершением циклических воспроизведений текущего активного объекта (число воспроизведений указано в свойствах объекта), так и с воздействием пользователя (нажатием кнопки “мыши”) на какой-либо активный объект, находящийся в текущем видеокадре.

Если при воспроизведении видеофайла курсор “мыши” оказывается над каким-либо активным объектом текущего видеокадра, то курсор “мыши” изменяет свою форму, например принимает форму “руки”, в отличие от другой формы, например “стрелки” (см. фиг. 4,в, где курсор “мыши” находится над активным объектом 2). При этом курсор сохраняет форму “руки” при указании на произвольную “точку” в пределах контура активного объекта. Если при этом в центральный процессор 2 персонального компьютера 1 поступает информация о нажатии пользователем кнопки “мыши”, то воспроизведение видеокадров с выбранным пользователем активным объектом прерывается и немедленно возобновляется с другого видеокадра, адрес которого указан в свойствах (признаках) данного активного объекта (в адресе перехода).

Если же курсор “мыши” находится вне любого из активных объектов текущего видеокадра, как на фиг. 4,а или 4,б (и в частности - над “нулевым”, неактивным объектом, как на фиг. 4,г), то прежняя форма курсора “мыши” (например, “стрелка”) не изменяется. Если при этом пользователь нажал на кнопку “мыши”, то сигнал об этом игнорируется.

Общий алгоритм функционирования предлагаемой системы на этапе воспроизведения заключается в следующем:

- пользователем просматривается видеофайл (фильм) на экране монитора 9, при этом пользователь может произвольно перемещать курсор “мыши” по экрану;

- в момент начала воспроизведения каждого видеокадра (т.е. в начале каждого интервала времени в 1/30 или 1/50 секунды) персональный компьютер 1 передает в устройство 13 обработки файла-сценария следующую информацию: номер и адрес кадра-сценария (из таблицы соответствия номеров видеокадров и номеров кадров файла-сценария), а также координаты Х и Y курсора “мыши” в текущем видеокадре;

- устройство 13 обработки файла-сценария определяет: находятся ли координаты курсора “мыши” вне активных объектов текущего видеокадра (выдается “0”) или в пределах координат какого-либо из активных объектов; в последнем случае устройство 13 определяет и выдает номер активного объекта, над которым находится курсор “мыши”; эта информация передается в персональный компьютер 1;

- если курсор “мыши” находится по информации от устройства 13 над каким-либо активным объектом текущего видеокадра, то изменяется форма курсора. Если при этом пользователь нажимает на кнопку “мыши”, то компьютер 1 обращается к признакам данного объекта (в массиве свойств - признаков объекта) и выбирает адрес перехода от данного активного объекта на другой активный объект или какой-либо видеокадр, с которого немедленно возобновляется воспроизведение видеофайла;

- при получении "0" от устройства 13 форма курсора “мыши” не изменяется. Если при этом пользователь нажал на кнопку “мыши”, то сигнал от “мыши” игнорируется.

В целом, концепция активных объектов является основой рассматриваемой объектно-ориентированной технологии АВ, т.к. наличие активных объектов с присущими им свойствами (признаками) позволяет реализовать динамическое управление воспроизведением потоков видео- и аудиоинформации в реальном масштабе времени.

Ниже описаны функции основных блоков устройства 13 обработки файла-сценария (фиг. 1).

Блок 14 локальной памяти предназначен для хранения массива(ов) кадров файла-сценария. (Остальные части файла-сценария - таблица соответствия номеров видеокадров и номеров кадров файла-сценария, а также массив свойств - признаков объектов хранятся в оперативном запоминающем устройстве 3 персонального компьютера 1.)

Блок 15 распаковки кадра файла-сценария обеспечивает прием данных текущего кадра файла-сценария из блока 14 локальной памяти, а именно длин (объемов) карт объектов и длин карт кадров файла-сценария, а также значений координат X, Y курсора “мыши”, общего (ΔXобщ, ΔYобщ) и частного (ΔXs, ΔYs) смещений координат активных объектов по отношению к их координатам в базовом кадре файла-сценария, для последующего расчета модифицированных координат курсора “мыши” в сумматоре 16. Пример структурной реализации блока 15 приведен на фиг. 6 и включает регистры 26 и 27 координат X, Y курсора “мыши”, регистры 28 и 29 общего смещения (значения ΔХобщ, ΔYобщ соответственно) или частного смещения (значения ΔXs, ΔYs соответственно) активных объектов текущего кадра файла-сценария, вычитающий счетчик 30 длины карты активного объекта, вычитающий счетчик 31 длины кадра файла-сценария. Информационные входы всех указанных функциональных узлов 26-31 подключены к шине 19 локальной памяти, управляющие входы этих узлов соединены с выходом блока 21 автономного управления, выходы регистров 26, 27, 28 и 29 соответствуют первому, второму, третьему и четвертому выходам блока 15, выходы вычитающих счетчиков 30 и 31 соответствуют выходу блока 15.

Сумматор 16 представляет собой стандартный накапливающий сумматор (например, разрядностью 16 бит) и предназначен для коррекции (модификации) координат курсора - арифметических действий над значениями этих координат, значениями общего и частных смещений координат активных объектов.

Компаратор 17 является стандартным функциональным узлом для сравнения координат X, Y курсора “мыши” с координатами Хн, Yн и Хк, Yк прямоугольников, аппроксимирующих активный объект; компаратор 17 выдает сигнал совпадения при выполнении двух логических условий: Хн ≤ Х ≤ Хк и Yн ≤ Y ≤ Yк, т.е. если координаты курсора “мыши” находятся в пределах какого-либо из таких прямоугольников.

Локальная шина 18 обеспечивает передачу данных между стандартным блоком 24 интерфейса периферийной шины и двунаправленным буфером 20 шины локальной памяти.

Шина 19 локальной памяти (например, разрядностью 32 бита) обеспечивает передачу данных между блоком 14 локальной памяти, блоком 15 распаковки кадра файла-сценария, компаратором 17, сумматором 16, буфером 20 шины локальной памяти и блоком 21 автономного управления; направление передачи данных по указанной шине 19 определяется блоком 21 автономного управления.

Стандартный двунаправленный буфер 20 (например, разрядностью 32 бита) шины локальной памяти обеспечивает интерфейс и передачу данных между локальной шиной 18 и шиной 19 локальной памяти при поступлении команд обращения центрального процессора 2 к устройству 13 обработки файла-сценария. Направление передачи данных через буфер 20 шины локальной памяти определяется типом команды обращения центрального процессора 2: команда записи задает передачу данных с локальной шины 18 на шину 19 локальной памяти, а команда чтения (результата работы устройства 13) - передачу данных в обратном направлении.

Блок 21 автономного управления представляет собой традиционный конечный автомат с памятью (например, автомат Мура), т.е. автомат с конечным числом состояний и заранее заданных переходов между ними, выходные сигналы от которого определяются текущим состоянием автомата (см., например, Шалыто А.А. Логическое управление. Методы аппаратной и программной реализации алгоритмов. СПб.: Наука, 2000 г.); указанный блок обеспечивает управление всеми функциональными узлами устройства 13 и синхронизацию взаимодействия между ними; алгоритм его функционирования будет приведен далее.

Блок 22 регистров обеспечивает настройку и фиксацию текущего состояния (статуса) устройства 13, а также обеспечивает взаимодействие с программой воспроизведения конкретного видеофайла (выполняемой в персональном компьютере 1); при выполнении этой программы для каждого текущего видеокадра в упомянутые регистры записываются номер видеофайла (если пользователь-редактор формировал файл-сценарий для нескольких видеофайлов), номер и адрес текущего кадра файла-сценария, координаты Х и Y курсора “мыши”; из этих же регистров считывается выходной результат работы устройства 13: либо номер активного объекта, над которым находится курсор “мыши”, либо “0”, если курсор находится вне контуров активных объектов текущего видеокадра.

Блок 22 включает семь регистров:

- регистр управления - предназначен для настройки режимов устройства 13;

- регистр состояния - предназначен для запоминания состояния устройства 13;

- регистр команды - предназначен для запоминания команды запуска (от центрального процессора 2 к устройству 13;

- регистр номера файла - предназначен для запоминания номера текущего видеофайла;

- регистр кадра файла-сценария - предназначен для запоминания номера и адреса текущего кадра файла-сценария (соответствующего текущему видеокадру);

- регистр адреса курсора - предназначен для запоминания текущих координат X, Y курсора “мыши”;

- регистр номера объекта - предназначен для запоминания (и последующего чтения центральным процессором 2) либо номера активного объекта, над которым находится курсор “мыши”, либо “0”, если курсор “мыши” находится вне контуров активных объектов текущего видеокадра.

Координатный блок 23, реализуемый на стандартном СОЗУ, предназначен для временного хранения исходных (X и Y) и/или модифицированных (Хм и Yм) координат курсора “мыши” во время выполнения команды запуска, заданной центральным процессором 2. Этот блок организован в виде таблицы, в которой каждая строка содержит пару координат Х (или Xм) и Y (или Yм) курсора “мыши”, а количество строк таблицы определяется допустимым количеством активных объектов в файле-сценарии, например 256 (см. фиг. 7,а, 7,б и 7,в, где приведено содержимое координатного блока 23, т.е. его таблицы, для рассматриваемых примеров).

Стандартный блок 24 интерфейса периферийной шины (например, PLX9080 фирмы PLX Technologies) обеспечивает передачу адресов и данных (например, разрядностью 32 бита) между устройством 13 обработки файла-сценария и стандартной периферийной шиной 6, а также дешифрацию адресов и команд обращения центрального процессора 2 персонального компьютера 1 к устройству 13.

Стандартный тактовый генератор 25 обеспечивает последовательность импульсов постоянной частоты для синхронизации всех функциональных узлов устройства 13, за исключением стандартного блока 24 интерфейса периферийной шины и буфера 20 шины локальной памяти.

Функционирование устройства 13 обработки файла-сценария при воспроизведении видеофайла компьютером 1 на экране монитора 9 заключается в следующем.

При включении питания персонального компьютера 1 центральный процессор 2 формирует сигнал сброса на стандартной периферийной шине 6 (например, типа PCI). Блок 24 интерфейса периферийной шины дешифрирует этот сигнал, формирует на своем управляющем выходе сигнал сброса, который поступает на первый вход блока 21 автономного управления, переводя его в исходное состояние. Последний на своем выходе формирует сигнал, который подается на управляющие входы блока 15 распаковки кадра файла-сценария и сумматора 16 и переводит их в исходное состояние. После окончания сигнала сброса блок 21 автономного управления начинает действовать как конечный автомат в заданной последовательности, переходя из одного конечного состояния в другое. Последовательность конечных состояний блока 21 автономного управления и переходов между ними описана далее.

Одновременно, после завершения сигнала сброса центральный процессор 2 через стандартную периферийную шину 6, стандартный блок 24 интерфейса периферийной шины, локальную шину 18, буфер 20 шины локальной памяти и шину 19 локальной памяти загружает в блок 14 локальной памяти массив кадров файла-сценария (упоминавшаяся выше часть файла-сценария, непосредственно используемая в устройстве 13 при воспроизведении видеофайлов).

После окончания загрузки массива кадров файла-сценария центральный процессор 2 через стандартный блок 24 интерфейса периферийной шины, локальную шину 18, буфер 20 шины локальной памяти и шину 19 локальной памяти обращается к регистру управления, находящемуся в блоке 22 регистров, устанавливает в этом регистре признак окончания загрузки и блок 21 автономного управления ожидает записи команды запуска от центрального процессора 2 в регистр команд (в том же блоке 22 регистров).

В момент начала воспроизведения каждого видеокадра на экране монитора 9 процессор 2 по описанным выше связям последовательно записывает в блок 22 регистров номер текущего видеофайла (в регистр номера файла), номер и адрес текущего кадра-сценария (в регистр кадра файла-сценария), текущие координаты Х и Y курсора (в регистр адреса курсора). Затем процессор 2 записывает в регистр команд блока 22 регистров команду запуска. После записи этой команды в регистр команд на выходе блока 22 регистров инициируется сигнал, который поступает на второй вход блока 21 автономного управления и активизирует выполнение указанной команды устройством 13.

Сначала блок 21 автономного управления через шину 19 локальной памяти сбрасывает признак готовности в регистре состояния (блока 22 регистров). Затем блок 21 автономного управления через шину 19 локальной памяти считывает содержимое регистра адреса курсора (из блока 22 регистров) и по той же шине 19 записывает текущие координаты Х и Y курсора “мыши” (например, Х=8, Y=9, как на фиг. 4,а и 4,в) во все строки координатного блока 23 (см. фиг. 7,а); эти значения Х и Y являются исходными для последующей обработки текущего кадра файла-сценария.

Затем блок 21 автономного управления формирует на своем выходе сигнал начала распаковки, который поступает на управляющие входы блока 15 распаковки кадра файла-сценария и сумматора 16, запуская работу этих блоков.

Далее блок 21 автономного управления считывает из регистра кадра файла-сценария (блока 22 регистров) адрес текущего кадра файла-сценария. Затем блок 21 автономного управления через шину 19 локальной памяти обращается по считанному адресу к блоку 14 локальной памяти, считывает из него и запоминает длину кадра файла-сценария, а также определяет значение признака S ссылки на базовый кадр файла-сценария. При этом блок 21 автономного управления через шину 19 локальной памяти записывает длину (объем) этого кадра в блок 15 распаковки кадра файла-сценария (в вычитающий счетчик 31 длины кадра файла-сценария).

Если признак ссылки на базовый кадр сценария имеет значение S=0 (a следовательно, признаки общего и частных смещений активных объектов имеют значения D=0 и d=0), то данный кадр файла-сценария является базовым, и в этом случае устройство 13 функционирует в соответствии со следующим алгоритмом I:

Алгоритм I (иллюстрируется на примере базового кадра файла-сценария по фиг. 5,а).

Блок 21 автономного управления через шину 19 локальной памяти считывает из блока 14 локальной памяти и запоминает номер и длину карты первого (в общем случае s-го) из активных объектов базового кадра файла-сценария (в рассматриваемом примере активного объекта 1). Значение (“4”) длины карты этого активного объекта записывается в блок 15 распаковки кадра файла-сценария (в вычитающий счетчик 30).

Блок 21 автономного управления через шину 19 локальной памяти обращается к координатному блоку 23 и считывает из его строки с адресом, равным номеру первого (s-го) из активных объектов кадра, исходные значения координат X, Y курсора “мыши” и передает их на первый вход компаратора 17. Затем блок 21 автономного управления через шину 19 локальной памяти последовательно считывает из блока 14 локальной памяти пары координат Хн, Yн и Хк, Yк прямоугольников, которые содержатся в карте первого (s-го) из активных объектов (активного объекта 1, фиг. 5,а), и передает эти координаты на второй вход компаратора 17. При считывании из блока 14 локальной памяти каждой пары координат Хн, Yн и Хк, Yк прямоугольников в вычитающих счетчиках 30 и 31 вычитается “1”.

Компаратор 17 сравнивает данные на своем первом и втором входах. Если координаты курсора находятся в пределах первого же прямоугольника, аппроксимирующего текущий активный объект, то компаратор 17 формирует на своем выходе сигнал совпадения, который поступает на третий вход блока 21 автономного управления. По этому сигналу последний формирует на своем выходе сигнал останова, который поступает на управляющие входы блока 15 распаковки кадра файла-сценария и сумматора 16. В результате эти блоки останавливают свою работу и переходят в исходное “нулевое” состояние. Далее блок 21 автономного управления записывает номер активного объекта, над которым находится курсор “мыши”, в регистр номера объекта (блока 22 регистров), устанавливает в регистре состояния (того же блока 22) признак готовности и переходит в режим ожидания до тех пор, пока центральный процессор 2 не считает данные из регистра номера объекта и не запишет в регистр команд (того же блока 22) новую команду запуска. В этом случае обработка данного кадра файла-сценария завершается.

Если же координаты курсора находятся вне контура первого прямоугольника (как в рассматриваемом примере, где первый прямоугольник имеет координаты Хн=2, Yн=6 и Хк=5, Yк=6, фиг. 5,а, а курсор имеет координаты Х=8, Y=9, фиг. 4,а), то на выходе компаратора 17 отсутствует сигнал совпадения. В этом случае блок 21 автономного управления совместно с блоком 15 распаковки кадра файла-сценария продолжают свою работу, обрабатывая координаты других прямоугольников в карте первого (s-го) из активных объектов базового кадра файла-сценария. Эти действия продолжаются либо до появления сигнала совпадения на выходе компаратора 17, либо до окончания обработки координат всех прямоугольников, описанных в карте первого (s-го) из активных объектов.

Если отсутствует сигнал совпадения на выходе компаратора 17 вплоть до завершения обработки всей карты первого (s-го) из активных объектов кадра (о чем свидетельствует обнуление вычитающего счетчика 30, в котором было записано число “4”, а из блока 14 локальной памяти были считаны координаты 4-х прямоугольников), то блок 15 распаковки кадра файла-сценария останавливает свою работу, формируя на своем выходе двухбитный сигнал (например, “01”), который поступает на четвертый вход блока 21 автономного управления. По этому сигналу блок 21 автономного управления и блок 15 распаковки кадра файла-сценария переходят к обработке карты следующего ((s+1)-го) активного объекта базового кадра файла-сценария, совершая над ней аналогичные действия. Эти действия продолжаются либо до появления сигнала совпадения на выходе компаратора 17, либо до окончания обработки карт всех активных объектов в текущем базовом кадре файла-сценария.

Если отсутствует сигнал совпадения на выходе компаратора 17 вплоть до завершения обработки всех карт базового кадра файла-сценария (о чем свидетельствует обнуление счетчика 31), то блок 15 распаковки кадра файла-сценария останавливает свою работу, формируя на своем выходе двухбитный сигнал (например, “10”), который поступает на четвертый вход блока 21 автономного управления. (Именно такое событие имеет место в рассматриваемом примере). По этому сигналу блок 21 автономного управления формирует на своем выходе сигнал останова, который поступает на управляющие входы блока 15 распаковки кадра файла-сценария и сумматора 16. В результате указанные блоки останавливают свою работу и переходят в исходное “нулевое” состояние. Далее блок 21 автономного управления через шину 19 локальной памяти записывает “0” в регистр номера объекта (блока 22 регистров). Затем блок 21 автономного управления устанавливает в регистре состояния (того же блока 22) признак готовности и переходит в режим ожидания до тех пор, пока центральный процессор 2 не считает данные из регистра номера объекта и запишет в регистр команд (того же блока 22) новую команду запуска. На этом функционирование устройства 13 по обработке данного кадра файла-сценария в соответствии с алгоритмом I завершается.

Если же при анализе заголовка кадра файла-сценария блок 21 автономного управления обнаруживает, что признак ссылки на базовый кадр сценария имеет значение S=1, то данный кадр файла-сценария является небазовым. В этом случае устройство 13 функционирует в зависимости от значений признаков как общего (D), так и частного (d) смещений координат активных объектов относительно их координат в базовом кадре файла-сценария, в соответствии с алгоритмом II:

Алгоритм II (иллюстрируется на примере небазовых кадров файла-сценария по фиг. 5,в и 5,г).

Если признак общего смещения координат активных объектов имеет значение D=1 (см. фиг. 5,в), то выполняется коррекция значений координат курсора “мыши” во всех строках координатного блока 23. Для этого блок 21 автономного управления через шину 19 локальной памяти считывает из регистра адреса курсора (блока 22 регистров) значения координат X, Y курсора “мыши” (в рассматриваемом примере Х=8, Y=9, фиг. 4,в) и записывает их в блок 15 распаковки кадра сценария (в регистры 26 и 27 соответственно). Затем блок 21 автономного управления считывает из блока 14 локальной памяти (из заголовка текущего кадра сценария) значения ΔХобщ, ΔYобщ общего смещения активных объектов (в рассматриваемом примере ΔХобщ=5, ΔYобщ=-4) и записывает их в блок 15 распаковки кадра файла-сценария (в регистры 28 и 29 соответственно). Значения координат курсора “мыши” и общего смещения с выходов блока 15 распаковки кадра файла-сценария поступают на соответствующие входы сумматора 16, где выполняется их вычитание, т.е. коррекция координат курсора “мыши”. Далее блок 21 автономного управления через шину 19 локальной памяти считывает с выхода сумматора 16 откорректированные значения координат Хм, Yм курсора “мыши” и записывает их во все строки координатного блока 23 (см. фиг. 7,б).

Если же признак общего смещения имеет значение D=0, то блок 21 автономного управления переходит к обработке карт активных объектов. Этот блок через шину 19 локальной памяти считывает из блока 14 локальной памяти и запоминает номер и длину карты первого (s-го) из активных объектов (в рассматриваемом примере активного объекта 1, карта которого имеет длину “2”, фиг. 5,в). Значение длины карты этого объекта записывается в блок 15 распаковки кадра файла-сценария (в вычитающий счетчик 30). Затем блок 21 автономного управления выполняет анализ заголовка карты первого (s-го) из активных объектов текущего кадра файла-сценария.

Если признак частного смещения в заголовке анализируемого активного объекта имеет значение d=1 (как в примере по фиг. 5,в), то выполняется коррекция значений координат курсора “мыши” в соответствующей строке координатного блока 23. Для этого блок 21 автономного управления через шину 19 локальной памяти считывает из координатного блока 23 (из строки с адресом, равным номеру анализируемого активного объекта) значения координат курсора “мыши” - исходные (X и Y) или уже откорректированные (Хм, Yм) в соответствии с значениями ΔХобщ и ΔYобщ общего смещения и записывает их в блок 15 распаковки кадра файла-сценария (в регистры 26 и 27 соответственно). Затем блок 21 автономного управления считывает из карты анализируемого активного объекта значения частного смещения этого объекта (в рассматриваемом примере ΔX1=-3, ΔY1=0, фиг. 5,в) и записывает их в блок 15 распаковки кадра файла-сценария (в регистры 28 и 29 соответственно). Значения координат курсора “мыши” и частного смещения с выходов блока 15 распаковки кадра сценария поступают на соответствующие входы сумматора 16, где выполняется их вычитание, т.е. дополнительная коррекция координат курсора “мыши”. Далее блок 21 автономного управления через шину 19 локальной памяти считывает с выхода сумматора 16 откорректированные значения координат Хм, Yм курсора “мыши” и записывает их в координатный блок 23 - в строку с адресом, равным номеру анализируемого активного объекта (активного объекта 1, фиг. 7,в). Далее блок 21 автономного управления переходит к обработке карты следующего активного объекта.

Если же признак частного смещения в заголовке анализируемого активного или нулевого объекта имеет значение d=0 (как это имеет место для активного объекта 3 и неактивного объекта с номером “0” в примере небазового кадра файла-сценария по фиг. 5,г), то блок 21 автономного управления переходит к обработке пар координат Хн, Yн и Хк, Yк прямоугольников, аппроксимирующих данный объект, по изложенному выше алгоритму I. Эти действия продолжаются либо до появления сигнала совпадения на выходе компаратора 17, либо до завершения обработки координат всех прямоугольников, описанных в карте анализируемого активного или нулевого объекта.

В этом случае при появлении сигнала совпадения на выходе компаратора 17 этот сигнал поступает на третий вход блока 21 автономного управления. По этому сигналу последний формирует на своем выходе сигнал останова, поступающий на управляющие входы блока 15 распаковки кадра файла-сценария и сумматора 16. В результате эти блоки останавливают свою работу и переходят в исходное “нулевое” состояние. Далее блок 21 автономного управления записывает номер активного или нулевого объекта, над которым находится курсор “мыши”, в регистр номера объекта (блока 22 регистров), устанавливает в регистре состояния (того же блока 22) признак готовности и переходит в режим ожидания до тех пор, пока центральный процессор 2 не считает данные из регистра номера объекта и не запишет в регистр команд (того же блока 22) новую команду запуска. В этом случае обработка данного кадра файла-сценария завершается.

Если же в течение обработки карты анализируемого активного или нулевого объекта сигнал совпадения на выходе компаратора 17 отсутствует, то блок 21 автономного управления продолжает обработку карт других активных объектов либо до появления сигнала совпадения на выходе компаратора 17, либо до окончания обработки карт всех активных объектов в текущем кадре файла-сценария (об этом свидетельствует обнуление вычитающего счетчика 31).

В последнем случае блок 15 распаковки кадра файла-сценария останавливает свою работу, формируя при этом на своем выходе двухбитный сигнал (например, “10”), который поступает на четвертый вход блока 21 автономного управления. По этому сигналу и при наличии признака ссылки на базовый кадр файла-сценария (S=1) блок 21 автономного управления через шину 19 локальной памяти обращается в блок 14 локальной памяти по адресу базового кадра, ранее считанного из заголовка текущего кадра файла-сценария. По этому адресу хранится базовый кадр файла-сценария, который обрабатывается блоком 21 автономного управления в соответствии с приведенным выше алгоритмом I, но с использованием откорректированных, модифицированных значений Хм, Yм координат курсора “мыши” вместо значений его исходных координат Х и Y (будет пояснено ниже).

Обработка карт активных объектов, содержащихся в текущем базовом кадре файла-сценария, продолжается либо до появления сигнала совпадения на выходе компаратора 17, либо до окончания обработки карт всех активных объектов в текущем базовом кадре файла-сценария (об этом свидетельствует обнуление вычитающего счетчика 31).

В последнем случае, как и ранее, блок 15 распаковки кадра файла-сценария останавливает свою работу, формируя при этом на своем выходе двухбитный сигнал (например, “10”), который поступает на четвертый вход блока 21 автономного управления. По этому сигналу последний формирует на своем выходе сигнал останова, который поступает на управляющие входы блока 15 распаковки кадра файла-сценария и сумматора 16. В результате эти блоки останавливают свою работу и переходят в исходное “нулевое” состояние. Далее блок 21 автономного управления через шину 19 локальной памяти записывает “0” в регистр номера объекта (блока 22 регистров). Затем блок 21 автономного управления устанавливает в регистре состояния (того же блока 22) признак готовности и переходит в режим ожидания до тех пор, пока центральный процессор 2 не считает данные из регистра номера объекта и не запишет в регистр команд (того же блока 22) новую команду запуска. На этом функционирование устройства 13 по обработке данного кадра файла-сценария в соответствии с алгоритмом II завершается.

Как указано выше, при обработке небазовых кадров файла-сценария используются модифицированные значения Хм, Yм координат курсора “мыши”, при расчете которых учитывались общее (ΔХобщ, ΔYобщ) и частные (ΔХs, ΔYs) смещения активных объектов по кадрам видеофайла. Такой подход позволяет радикально сократить временные затраты на коррекцию координат активных объектов (относительно их координат, описанных в базовом кадре файла-сценария), ибо в этом случае необходимо выполнять коррекцию только двух координат (X и Y) курсора “мыши” вместо коррекции координат Хн, Yн и Хк, Yк всех прямоугольников, аппроксимирующих все активные объекты в текущем небазовом кадре файла-сценария.

Так, в примере по фиг. 4,в для коррекции 32-х координат всех 8-ми прямоугольников, аппроксимирующих активные объекты 1 и 2 (и описанных в базовом кадре файла-сценария, фиг. 5,а), по значениям общего смещения ΔХобщ, ΔYобщ требуется выполнить 32 сложения, а для коррекции 16-ти координат 4-х прямоугольников, аппроксимирующих активный объект 1, по значениям частного смещения ΔX1, ΔY1 этого активного объекта - 16 сложений (т.е. в сумме 48 сложений), в то время как для расчета модифицированных значений Хм, Yм координат курсора “мыши” требуется выполнить только 4 вычитания.

В целом, устройство 13 обработки файла-сценария функционирует под управлением блока 21 автономного управления. Блок 21 автономного управления является конечным автоматом с 43 конечными состояниями, действующим в заданной (например, микропрограммой) последовательности и реализущим следующий алгоритм:

1. Сброс в исходное состояние блока 21 автономного управления при появлении на первом входе сигнала сброса (при включении питания).

2. Ожидание инициализации устройства 13 (перевод функциональных блоков устройства в состояние готовности выполнять возложенные на них функции):

Если установлен признак инициализации, то переход на п.3 (т.е. в состояние 4).

Иначе - переход на п.2.

3. Ожидание загрузки файла-сценария:

Если установлен признак загрузки файла-сценария, то переход на п.4.

Иначе - переход на п.3.

4. Ожидание сигнала запуска на втором входе после записи команды запуска и ее параметров в соответствующие регистры блока 22 регистров (номер видеофайла, номер и адрес кадра сценария, текущие координаты курсора “мыши”):

Если нет команды запуска, то переход на п.4 (конец работы алгоритма).

Иначе - переход на п.5.

5. Сброс признака готовности в регистре состояния (блока 22 регистров).

6. Запись “0” в регистр номера объекта (блока 22 регистров).

7. Формирование сигнала разрешения распаковки на выходе (разрешение функционирования блока 15 распаковки кадра файла-сценария и сумматора 16).

8. Чтение из регистра адреса курсора (блока 22 регистров) текущих координат X, Y курсора “мыши” и запись их во все строки координатного блока 23.

9. Считывание из регистра адреса кадра сценария (блока 22 регистров) адреса текущего кадра файла-сценария.

10. Считывание из блока 14 локальной памяти заголовка текущего кадра файла-сценария.

11. Запись длины текущего кадра файла-сценария в блок 15 распаковки кадра сценария.

12. Анализ заголовка текущего кадра файла-сценария:

Если признак ссылки на базовый кадр файла-сценария S=1, то переход на п.23 (обработка небазового кадра сценария).

Иначе - переход на п.13 (обработка текущего базового кадра сценария).

Алгоритм I (обработка базового кадра сценария):

13. Считывание заголовка карты первого (s-го) активного объекта.

14. Запись длины карты первого (s-го) активного объекта в блок 15 распаковки кадра сценария.

15. Считывание из координатного блока 23 из строки с адресом, равным номеру первого (s-го) активного объекта, значений Хм, Yм координат курсора “мыши” и запись их в первый вход компаратора 17.

16. Считывание из блока 14 локальной памяти первой (s-ой) пары Хн, Yн и Хк, Yк координат прямоугольника и запись их во второй вход компаратора 17.

17. Анализ результата сравнения координат:

Если есть сигнал совпадения на третьем входе, то переход на п.20.

Иначе - переход на п.18.

18. Анализ окончания обработки карты первого (s-ro) активного объекта:

Если нет сигнала окончания обработки карты первого (s-ro) активного объекта на четвертом входе, то переход на п.16.

Иначе - переход на п.19.

19. Анализ окончания обработки текущего кадра файла-сценария:

Если нет сигнала окончания обработки кадра на четвертом входе, то переход на п.13.

Иначе - переход на п.21.

20. Запись номера активного объекта, над которым находится курсор, в регистр номера объекта (блока 22 регистров).

21. Сброс сигнала разрешения распаковки на выходе (запрет функционирования блока 15 распаковки кадра файла-сценария и сумматора 16). Установка признака готовности в регистре состояния (блока 22 регистров).

22. Установка признака готовности в регистре состояния (блока 22 регистров).

23. Переход на п.4.

Алгоритм II (обработка небазового кадра файла-сценария):

24. Считывание из блока 14 локальной памяти из заголовка кадра сценария и запоминание адреса базового кадра файла-сценария.

25. Анализ признака D общего смещения:

Если признак общего смещения координат D=1, то:

25.1. Считывание значений координат X, Y курсора “мыши” из регистра адреса курсора и запись их в блок 15 распаковки кадра сценария.

25.2. Считывание значений ΔХобщ, ΔYобщ общего смещения и запись их в блок 15 распаковки кадра сценария.

25.3. Считывание откорректированных значений координат Хм, Yм курсора “мыши” из сумматора 16 и запись их в каждую строку координатного блока 23.

25.4. Переход на п.26.

Иначе - переход на п.26.

26. Считывание из блока 14 локальной памяти заголовка карты первого (s-го) активного объекта.

27. Запись длины карты первого (s-го) активного объекта в блок 15 распаковки кадра сценария.

28. Анализ заголовка карты объекта:

Если признак частного смещения координат d=1, то:

28.1. Считывание значений ΔXs, ΔYs частного смещения и запись их в блок 15 распаковки кадра сценария.

28.2. Считывание из координатного блока 23 из строки с адресом, равным номеру первого (s-го) активного объекта, значений координат Хм, Yм курсора “мыши” и запись их в блок 15 распаковки кадра сценария.

28.3. Считывание из сумматора 16 откорректированных значений координат Хм, Yм курсора “мыши” и запись их в координатный блок 23 в строку с адресом, равным номеру первого (s-го) активного объекта.

28.4. Переход на п.29.

Иначе - переход на п.29.

29. Считывание из координатного блока 23 из строки с адресом, равным номеру первого (s-го) активного объекта, значений координат Хм, Yм курсора “мыши” и запись в первый вход компаратора 17.

30. Считывание из блока 14 локальной памяти первой (s-ой) пары Хн, Yн и Хк, Yк координат прямоугольника и запись их во второй вход компаратора 17.

31. Анализ результата сравнения координат:

Если есть сигнал совпадения на третьем входе, то переход на п.20.

Иначе - переход на п.32.

32. Анализ окончания обработки карты первого (s-го) активного объекта:

Если нет сигнала окончания обработки карты первого (s-го) объекта на четвертом входе, то переход на п.29.

Иначе - переход на п.33.

33. Анализ окончания обработки текущего кадра файла-сценария:

Если нет сигнала окончания обработки кадра на четвертом входе, то переход на п.26.

Иначе - переход на п.34.

34. Считывание из блока 14 локальной памяти заголовка базового кадра файла-сценария по ранее запомненному (в п.24) адресу.

35. Переход на п.11.

В целом, заявляемое изобретение обеспечивает достижение следующих положительных технических эффектов по сравнению с прототипом:

- существенное упрощение системы за счет использования устройства 13 обработки файла-сценария, имеющего гораздо меньшую сложность, чем аналогичный ему по назначению блок управления файлами в прототипе (включающий блок ассоциативной памяти, многочисленные буферы и счетчики с их логическим обрамлением);

- радикальное сокращение объема памяти, требуемой для управления указанными выше информационными потоками, за счет того, что контур каждого активного объекта аппроксимируется прямоугольниками, каждый из которых кодируется координатами начальной и конечной ячеек “сетки”, принадлежащих данному прямоугольнику, а в небазовых кадрах файла-сценария содержится только корректирующая информация о координатах и форме активных объектов. В прототипе же кодируются все ячейки видеокадра вне зависимости от того, принадлежат ли они активным объектам или нет, причем объем (длина) кадра файла-сценария принципиально зависит от числа активных объектов в соответствующем видеокадре и от размерности “сетки”. В результате, для хранения файла-сценария в блоке 14 локальной памяти устройства 13 требуется существенно меньший объем памяти (от нескольких раз до порядков), чем в соответствующем ему (в прототипе) буфере файлов сценариев, и поэтому не требуются процедуры сжатия и декодирования файла-сценария (выполняемые в прототипе центральным процессором персонального компьютера), что освобождает центральный процессор 2 персонального компьютера 1 от необходимости обработки файла-сценария на этапе воспроизведения видеоизображений;

- расширение функциональных возможностей системы:

- некритичность к количеству, формам и размерам активных объектов в видеокадре за счет изложенного выше метода выделения активных объектов с помощью прямоугольников (длина базового кадра файла сценария не зависит от числа или форм активных объектов, а определяется числом прямоугольников, “назначаемых” пользователем-редактором по его усмотрению);

- некритичность к перемещениям и деформациям активных объектов по кадрам видеопотока за счет использования изложенного выше механизма базовых и небазовых карт и кадров файла-сценария (в частности - использования только корректирующей информации в небазовых кадрах файла-сценария). В прототипе же в каждом видеокадре, в котором обнаружено перемещение или изменение формы хотя бы одного активного объекта, вновь кодируются все ячейки видеокадра;

- некритичность в отличие от прототипа к размерности “сетки”, накладываемой на видеокадры.

Похожие патенты RU2229745C2

название год авторы номер документа
ПАРАЛЛЕЛЬНАЯ ВЫЧИСЛИТЕЛЬНАЯ СИСТЕМА АКТИВНОГО ВИДЕО 1999
  • Сон Ин Сун
  • Ан А.В.
  • Гницевич Александр Витальевич
  • Игнатущенко В.В.
  • Иванов А.И.
  • Сазонов С.В.
  • Кобельков Г.М.
  • Богачев К.Ю.
RU2173883C2
СПОСОБ ОБЪЕКТНО-ОРИЕНТИРОВАННОЙ ИНТЕРАКТИВНОЙ ОБРАБОТКИ ВИДЕОИНФОРМАЦИИ 2002
  • Гницевич А.В.
RU2212709C1
СПОСОБ КОДИРОВАНИЯ КООРДИНАТ ПЕРЕМЕЩАЮЩЕГОСЯ НА ЭКРАНЕ МОНИТОРА КОМПЬЮТЕРА ВИДЕОИЗОБРАЖЕНИЯ 2002
  • Гницевич А.В.
RU2212710C1
Способ кодирования координат перемещающегося на экране вычислительного устройства видеоизображения, устройство для декодирования визуального объекта, закодированного этим способом, и система, предназначенная для визуализации активного видео с помощью этого устройства 2003
  • Гницевич А.В.
RU2225035C1
Способ записи, редактирования и воссоздания компьютерного сеанса 2018
  • Бекмамбетов Тимур
  • Гай Бедфорд
  • Даниэль Кехо
RU2733919C2
УСТРОЙСТВО ВОСПРОИЗВЕДЕНИЯ, СПОСОБ ЗАПИСИ, СИСТЕМА ВОСПРОИЗВЕДЕНИЯ НОСИТЕЛЯ ЗАПИСИ 2010
  • Икеда Ватару
  • Огава Томоки
  • Сасаки Таидзи
  • Яхата Хироси
RU2522304C2
НОСИТЕЛЬ ЗАПИСИ ИНФОРМАЦИИ И УСТРОЙСТВО ВОСПРОИЗВЕДЕНИЯ ДЛЯ ВОСПРОИЗВЕДЕНИЯ 3D ИЗОБРАЖЕНИЙ 2010
  • Сасаки Таидзи
  • Яхата Хироси
  • Огава Томоки
RU2520325C2
НОСИТЕЛЬ ЗАПИСИ, УСТРОЙСТВО ВОСПРОИЗВЕДЕНИЯ, УСТРОЙСТВО ЗАПИСИ, СПОСОБ ВОСПРОИЗВЕДЕНИЯ, СПОСОБ ЗАПИСИ И ПРОГРАММА 2009
  • Окубо Масафуми
  • Канамару Томоказу
RU2518189C2
ДИНАМИЧЕСКАЯ АРХИТЕКТУРА ОКОН 2004
  • Хэнгги Скотт
  • Тэн Виктор
  • Бермудез Джерардо
  • Сведберг Грегори Д.
RU2377663C2
СПОСОБ УПРАВЛЕНИЯ ЧАСТОТОЙ КАДРОВ ЗАПИСИ И СООТВЕТСТВУЮЩЕЕ УСТРОЙСТВО 2020
  • Ли, Юанью
  • Ло, Вэй
  • Хо, Цзегуан
  • Сюй, Жунюэ
RU2782255C1

Иллюстрации к изобретению RU 2 229 745 C2

Реферат патента 2004 года ПАРАЛЛЕЛЬНАЯ ВЫЧИСЛИТЕЛЬНАЯ СИСТЕМА АКТИВНОГО ВИДЕО

Изобретение относится к средствам вычислительной техники и предназначено для интерактивной обработки видеоинформации. Техническим результатом является упрощение системы, сокращение объема памяти, требуемой для управления видеоинформационными потоками, а также расширение функциональных возможностей системы. Технический результат достигается тем, что в систему дополнительно введено устройство обработки файла-сценария, работающее параллельно с центральным процессором персонального компьютера и содержащее блок локальной памяти, блок распаковки кадра файла-сценария, сумматор, компаратор, локальную шину, шину локальной памяти, буфер шины локальной памяти, блок автономного управления, блок регистров, координатный блок, стандартный блок интерфейса периферийной шины и тактовый генератор. 7 ил.

Формула изобретения RU 2 229 745 C2

Параллельная вычислительная система активного видео содержит персональный компьютер, включающий центральный процессор, оперативное запоминающее устройство, контроллер внешних запоминающих устройств и контроллер периферийных устройств, подключенные к периферийной шине, внешние запоминающие устройства, подключенные к контроллеру внешних запоминающих устройств, манипулятор ("мышь"), выход которого соединен со входом контроллера периферийных устройств, монитор и акустическую систему, входы которых соединены с выходами видео-адаптера и аудио-адаптера соответственно, причем последние также подключены к периферийной шине, отличающаяся тем, что содержит устройство обработки файла-сценария, включающее блок локальной памяти, блок распаковки кадра файла-сценария, сумматор, компаратор, локальную шину, шину локальной памяти, буфер шины локальной памяти, блок регистров, координатный блок, блок интерфейса периферийной шины, тактовый генератор, а также блок автономного управления, предназначенный для синхронизации и обеспечения взаимодействия между блоком локальной памяти, блоком распаковки кадра файла-сценария, сумматором, компаратором, буфером шины локальной памяти, блоком регистров, координатным блоком, блоком интерфейса, а также для формирования сигнала разрешения распаковки на своем выходе, записи 0 в блок регистров, записи длины заголовка текущего кадра файла-сценария, анализа результата сравнения координат курсора "мыши", анализа окончания обработки карты (s-го) активного объекта, анализа окончания обработки текущего кадра файла-сценария, записи номера активного объекта, над которым находится курсор, в блок регистров, анализа признака общего смещения объекта, анализа заголовка карты объекта, причем блок локальной памяти подключен к шине локальной памяти, к которой подключены также буфер шины локальной памяти, блок автономного управления, блок регистров, координатный блок, первый и второй входы компаратора, входы блока распаковки кадра файла-сценария и выход сумматора, а к локальной шине подключены буфер шины локальной памяти, блок регистров и блок интерфейса периферийной шины, подключенный также к периферийной шине, причем управляющий выход последнего соединен с первым входом блока автономного управления, со вторым, третьим и четвертым входами которого соединены выходы блока регистров, компаратора и блока распаковки кадра файла-сценария соответственно, выход блока автономного управления соединен с управляющими входами сумматора и блока распаковки кадра файла-сценария, первый, второй, третий и четвертый выходы последнего соединены соответственно с первым, вторым, третьим и четвертым входами сумматора, выход тактового генератора соединен с синхронизирующими входами блока локальной памяти, блока распаковки кадра файла-сценария, сумматора, компаратора, блока регистров, блока автономного управления и координатного блока.

Документы, цитированные в отчете о поиске Патент 2004 года RU2229745C2

ПАРАЛЛЕЛЬНАЯ ВЫЧИСЛИТЕЛЬНАЯ СИСТЕМА АКТИВНОГО ВИДЕО 1999
  • Сон Ин Сун
  • Ан А.В.
  • Гницевич Александр Витальевич
  • Игнатущенко В.В.
  • Иванов А.И.
  • Сазонов С.В.
  • Кобельков Г.М.
  • Богачев К.Ю.
RU2173883C2
СПОСОБ, СИСТЕМА И УСТРОЙСТВО ЗАПИСИ/ВОСПРОИЗВЕДЕНИЯ НА ВИДЕОЛЕНТЕ 1994
  • Чарльз Мартин Вайн
RU2138130C1
СПОСОБ ПЕРЕДАЧИ ДАННЫХ ОТ ИСТОЧНИКА К ОДНОМУ ИЛИ НЕСКОЛЬКИМ ПРИЕМНИКАМ И СИСТЕМА ИЗОБРАЖЕНИЯ ДАННЫХ 1992
  • Сунг Мин Чой
  • Леон Лумельски
  • Алан Весли Пиверз
  • Джон Луис Питтас
RU2120138C1
СПОСОБ ОПТИМАЛЬНОГО ФОРМИРОВАНИЯ ВИЗУАЛЬНОГО ИЗОБРАЖЕНИЯ 1994
  • Гроппен Виталий Оскарович[Ru]
  • Гницевич Александр Витальевич[Ua]
  • Хон Сун Хюк[Kr]
RU2045095C1
WO 00/20974 A1, 13.04.2000.

RU 2 229 745 C2

Авторы

Игнатущенко В.В.

Сазонов С.В.

Кротов В.А.

Даты

2004-05-27Публикация

2002-07-24Подача