Способ объектно-ориентированной интерактивной обработки видеоинформации

Реферат

 

Изобретение относится к вычислительной технике и может быть использовано в компьютерных системах активного видео. Технический результат заключается в увеличении производительности обработки большого количества визуальных объектов. Способ интерактивной обработки включает этапы создания файла сценария и воспроизведения видеоизображений. Для формирования карты для всех активных объектов (АО) видеокадра внутрикадровое кодирование осуществляют путем выделения рядов, состоящих из ячеек активного объекта. При изменении геометрической формы или положения АО в следующем видеокадре производят межкадровое кодирование. Проводят вычисления для уменьшения объема данных. Формирование и запоминание свойств АО производят путем установки связей с помощью по меньшей мере одной гиперссылки для каждого активного объекта. На этапе воспроизведения производят декодирование карт файла сценария. 9 з.п. ф-лы, 2 табл., 26 ил.

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

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

Известен способ и аппаратура для объединения гиперсвязей с видео, в которых на этапе создания файла сценария выводят на экран монитора видеокадр с изображением по меньшей мере одного визуального объекта, предназначенного в последующем для его активизации при воспроизведении, - активного объекта (АО), аппроксимируют при помощи разметки активный объект простой геометрической фигурой, например, кругом, овалом, прямоугольником, с помощью авторского инструментария наносят разметку на отдельные ключевые кадры, формирование и запоминание свойств активных объектов производят путем установки связей с помощью одной гиперссылки для каждого активного объекта, в результате чего получают файл сценария, а области разметки (круг, овал, прямоугольник) линейно интерполируют на оставшиеся промежуточные кадры (Международная заявка РСТ W098/44435, G 06 F 17/30, опубл. 1998 г).

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

Известна "Параллельная компьютерная система Активного Видео", реализующая способ объектно-ориентированной интерактивной обработки видеоинформации, который является наиболее близким к заявленному (Патент Российской Федерации на изобретение 2173883, G 06 Т 1/20, опубл. 2001 г.).

Способ включает этап создания файла сценария видеофайлов и этап воспроизведения движущихся видеоизображений.

В этом способе на этапе создания файла сценария выводят на экран монитора видеокадр с изображением по меньшей мере одного визуального объекта, предназначенного в последующем для его активизации на этапе воспроизведения, - активного объекта (АО). Разбивают видеокадр на XxY ячеек, где Х и Y - 1, 2, 3...,, имеющих форму элементарных квадратов или прямоугольников. Выделяют ячейки, местоположение которых совпадает и не совпадает на видеокадре с местоположением АО, присваивая ячейкам, совпадающим с местоположением ячеек АО, соответствующие им номера, и присваивая нули ячейкам, местоположение которых не совпадает с местоположением ячеек АО. Производят внутрикадровое кодирование, формируя массив данных карты для всех активных объектов данного видеокадра. Формируют и запоминают свойства АО, формируют и запоминают переход, соответствующий данному АО. Если положение активных объектов в следующих видеокадрах видеофайла постоянно, то для таких видеокадров карта предыдущего видеокадра принадлежит им, а если положение АО в следующем видеокадре изменяется, то формируют новую карту для этих АО. Формируют и запоминают файл сценария, образованный последовательностью карт, в которой каждая карта соответствует по меньшей мере одному видеокадру видеофайла.

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

В этом техническом решении на этапе создания файла сценария при формировании и запоминании описания для каждого АО запоминают номер видеофайла и файла сценариев, номер видеокадра в видеофайле и файле сценариев, идентификатор, при формировании и запоминании параметров управления воспроизведением для каждого активного объекта запоминают признак активности, номер видеофайла, номеров первого и последнего кадров в воспроизводимой последовательности видеокадров из этого видеофайла, количество n циклических воспроизведений последовательности видеокадров от первого кадра до последнего, при формировании и запоминании адреса перехода с одного АО на другой АО запоминают признак активности другого активного объекта, номер видеофайла другого объекта, номер видеокадра в этом видеофайле, идентификатор другого объекта.

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

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

Отсутствие межкадрового кодирования, что приводит к избыточности сохраняемых данных.

При идентифицировании и выделении ячеек, местоположение которых совпадает с местоположением активного объекта, необходимо кодирование всех ячеек АО в координатах X, Y для образования карты активного объекта, что также резко увеличивает массив данных.

Необходимость сохранения большого объема данных на этапе создания файла сценария, в частности, необходимо формирование и запоминание описания для каждого активного объекта - номера видеофайла и файла сценариев, номера видеокадра в видеофайле и файле сценариев, кроме того, запоминают количество n циклических воспроизведений последовательности видеокадров от первого кадра до последнего. Формирование и запоминание большого объема этих данных практически не влияют на расширение функциональных возможностей просмотра на этапе воспроизведения. Так, например, на этапе воспроизведения клик на АО воспроизводимого для него видеофайла вызывает только его просмотр с самого начала. В этом известном техническом решении при воспроизведении видеокадра видеофайла, относящегося непосредственно к этому АО как к основному, невозможно осуществить переход на воспроизведение других различных видеофайлов или осуществить связь с другими источниками цифровых данных. Таким образом ограничивается возможность создания совершенно различных многофункциональных сценариев.

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

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

Для решения поставленной задачи с достижением технического результата в известном способе объектно-ориентированной интерактивной обработки видеоинформации, включающем этап создания файла сценария и этап воспроизведения видеоизображений, при этом на этапе создания файла сценария выводят на экран монитора видеокадр с изображением по меньшей мере одного визуального объекта, предназначенного в последующем для его активизации на этапе воспроизведения, - активного объекта, разбивают видеокадр на XY ячеек, где Х и Y - 1, 2, 3. . ., имеющих форму элементарных квадратов или прямоугольников, выделяют ячейки, местоположение которых совпадает и не совпадает на видеокадре с местоположением активного объекта, присваивая ячейкам, совпадающим с местоположением ячеек активных объектов, соответствующие им номера, и присваивая нули ячейкам, местоположение которых не совпадает с местоположением ячеек активных объектов, производят внутрикадровое кодирование, формируют массив данных карты для всех активных объектов данного видеокадра, формируют и запоминают свойства активных объектов, формируют и запоминают переход, соответствующий данному активному объекту, причем если положение активных объектов в следующих видеокадрах видеофайла постоянно, то для таких видеокадров карта предыдущего видеокадра принадлежит им, а если положение активных объектов в следующем видеокадре изменяется, то формируют новую карту для этих активных объектов, формируют и запоминают файл сценария, образованный последовательностью карт, в которой каждая карта соответствует по меньшей мере одному видеокадру видеофайла, при этом на этапе воспроизведения видеоизображений используют видеофайл, файл сценариев и текущую информацию положения курсора манипулятора на экране монитора, при перемещении курсора манипулятора на экране монитора и при совпадении местоположения курсора с активным объектом - с теми ячейками, местоположение которых совпадает на видеокадре с местоположением активного объекта, вид курсора преобразуют, при совпадении курсора с местоположением активного объекта и при нажатии одной из клавиш манипулятора осуществляют переход, соответствующий данному активному объекту и запомненный на этапе создания файла сценария, а при воспроизведении видеокадра видеофайла с другим активным объектом на этом же видеокадре при совпадении курсора с местоположением другого активного объекта и при нажатии этой же клавиши манипулятора осуществляют переход, соответствующий другому активному объекту, согласно изобретению для формировании массива данных карты всех активных объектов видеокадра внутрикадровое кодирование производят путем выделения по одной из координат Х или Y крайнего ряда, состоящего из ячеек активного объекта, определения координат крайних ячеек этого ряда, определения координат двух крайних ячеек в последующих рядах, при этом, если крайний и последующий ряды содержат ячейки, местоположение которых не совпадает с местоположением активного объекта в этих рядах, то в массив данных карты вводят модификатор разрыва ряда ячеек и запоминают координаты крайних ячеек активного объекта в месте разрыва ряда, анализируют каждый последующий ряд на предмет отсутствия в ряду ячеек активных объектов, и если ряд свободен от ячеек активных объектов, то вводят модификатор пропуска ряда, анализируют каждый последующий ряд на предмет идентичности предыдущего и последующих, смежных с ним рядов, если они идентичны, то вводят модификатор повтора рядов, после внутрикадрового кодирования запоминают карту видеокадра, при изменении геометрической формы и/или положения активного объекта в следующем видеокадре производят его межкадровое кодирование, при котором, если положение ячеек активного объекта в следующем видеокадре изменяется, а его геометрическая форма сохраняется, то в массив данных карты следующего видеокадра вводят параметры вектора смещения ячеек активного объекта, если изменяется положение ячеек активного объекта и его геометрическая форма, то производят упомянутое внутрикадровое кодирование этого видеокадра, получая массив данных А, далее вводят в массив данных параметры вектора смещения ячеек активного объекта и вычисляют разность между двумя матрицами массивов данных для активного объекта на предыдущем и следующем видеокадре, получая разностную матрицу, полученную разностную матрицу кодируют упомянутым внутрикадровым кодированием, получая массив данных В, сравнивают размер в байтах массива данных А с массивом данных В по формуле W={[Р(А)-Р(В)]/Р(А)}100%, где W - вычисляемая величина выигрыша, %, Р(А) - размер массива А, Р(В) - размер массива В, и если величина W>К, где К - величина заданного порога, то сохраняют массив В в качестве массива данных следующей карты, и при определении местоположения активного объекта этого видеокадра используют массив данных А предыдущей карты, а если W<К, то сохраняют массив данных А в качестве массива следующей карты, формирование и запоминание свойств активных объектов производят путем установки связей с помощью по меньшей мере одной гиперссылки для каждого активного объекта, при этом связь устанавливают с различными источниками цифровых данных, при формировании и запоминании перехода, соответствующего данному активному объекту, формируют последовательность показа других заданных видеокадров для данного активного объекта, на этапе воспроизведения производят декодирование карт файла сценария, при совпадении положения курсора манипулятора на экране монитора с активным объектом и при нажатии одной из клавиш манипулятора осуществляют переход по первой доступной гиперссылке, сформированной и запомненной на этапе создания файла сценария, при совпадении положения курсора манипулятора на экране монитора с активным объектом и при нажатии другой из клавиш манипулятора осуществляют выбор из меню нескольких гиперссылок и при нажатии затем другой клавиши манипулятора на одну из гиперссылок этого меню осуществляют переход в соответствии со связью этой гиперссылки с соответствующим источником цифровых данных.

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

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

Указанные преимущества, а также особенности настоящего изобретения поясняются лучшими вариантами его выполнения со ссылками на прилагаемые чертежи: фиг. 1 изображает массив данных с двумя активными объектами после идентификации ячеек для подачи на кодирование; фиг.2 - ряды ячеек с разрывом линии, с пропуском линии, с повторяющимися линиями и отрезки линий, описываемые без помощи модификаторов; фиг. 3 - а) предыдущий и б) последующий кадры со смещением АО при сохранении его геометрической формы; фиг.4 - массив данных с АО после идентификации ячеек для подачи на кодирование, где а) - К-й кадр с активным объектом; б) - К+1 кадр, в котором АО изменил геометрическую форму; в) - разностная матрица, полученная в результате вычитания массивов данных К+1 кадра и К-го кадра; фиг.5 - блок-схема алгоритма внутрикадрового кодирования для заявленного способа; фиг.6 - блок-схема алгоритма с учетом межкадрового кодирования; фиг.7 - блок-схема этапа редактирования; фиг.8 - блок-схема способа автоматизированной разметки АО; фиг.9 - блок-схема этапа воспроизведения; фиг.10 - блок-схема декодирования карт АО; фиг.11 - блок-схема декодирования ключевой карты; фиг.12 - вариант интерфейса для осуществления редактирования; фиг.13 - средства навигации по кадрам на этапе редактирования; фиг.14 - средства идентификации ячеек на этапе редактирования; фиг.15 - а) средства управления АО, б), в) средства управления гиперссылками активных объектов, г) средства управления доступностью ссылок на конкретных видеокадрах; фиг.16 - средства управления программами воспроизведения; фиг.17 - множество переходов, осуществляемых от АО посредством множества гиперссылок различных типов на этапе воспроизведения; фиг. 18 - множество гиперссылок АО, доступных из меню при нажатии правой кнопки мыши на этапе воспроизведения; фиг. 19 - всплывающая подсказка при наведении курсора манипулятора на АО и маркер АО.

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

Идентифицирование ячеек, местоположение которых совпадает и не совпадает на видеокадре с местоположением АО, может осуществляться различными средствами ручной разметки или автоматически, что будет в последующем показано на примерах конкретного осуществления способа. Присваивают ячейкам АО для различных АО соответствующие им номера (например, от 1 до 65000), несовпадающие для различных АО, тем самым производя идентификацию самих АО. Присваивают нули ячейкам, местоположение которых не совпадает с местоположением АО (фиг.1).

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

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

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

Процесс внутрикадрового кодирования поясняется с помощью следующего примера.

Пусть процесс внутрикадрового кодирования проводится по горизонтальным рядам ячеек, в которых ячейки с одинаковыми Y координатами принадлежат одной группе и расположены вдоль горизонтальных линий. Группы ячеек (фиг.2) расположены на отрезках линий. При кодировании достаточно запомнить данные о левой и правой координате Х каждого горизонтального ряда. Для уменьшения количества данных карты, необходимых для сохранения и полного описания АО, вводятся модификаторы трех типов: модификатор разрыва ряда ячеек - отрезка линии, модификатор пропуска ряда для ячеек - пропуска линии для ячеек, модификатор повтора ряда для ячеек - повтора линий для ячеек.

Пусть первоначально запоминают координату Y верхней левой точки АО, если кодирование производится по горизонтали. Затем определяют начальные и конечные координаты Х отрезков. Отрезки следуют один за другим, то есть координата Y следующего сохраненного отрезка равна координате Y предыдущего отрезка плюс 1, поэтому сохраняется только одна координата Y крайней точки АО и начальные и конечные координаты Х отрезков.

В случае разрывов линий, пропуска линий (фиг.2) вводятся модификаторы, необходимые для определения только Y координат отрезков. Отрезки линий одинаковые и идентичные для рядов ячеек, т.е. если они имеют равные Х координаты начальной и конечной точек соответственно. Модификатор разрыва ряда ячеек указывает, что отрезки линий с группами ячеек до и после него расположены на одной линии и имеют разрыв, т.е. у них одинаковая Y координата и отсутствует группа ячеек в ряду. Запоминают координаты крайних ячеек в месте разрыва ряда. Модификатор пропуска ряда указывает, что один из горизонтальных рядов ячеек отсутствует и запоминается Y координата следующего существующего ряда АО, т. е. не пустой линии. Модификатор повтора ряда указывает, что линия с ячейками - идентичная смежной, предыдущей (содержит столько же ячеек, как предыдущая, и координаты Х для крайних ячеек линии одинаковые) и повторяется некоторое количество раз. Если в матрице данных отсутствует модификатор для горизонтального ряда ячеек, то отрезки линий рядов не имеют повторов, разрывов, пропусков. Такие ячейки принадлежат разным, но последовательно идущим сверху вниз линиям: Yi+1=Yi+1, где i - номер горизонтального ряда ячеек (i= 1...k).

На фиг. 2 жирными линиями показан АО, матрица которого кодируется следующей последовательностью, приведенной в табл. 1а.

Схема внутрикадрового кодирования карт в файл сценария: <object map i>::=<begin point><count stretches> <stretches> <begin point> Начальная точка области разметки объекта, Y координата верхней левой точки отрезка линии верхнего горизонтального ряда ячеек.

<count stretches> Список элементов разметки. Состоит из координат отрезков линий и модификаторов.

<stretch i>::=<start X> <end X> <start X> X координата начальной точки отрезка линии.

<end X> Х координата конечной точки отрезка линии.

<modifier>::=(<line continue>|<pass lines>|<repeat stretch>) <line continue>:=<line continue mod><stretch i> Модификатор разрыва линии описывает разрыв текущей линии разметки или, другими словами, продолжительность разметки в текущей линии. Если текущая линия состоит из более чем одного отрезка, модификатор указывает, что следующий отрезок принадлежит той же линии.

<line continue mod> Модификатор разрыва линии, байт идентификатор модификатора.

<stretch i> Следующий отрезок в той же линии.

<pass lines>::=<pass lines mod><Y new> Модификатор пропуска линии описывает линии, которые не содержат разметку объекта. Определяет Y координату следующей линии, в которой встречается разметка.

<pass lines> Модификатор пропуска линии, байт идентификатор модификатора.

<Y new> Y координата линии, где разметка появляется.

<repeat stretch>:=<stretches on line> <repeat stretch mod> <count line> Модификатор повтора линии используется для кодирования повторяющихся отрезков линий или повторяющихся последовательностей отрезков линий.

<stretches on line> Список отрезков, представляющих повторяющиеся последовательности <repeat stretch mod> Модификатор Повтора, байт идентификатор модификатора.

<count line> Количество повторяющихся линий.

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

На первом этапе массив координат АО, относящихся к предыдущему видеокадру, сравнивается с массивом координат активных объектов текущего кадра. Если матрицы - массивы данных совпадают, то карта разметки АО, относящаяся к предыдущему видео кадру, относится и к текущему видеокадру, т.е. для таких видеокадров карта предыдущего видеокадра принадлежит им.

Если матрицы не совпадают, то проводят анализ массива данных для каждого АО (если их несколько).

Возможны следующие варианты: 1. Координаты АО совпадают.

2. Форма АО совпадает, но АО смещен в двухмерном пространстве (фиг.3).

3. Форма АО изменена по отношению к форме АО предыдущего видеокадра, но сам объект не смещен (фиг.4).

4. Форма АО изменена по отношению к форме АО предыдущего кадра и объект смещен (совместное действие по фиг.3, 4).

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

Если форма активных объектов совпадает, но активные объекты смещены в двухмерном пространстве, то производят учет этого смещения при помощи <вектора смещения> (фиг.3). В массив данных карты АО вводят только координаты вектора смещения - два числа, смещение по оси Х и смещение по оси Y. Карта с данными о смещении - относительная, а карта с первоначальным положением АО - ключевая. Так, на фиг.3 вектор смещения для АО (К+1)-го кадра относительно К-го кадра характеризуется смещением АО на 5 ячеек по Х и на 1 ячейку по Y. Поэтому в массив данных карты (К+1)-го кадра вводят только два числа (5, 1), характеризующие координаты вектора смещения. Карта К-го кадра - ключевая, а карта (К+1)-го кадра - относительная, и ее полный массив данных может быть получен при последующем декодировании только с использованием ключевой карты.

Если форма АО последующего кадра (фиг.4Б) изменена по отношению к форме АО предыдущего кадра (фиг.4А), но сам объект не смещен, то выполняется межкадровое кодирование двумя методами. Внутрикадровым кодированием, описанным выше, кодируют массив данных (К+1)-го кадра. В результате получают результирующий массив данных А. Затем вторым методом определяют разность между данными координат матрицы АО предыдущего К-го кадра и данными координат матрицы АО последующего (К+1)-го кадра с измененной формой объекта (фиг.4В). Как видно из фиг.4, для АО (К+1)-й кадр отличается от К-го кадра местоположением только четырех ячеек, а разностная матрица будет характеризоваться только координатами Х и Y этих ячеек. Далее кодируют полученную разностную матрицу методом внутрикадрового кодирования, описанным выше. В результате получают результирующий массив данных В. Сравнивают размер в байтах массива данных А с массивом данных В по формуле W={[Р(А)-Р(В)]/Р(А)}100%, где W - вычисляемая величина выигрыша, %, Р(А) - размер массива А, Р(В) - размер массива В, и если величина W>К, где К - величина заданного порога, то сохраняют массив В и вектор смещения, равный (0,0) в качестве описания следующей карты, а если W<К, то сохраняют массив А в качестве описания следующей карты активного объекта. Если сохраняется массив В, то такая карта является относительной, а если массив А - то ключевой.

Величина заданного порога К может быть выбрана в интервале 30-99%. Величина К определяется автором файла сценария. Порог 30% дает большое количество относительных карт АО, а при 99% практически все карты являются ключевыми. Это сказывается на объеме запоминаемой информации. При использовании на практике только ключевых карт, объем сохраняемых данных больше, но и быстрее скорость доступа и соответственно быстрее производится декодирование. При использовании большого количества в файле сценария относительных карт уменьшается быстродействие, но сокращается объем требуемой памяти - доля хранения данных. Поэтому целесообразно величину конкретного порога устанавливать в зависимости от технических характеристик используемого цифрового оборудования. Экспериментально установлено, что для большинства приложений можно задавать величину порога 40-50%.

Если АО смещен, а также изменена форма АО по отношению к его форме на предыдущем видеокадре (т. е. произошла совместная ситуация изменения карты АО, как это было показано по отдельности на фиг.3 и 4), то сначала производят внутрикадровое кодирование следующего видеокадра, получая массив данных А. Затем определяют вектор смещения (как это было ранее описано для фиг.3). В этом случае за направление и величину вектора смещения принимается вектор, который при смещении на величину этого вектора АО с предыдущего кадра дает максимальное совпадение ячеек с этим АО последующего кадра. То есть определяют все совпадающие ячейки предыдущего и следующего кадра и находят для этих ячеек параметры Х и Y вектора смещения, как это было описано ранее. Далее определяют разность между данными координат ячеек матрицы АО предыдущего кадра и данными координат ячеек матрицы АО последующего кадра с измененной формой объекта (как это было ранее описано для фиг.4). То есть выявляются те ячейки, которые не совпадают на предыдущем и следующем видеокадрах. Далее кодируют полученную разностную матрицу методом внутрикадрового кодирования, описанным выше. В результате получают результирующий массив данных В. Если W>К, где К - величина заданного порога, то сохраняется закодированный разностный массив В и параметры вектора смещения, т.е. получают относительную карту. Если W<К, то сохраняют массив А, т.е. ключевую карту, как было описано выше. Величина заданного порога К может быть выбрана в интервале 30-99%.

Процесс применяется к каждому активному объекту на данном видеокадре.

При кодировании последующего кадра проверяется предыдущая карта активного объекта. Определяется, является ли она относительной или ключевой. Если предыдущая карта является относительной, т.е. для нее W>К, то карта активного объекта на последующем кадре также может быть только относительной по отношению к ранее полученной ключевой карте. То есть ее данные считываются при помощи ключевой карты, минуя массив данных предыдущих относительных карт. Но в случае, если для нее W<К, то она будет сама ключевой для последующих карт активного объекта. Таким образом, получают последовательность - "цепь" карт АО, где могут быть несколько относительных карт АО, следующих за ключевой.

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

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

На вход кодировщика в блок 1 (фиг.5, 6) поступает массив координат АО текущего кадра, который представляет собой матрицу с размером, равным количеству ячеек в разметке. В ячейках, покрывающих АО, хранятся номера активных объектов, во всех остальных ячейках нули. Для простоты изложения рассматривается кодирование по горизонтали и слева направо.

Если массив данных координат АО - первый (блок сравнения 2, фиг.6), то кодируем его в блоке 3 внутрикадровым кодированием. Содержание функциональных эл