RU2212709C1 - Method for processing object-oriented interactive video data - Google Patents

Method for processing object-oriented interactive video data Download PDF

Info

Publication number
RU2212709C1
RU2212709C1 RU2002126246/09A RU2002126246A RU2212709C1 RU 2212709 C1 RU2212709 C1 RU 2212709C1 RU 2002126246/09 A RU2002126246/09 A RU 2002126246/09A RU 2002126246 A RU2002126246 A RU 2002126246A RU 2212709 C1 RU2212709 C1 RU 2212709C1
Authority
RU
Russia
Prior art keywords
cells
active
video
active object
video frame
Prior art date
Application number
RU2002126246/09A
Other languages
Russian (ru)
Inventor
А.В. Гницевич
Original Assignee
Общество с ограниченной ответственностью "Р.Т.С.-Сервис"
Общество с ограниченной ответственностью "Мир Сетей"
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Общество с ограниченной ответственностью "Р.Т.С.-Сервис", Общество с ограниченной ответственностью "Мир Сетей" filed Critical Общество с ограниченной ответственностью "Р.Т.С.-Сервис"
Priority to RU2002126246/09A priority Critical patent/RU2212709C1/en
Application granted granted Critical
Publication of RU2212709C1 publication Critical patent/RU2212709C1/en

Links

Images

Abstract

FIELD: computer engineering; active video computer systems. SUBSTANCE: method includes stages of script file formation and video image reproduction. In order of shape card for all active objects of video frame intraframe coding is effected by separating series of active-object locations. Intraframe coding is made in next video frame when geometry or position of active object changes. Calculations are made to reduce data level. Active object properties are shaped and stored by establishing links with aid of at least one hyperlink for each active object. During this reproduction stage script file cards are decoded. EFFECT: enhanced productivity in processing great number of visual objects. 10 cl, 26 dwg, 1 tbl

Description

Изобретение относится к вычислительной технике и может быть использовано в компьютерных системах активного видео (АВ) для создания различных сюжетов и просмотра цифровых видеофайлов, а также в таких областях, как интерактивное телевидение, видео по требованию, вещание ТВ через Интернет, интерактивные обучающие системы, видео проводники, персональные, мобильные коммуникации, компьютерные и телевизионные игры. The invention relates to computer technology and can be used in computer systems for active video (AV) to create various scenes and view digital video files, as well as in areas such as interactive television, video on demand, broadcasting TV over the Internet, interactive training systems, video conductors, personal, mobile communications, computer and television games.

В традиционных системах просмотра цифрового видео (видеомагнитофоны, CD, DVD плееры, компьютерные приложения проигрывания видео; телевизоры), обеспечивается возможность управлением, соответствующим уровню средства (прибора) проигрывания, например, - "проиграть", "остановить", "пауза", "перемотка вперед", "перемотка назад". Просмотр видео не предусматривает поддержку множества сценариев, т. е. пользователь не имеет возможности по ходу проигрывания видео изменить один сценарий просмотра на другой. В системах активного видео (АВ) пользователь может немедленно получать доступ к объектам, которые он видит на экране во время проигрывания видео, и управлять проигрыванием видео с помощью кликов манипулятора (мыши) непосредственно по видео изображениям активных объектов. In traditional systems for viewing digital video (VCRs, CDs, DVD players, computer applications for playing videos; televisions), it is possible to control according to the level of the means (device) for playing, for example, “play”, “stop”, “pause”, “ fast forward, rewind. Watching a video does not provide support for many scenarios, i.e., the user does not have the ability to change one viewing scenario to another while playing a video. In active video (AV) systems, the user can immediately access the objects that he sees on the screen during video playback and control video playback using clicks of the manipulator (mouse) directly from video images of active objects.

Известен способ и аппаратура для объединения гиперсвязей с видео, в которых на этапе создания файла сценария выводят на экран монитора видеокадр с изображением по меньшей мере одного визуального объекта, предназначенного в последующем для его активизации при воспроизведении, - активного объекта (АО), аппроксимируют при помощи разметки активный объект простой геометрической фигурой, например, кругом, овалом, прямоугольником, с помощью авторского инструментария наносят разметку на отдельные ключевые кадры, формирование и запоминание свойств активных объектов производят путем установки связей с помощью одной гиперссылки для каждого активного объекта, в результате чего получают файл сценария, а области разметки (круг, овал, прямоугольник) линейно интерполируют на оставшиеся промежуточные кадры (Международная заявка РСТ W098/44435, G 06 F 17/30, опубл. 1998 г). There is a method and apparatus for combining hyperlinks with video, in which at the stage of creating the script file, a video frame is displayed on the monitor screen with an image of at least one visual object, which is subsequently used to activate it during playback, the active object (AO), approximated using marking the active object with a simple geometric figure, for example, a circle, an oval, a rectangle, using the author’s toolkit, mark up individual key frames, form and remember their The active objects are produced by establishing links using one hyperlink for each active object, as a result of which a script file is obtained, and the markup areas (circle, oval, rectangle) are linearly interpolated to the remaining intermediate frames (PCT International Application W098 / 44435, G 06 F 17/30, publ. 1998).

В этом техническом решении установка связи осуществляется при помощи гиперссылки и достигается компактное хранение данных разметки, но приносится в жертву точность разметки. Автору файла сценария не доступен процесс разметки на неключевых кадрах. В процессе воспроизведения полученного файла, регионы разметки на ключевых кадрах линейно интерполируются на промежуточные кадры. Таким образом, в процессе воспроизведения из-за линейной интерполяции регионов разметки на неключевых промежуточных кадрах и из-за аппроксимации активного объекта простой геометрической фигурой могут происходить случаи непопадания по разметке объекта при его клике манипулятором, так как пользователь на этапе воспроизведения файла сценария ориентируется только на визуальную информацию, а сами линии разметки прозрачны и не видимы для зрителя. In this technical solution, communication is established using a hyperlink and compact marking data is stored, but markup accuracy is sacrificed. The author of the script file cannot access the markup process on non-key frames. In the process of reproducing the resulting file, the markup regions on key frames are linearly interpolated to intermediate frames. Thus, during the playback process, due to linear interpolation of the markup regions on non-key intermediate frames and due to the approximation of the active object by a simple geometric figure, there may be cases when the markup of the object does not fall when it is clicked by the manipulator, since the user focuses only on the script file playback stage visual information, and the marking lines themselves are transparent and not visible to the viewer.

Известна "Параллельная компьютерная система Активного Видео", реализующая способ объектно-ориентированной интерактивной обработки видеоинформации, который является наиболее близким к заявленному (Патент Российской Федерации на изобретение 2173883, G 06 Т 1/20, опубл. 2001 г.). The well-known "Parallel computer system of Active Video" that implements the method of object-oriented interactive processing of video information, which is closest to the claimed one (Patent of the Russian Federation for the invention 2173883, G 06 T 1/20, publ. 2001).

Способ включает этап создания файла сценария видеофайлов и этап воспроизведения движущихся видеоизображений. The method includes the step of creating a video file script file and the step of reproducing moving video images.

В этом способе на этапе создания файла сценария выводят на экран монитора видеокадр с изображением по меньшей мере одного визуального объекта, предназначенного в последующем для его активизации на этапе воспроизведения, - активного объекта (АО). Разбивают видеокадр на XxY ячеек, где Х и Y - 1, 2, 3...,, имеющих форму элементарных квадратов или прямоугольников. Выделяют ячейки, местоположение которых совпадает и не совпадает на видеокадре с местоположением АО, присваивая ячейкам, совпадающим с местоположением ячеек АО, соответствующие им номера, и присваивая нули ячейкам, местоположение которых не совпадает с местоположением ячеек АО. Производят внутрикадровое кодирование, формируя массив данных карты для всех активных объектов данного видеокадра. Формируют и запоминают свойства АО, формируют и запоминают переход, соответствующий данному АО. Если положение активных объектов в следующих видеокадрах видеофайла постоянно, то для таких видеокадров карта предыдущего видеокадра принадлежит им, а если положение АО в следующем видеокадре изменяется, то формируют новую карту для этих АО. Формируют и запоминают файл сценария, образованный последовательностью карт, в которой каждая карта соответствует по меньшей мере одному видеокадру видеофайла. In this method, at the stage of creating the script file, a video frame is displayed on the monitor screen with an image of at least one visual object, which is subsequently used to activate it at the playback stage, the active object (AO). The video frame is divided into XxY cells, where X and Y are 1, 2, 3 ..., having the form of elementary squares or rectangles. Cells are selected whose location coincides and does not coincide with the location of the AO on the video frame, assigning the numbers corresponding to the cells of the cells of the AO, and assigning zeros to the cells whose location does not coincide with the location of the AO cells. Intraframe coding is performed, forming an array of map data for all active objects of a given video frame. Form and remember the properties of AO, form and remember the transition corresponding to this AO. If the position of active objects in the following video frames of the video file is constant, then for such video frames the map of the previous video frame belongs to them, and if the position of the AO in the next video frame changes, a new map is formed for these AO. A script file is formed and stored in a sequence of cards in which each card corresponds to at least one video frame of the video file.

На этапе воспроизведения видеоизображений используют видеофайл, файл сценариев и текущую информацию положения курсора манипулятора на экране монитора. При перемещении курсора манипулятора на экране монитора и при совпадении местоположения курсора с АО - с теми ячейками, местоположение которых совпадает на видеокадре с местоположением активного объекта, вид курсора преобразуют. При совпадении курсора с местоположением АО и при нажатии одной из клавиш манипулятора осуществляют переход, соответствующий данному АО и запомненный на этапе создания файла сценария. При воспроизведении видеокадра видеофайла с другим АО на этом же видеокадре при совпадении курсора с местоположением другого АО и при нажатии этой же клавиши манипулятора осуществляют переход, соответствующий другому АО. At the stage of video playback, a video file, a script file and current position information of the manipulator cursor on the monitor screen are used. When the manipulator cursor moves on the monitor screen and the cursor location coincides with the AO - with those cells whose location coincides on the video frame with the location of the active object, the cursor will be transformed. If the cursor coincides with the location of the AO and when you press one of the keys on the manipulator, a transition corresponding to this AO is stored and stored at the stage of creating the script file. When playing a video frame of a video file with another AO on the same video frame, when the cursor coincides with the location of another AO and pressing the same key on the manipulator, a transition corresponding to another AO is performed.

В этом техническом решении на этапе создания файла сценария при формировании и запоминании описания для каждого АО запоминают номер видеофайла и файла сценариев, номер видеокадра в видеофайле и файле сценариев, идентификатор, при формировании и запоминании параметров управления воспроизведением для каждого активного объекта запоминают признак активности, номер видеофайла, номеров первого и последнего кадров в воспроизводимой последовательности видеокадров из этого видеофайла, количество n циклических воспроизведений последовательности видеокадров от первого кадра до последнего, при формировании и запоминании адреса перехода с одного АО на другой АО запоминают признак активности другого активного объекта, номер видеофайла другого объекта, номер видеокадра в этом видеофайле, идентификатор другого объекта. In this technical solution, at the stage of creating the script file, when generating and storing the description for each AO, the number of the video file and the script file, the number of the video frame in the video file and the script file, identifier, when generating and storing the playback control parameters for each active object, remember the activity indicator, number video file, the numbers of the first and last frames in the reproduced sequence of video frames from this video file, the number of n looping plays When creating and storing the address of the transition from one AO to another AO, the characteristics of the activity of another active object, the number of the video file of another object, the number of the video frame in this video file, and the identifier of another object are stored in the video frames from the first frame to the last.

На этапе воспроизведения в этом технической решении при нажатии левой клавиши манипулятора для видеокадра видеофайла с данным активным объектом осуществляют переход на первый видеокадр видеофайла, соответствующий данному АО, т. е. начинают просмотр видеофайла этого АО, начиная с его начального кадра. At the playback stage in this technical solution, when the left button of the manipulator is pressed for a video frame of a video file with this active object, the system switches to the first video frame of the video file corresponding to this AO, i.e., it starts viewing the video file of this AO starting from its initial frame.

Ограничениями этого технического решения являются:
Необходимость использования при внутрикадровом кодировании ячеек с нулем, не совпадающих с местоположениями активных объектов, что увеличивает массив данных для создания карт.
The limitations of this technical solution are:
The need to use cells with zero that do not coincide with the locations of active objects during intraframe coding, which increases the data array for creating maps.

Отсутствие межкадрового кодирования, что приводит к избыточности сохраняемых данных. The lack of inter-frame coding, which leads to redundancy of the stored data.

При идентифицировании и выделении ячеек, местоположение которых совпадает с местоположением активного объекта, необходимо кодирование всех ячеек АО в координатах X, Y для образования карты активного объекта, что также резко увеличивает массив данных. When identifying and selecting cells whose location coincides with the location of the active object, it is necessary to encode all AO cells in X, Y coordinates to form a map of the active object, which also dramatically increases the data array.

Необходимость сохранения большого объема данных на этапе создания файла сценария, в частности, необходимо формирование и запоминание описания для каждого активного объекта - номера видеофайла и файла сценариев, номера видеокадра в видеофайле и файле сценариев, кроме того, запоминают количество n циклических воспроизведений последовательности видеокадров от первого кадра до последнего. Формирование и запоминание большого объема этих данных практически не влияют на расширение функциональных возможностей просмотра на этапе воспроизведения. Так, например, на этапе воспроизведения клик на АО воспроизводимого для него видеофайла вызывает только его просмотр с самого начала. В этом известном техническом решении при воспроизведении видеокадра видеофайла, относящегося непосредственно к этому АО как к основному, невозможно осуществить переход на воспроизведение других различных видеофайлов или осуществить связь с другими источниками цифровых данных. Таким образом ограничивается возможность создания совершенно различных многофункциональных сценариев. The need to save a large amount of data at the stage of creating the script file, in particular, it is necessary to generate and remember a description for each active object — the number of the video file and the script file, the number of the video frame in the video file and the script file, in addition, the number n of cyclic reproductions of the sequence of video frames from the first frame to the last. The formation and storage of a large amount of this data practically does not affect the expansion of the viewing capabilities at the playback stage. So, for example, at the playback stage, clicking on the AO of the video file being played for it causes only its viewing from the very beginning. In this well-known technical solution, when playing back a video frame of a video file directly related to this AO as the main one, it is impossible to switch to playback of various other video files or to communicate with other digital data sources. Thus, the ability to create completely different multifunctional scenarios is limited.

Решаемая изобретением задача - расширение функциональных возможностей и увеличение производительности обработки большого количества визуальных объектов. The problem solved by the invention is to expand the functionality and increase the processing productivity of a large number of visual objects.

Технический результат, который может быть получен при осуществлении заявленного способа интерактивной обработки, - уменьшение объема памяти, необходимого для хранения и обработки разметки АО; обеспечение образования отдельных от видеофайлов файлов сценариев малых размеров, способных декодироваться без задержек и синхронно с показом видео; обеспечение возможности осуществления совершенно различных переходов от одного активного объекта к другим совершенно различным источникам цифровых данных, в частности, для просмотра совершенно различных сюжетов, основанных на различных видеофайлах. The technical result that can be obtained by implementing the claimed method of interactive processing is to reduce the amount of memory required for storing and processing AO markup; ensuring the formation of small-sized script files separate from video files that can be decoded without delay and synchronously with the video display; providing the possibility of making completely different transitions from one active object to other completely different sources of digital data, in particular, for viewing completely different scenes based on different video files.

Для решения поставленной задачи с достижением технического результата в известном способе объектно-ориентированной интерактивной обработки видеоинформации, включающем этап создания файла сценария и этап воспроизведения видеоизображений, при этом на этапе создания файла сценария выводят на экран монитора видеокадр с изображением по меньшей мере одного визуального объекта, предназначенного в последующем для его активизации на этапе воспроизведения, - активного объекта, разбивают видеокадр на X•Y ячеек, где Х и Y - 1, 2, 3. . ., имеющих форму элементарных квадратов или прямоугольников, выделяют ячейки, местоположение которых совпадает и не совпадает на видеокадре с местоположением активного объекта, присваивая ячейкам, совпадающим с местоположением ячеек активных объектов, соответствующие им номера, и присваивая нули ячейкам, местоположение которых не совпадает с местоположением ячеек активных объектов, производят внутрикадровое кодирование, формируют массив данных карты для всех активных объектов данного видеокадра, формируют и запоминают свойства активных объектов, формируют и запоминают переход, соответствующий данному активному объекту, причем если положение активных объектов в следующих видеокадрах видеофайла постоянно, то для таких видеокадров карта предыдущего видеокадра принадлежит им, а если положение активных объектов в следующем видеокадре изменяется, то формируют новую карту для этих активных объектов, формируют и запоминают файл сценария, образованный последовательностью карт, в которой каждая карта соответствует по меньшей мере одному видеокадру видеофайла, при этом на этапе воспроизведения видеоизображений используют видеофайл, файл сценариев и текущую информацию положения курсора манипулятора на экране монитора, при перемещении курсора манипулятора на экране монитора и при совпадении местоположения курсора с активным объектом - с теми ячейками, местоположение которых совпадает на видеокадре с местоположением активного объекта, вид курсора преобразуют, при совпадении курсора с местоположением активного объекта и при нажатии одной из клавиш манипулятора осуществляют переход, соответствующий данному активному объекту и запомненный на этапе создания файла сценария, а при воспроизведении видеокадра видеофайла с другим активным объектом на этом же видеокадре при совпадении курсора с местоположением другого активного объекта и при нажатии этой же клавиши манипулятора осуществляют переход, соответствующий другому активному объекту, согласно изобретению для формировании массива данных карты всех активных объектов видеокадра внутрикадровое кодирование производят путем выделения по одной из координат Х или Y крайнего ряда, состоящего из ячеек активного объекта, определения координат крайних ячеек этого ряда, определения координат двух крайних ячеек в последующих рядах, при этом, если крайний и последующий ряды содержат ячейки, местоположение которых не совпадает с местоположением активного объекта в этих рядах, то в массив данных карты вводят модификатор разрыва ряда ячеек и запоминают координаты крайних ячеек активного объекта в месте разрыва ряда, анализируют каждый последующий ряд на предмет отсутствия в ряду ячеек активных объектов, и если ряд свободен от ячеек активных объектов, то вводят модификатор пропуска ряда, анализируют каждый последующий ряд на предмет идентичности предыдущего и последующих, смежных с ним рядов, если они идентичны, то вводят модификатор повтора рядов, после внутрикадрового кодирования запоминают карту видеокадра, при изменении геометрической формы и/или положения активного объекта в следующем видеокадре производят его межкадровое кодирование, при котором, если положение ячеек активного объекта в следующем видеокадре изменяется, а его геометрическая форма сохраняется, то в массив данных карты следующего видеокадра вводят параметры вектора смещения ячеек активного объекта, если изменяется положение ячеек активного объекта и его геометрическая форма, то производят упомянутое внутрикадровое кодирование этого видеокадра, получая массив данных А, далее вводят в массив данных параметры вектора смещения ячеек активного объекта и вычисляют разность между двумя матрицами массивов данных для активного объекта на предыдущем и следующем видеокадре, получая разностную матрицу, полученную разностную матрицу кодируют упомянутым внутрикадровым кодированием, получая массив данных В, сравнивают размер в байтах массива данных А с массивом данных В по формуле
W={[Р(А)-Р(В)]/Р(А)}•100%,
где W - вычисляемая величина выигрыша, %,
Р(А) - размер массива А,
Р(В) - размер массива В,
и если величина W>К, где К - величина заданного порога, то сохраняют массив В в качестве массива данных следующей карты, и при определении местоположения активного объекта этого видеокадра используют массив данных А предыдущей карты, а если W<К, то сохраняют массив данных А в качестве массива следующей карты, формирование и запоминание свойств активных объектов производят путем установки связей с помощью по меньшей мере одной гиперссылки для каждого активного объекта, при этом связь устанавливают с различными источниками цифровых данных, при формировании и запоминании перехода, соответствующего данному активному объекту, формируют последовательность показа других заданных видеокадров для данного активного объекта, на этапе воспроизведения производят декодирование карт файла сценария, при совпадении положения курсора манипулятора на экране монитора с активным объектом и при нажатии одной из клавиш манипулятора осуществляют переход по первой доступной гиперссылке, сформированной и запомненной на этапе создания файла сценария, при совпадении положения курсора манипулятора на экране монитора с активным объектом и при нажатии другой из клавиш манипулятора осуществляют выбор из меню нескольких гиперссылок и при нажатии затем другой клавиши манипулятора на одну из гиперссылок этого меню осуществляют переход в соответствии со связью этой гиперссылки с соответствующим источником цифровых данных.
To solve the problem with achieving a technical result in the known method of object-oriented interactive processing of video information, which includes the step of creating a script file and the step of playing back video images, at the stage of creating the script file, a video frame with an image of at least one visual object intended subsequently, to activate it at the playback stage, the active object, the video frame is divided into X • Y cells, where X and Y are 1, 2, 3.. ., having the form of elementary squares or rectangles, select cells whose location coincides and does not coincide on the video frame with the location of the active object, assigning to the cells matching the location of the cells of the active objects corresponding numbers to them, and assigning zeros to cells whose location does not coincide with the location cells of active objects, perform intraframe coding, form an array of map data for all active objects of a given video frame, form and store properties of active new objects, form and remember the transition corresponding to this active object, and if the position of the active objects in the next video frames of the video file is constant, then for such video frames the map of the previous video frame belongs to them, and if the position of the active objects in the next video frame changes, they form a new map for these active objects, form and store a script file formed by a sequence of cards in which each card corresponds to at least one video frame of the video file, while at the stage of video playback, a video file, a script file and current information about the position of the manipulator cursor on the monitor screen are used, when the manipulator cursor moves on the monitor screen and when the cursor location coincides with the active object, those cells whose location coincides on the video frame with the location of the active object, view the cursor is converted, when the cursor matches the location of the active object and when you press one of the keys on the manipulator, a transition corresponding to active object and memorized at the stage of creating the script file, and when playing a video frame of a video file with another active object on the same video frame, when the cursor coincides with the location of another active object and when you press the same manipulator key, the transition corresponding to another active object according to the invention for the formation of the map data array of all active objects of the video frame, intraframe coding is performed by selecting the extreme row along one of the X or Y coordinates, of cells of the active object, determining the coordinates of the extreme cells of this row, determining the coordinates of the two extreme cells in subsequent rows, while if the extreme and subsequent rows contain cells whose location does not coincide with the location of the active object in these rows, then to the map data array they introduce a modifier for breaking a series of cells and remember the coordinates of the extreme cells of the active object in the place of breaking a series, analyze each subsequent series for the absence of active objects in the series of cells, and if the series is free from cells of active objects, then a row skip modifier is introduced, each subsequent row is analyzed for the identity of the previous and subsequent rows adjacent to it, if they are identical, then a row repeat modifier is entered, after intraframe coding, the video frame map is stored, if the geometric shape and / or the position of the active object in the next video frame produces its inter-frame coding, in which, if the position of the cells of the active object in the next video frame changes, and its geometric shape is saved If it is deleted, then the parameters of the cell displacement vector of the active object are introduced into the data array of the map of the next video frame, if the position of the cells of the active object and its geometric shape are changed, then the above-mentioned encoding of this video frame is performed, obtaining the data array A, then the parameters of the cell displacement vector are entered into the data array the active object and calculate the difference between the two matrices of data arrays for the active object on the previous and next video frame, obtaining a difference matrix obtained by the difference the matrix is encoded by the mentioned intra-frame coding, obtaining a data array B, the size in bytes of the data array A is compared with the data array B according to the formula
W = {[P (A) -P (B)] / P (A)} • 100%,
where W is the calculated gain,%,
P (A) - the size of the array A,
P (B) - the size of the array B,
and if the value W> K, where K is the value of the given threshold, then save array B as the data array of the next map, and when determining the location of the active object of this video frame, use the data array A of the previous map, and if W <K, then save the data array And as an array of the next map, the formation and storing of the properties of active objects is carried out by establishing links using at least one hyperlink for each active object, and a connection is established with various sources of digital data, When forming and remembering the transition corresponding to this active object, a sequence of showing other specified video frames for this active object is formed, at the playback stage, the script file cards are decoded, when the position of the manipulator cursor on the monitor screen coincides with the active object, and when one of the manipulator keys is pressed, following the first available hyperlink generated and remembered at the stage of creating the script file, if the cursor position matches Yator on the screen with the active object and pressing the other keys of the manipulator selects from a menu of several hyperlinks and then pressing the other key arm on one of the hyperlinks of the menu make the transition in accordance with the connection of the hyperlinks to the appropriate source of digital data.

Возможны дополнительные варианты реализации способа, в которых целесообразно, чтобы:
- на этапе создания файла сценария выделение ячеек активного объекта производили при помощи средств ручной разметки;
- на этапе создания файла сценария выделение ячеек активного объекта производили автоматически после указания характерных точек на контуре активного объекта и идентификации ячеек внутри этого контура, причем на следующем видеокадре производили автоматическое отслеживание изменения местоположения характерных точек и изменения положения ячеек активного объекта;
- на этапе воспроизведения в качестве источника цифровых данных использовали видеофайл;
- на этапе воспроизведения в качестве источника цифровых данных использовали программу воспроизведения, обеспечивающую заданный порядок воспроизведения кадров видеофайлов;
- на этапе воспроизведения в качестве источника цифровых данных использовали текстовые документы, HTML документы, графику, компьютерную программу;
- на этапе воспроизведения запоминали переходы по гиперссылкам активных объектов для возврата к сюжетам, от которых и на которые были выполнены переходы;
- на этапе воспроизведения активные объекты маркировали;
- на этапе воспроизведения при совпадении местоположения курсора манипулятора с местоположением активного объекта формировали всплывающую подсказку;
- декодирование производили путем операции, обратной кодированию.
There are additional options for implementing the method, in which it is advisable that:
- at the stage of creating the script file, the cells of the active object were selected using the manual marking tools;
- at the stage of creating the script file, the cells of the active object were automatically selected after specifying the characteristic points on the contour of the active object and identifying the cells inside this circuit, and the next video frame automatically tracked the change in the location of the characteristic points and the position of the cells of the active object;
- at the playback stage, a video file was used as a source of digital data;
- at the playback stage, a playback program was used as a source of digital data, providing a specified order of playback of frames of video files;
- at the playback stage, text documents, HTML documents, graphics, a computer program were used as a source of digital data;
- at the playback stage, clicks on hyperlinks of active objects were remembered to return to the plots from which the transitions were made;
- at the stage of reproduction, active objects were marked;
- at the playback stage, when the location of the cursor of the manipulator coincides with the location of the active object, a tooltip is generated;
- decoding was performed by the reverse operation of encoding.

За счет оригинального осуществления кодирования координат активных объектов, введения операции межкадрового кодирования, в которой могут быть использованы массивы данных предыдущего кадра, а также за счет осуществления различных переходов при помощи множества гиперссылок, принадлежащих одному АО, удалось решить поставленную задачу. Due to the original implementation of the encoding of coordinates of active objects, the introduction of the inter-frame encoding operation, in which data arrays of the previous frame can be used, as well as due to the implementation of various transitions using multiple hyperlinks belonging to one AO, it was possible to solve the problem.

Указанные преимущества, а также особенности настоящего изобретения поясняются лучшими вариантами его выполнения со ссылками на прилагаемые чертежи:
фиг. 1 изображает массив данных с двумя активными объектами после идентификации ячеек для подачи на кодирование;
фиг.2 - ряды ячеек с разрывом линии, с пропуском линии, с повторяющимися линиями и отрезки линий, описываемые без помощи модификаторов;
фиг. 3 - а) предыдущий и б) последующий кадры со смещением АО при сохранении его геометрической формы;
фиг.4 - массив данных с АО после идентификации ячеек для подачи на кодирование, где а) - К-й кадр с активным объектом; б) - К+1 кадр, в котором АО изменил геометрическую форму; в) - разностная матрица, полученная в результате вычитания массивов данных К+1 кадра и К-го кадра;
фиг.5 - блок-схема алгоритма внутрикадрового кодирования для заявленного способа;
фиг.6 - блок-схема алгоритма с учетом межкадрового кодирования;
фиг.7 - блок-схема этапа редактирования;
фиг.8 - блок-схема способа автоматизированной разметки АО;
фиг.9 - блок-схема этапа воспроизведения;
фиг.10 - блок-схема декодирования карт АО;
фиг.11 - блок-схема декодирования ключевой карты;
фиг.12 - вариант интерфейса для осуществления редактирования;
фиг.13 - средства навигации по кадрам на этапе редактирования;
фиг.14 - средства идентификации ячеек на этапе редактирования;
фиг.15 - а) средства управления АО, б), в) средства управления гиперссылками активных объектов, г) средства управления доступностью ссылок на конкретных видеокадрах;
фиг.16 - средства управления программами воспроизведения;
фиг.17 - множество переходов, осуществляемых от АО посредством множества гиперссылок различных типов на этапе воспроизведения;
фиг. 18 - множество гиперссылок АО, доступных из меню при нажатии правой кнопки мыши на этапе воспроизведения;
фиг. 19 - всплывающая подсказка при наведении курсора манипулятора на АО и маркер АО.
These advantages, as well as features of the present invention are illustrated by the best options for its implementation with reference to the accompanying drawings:
FIG. 1 depicts an array of data with two active objects after identifying cells for coding;
figure 2 - rows of cells with a line break, with a skip line, with repeating lines and line segments, described without the help of modifiers;
FIG. 3 - a) previous and b) subsequent frames with AO offset while maintaining its geometric shape;
figure 4 - an array of data from AO after identification of cells for filing for encoding, where a) - K-th frame with the active object; b) - K + 1 frame, in which AO changed the geometric shape; c) - the difference matrix obtained by subtracting the data arrays K + 1 frame and the K-th frame;
5 is a block diagram of an intraframe coding algorithm for the claimed method;
6 is a block diagram of an algorithm taking into account inter-frame coding;
7 is a block diagram of an editing step;
Fig. 8 is a flowchart of a method for automated marking of AO;
Fig.9 is a block diagram of a playback step;
figure 10 is a block diagram of a decoding card AO;
11 is a block diagram of a decoding key card;
12 is an embodiment of an interface for editing;
Fig - means of navigation through the frames at the editing stage;
Fig - means of identification of cells at the editing stage;
Fig - a) controls AO, b), c) controls hyperlinks to active objects, d) controls the availability of links to specific video frames;
Fig.16 - management tools for playback programs;
Fig - many transitions made from AO through a variety of hyperlinks of various types at the stage of playback;
FIG. 18 - a lot of hyperlinks AO, accessible from the menu when you right-click on the playback stage;
FIG. 19 is a tooltip when the cursor is over the AO and AO marker.

В заявленном способе объектно-ориентированной интерактивной обработки видеоинформации выводят на экран монитора видеокадр с изображением по меньшей мере одного визуального объекта, предназначенного в последующем для его активизации при воспроизведении, - активного объекта (АО) разбивают на X•Y ячеек (фиг.1), осуществляя тем самым дискретизацию визуального объекта. При дискретизации разметки визуальных объектов на видеокадрах автор отмечает области, покрывающие изображение объекта на видеокадре, которые будут относиться к предварительно определенному им АО (например, регионы персонажа фильма, автомобиля, самолета, предварительно определенные в АВ Редакторе). Разметка АО определяется в координатах сетки. Минимальная единица разметки - одна ячейка сетки. Чем меньше ячейка, тем более точная разметка АО может быть произведена. In the claimed method of object-oriented interactive processing of video information, a video frame is displayed on the monitor screen with an image of at least one visual object, which is subsequently used to activate it during playback, the active object (AO) is divided into X • Y cells (Fig. 1), thereby discretizing the visual object. When discretizing the markup of visual objects on video frames, the author marks the areas covering the image of the object on the video frame that will relate to the AO predefined by him (for example, regions of the character of the film, car, plane, previously defined in the AV Editor). AO marking is defined in grid coordinates. The minimum markup unit is one grid cell. The smaller the cell, the more accurate marking of the AO can be made.

Идентифицирование ячеек, местоположение которых совпадает и не совпадает на видеокадре с местоположением АО, может осуществляться различными средствами ручной разметки или автоматически, что будет в последующем показано на примерах конкретного осуществления способа. Присваивают ячейкам АО для различных АО соответствующие им номера (например, от 1 до 65000), несовпадающие для различных АО, тем самым производя идентификацию самих АО. Присваивают нули ячейкам, местоположение которых не совпадает с местоположением АО (фиг.1). Identification of cells whose location coincides and does not coincide on the video frame with the location of AO can be carried out by various means of manual marking or automatically, which will be later shown on examples of a specific implementation of the method. Assign AO cells for different AOs the numbers corresponding to them (for example, from 1 to 65000), which do not coincide for different AOs, thereby identifying the AOs themselves. Assign zeros to cells whose location does not coincide with the location of AO (figure 1).

При внутрикадровом кодировании производят кодирование областей АО на данном видеокадре. Внутрикадровое кодирование позволяет сформировать массив данных карты АО - соответствующую матрицу в системе координат X, Y для ячеек, местоположение которых совпадает на видеокадре с местоположением АО. Карта - закодированная информация о разметке АО. With intraframe coding, AO regions are encoded on this video frame. Intra-frame coding makes it possible to form an array of AO map data — the corresponding matrix in the X, Y coordinate system for cells whose location coincides on the video frame with the location of the AO. Map - encoded information about AO markup.

Операция внутрикадрового кодирования в заявленном техническом решении отличается от внутрикадрового кодирования, используемого в аналогичных технических решениях, в которых используется массив данных видеоизображений для всей площади экрана (матрица массива данных в аналогичном способе учитывает нулевые ячейки и координаты каждой из ячеек АО). В заявленном способе операция внутрикадрового кодирования исключает избыточность массивов данных, описывающих области разметки АО на кадре. The intraframe coding operation in the claimed technical solution differs from the intraframe coding used in similar technical solutions that use an array of video image data for the entire screen area (the data array matrix in the same way takes into account zero cells and coordinates of each of the AO cells). In the claimed method, the operation of intraframe coding eliminates the redundancy of data arrays that describe the marking areas of AO in the frame.

В заявленном способе для формировании карты для всех АО данного видеокадра внутрикадровое кодирование осуществляют путем выделения рядов (фиг.2), состоящих из ячеек АО, расположенных только в одном направлении Х горизонтально или только Y вертикально. Внутрикадровое кодирование производят последовательно, прибавляя шаг 1 к одной из координат крайнего ряда активного объекта, например, к координате Y. Другие координаты, например Х, определяют для крайних ячеек для каждого ряда АО. В массив данных карты вводят модификаторы - указатели разрыва в рядах ячеек, пропуска ряда для ячеек, повтора ряда для ячеек. Если какой-либо из рядов содержит разрыв, то при запоминании массива данных этот ряд описывают при помощи модификатора разрыва ряда ячеек, при этом дополнительно запоминают координаты Х ячеек активного объекта в месте разрыва ряда. Если следующий по порядку ряд свободен от ячеек активного объекта, то при запоминании массива данных вводят для этого ряда модификатор пропуска. Если какой-либо из последующих смежных рядов имеет координаты Х крайних ячеек в ряду, одинаковые с предыдущим рядом, то вводят для этого ряда указатель повтора ряда ячеек. После кодирования запоминают карту видеокадра - массив полученных данных. In the claimed method for forming a map for all AOs of a given video frame, intraframe coding is performed by selecting rows (Fig. 2) consisting of AO cells located in only one direction X horizontally or only Y vertically. Intra-frame coding is performed sequentially by adding step 1 to one of the coordinates of the extreme row of the active object, for example, to the Y coordinate. Other coordinates, for example X, are determined for the extreme cells for each row of AOs. Modifiers are introduced into the map data array - break indicators in a row of cells, a row skip for cells, a row repeat for cells. If any of the rows contains a gap, then when storing an array of data, this series is described using the modifier of the gap of a number of cells, while the X coordinates of the cells of the active object in the place of the row break are additionally stored. If the next row in order is free from the cells of the active object, then when storing the data array, a skip modifier is introduced for this row. If any of the following adjacent rows has the X coordinates of the extreme cells in the row, the same as the previous row, then enter for this row a pointer to repeat the row of cells. After encoding, the video frame card is stored - an array of the received data.

Процесс внутрикадрового кодирования поясняется с помощью следующего примера. The intraframe coding process is illustrated using the following example.

Пусть процесс внутрикадрового кодирования проводится по горизонтальным рядам ячеек, в которых ячейки с одинаковыми Y координатами принадлежат одной группе и расположены вдоль горизонтальных линий. Группы ячеек (фиг.2) расположены на отрезках линий. При кодировании достаточно запомнить данные о левой и правой координате Х каждого горизонтального ряда. Для уменьшения количества данных карты, необходимых для сохранения и полного описания АО, вводятся модификаторы трех типов: модификатор разрыва ряда ячеек - отрезка линии, модификатор пропуска ряда для ячеек - пропуска линии для ячеек, модификатор повтора ряда для ячеек - повтора линий для ячеек. Let the intraframe coding process be conducted along horizontal rows of cells in which cells with the same Y coordinates belong to the same group and are located along horizontal lines. Groups of cells (figure 2) are located on line segments. When coding, it is enough to remember the data on the left and right X coordinates of each horizontal row. To reduce the amount of map data needed to save and fully describe AO, three types of modifiers are introduced: a row break modifier for a cell - line segment, a row skip modifier for cells - a line skip for cells, a row repeat modifier for cells - a line replay for cells.

Пусть первоначально запоминают координату Y верхней левой точки АО, если кодирование производится по горизонтали. Затем определяют начальные и конечные координаты Х отрезков. Отрезки следуют один за другим, то есть координата Y следующего сохраненного отрезка равна координате Y предыдущего отрезка плюс 1, поэтому сохраняется только одна координата Y крайней точки АО и начальные и конечные координаты Х отрезков. Let the Y coordinate of the upper left point of AO be initially remembered if coding is done horizontally. Then, the initial and final coordinates of X segments are determined. The segments follow one after the other, that is, the Y coordinate of the next saved segment is equal to the Y coordinate of the previous segment plus 1, therefore only one Y coordinate of the extreme point AO and the starting and ending X coordinates of the segments are saved.

В случае разрывов линий, пропуска линий (фиг.2) вводятся модификаторы, необходимые для определения только Y координат отрезков. Отрезки линий одинаковые и идентичные для рядов ячеек, т.е. если они имеют равные Х координаты начальной и конечной точек соответственно. Модификатор разрыва ряда ячеек указывает, что отрезки линий с группами ячеек до и после него расположены на одной линии и имеют разрыв, т.е. у них одинаковая Y координата и отсутствует группа ячеек в ряду. Запоминают координаты крайних ячеек в месте разрыва ряда. Модификатор пропуска ряда указывает, что один из горизонтальных рядов ячеек отсутствует и запоминается Y координата следующего существующего ряда АО, т. е. не пустой линии. Модификатор повтора ряда указывает, что линия с ячейками - идентичная смежной, предыдущей (содержит столько же ячеек, как предыдущая, и координаты Х для крайних ячеек линии одинаковые) и повторяется некоторое количество раз. Если в матрице данных отсутствует модификатор для горизонтального ряда ячеек, то отрезки линий рядов не имеют повторов, разрывов, пропусков. Такие ячейки принадлежат разным, но последовательно идущим сверху вниз линиям: Yi+1=Yi+1, где i - номер горизонтального ряда ячеек (i= 1...k).In the case of line breaks, skipping lines (figure 2), the modifiers necessary to determine only the Y coordinates of the segments are introduced. The line segments are the same and identical for the rows of cells, i.e. if they have equal X coordinates of the starting and ending points, respectively. The break modifier of a number of cells indicates that the line segments with groups of cells before and after it are located on the same line and have a gap, i.e. they have the same Y coordinate and there is no group of cells in a row. The coordinates of the outermost cells at the row break point are remembered. The row skip modifier indicates that one of the horizontal rows of cells is absent and the Y coordinate of the next existing row of AOs, i.e., not an empty line, is remembered. The row repeat modifier indicates that the line with the cells is identical to the adjacent previous one (contains the same number of cells as the previous one, and the X coordinates for the extreme cells of the line are the same) and is repeated a number of times. If there is no modifier in the data matrix for a horizontal row of cells, then the line segments of the rows do not have repeats, gaps, or gaps. Such cells belong to different, but sequentially going from top to bottom lines: Y i + 1 = Y i +1, where i is the number of the horizontal row of cells (i = 1 ... k).

На фиг. 2 жирными линиями показан АО, матрица которого кодируется следующей последовательностью, приведенной в табл. 1а. In FIG. 2 bold lines show AO, the matrix of which is encoded by the following sequence shown in table. 1a.

Схема внутрикадрового кодирования карт в файл сценария:
<object map i>::=<begin point><count stretches> <stretches>
<begin point>
Начальная точка области разметки объекта, Y координата верхней левой точки отрезка линии верхнего горизонтального ряда ячеек.
The scheme of intraframe coding of cards in a script file:
<object map i> :: = <begin point><countstretches><stretches>
<begin point>
The starting point of the markup area of the object, Y coordinate of the upper left point of the line segment of the upper horizontal row of cells.

<count stretches>
Список элементов разметки. Состоит из координат отрезков линий и модификаторов.
<count stretches>
List of markup elements. Consists of the coordinates of line segments and modifiers.

<stretch i>::=<start X> <end X>
<start X>
X координата начальной точки отрезка линии.
<stretch i> :: = <start X><endX>
<start X>
X coordinate of the starting point of the line segment.

<end X>
Х координата конечной точки отрезка линии.
<end X>
X coordinate of the end point of the line segment.

<modifier>::=(<line continue>|<pass lines>|<repeat stretch>)
<line continue>:=<line continue mod><stretch i>
Модификатор разрыва линии описывает разрыв текущей линии разметки или, другими словами, продолжительность разметки в текущей линии. Если текущая линия состоит из более чем одного отрезка, модификатор указывает, что следующий отрезок принадлежит той же линии.
<modifier> :: = (<line continue> | <pass lines> | <repeat stretch>)
<line continue>: = <line continue mod><stretchi>
The line break modifier describes the break of the current marking line or, in other words, the duration of marking in the current line. If the current line consists of more than one line, the modifier indicates that the next line belongs to the same line.

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

<stretch i>
Следующий отрезок в той же линии.
<stretch i>
The next segment is in the same line.

<pass lines>::=<pass lines mod><Y new>
Модификатор пропуска линии описывает линии, которые не содержат разметку объекта. Определяет Y координату следующей линии, в которой встречается разметка.
<pass lines> :: = <pass lines mod><Ynew>
The line skip modifier describes lines that do not contain object markings. Defines the Y coordinate of the next line in which the markup occurs.

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

<Y new>
Y координата линии, где разметка появляется.
<Y new>
The y coordinate of the line where the markup appears.

<repeat stretch>:=<stretches on line> <repeat stretch mod> <count line>
Модификатор повтора линии используется для кодирования повторяющихся отрезков линий или повторяющихся последовательностей отрезков линий.
<repeat stretch>: = <stretches on line><repeat stretch mod><countline>
The line repeat modifier is used to encode repeating line segments or repeating sequences of line segments.

<stretches on line>
Список отрезков, представляющих повторяющиеся последовательности
<repeat stretch mod>
Модификатор Повтора, байт идентификатор модификатора.
<stretches on line>
A list of segments representing repeating sequences
<repeat stretch mod>
Retry modifier, byte modifier identifier.

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

При изменении геометрической формы или положения активного объекта в следующем видеокадре для уменьшения массива данных карт производят межкадровое кодирование. При этом межкадровое кодирование производят для каждого последующего видеокадра за исключением тех видеокадров, в которых местоположение АО и его форма не изменяется. Если положение и форма активных объектов в следующих видеокадрах видеофайла постоянны, то для таких видеокадров карта предыдущего видеокадра принадлежит им, поэтому не требуется запоминания массива данных карт таких видеокадров. Операция межкадрового кодирования исключает избыточность массивов данных, описывающих регионы разметки объектов на соседних кадрах. Процесс кодирования областей АО основан на данных текущего и предыдущего видеокадров. When changing the geometric shape or position of the active object in the next video frame, interframe coding is performed to reduce the array of map data. In this case, inter-frame coding is performed for each subsequent video frame, with the exception of those video frames in which the location of the AO and its shape does not change. If the position and shape of the active objects in the following video frames of the video file is constant, then for such video frames the map of the previous video frame belongs to them, therefore, it is not necessary to memorize the data array of maps of such video frames. The operation of inter-frame coding eliminates the redundancy of data arrays that describe the regions of the markup of objects on adjacent frames. The process of coding AO areas is based on data from the current and previous video frames.

На первом этапе массив координат АО, относящихся к предыдущему видеокадру, сравнивается с массивом координат активных объектов текущего кадра. Если матрицы - массивы данных совпадают, то карта разметки АО, относящаяся к предыдущему видео кадру, относится и к текущему видеокадру, т.е. для таких видеокадров карта предыдущего видеокадра принадлежит им. At the first stage, the array of AO coordinates related to the previous video frame is compared with the array of coordinates of the active objects of the current frame. If the matrices - data arrays are the same, then the AO markup map related to the previous video frame also applies to the current video frame, i.e. for such video frames, the map of the previous video frame belongs to them.

Если матрицы не совпадают, то проводят анализ массива данных для каждого АО (если их несколько). If the matrices do not match, then analyze the data array for each AO (if there are several).

Возможны следующие варианты:
1. Координаты АО совпадают.
The following options are possible:
1. The coordinates of the AO are the same.

2. Форма АО совпадает, но АО смещен в двухмерном пространстве (фиг.3). 2. The shape of the AO coincides, but the AO is biased in two-dimensional space (Fig. 3).

3. Форма АО изменена по отношению к форме АО предыдущего видеокадра, но сам объект не смещен (фиг.4). 3. The shape of the AO is changed in relation to the shape of the AO of the previous video frame, but the object itself is not biased (Fig. 4).

4. Форма АО изменена по отношению к форме АО предыдущего кадра и объект смещен (совместное действие по фиг.3, 4). 4. The shape of the AO is changed with respect to the shape of the AO of the previous frame and the object is displaced (the joint action of FIGS. 3, 4).

Если координаты активных объектов на предыдущем и последующем кадре равны, то в карту АО вводят данные о векторе смещения, равном (0, 0). Такая карта может быть раскодирована с использованием информации о предыдущей карте активного объекта. Для удобства дальнейшего пояснения операции межкадрового кодирования массив данных карты, который используется для кодирования следующей карты и позволяет снизить объем данных для карты следующего кадра, - ключевой, и такая предыдущая карта - ключевая. Карта следующего кадра, с которой информация не может быть считана без использования ключевой, - относительная. If the coordinates of the active objects on the previous and next frame are equal, then data on the displacement vector equal to (0, 0) are entered into the AO map. Such a map can be decoded using information about the previous map of the active object. For the convenience of further explaining the operation of inter-frame coding, the data array of the card, which is used to encode the next card and allows you to reduce the amount of data for the card of the next frame, is the key, and such a previous card is the key. The map of the next frame, with which information cannot be read without using the key, is relative.

Если форма активных объектов совпадает, но активные объекты смещены в двухмерном пространстве, то производят учет этого смещения при помощи <вектора смещения> (фиг.3). В массив данных карты АО вводят только координаты вектора смещения - два числа, смещение по оси Х и смещение по оси Y. Карта с данными о смещении - относительная, а карта с первоначальным положением АО - ключевая. Так, на фиг.3 вектор смещения для АО (К+1)-го кадра относительно К-го кадра характеризуется смещением АО на 5 ячеек по Х и на 1 ячейку по Y. Поэтому в массив данных карты (К+1)-го кадра вводят только два числа (5, 1), характеризующие координаты вектора смещения. Карта К-го кадра - ключевая, а карта (К+1)-го кадра - относительная, и ее полный массив данных может быть получен при последующем декодировании только с использованием ключевой карты. If the shape of the active objects coincides, but the active objects are displaced in two-dimensional space, then this displacement is taken into account using the <displacement vector> (Fig. 3). Only the coordinates of the displacement vector are entered into the data array of the AO map - two numbers, the displacement along the X axis and the displacement along the Y axis. The map with the displacement data is relative, and the map with the initial position of the AO is the key. So, in Fig. 3, the displacement vector for the AO (K + 1) -th frame relative to the K-th frame is characterized by the AO displacement by 5 cells in X and by 1 cell in Y. Therefore, in the map data array (K + 1) -th Only two numbers (5, 1) are introduced into the frame, which characterize the coordinates of the displacement vector. The card of the K-th frame is the key one, and the card of the (K + 1) -th frame is relative, and its full data array can be obtained by subsequent decoding only using the key card.

Если форма АО последующего кадра (фиг.4Б) изменена по отношению к форме АО предыдущего кадра (фиг.4А), но сам объект не смещен, то выполняется межкадровое кодирование двумя методами. Внутрикадровым кодированием, описанным выше, кодируют массив данных (К+1)-го кадра. В результате получают результирующий массив данных А. Затем вторым методом определяют разность между данными координат матрицы АО предыдущего К-го кадра и данными координат матрицы АО последующего (К+1)-го кадра с измененной формой объекта (фиг.4В). Как видно из фиг.4, для АО (К+1)-й кадр отличается от К-го кадра местоположением только четырех ячеек, а разностная матрица будет характеризоваться только координатами Х и Y этих ячеек. Далее кодируют полученную разностную матрицу методом внутрикадрового кодирования, описанным выше. В результате получают результирующий массив данных В. Сравнивают размер в байтах массива данных А с массивом данных В по формуле
W={[Р(А)-Р(В)]/Р(А)}•100%,
где W - вычисляемая величина выигрыша, %,
Р(А) - размер массива А,
Р(В) - размер массива В,
и если величина W>К, где К - величина заданного порога, то сохраняют массив В и вектор смещения, равный (0,0) в качестве описания следующей карты, а если W<К, то сохраняют массив А в качестве описания следующей карты активного объекта. Если сохраняется массив В, то такая карта является относительной, а если массив А - то ключевой.
If the AO shape of the subsequent frame (Fig. 4B) is changed with respect to the AO shape of the previous frame (Fig. 4A), but the object itself is not offset, then interframe coding is performed by two methods. The intraframe coding described above encode the data array of the (K + 1) th frame. The result is a resultant data array A. Then, the second method determines the difference between the coordinate data of the AO matrix of the previous Kth frame and the coordinate data of the AO matrix of the subsequent (K + 1) th frame with the changed shape of the object (Fig. 4B). As can be seen from figure 4, for AO (K + 1) -th frame differs from the K-th frame by the location of only four cells, and the difference matrix will be characterized only by the X and Y coordinates of these cells. Next, the resulting difference matrix is encoded using the intraframe coding method described above. The result is a resulting data array B. Compare the size in bytes of the data array A with the data array B by the formula
W = {[P (A) -P (B)] / P (A)} • 100%,
where W is the calculated gain,%,
P (A) - the size of the array A,
P (B) - the size of the array B,
and if the value W> K, where K is the value of the given threshold, then the array B and the displacement vector equal to (0,0) as the description of the next map are stored, and if W <K, then the array A is saved as the description of the next map of the active object. If array B is stored, then such a map is relative, and if array A is key.

Величина заданного порога К может быть выбрана в интервале 30-99%. Величина К определяется автором файла сценария. Порог 30% дает большое количество относительных карт АО, а при 99% практически все карты являются ключевыми. Это сказывается на объеме запоминаемой информации. При использовании на практике только ключевых карт, объем сохраняемых данных больше, но и быстрее скорость доступа и соответственно быстрее производится декодирование. При использовании большого количества в файле сценария относительных карт уменьшается быстродействие, но сокращается объем требуемой памяти - доля хранения данных. Поэтому целесообразно величину конкретного порога устанавливать в зависимости от технических характеристик используемого цифрового оборудования. Экспериментально установлено, что для большинства приложений можно задавать величину порога 40-50%. The value of the specified threshold K can be selected in the range of 30-99%. The value of K is determined by the author of the script file. The threshold of 30% gives a large number of relative cards of AO, and at 99% almost all cards are key. This affects the amount of information stored. When using only key cards in practice, the amount of data stored is greater, but the access speed is faster and, accordingly, decoding is faster. When using a large number of relative cards in a script file, performance decreases, but the amount of required memory is reduced - the percentage of data storage. Therefore, it is advisable to set the specific threshold value depending on the technical characteristics of the digital equipment used. It has been experimentally established that for most applications, a threshold value of 40-50% can be set.

Если АО смещен, а также изменена форма АО по отношению к его форме на предыдущем видеокадре (т. е. произошла совместная ситуация изменения карты АО, как это было показано по отдельности на фиг.3 и 4), то сначала производят внутрикадровое кодирование следующего видеокадра, получая массив данных А. Затем определяют вектор смещения (как это было ранее описано для фиг.3). В этом случае за направление и величину вектора смещения принимается вектор, который при смещении на величину этого вектора АО с предыдущего кадра дает максимальное совпадение ячеек с этим АО последующего кадра. То есть определяют все совпадающие ячейки предыдущего и следующего кадра и находят для этих ячеек параметры Х и Y вектора смещения, как это было описано ранее. Далее определяют разность между данными координат ячеек матрицы АО предыдущего кадра и данными координат ячеек матрицы АО последующего кадра с измененной формой объекта (как это было ранее описано для фиг.4). То есть выявляются те ячейки, которые не совпадают на предыдущем и следующем видеокадрах. Далее кодируют полученную разностную матрицу методом внутрикадрового кодирования, описанным выше. В результате получают результирующий массив данных В. Если W>К, где К - величина заданного порога, то сохраняется закодированный разностный массив В и параметры вектора смещения, т.е. получают относительную карту. Если W<К, то сохраняют массив А, т.е. ключевую карту, как было описано выше. Величина заданного порога К может быть выбрана в интервале 30-99%. If the AO is shifted and the shape of the AO is changed in relation to its shape on the previous video frame (i.e., there was a joint situation of changing the AO map, as was shown separately in Figs. 3 and 4), then the next frame is encoded intraframe obtaining the data array A. Then, the displacement vector is determined (as previously described for FIG. 3). In this case, the vector is taken as the direction and magnitude of the displacement vector, which, when displaced by the value of this vector, AO from the previous frame gives the maximum coincidence of the cells with this AO of the next frame. That is, all matching cells of the previous and next frame are determined and the parameters X and Y of the displacement vector are found for these cells, as described previously. Next, the difference between the coordinate data of the cells of the matrix AO of the previous frame and the coordinate data of the cells of the matrix AO of the next frame with the changed shape of the object is determined (as was previously described for figure 4). That is, those cells that do not match on the previous and next video frames are detected. Next, the resulting difference matrix is encoded using the intraframe coding method described above. As a result, the resulting data array B is obtained. If W> K, where K is the value of the given threshold, then the encoded difference array B and the parameters of the displacement vector are stored, i.e. get a relative map. If W <K, then store array A, i.e. key card as described above. The value of the specified threshold K can be selected in the range of 30-99%.

Процесс применяется к каждому активному объекту на данном видеокадре. The process is applied to each active object in this video frame.

При кодировании последующего кадра проверяется предыдущая карта активного объекта. Определяется, является ли она относительной или ключевой. Если предыдущая карта является относительной, т.е. для нее W>К, то карта активного объекта на последующем кадре также может быть только относительной по отношению к ранее полученной ключевой карте. То есть ее данные считываются при помощи ключевой карты, минуя массив данных предыдущих относительных карт. Но в случае, если для нее W<К, то она будет сама ключевой для последующих карт активного объекта. Таким образом, получают последовательность - "цепь" карт АО, где могут быть несколько относительных карт АО, следующих за ключевой. When encoding a subsequent frame, the previous map of the active object is checked. Determines whether it is relative or key. If the previous map is relative, i.e. for it W> K, then the map of the active object on the subsequent frame can also be only relative to the previously obtained key map. That is, its data is read using a key card, bypassing the data array of previous relative cards. But if W <K for her, then she will be the key for the subsequent cards of the active object. Thus, a sequence is obtained - a “chain” of AO cards, where there can be several relative AO cards following the key one.

Например, последовательность может выглядеть следующим образом: К R R R R К R R, где К - Ключевая Карта АО, а R - Относительная Карта АО. Процесс формирования карт осуществляется для всех кадров видео, имеющих разметку. Как будет показано далее, такое описание в матричной форме карт требует минимальных затрат памяти и вычислительных ресурсов на их декодирование. For example, a sequence might look like this: K R R R R K R R, where K is the Key Card AO and R is the Relative Card AO. The process of forming maps is carried out for all frames of video that have markup. As will be shown below, such a description in matrix form of cards requires minimal memory and computational resources for their decoding.

В заявленном техническом решении процесс кодирования включает в себя описанные внутрикадровое и межкадровое кодирования (фиг.5, 6). In the claimed technical solution, the encoding process includes the described intraframe and interframe coding (FIGS. 5, 6).

На вход кодировщика в блок 1 (фиг.5, 6) поступает массив координат АО текущего кадра, который представляет собой матрицу с размером, равным количеству ячеек в разметке. В ячейках, покрывающих АО, хранятся номера активных объектов, во всех остальных ячейках нули. Для простоты изложения рассматривается кодирование по горизонтали и слева направо. At the input of the encoder in block 1 (Figs. 5, 6), an array of AO coordinates of the current frame is received, which is a matrix with a size equal to the number of cells in the markup. In the cells covering AO, numbers of active objects are stored, in all other cells zeros. For simplicity, horizontal and left-to-right coding are considered.

Если массив данных координат АО - первый (блок сравнения 2, фиг.6), то кодируем его в блоке 3 внутрикадровым кодированием. Содержание функциональных элементов блока 3 (фиг.6) изображено на фиг.5. На первом этапе определяют левую верхнюю ординату Y0 АО - блок 4 (фиг.5). После ее определения ордината записывается в начальное значение счетчика по рядам - блок 5. Далее в блоке 6 определяют абсциссы начала и конца первого отрезка горизонтальной линии для ячеек и сохраняют их в результирующем массиве в блоке 8. Далее в блоке сравнения 9 проверяется, есть ли следующий отрезок по линии с такой же ординатой: если есть, то применяем модификатор разрыва ряда ячеек по этой горизонтальной линии в блоке 10 и определяем координаты начала и конца следующего отрезка линии с ячейками по горизонтали в блоке 6. Операция разбора горизонтального ряда ячеек вдоль горизонтальной линии происходит до тех пор, пока будет найден последний отрезок исследуемой горизонтальной линии, это условие проверяется в блоке сравнения 7. Если такого отрезка нет, то в блоке 11 выполняется переход на следующий смежный ряд ячеек - на следующую горизонтальную линию (инкремент равен 1). В случае отсутствия на следующей горизонтальной линии ячеек - отрезков АО, эта проверка осуществляется в блоке сравнения 12, указывается модификатор пропуска ряда в блоке 13. В случае обнаружения линии с рядом ячеек в блоке сравнения 14, состоящей из отрезка или отрезков с абсциссами и модификаторами, соответствующими предыдущей линии, в блоке 15 указывается модификатор повтора ряда. Процесс продолжается, начиная с блока 6, до тех пор, пока не будут описаны все отрезки с рядами ячеек, принадлежащие АО, это условие проверяется в блоке 16. Процесс, начиная с блока 6, повторяется для каждого АО матрицы данного кадра, это условие проверяется в блоке 17. Результирующий массив запоминается в блоке 18 (фиг 5). Результирующий массив из блока 3 (фиг.6) запоминается в буфере 19. Если активных объектов больше нет, то на вход кодировщика блок 1 (фиг. 6) поступает матрица следующего кадра. Эту матрицу сравниваем с матрицей предыдущего кадра в блоке 20 (фиг.6). Если матрицы идентичные, то в блоке 21 относим карту предыдущего кадра к текущему. Если матрицы разные, то в блоке 22 из матрицы выбираются координаты одного АО и производится два вычисления. По первому вычислению в блоке 23 координаты первого АО кодируем методом внутрикадрового кодирования. По второму вычислению в блоке 24 определяется вектор смещения, для этого вычисления матрица координат АО предыдущего кадра извлекается из блока 25. В блоке 26 определяется разница между матрицами АО. Блок 27 кодирует полученный после вычислений в блоке 26 разностный массив В внутрикадровым кодированием (фиг.5). В блоке 28 (фиг.6) сравнивается выигрыш W с заданным порогом К. If the array of coordinate data AO is the first (comparison block 2, Fig.6), then we encode it in block 3 by intraframe coding. The content of the functional elements of block 3 (Fig.6) is shown in Fig.5. At the first stage, determine the upper left ordinate Y0 AO - block 4 (figure 5). After determining it, the ordinate is written in the initial value of the counter in rows - block 5. Next, in block 6, the abscissas of the beginning and end of the first segment of the horizontal line for the cells are determined and stored in the resulting array in block 8. Then, in the comparison block 9, it is checked whether a line segment with the same ordinate: if there is, then we use the modifier to break a number of cells along this horizontal line in block 10 and determine the coordinates of the beginning and end of the next line segment with cells horizontally in block 6. Parse operation the horizontal row of cells along the horizontal line occurs until the last segment of the studied horizontal line is found, this condition is checked in comparison block 7. If there is no such segment, then in block 11 the transition to the next adjacent row of cells - to the next horizontal line ( increment is 1). If there are no cells - AO segments on the next horizontal line, this check is carried out in comparison block 12, a row skip modifier is indicated in block 13. If a line with a number of cells is found in comparison block 14, consisting of a segment or segments with abscissas and modifiers, corresponding to the previous line, in block 15, the row repeat modifier is indicated. The process continues, starting from block 6, until all segments with a series of cells belonging to AO are described, this condition is checked in block 16. The process, starting from block 6, is repeated for each AO matrix of this frame, this condition is checked in block 17. The resulting array is stored in block 18 (Fig. 5). The resulting array from block 3 (Fig. 6) is stored in the buffer 19. If there are no more active objects, then the matrix of the next frame arrives at the input of the encoder block 1 (Fig. 6). This matrix is compared with the matrix of the previous frame in block 20 (Fig.6). If the matrices are identical, then in block 21 we assign the map of the previous frame to the current one. If the matrices are different, then in block 22 the coordinates of one AO are selected from the matrix and two calculations are performed. According to the first calculation in block 23, the coordinates of the first AO are encoded using the intraframe coding method. According to the second calculation, the displacement vector is determined in block 24; for this calculation, the AO coordinate matrix of the previous frame is extracted from block 25. In block 26, the difference between the AO matrices is determined. Block 27 encodes the difference array B obtained after calculations in block 26 by intraframe coding (Fig. 5). In block 28 (Fig.6) compares the gain W with a given threshold K.

W={[Р(А)-Р(В)]/ Р(А)}•100%,
где W - вычисляемая величина выигрыша, %,
Р(А) - размер массива А,
Р(В) - размер массива В.
W = {[P (A) -P (B)] / P (A)} • 100%,
where W is the calculated gain,%,
P (A) - the size of the array A,
P (B) - the size of the array B.

После сравнения записывается вычисленный массив А или В в блоке 13. Если величина W>К, где К - величина заданного порога, то сохраняют в блоке 29 массив В и параметры вектора смещения в качестве описания следующей карты, а если W<К, то в блоке 29 сохраняют массив А в качестве другого описания следующей карты активного объекта. Процесс повторяется для каждого активного объекта, присутствующего в текущем кадре, что проверяется блоком сравнения 30. Результирующий массив запоминается в блоке 19. After comparison, the calculated array A or B is recorded in block 13. If W> K, where K is the value of the specified threshold, then array B and the parameters of the displacement vector are stored in block 29 as a description of the next map, and if W <K, then at block 29, an array A is stored as another description of the next map of the active object. The process is repeated for each active object present in the current frame, which is checked by the comparison unit 30. The resulting array is stored in block 19.

Далее формируют и запоминают свойства активных объектов (фиг.7). Устанавливают связь АО с источником цифровых данных с помощью по меньшей мере одной гиперссылки для каждого активного объекта. При формировании и запоминании перехода, соответствующего данному активному объекту, формируют последовательность показа заданных видеокадров другого отдельного сюжета для этого активного объекта. Next, the properties of active objects are formed and stored (Fig. 7). Establish a connection between the AO and the digital data source using at least one hyperlink for each active object. When forming and storing a transition corresponding to a given active object, a sequence of displaying the specified video frames of another separate plot for this active object is formed.

Данные операции производят в редакторе на этапе создания файла сценария (фиг. 7). В блоке 40 открывают ранее созданный или создают новый файл сценария. При открытии файла сценария в оперативную память компьютера считываются структуры файла сценария, описанные ниже. При создании файла сценария в оперативной памяти выделяется место под структуры файла сценария и определяются их начальные значения. Блок 41 формирования списка видеофайлов осуществляет заполнение структуры файла сценария в оперативной памяти компьютера, описывающей видеофайлы, которые будут использоваться в данном сценарии. Ввод данных осуществляют с помощью клавиатуры и манипулятора (мыши). Структура файла сценария подробно описывается далее. В блоке 42 формирования объектов производится заполнение структуры файла сценария в оперативной памяти компьютера, описывающей объекты. Структура включает информацию о наименовании объекта и список его гиперссылок. Описание гиперссылки включает информацию о наименовании ссылки (для визуального представления при воспроизведении), непосредственно гиперссылки на источник цифровых данных, например, для АО футбольного мяча ссылка может указывать на WEB сайт его производителя: http: //www. adidas.com. Гиперссылки могут быть разных типов. Например, гиперссылка может указывать на WEB сайты, а может указывать на Программу Воспроизведения видеофайлов, которая формируется в блоке 42. Эта информация также включается в структуру, описывающую АО. В структуру, описывающую АО, включается информация об области видимости ссылки: видеофайл и диапазон кадров (начальный и конечный кадр), на котором ссылка будет доступной при воспроизведении файла сценария. These operations are performed in the editor at the stage of creating the script file (Fig. 7). In block 40, a previously created script is opened or a new script file is created. When a script file is opened, the script file structures are read into the computer’s RAM, as described below. When creating a script file in RAM, a place is allocated for the structure of the script file and their initial values are determined. Block 41 forming a list of video files fills the structure of the script file in the computer's RAM, describing the video files that will be used in this scenario. Data entry is carried out using the keyboard and the manipulator (mouse). The structure of the script file is described in detail below. In block 42 of the formation of objects is the filling of the structure of the script file in the random access memory of the computer that describes the objects. The structure includes information about the name of the object and a list of its hyperlinks. The description of the hyperlink includes information about the name of the link (for visual presentation during playback), directly hyperlinks to the source of digital data, for example, for an AO soccer ball, the link can point to its manufacturer’s WEB site: http: // www. adidas.com. Hyperlinks can be of different types. For example, a hyperlink may point to WEB sites, or may point to the Video File Playback Program, which is generated in block 42. This information is also included in the structure describing AO. The structure describing the AO includes information about the scope of the link: the video file and the range of frames (start and end frame), on which the link will be available when playing the script file.

В блоке 43 производится заполнение структуры файла сценария в оперативной памяти компьютера, описывающей программы воспроизведения. Эта структура включает информацию о наименовании программы воспроизведения, текстовое описание программы воспроизведения, стартовый видеофайл, стартовый кадр этого видеофайла, с которых начинается ее воспроизведение. Структура также включает информацию о наборе команд воспроизведения видеофайлов. Команды управляют воспроизведением видеофайла, например выполнить переход на некоторый видеокадр, остановиться на некотором видеокадре и т.д. Блок 44 осуществляет навигацию по видеофайлам - позиционирование на требуемый видеокадр. Позиционирование может включать в себя, например, проигрывание видеофайла в нормальном режиме, остановка кадра при проигрывании, переход назад и вперед с шагом 1 кадр, либо 25 кадров, переход на первый и последний кадр видеофайла. В блоке 45 производится заполнение структуры файла сценария в оперативной памяти компьютера, описывающей разметку активных объектов. В этом же блоке может быть осуществлено определение координат маркеров АО. Разметка и выделение ячеек активного объекта может быть выполнена ручными средствами - блок 46, или автоматизированно - блок 47. In block 43, the structure of the script file is filled in the random access memory of the computer that describes the playback program. This structure includes information about the name of the playback program, a text description of the playback program, the start video file, the start frame of this video file, from which it starts to play. The structure also includes information about a set of video file playback commands. Commands control the playback of a video file, for example, go to a certain video frame, stop on a certain video frame, etc. Block 44 navigates the video files — positioning on the desired video frame. Positioning may include, for example, playing a video file in normal mode, stopping the frame during playback, moving back and forth in increments of 1 frame, or 25 frames, switching to the first and last frame of the video file. In block 45, the structure of the script file is filled in the random access memory of the computer, which describes the markup of active objects. In the same block, the coordinates of the AO markers can be determined. The marking and selection of the cells of the active object can be performed manually - block 46, or automatically - block 47.

К ручным способам относится нанесение разметки с помощью известных инструментов:
"Карандаш" - идентификация отдельных ячеек путем выделения ячеек на отображаемом на экране видеокадре с помощью манипулятора (мышь);
"Прямоугольник" - идентификация ячеек в прямоугольной области на кадре, путем растягивания изображения прямоугольника;
"Стирание" - отмена идентификации ячеек объекта;
"Заливка" - идентификация всех ячеек внутри области, ограниченной ранее идентифицированными ячейками;
"Волшебная палочка" - идентификация ячеек, прилежащих к заданной и сходных с ней по цвету (аналогично инструменту "Волшебная палочка" в графических редакторах типа Adobe Photoshop).
Manual methods include marking using well-known tools:
"Pencil" - identification of individual cells by highlighting cells on the video frame displayed on the screen using the manipulator (mouse);
"Rectangle" - identification of cells in a rectangular area on the frame, by stretching the image of the rectangle;
"Erase" - undo the identification of the cells of the object;
“Fill” - identification of all cells within the area bounded by previously identified cells;
“Magic Wand” - identification of cells adjacent to a given one and similar in color (similar to the Magic Wand tool in graphic editors such as Adobe Photoshop).

Также к ручным способам относится копирование ячеек объектов с одного кадра на заданный диапазон кадров и покадровое копирование ячеек объектов в процессе покадрового просмотра видеофайла. Manual methods also include copying object cells from one frame to a specified frame range and frame-by-frame copying of object cells during frame-by-frame viewing of a video file.

Автоматизированные способы разметки могут быть выполнены различными способами при их разработке. Один из вариантов автоматизированного способа выполнения разметки будет описан далее. Automated markup methods can be performed in various ways during their development. One of the options for an automated way to perform markup will be described later.

Блок 48 кодирования разметки осуществляет кодирование ячеек разметки активных объектов, как это было описано раннее. В блоке 49 происходит запись файла сценария из оперативной памяти компьютера на диск. The markup coding unit 48 encodes the markup cells of active objects, as previously described. In block 49, the script file is written from the computer's random access memory to disk.

В результате получают файл сценария, имеющий следующую структуру. The result is a script file having the following structure.

Заголовок файла сценария включает информацию о версии, размере, дате создании, авторе, описание файла сценария. The script file header includes information about the version, size, creation date, author, description of the script file.

Описание видеофайлов описывает видеофайлы, используемые в сценарии. Включает информацию о гиперссылке на видеофайл, идентификатор видеофайла, количество размеченных кадров, продолжительность видеофайла в кадрах, продолжительность видеофайлов, например, в 100-наносекундах, число кадров в секунду, размер видео по Х и Y, размер сетки по Х и Y. Description of video files describes the video files used in the script. Includes information about the hyperlink to the video file, video file ID, number of frames marked, video file duration in frames, video file length, for example, in 100 nanoseconds, number of frames per second, video size in X and Y, grid size in X and Y.

Описание Программ воспроизведения определяет порядок и правила проигрывания видеофайлов, а также выполнение дополнительные событий во время проигрывания, таких как паузы, переходы и т.д. Description of the playback programs determines the order and rules for playing video files, as well as the execution of additional events during playback, such as pauses, transitions, etc.

Description::=[...<playlist>...]
<playlist i>::=<playlist id><name size><name><description size><description><mediafile id><frame number><commands_size>[..<command i>..]
<command i>::=<command ID>[..<command value i>..]
<playlist id> - идентификатор программы воспроизведения
<name size> - длина поля имя программы воспроизведения
<name> - имя программы воспроизведения
<description size> - размер поля описания программы воспроизведения
<description> - текстовое описание программы воспроизведения
<mediafile id> - идентификатор первого проигрываемого видео файла
<frame number> - номер кадра в первом проигрываемом видео файле, с которого начинается проигрывание
<commands size> - число команд в программе воспроизведения
[. . <command i>..] - список команд в программе воспроизведения, команды управляют воспроизведением видеофайла, например выполнить переход на некоторый видео кадр, остановиться на некотором видео кадре и т.д.
Description :: = [... <playlist> ...]
<playlist i> :: = <playlist id><namesize><name><descriptionsize><description><mediafileid><framenumber><commands_size> [.. <command i> ..]
<command i> :: = <command ID> [.. <command value i> ..]
<playlist id> - identifier of the playback program
<name size> - length of the field name of the playback program
<name> - name of the playback program
<description size> - size of the description field of the playback program
<description> - textual description of the playback program
<mediafile id> - identifier of the first video file to be played
<frame number> - frame number in the first video file to be played, from which playback starts
<commands size> - the number of commands in the playback program
[. . <command i> ..] - a list of commands in the playback program, the commands control the playback of the video file, for example, go to a certain video frame, stop on a certain video frame, etc.

Описание Активных Объектов описывает все АО сценария. Этот раздел содержит информацию об Активных Объектах и их свойствах. Description of Active Objects describes all AO scenarios. This section contains information about Active Objects and their properties.

Description::=<object count> [...<object i>...]
<object count> - число активных объектов в файле сценария
<object i>: : = <object id> <name size><name><type> <options> <reserve> <links count> [... <links description i>...]
<links description i>::=<link name size> <link name> <link size> <link> <link conditions size> [..<link condition i>..] <link options>
<link condition i>::=<condition id>[..<condition parameter>..]
<object id> - уникальный для данного файла сценария идентификатор объекта
<name size> - длина поля имя объекта
<name> - имя объекта
<links count> - число гиперссылок, относящихся к активному объекту
[... <links description i>...] - список гиперссылок, относящихся к активному объекту
<links description i>::=<link name size> <link name> <link size> <link> <link parameters size> <link parameters> <link options>
<link name size> - длина поля имя гиперссылки
<link name> - имя гиперссылки, которая отображается в контекстном меню активного объекта
<link size> - длина поля гиперссылка
<link> - гиперссылка
<link conditions size> - количество условий применимость ссылки
[. . <link condition i>..] - список условий применимости ссылки, задает условия применимости ссылки, например ссылка действует на таком-то видеофайле с такого по такой-то кадр
<link condition i>::=<condition id>[..<condition parameter>..]
<condition id> - тип доступности ссылки на конкретных видеокадрах.
Description :: = <object count> [... <object i> ...]
<object count> - the number of active objects in the script file
<object i>:: = <object id><namesize><name><type><options><reserve><linkscount> [... <links description i> ...]
<links description i> :: = <link name size><linkname><linksize><link><link conditions size> [.. <link condition i> ..] <link options>
<link condition i> :: = <condition id> [.. <condition parameter> ..]
<object id> - unique for this script file object identifier
<name size> - length of the field object name
<name> - object name
<links count> - the number of hyperlinks related to the active object
[... <links description i> ...] - list of hyperlinks related to the active object
<links description i> :: = <link name size><linkname><linksize><link><link parameters size><linkparameters><linkoptions>
<link name size> - field length hyperlink name
<link name> - the name of the hyperlink that appears in the context menu of the active object
<link size> - field length hyperlink
<link> - hyperlink
<link conditions size> - number of conditions link validity
[. . <link condition i> ..] - a list of conditions for the applicability of the link, sets the conditions for the applicability of the link, for example, the link acts on such a video file from such to such a frame
<link condition i> :: = <condition id> [.. <condition parameter> ..]
<condition id> - type of link availability on specific video frames.

Описание Карт описывает карты всех видеофайлов сценария. Description of Maps describes maps of all video files of the script.

Description::=[...<map i>...]
<map i>: :=<frame number> <count frame> <count map> <count markers> [.. <marker i>..] [...<object map i>...]
<frame number> - номер видео кадра, с которого применяется данная карта
<count frame> - число кадров, к которым применяется данная карта
<count map> - число активных объектов, разметка которых описывается данной картой
<count markers> - число маркеров
[...<marker i>...] - список маркеров
<marker i>::=<marker><pos><marker Y pos>
<marker X pos> - X координата в координатах сетки
<marker Y pos> - Y координата в координатах сетки
[...<object map i>...] - список разметок активных объектов
<object map i> - разметка одного активного объекта
<object map i>: : =<type + object ID>[<key map number> <motion vector> <type difference>] [<begin point> <circumscribing frame> <count stretches> <stretches>]
<type + object ID> - биты 2-15 - уникальный идентификатор объекта, бит 1 - определяет карта объекта относительная или ключевая (0 -ключевая, 1 - относительная)
[<key map number>] - номер ключевой карты, поле присутствует, если карта относительная
[<motion vector>] - координаты вектора смещения. Поле присутствует, если карта относительная
[<type difference>] - определяет тип type относительной карты
0 - объект смещен, форма не изменилась, разность не записывается
1 - форма объекта изменена и разностную разметку необходимо прибавить к перемещенному объекту
2 - форма объекта изменена и разностную разметку необходимо вычесть из перемещенного объекта
3 - форма объекта изменена и присутствует разностная разметка, которую необходимо прибавить к перемещенному объекту, далее следует разностная разметка, которую необходимо вычесть из перемещенного объекта.
Description :: = [... <map i> ...]
<map i>:: = <frame number><countframe><countmap><countmarkers> [.. <marker i> ..] [... <object map i> ...]
<frame number> - the number of the video frame from which this card is applied
<count frame> - the number of frames to which this card is applied.
<count map> - the number of active objects, the markup of which is described by this map
<count markers> - number of markers
[... <marker i> ...] - list of markers
<marker i> :: = <marker><pos><marker Y pos>
<marker X pos> - X coordinate in grid coordinates
<marker Y pos> - Y coordinate in grid coordinates
[... <object map i> ...] - list of markings of active objects
<object map i> - markup of one active object
<object map i>:: = <type + object ID>[<key map number><motionvector><typedifference>][<beginpoint><circumscribingframe><countstretches><stretches>]
<type + object ID> - bits 2-15 - a unique identifier of the object, bit 1 - determines the object map relative or key (0-key, 1 - relative)
[<key map number>] - key card number, the field is present if the card is relative
[<motion vector>] - coordinates of the displacement vector. The field is present if the map is relative
[<type difference>] - defines the type type of the relative map
0 - the object is displaced, the shape has not changed, the difference is not recorded
1 - the shape of the object is changed and the difference markup must be added to the moved object
2 - the shape of the object is changed and the difference markup must be subtracted from the moved object
3 - the shape of the object is changed and there is a difference markup that needs to be added to the moved object, then there is a difference markup that needs to be subtracted from the moved object.

Следующие поля присутствуют, если бит 1 of<type+object ID> равен to 0 или <type difference> не ноль. The following fields are present if bit 1 of <type + object ID> is equal to 0 or <type difference> is not zero.

[<begin point>] - начальная точка разметки объекта, Y - координата левой верхней точки разметки объекта, если кодирование выполняется по горизонтали, Х - координата нижней правой точки, если кодирование выполняется по вертикали
[<count stretches>] - количество элементов разметки
[<stretches>]::=[...(<stretch i>|<modifier>)...] - список элементов разметки
<stretch i>::=<start X/Y> <end X/Y>
<start X/Y> - X/Y координата начальной точки отрезка
<end X/Y> - X/Y координата конечной точки отрезка
Х - горизонтальное кодирование
Y - вертикальное кодирование
<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/X new> - Модификатор пропуска линий. Описывает линии, которые не содержат разметку объекта. Определяет Y (горизонтальное кодирование)/X(вертикальное кодирование) координату следующей строки, в которой встречается разметка
<pass lines mod> - Модификатор Пропуска Линии, идентификатор модификатора
<Y/X new> - Y(горизонтальное кодирование)/Х(вертикальное кодирование) координата линии, где разметка появляется
<repeat stretch>::=<repeat stretch mod> <count line> <stretches on line> - Модификатор Повтора, используется для кодирования повторяющихся отрезков или повторяющихся последовательностей отрезков
<stretches on line> - [<stretches>] - список отрезков, представляющих повторяющиеся последовательности
<repeat stretch mod> - Модификатор Повтора, идентификатор модификатора
<count line> - количество повторений линии.
[<begin point>] is the starting point of the markup of the object, Y is the coordinate of the upper left marking point of the object, if coding is performed horizontally, X is the coordinate of the lower right marking if coding is carried out vertically
[<count stretches>] - number of markup elements
[<stretches>] :: = [... (<stretch i> | <modifier>) ...] - list of markup elements
<stretch i> :: = <start X / Y><end X / Y>
<start X / Y> - X / Y coordinate of the starting point of the segment
<end X / Y> - X / Y coordinate of the end point of the segment
X - horizontal coding
Y - vertical coding
<modifier>:: = (<line continue> | <pass lines> | <repeat stretch>) - modifier
<line continue> :: = <line continue mod><stretchi> - Describes the break of the current marking line or, in other words, the length of the marking in the current line. If the current line consists of more than one line, the modifier indicates that the next line belongs to the same line
<line continue mod> - Line Break modifier, modifier identifier
<stretch i> - the next segment in this line
<pass lines>:: = <pass lines mod><Y / X new> - Modifier for skipping lines. Describes lines that do not contain the markup of an object. Defines Y (horizontal coding) / X (vertical coding) the coordinate of the next line where the markup occurs
<pass lines mod> - Line Skip modifier, modifier identifier
<Y / X new> - Y (horizontal coding) / X (vertical coding) the coordinate of the line where the markup appears
<repeat stretch> :: = <repeat stretch mod><countline><stretches on line> - Repeat modifier, used to encode repeating segments or repeating sequences of segments
<stretches on line> - [<stretches>] - a list of segments representing repeating sequences
<repeat stretch mod> - Repeat modifier, modifier identifier
<count line> - the number of repetitions of the line.

Индекс карт содержит номера карт и их смещение от начала файла сценария, для быстрого доступа к картам. The map index contains the card numbers and their offset from the beginning of the script file, for quick access to the cards.

<addr of index>. Maps index::=[...<index i>...]
<index i>::=<map number><count frame><addr of map>
<map number> - номер карты
<count frame> - число видео кадров, к которым применяется данная карта
<addr of map> - смещение от начала файла сценария до этой карты
На этапе создания файла сценария выделение и идентификацию ячеек АО производят при помощи средств ручной разметки или автоматически.
<addr of index>. Maps index :: = [... <index i> ...]
<index i> :: = <map number><countframe><addr of map>
<map number> - map number
<count frame> - the number of video frames to which this card applies
<addr of map> - offset from the beginning of the script file to this map
At the stage of creating the script file, the selection and identification of AO cells is carried out using manual marking tools or automatically.

Например, на этапе создания файла сценария идентификацию ячеек производят автоматически после указания характерных точек на контуре АО и идентификации ячеек внутри этого контура, причем на следующем видеокадре производят автоматическое отслеживание изменения местоположения характерных точек и изменения положения ячеек (фиг.8). For example, at the stage of creating the script file, the cells are automatically identified after specifying the characteristic points on the AO circuit and the cells inside this circuit are identified, and the next video frame automatically monitors the location of the characteristic points and the cell position (Fig. 8).

В блоке 60 (фиг.8) определяются координаты точек на контуре АО. Координаты определяются автором, например, автор отмечает с помощью манипулятора точки на видеоизображении. Эти координаты запоминаются в массиве данных. Далее определяется в блоке 61 яркостная составляющая видеоизображения данного кадра по формуле:
Y = α*R+β*G+γ*B,
где α= 0,299, β=0,587, γ=0,114, R, G, B - цветовые составляющие видеоизображения в цветовом пространстве RGB, принятом для отображения изображений на компьютерах. В результате получается массив С. Затем определяются в блоке 62 ячейки внутри определенного в блоке 60 контура АО. Сначала определяются точки внутри контура АО с использованием одного из известных методов "заливки" фигуры по заданному контуру, например, с использованием стандартной функции API Windows FillRgn. Затем 'определяются ячейки внутри контура АО путем аппроксимации ранее найденных точек по сетке. Далее в блоке 63 выполняется запоминание полученных в блоке 62 координат о разметке АО на данном кадре. Затем в блоке 64 выполняется переход на следующий видеокадр. В блоке 65 далее определяется яркостная составляющая видеоизображения данного кадра по формуле, описанной выше. В результате получается массив D. В блоке 66 выполняется поиск точек, определенных на контуре АО в видеокадре С в блоке 60 на видеокадре D. Используется метод "Pyramidal Implementation of the Lucas Kanade Feature Tracker", описанный в статье "Pyramidal Implementation of the Lukas Kanade Feature Tracker. Description of the algorithm" Jean-Yves Bouguet. Intel Corporation Microprocessor Research Labs (http: //www. intel.com). В качестве данных используются массивы С, D и массив координат точек на контуре АО. Далее в блоке сравнения 67 проверяется, найдены ли точки на видеокадре D. Если точки найдены, то в блоке 62 определяются ячейки внутри контура АО на видеокадре D, заданном этими точками. Далее сохраняется информация о разметке АО на видеокадре D в блоке 63. В блоке 68 проверяется, нужно ли продолжать процесс - автор не прервал процесс? Если процесс нужно продолжать в блоке 69, массиву С присваивается значение массива D, в качестве массива координат точек принимается массив координат точек, определенных для видеокадра D, и затем процесс повторяется, начиная с блока 64. Процесс продолжается, пока находятся точки контура в блоке 66, условие проверяется в блоке 67, и пока он не прерывается автором, условие проверяется в блоке 68.
In block 60 (Fig. 8), the coordinates of points on the AO contour are determined. The coordinates are determined by the author, for example, the author marks points on the video using the manipulator. These coordinates are stored in the data array. Next, in block 61, the luminance component of the video image of this frame is determined by the formula:
Y = α * R + β * G + γ * B,
where α = 0.299, β = 0.587, γ = 0.114, R, G, B are the color components of the video image in the RGB color space adopted for displaying images on computers. The result is an array C. Then, cells are determined in block 62 inside the AO circuit defined in block 60. First, points inside the AO contour are determined using one of the well-known methods of "filling" the figure along a given contour, for example, using the standard Windows FillRgn API function. Then, the cells inside the AO contour are determined by approximating previously found points on the grid. Next, in block 63, the coordinates obtained in block 62 about AO marking on this frame are stored. Then, in block 64, the transition to the next video frame is performed. In block 65, the luminance component of the video image of this frame is determined by the formula described above. The result is an array D. In block 66, a search is made for points defined on the AO contour in video frame C in block 60 on video frame D. The Pyramidal Implementation of the Lucas Kanade Feature Tracker method described in the Pyramidal Implementation of the Lukas Kanade article is used Feature Tracker. Description of the algorithm "Jean-Yves Bouguet. Intel Corporation Microprocessor Research Labs (http: // www. Intel.com). Arrays C, D and an array of coordinates of points on the AO contour are used as data. Then, in the comparison block 67, it is checked whether points are found on the video frame D. If the points are found, then the cells inside the AO contour on the video frame D defined by these points are determined in block 62. Further, information about AO marking is stored on video frame D in block 63. In block 68, it is checked whether the process should be continued - the author did not interrupt the process? If the process needs to be continued in block 69, array C is assigned the value of array D, the array of coordinates of points defined for video frame D is taken as the array of coordinates of the points, and then the process is repeated starting from block 64. The process continues until the contour points are in block 66 , the condition is checked in block 67, and until it is interrupted by the author, the condition is checked in block 68.

На этапе воспроизведения производят декодирование карт файла сценария, при совпадении положения курсора манипулятора на экране монитора с активным объектом и при нажатии одной из клавиш манипулятора, например, левой клавиши мыши, осуществляют переход по первой доступной, сформированной и запомненной на этапе редактирования гиперссылке. При совпадении положения курсора манипулятора на экране монитора с активным объектом и при нажатии правой клавиши манипулятора осуществляют выбор из меню нескольких сформированных и запомненных на этапе редактирования гиперссылок. При нажатии затем левой клавиши манипулятора на одну из гиперссылок меню осуществляют переход в соответствии со связью этой гиперссылки с соответствующим источником цифровых данных. At the playback stage, the script file maps are decoded, when the position of the manipulator cursor on the monitor screen coincides with the active object and when one of the manipulator keys is pressed, for example, the left mouse button, the hyperlink is accessed through the first available, generated and stored at the editing stage. If the position of the manipulator cursor on the monitor screen coincides with the active object and when the right button of the manipulator is pressed, several hyperlinks formed and stored during editing are selected from the menu. When you then press the left button of the manipulator to one of the menu hyperlinks, a transition is made in accordance with the connection of this hyperlink with the corresponding source of digital data.

Этап воспроизведения осуществляют следующим образом (фиг.9). В блоке 80 открывается выбранный файл сценария. На этом этапе происходит считывание в оперативную память компьютера следующих структур файла сценария: заголовка, описания видеофайлов, описание активных объектов, описание программ воспроизведения, описание индексов. После этого в блоке 81 происходит считывание из файла сценария и декодирование карты разметки активных объектов, относящейся к начальному видеокадру, описанному в начальной программе воспроизведения. Декодирование карты с разметкой активных объектов может быть осуществлено путем определения, находится ли курсор между крайними координатами Х для каждого ряда ячеек местоположения курсора мыши (попадает ли курсор в область АО), однако ограничением такого способа является случай, при котором карта АО относится к нескольким картам, а курсор быстро меняет свое местоположение. В этом случае требуется обработка очень большого массива данных. Поэтому далее в описании приведено другое выполнение операции декодирования путем операции, обратной кодированию, позволяющей уменьшить количество обрабатываемых данных. The playback stage is as follows (Fig.9). At block 80, the selected script file is opened. At this stage, the following script file structures are read into the computer’s RAM: header, description of video files, description of active objects, description of playback programs, description of indices. After that, in block 81, the script is read from the script file and the active objects markup map is decoded, related to the initial video frame described in the initial playback program. Decoding a map with the marking of active objects can be carried out by determining whether the cursor is between the extreme X coordinates for each row of mouse cursor location cells (whether the cursor falls into the AO region), however, the limitation of this method is the case in which the AO map refers to several cards , and the cursor quickly changes its location. In this case, processing a very large data array is required. Therefore, the description of another decoding operation by an operation inverse to encoding, which reduces the amount of processed data, is given in the description below.

В блоке 82 (фиг.9) происходит формирование изображения маркеров объектов и его наложение на содержимое видеокадра в соответствии с координатами, содержащимися в разметке кадра. Блок 83 производит отображение на экране монитора видеокадра. В блоке сравнения 84 производится определение, находится ли указатель мыши в области разметки АО, для этого используется информация, полученная на этапе декодирования в блоке 81. В случае, если эти координаты попадают в ячейку какого-либо из АО, то в блоке 85 - на экран под изображением курсора выводится всплывающая подсказка - наименование объекта. Далее в блоке сравнения 86 проверяется, нажата ли левая клавиша манипулятора (мышь), если нажата, то в блоке 87 осуществляется переход согласно первой гиперссылке объекта, находящейся в зоне видимости. Блок 87 также запоминает номер видеофайла и номер видеокадра, с которого был осуществлен переход, для обеспечения на этапе воспроизведения возможности возврата обратно на видеокадр, с которого был осуществлен переход. Это осуществляется аналогично Интернет броузерам, но в новом применении к просмотру видео. Далее процесс повторяется, начиная с блока 81 для нового видеокадра после осуществления перехода. Если же нажата правая клавиша мыши, что проверяется в блоке сравнения 88, то на экран монитора блоком 89 выводится меню - список наименований гиперссылок. Если правая кнопка мыши не нажата, то блоком 90 выполняется переход на следующий видеокадр в соответствии с программой воспроизведения. Далее процесс повторяется начиная с блока 81 для нового видеокадра после осуществления перехода. После выведения меню блоком 89 при выборе одной из гиперссылок, подводе на нее курсора и нажатия с помощью левой клавиши мыши, что проверяется блоком 91, будет произведено действие, заданное этой ссылкой блоком 92. Если не выбран ни один из пунктов меню в блоке 91, то блоком 90 выполняется переход на следующий видеокадр в соответствии с программой воспроизведения. Далее процесс повторяется начиная с блока 81 для нового видеокадра. In block 82 (Fig. 9), the image of object markers is formed and superimposed on the contents of the video frame in accordance with the coordinates contained in the frame layout. Block 83 displays a video frame on a monitor screen. In the comparison block 84, a determination is made whether the mouse pointer is in the AO markup area; for this, the information obtained at the decoding stage in block 81 is used. If these coordinates are in the cell of any of the AOs, then in block 85, on the screen below the cursor image displays a tooltip - the name of the object. Next, in the comparison block 86, it is checked whether the left key of the manipulator (mouse) is pressed, if pressed, then in block 87 a transition is performed according to the first object hyperlink located in the visibility zone. Unit 87 also remembers the number of the video file and the number of the video frame from which the transition was made, in order to ensure, at the playback stage, the possibility of returning back to the video frame from which the transition was made. This is done similarly to Internet browsers, but in a new application to watching videos. Next, the process is repeated, starting with block 81 for a new video frame after the transition. If the right mouse button is pressed, which is checked in the comparison block 88, then the menu — a list of hyperlink names — is displayed on the monitor screen with block 89. If the right mouse button is not pressed, then block 90 moves to the next video frame in accordance with the playback program. Next, the process is repeated starting from block 81 for a new video frame after the transition. After the menu is displayed by block 89 when you select one of the hyperlinks, move the cursor to it and press the left mouse button, which is checked by block 91, the action specified by this link by block 92 will be performed. If none of the menu items in block 91 are selected, then block 90 performs the transition to the next video frame in accordance with the playback program. Next, the process is repeated starting from block 81 for the new video frame.

Декодирование карт из файла сценария осуществляют следующим образом (фиг.10, 11). The decoding of cards from the script file is as follows (figure 10, 11).

На вход декодировщика (фиг.10) блок 100 поступает массив закодированных координат АО - карт. Далее в блоке сравнения 101 проверяется: эта карта ключевая или нет. Карта - ключевая, если все входящие в нее карты АО ключевые. Если она ключевая, то в блоке 102 все входящие в данную карту карты АО декодируются следующим способом. Выбирается карта одного АО в блоке 120 (фиг.11). Далее в блоке 121 результирующая матрица заполняется нулями. Затем блок 122 осуществляет выбор ординаты Y0 начальной ячейки АО, которая определялась на этапе кодирования блок 4 (фиг.5). Далее в блоке 123 (фиг.11) ординате текущей декодируемой линии для ячеек присваивается значение Y0. Затем в блоке 124 извлекается из карты АО первый отрезок линии разметки АО и соответствующие данному отрезку ячейки в матрице (предварительно заполненной нулями в блоке 121), заполняются номером данного АО. Далее в блоке сравнения 125 проверяется следующая запись в карте - это модификатор разрыва? Если да, то извлекается следующий отрезок с ячейками в блоке 124. Если это не модификатор разрыва, то в блоке сравнения 126 проверяется данная запись - модификатор пропуска? Если это модификатор пропуска, то в блоке 127 присваивается ординате текущей декодируемой линии с рядом ячеек значение, определенное параметром модификатора пропуска. Если это не модификатор пропуска, то в блоке сравнения 128 проверяется текущая запись в карте АО - модификатор повтора? Если это модификатор повтора линии с ячейками, то в блоке 129 производится копирование координат текущего ряда (строки) результирующей матрицы на следующие смежные ряды, количество которых указано в параметре модификатора. Далее в блоке 130 производится присваивание ординате текущей декодируемой строке ряда ячеек значения ординаты предыдущей декодируемой строки плюс значение параметра модификатора. Если текущая запись в карте АО - не модификатор повтора, то в блоке 131 увеличивается значение ординаты предыдущего декодируемого ряда ячеек (строки) на единицу. Процесс продолжается, пока будет обнаружен хотя бы один отрезок линии ряда ячеек с текущей ординатой Y. Это условие проверяется в блоке 132. В результате получается матрица (например, как показано на фиг.1), в ячейках которой соответственно координатам АО хранятся значения номеров АО, а во всех остальных ячейках - нули. Результат выполнения декодирования блока 102 (фиг.10) запоминается в блоке 104 и в буфере ключевых карт АО - блоке 103. Блок 103 служит для ускорения процесса декодирования относительных карт АО. Если результат сравнения блока 101 будет "НЕТ", то значит, что эта карта относительная. Тогда в блоке 105 производится выбор карты одного АО из буфера ключевых карт блока 103, а если ключевая карта отсутствует в блоке 103, то она выбирается из блока 100 и декодируется блоком 106 (фиг.10), как ранее показано в блоках 120-132 (фиг. 11). At the input of the decoder (figure 10), block 100 receives an array of encoded coordinates of AO cards. Further in the block of comparison 101 it is checked: this card is key or not. A card is a key card if all AO cards included in it are key. If it is key, then in block 102, all AO cards included in this card are decoded as follows. A card of one AO is selected in block 120 (Fig. 11). Next, in block 121, the resulting matrix is filled with zeros. Then block 122 selects the ordinate Y0 of the initial cell of AO, which was determined at the coding stage of block 4 (Fig. 5). Then, in block 123 (Fig. 11), the ordinate of the current decoded line for the cells is assigned the value Y0. Then, in block 124, the first segment of the AO marking line is extracted from the AO map and the corresponding cells in the matrix (previously filled with zeros in block 121) are filled in with the number of this AO. Next, in the comparison block 125, the next record in the card is checked - is it a break modifier? If yes, then the next segment with cells in block 124 is extracted. If this is not a gap modifier, then in the comparison block 126 this record is checked - skip modifier? If it is a skip modifier, then in block 127 the ordinate of the current decoded line with a number of cells is assigned the value determined by the skip modifier parameter. If this is not a skip modifier, then in the comparison block 128 the current record in the AO card is checked - repeat modifier? If it is a line-with-cell repeat modifier, then in block 129 the coordinates of the current row (row) of the resulting matrix are copied to the following adjacent rows, the number of which is indicated in the modifier parameter. Then, in block 130, the ordinate of the current decoded row of a series of cells is assigned the ordinate of the previous decoded row plus the value of the modifier parameter. If the current record in the AO card is not a repeat modifier, then in block 131 the ordinate value of the previous decoded row of cells (row) is increased by one. The process continues until at least one line segment of a row of cells with the current ordinate Y is detected. This condition is checked in block 132. The result is a matrix (for example, as shown in Fig. 1), in whose cells, respectively, the AO coordinates are stored AO numbers , and in all other cells - zeros. The decoding result of block 102 (Fig. 10) is stored in block 104 and in the key card buffer AO - block 103. Block 103 serves to accelerate the decoding of relative AO cards. If the result of the comparison of block 101 is "NO", then this card is relative. Then, in block 105, a card of one AO is selected from the key card buffer of block 103, and if the key card is not in block 103, it is selected from block 100 and decoded by block 106 (Fig. 10), as previously shown in blocks 120-132 ( Fig. 11).

Далее в блоке 107 (фиг.10) смещается разметка АО, определенная на ключевой карте, на параметры вектора смещения, описанные в относительной карте АО. Затем в блоке 108 декодируется разность между разметкой АО на ключевой карте и относительной, методом, описанным выше в блоках 120-132 (фиг.11). Далее в блоке 109 (фиг.10) прибавляется разность, определенная в блоке 108, к смещенной в блоке 107 на параметры вектора смещения разметки АО. Процесс продолжается для всех АО, описанных в этой карте, начиная с блока 105. Это условие проверяется в блоке 110. Next, in block 107 (Fig. 10), the AO markup defined on the key map is shifted by the parameters of the displacement vector described in the relative map of the AO. Then, in block 108, the difference between the AO marking on the key card and the relative one is decoded, using the method described above in blocks 120-132 (Fig. 11). Next, in block 109 (Fig. 10), the difference defined in block 108 is added to the offset in block 107 by the parameters of the offset vector of the AO markup. The process continues for all AOs described in this map, starting at block 105. This condition is checked at block 110.

Пример конкретного осуществления способа поясняется ниже (фиг.12-19). An example of a specific implementation of the method is explained below (Fig-19).

Редактор активного видео (АВ Редактор) включает полный набор средств создания Файлов Сценария АВ. Автор может создать новый файл сценарий АВ или открыть существующий проект (файл сценария АВ). Для создания и редактирования Сценария АВ выполняют следующие действия:
- Установка свойств Сценария.
The Active Video Editor (AV Editor) includes a complete set of tools for creating AV Script Files. The author can create a new AV script file or open an existing project (AV script file). To create and edit an AV Script, perform the following actions:
- Setting the properties of the Script.

- Управление медиафайлами. - Manage media files.

- Создание и редактирование Программ воспроизведения. - Creating and editing playback programs.

- Создание и редактирование АО. - Creating and editing AO.

- Создание разметки АО. - Creating AO markup.

Редактор АВ реализован в интерфейсе, позволяющем создавать файлы сценариев несколько медиафайлов в одном проекте (фиг.12). The AV editor is implemented in an interface that allows you to create script files of several media files in one project (Fig. 12).

Установка свойств сценария реализована через вызов "Project->Оptions" из меню АВ Редактора. Важной операцией является установка размерности сетки для дискретизации регионов разметки АО, которая выбирается автором, исходя из его предпочтений в точности разметки. Разметка всех АО создается в координатах сетки, так, установка малого размера ячейки сетки предоставляет автору возможность точнее размечать регионы АО, что, в то же время, приведет к увеличению размера Файла Сценария и повышению загрузки процессора во время воспроизведения АВ. Наоборот, установка большого размера ячейки сетки приведет к уменьшению файла сценария и снижению загрузки процессора. Автор также устанавливает свое имя и описание сценария в операциях проекта АВ. Также устанавливается первая Программа воспроизведения, которая должна выполняться первой при проигрывании Файла Сценария. Первая Программа воспроизведения выбирается из списка созданных на данный момент. Setting script properties is implemented by calling "Project-> Options" from the menu of the AV Editor. An important operation is to set the dimension of the grid for discretizing the regions of AO marking, which is selected by the author based on his preferences for the marking accuracy. The marking of all AOs is created in grid coordinates, so setting a small size of the grid cell allows the author to more accurately mark the regions of the AO, which, at the same time, will increase the size of the Script File and increase the processor load during AV playback. Conversely, setting a large grid cell size will reduce the script file and reduce processor load. The author also establishes his name and description of the script in the operations of the AB project. The first Playback Program is also installed, which should be executed first when playing the Script File. The first playback program is selected from the list of currently created ones.

Управление медиафайлами осуществляется в АВ Редакторе через использование Инспектора видеофайлов. Предоставляются возможности добавления, удаления медиафайлов, изменение имен медиафайлов, путей доступа, выбор медиафайлов для создания и редактирования разметки. После выбора медиафайла, его содержимое выводится в одно из окон АВ Редактора и автор может приступить к созданию или редактированию описаний медиафайла, Программ воспроизведения, свойств АО, нанесение разметки АО, и т.д. Media files are managed in the AV Editor through the use of the Video File Inspector. Provides the ability to add, delete media files, change the names of media files, access paths, select media files to create and edit markup. After selecting a media file, its contents are displayed in one of the windows of the AV Editor and the author can start creating or editing descriptions of the media file, Playback Programs, AO properties, drawing AO markup, etc.

Создание и редактирование Программ воспроизведения осуществляют через интерфейс Инспектора Программ воспроизведения (Playlists Inspector) (фиг.12, 16). Автор может создавать, удалять, редактировать Программы воспроизведения. Автор вводит имя, описание Программы воспроизведения, выбирает медиафайл, стартовый кадр, команды Программы воспроизведения. Команды являются важной частью Программы воспроизведения в процессе его создания. Как минимум один медиафайл должен быть добавлен в проект до создания первой Программы воспроизведения. Концепция Программ воспроизведения позволяет создавать сложные последовательности проигрывания, включая циклы, паузы, остановки, изменения скорости проигрывания, включение или выключение звука, вызовы одной Программы воспроизведения из другой, создавая, таким образом, множество Программ воспроизведения. Эта гибкость достигается с помощью команд, перечисленных ниже в таблице 1. Creation and editing of the Playback Programs is carried out through the interface of the Playlists Inspector (Figs. 12, 16). The author can create, delete, edit Playback Programs. The author enters the name, description of the Playback Program, selects the media file, start frame, and commands of the Playback Program. Teams are an important part of the Replay Program during its creation. At least one media file must be added to the project before creating the first Playback Program. The concept of Playback Programs allows you to create complex playback sequences, including loops, pauses, stops, changing the playback speed, turning sound on or off, calling one Playback Program from another, thus creating many Playback Programs. This flexibility is achieved using the commands listed below in table 1.

Каждая команда имеет 3 обязательных параметра и переменное количество дополнительных параметров. 2 обязательных параметра - "видеофайл запуска" и "кадр запуска" определяют событие - точку Программы воспроизведения, где данная команда будет выполняться. Соответственно, если Программа воспроизведения построена таким образом, что эта точка (кадр или файл) не будет достигнута, эта команда никогда не выполнится. Each command has 3 required parameters and a variable number of additional parameters. 2 required parameters - “launch video file” and “launch frame” determine the event - the point of the Playback program where this command will be executed. Accordingly, if the playback program is designed in such a way that this point (frame or file) is not reached, this command will never be executed.

В данном редакторе АВ команды Программы воспроизведения видны автору в нижней части окна Edit Playlist. Соответствующие кнопки позволяют автору управлять командами Программы воспроизведения - добавить, удалить, редактировать. Автор может выбрать из списка любые доступные для применения команды. In this AV editor, the Playback program commands are visible to the author at the bottom of the Edit Playlist window. The corresponding buttons allow the author to control the commands of the Playback program - add, delete, edit. The author can select from the list any commands available for use.

Инспектор Объектов (фиг. 12, 15) служит автору средством для создания, удаления и редактирования свойств АО. Автор определяет и вводит имена АО и их гиперссылки. Имя АО будет при дальнейшем воспроизведении показываться в виде подсказки, когда пользователь наведет курсор указательного устройства поверх региона разметки, соответствующего данному АО. Все ссылки выделенного АО перечисляются внизу интерфейса Инспектора Объектов. Ссылки АО могут быть добавлены, удалены, редактированы автором, используя средства Инспектора Объектов (фиг. 15 а). Автору доступны поля свойств гиперссылок (фиг.15 б): наименование, которое будет выводиться в контекстном меню при проигрывании сценария, путь гиперссылки, тип гиперссылки, выбираемый автором из списка возможных (фиг.15 в) - всего 5 типов. The Object Inspector (Fig. 12, 15) serves the author as a tool for creating, deleting and editing AO properties. The author defines and enters the names of AOs and their hyperlinks. The name of the AO will be shown in the form of a hint during further playback when the user hovers the cursor of the pointing device over the markup region corresponding to the given AO. All links of the highlighted AO are listed at the bottom of the Object Inspector interface. AO links can be added, deleted, edited by the author, using the facilities of the Object Inspector (Fig. 15 a). The author has access to the property fields of hyperlinks (Fig. 15 b): the name that will be displayed in the context menu when playing the script, the path of the hyperlink, the type of hyperlink selected by the author from the list of possible (Fig. 15 c) —total 5 types.

Тип связи "Программа воспроизведения" (фиг.15 в) является значением по умолчанию, появляющимся в выпадающем меню Инспектора Объектов. Тип связи "Программа воспроизведения как внешний процесс" используется для проигрывания звука одновременно с текущим проигрыванием видео. Тип связи АО "выполнить файл и проиграть видео" служит для связи АО с любыми другими файлами. Например, если пользователь АВ Проигрывателя (версия для ОС Windows) кликнет по такой связи, соответствующее Windows приложение будет запущено и ассоциированный с приложением файл загрузится в это приложение. В случае типа связи "выполнить файл и приостановить видео" клик по такой связи запускает приложение с требуемым файлом, но при этом приостанавливает просмотр текущего видео. По последним двум типам связей автор указывает пути к файлам либо URL сайта в сети Интернет или Интранет. Тип связи "потоковое видео" позволяет установить соединение с потоковым видео. The communication type "Playback program" (Fig. 15 c) is the default value that appears in the drop-down menu of the Object Inspector. The type of connection “Playback program as an external process” is used to play sound simultaneously with the current video playback. The type of communication of JSC "execute file and play video" is used to communicate the JSC with any other files. For example, if a user of AV Player (version for Windows OS) clicks on such a connection, the corresponding Windows application will be launched and the file associated with the application will be loaded into this application. In the case of the “execute file and pause video” connection type, clicking on such a connection launches the application with the required file, but at the same time pauses the viewing of the current video. Based on the last two types of links, the author indicates the paths to files or the URL of a site on the Internet or Intranet. The type of connection "streaming video" allows you to establish a connection with streaming video.

Для управления показом связей во время проигрывания Сценария АВ служит параметр "доступность связи на множестве кадров" (фиг.15 г). Это означает, что, в случае вызова контекстного меню пользователем АВ Проигрывателя, связь будет доступна в меню, если кадр, на котором вызов меню произошел, попадает в диапазон кадров доступности связи. В случае непопадания кадра в диапазон доступности связи эта связь будет недоступна. Доступность связей управляется из окна Редактирования Условий Связи, которое содержит 3 поля: ссылка на медиафайл, начальный и конечный кадр для определения диапазона кадров доступности связи. Если не указано никаких условий, связь рассматривается как доступная на любом видеокадре любого медиафайла, включенного в текущий проект (конечно, если разметка АО присутствует на кадре). To control the display of connections during the playback of Script AB, the parameter "communication availability on multiple frames" (Fig. 15 g) is used. This means that, in the case of a call to the context menu by the user of the AV Player, communication will be available in the menu if the frame on which the menu was called falls into the range of communication availability frames. If the frame does not fall within the communication availability range, this communication will be unavailable. Accessibility of links is controlled from the Link Conditions Editing window, which contains 3 fields: link to the media file, start and end frames to determine the range of frames for link availability. If no conditions are specified, the connection is considered as accessible on any video frame of any media file included in the current project (of course, if AO markup is present on the frame).

Разметка областей АО может быть выполнена многими средствами АВ Редактора. Чтобы создать разметку для определенного объекта, автор должен выбрать из списка выпадающего Меню Активных Объектов, соответствующий АО. После этого автор находит кадр, на котором необходимо нанести разметку, используя средства навигации, доступные на инструментальной линейке АВ Редактора (фиг. 12, 13). Инструментальная линейка включает кнопки управления проигрыванием: Проиграть, Пауза, Стоп, Перейти на первый кадр, Перейти на последний кадр, Перейти на кадр назад, Перейти на кадр вперед, Перейти на 25 кадров вперед, Перейти на 25 кадров назад. Marking areas AO can be done by many means of the AV Editor. To create markup for a specific object, the author must select the appropriate AO from the drop-down menu of the Active Objects menu. After that, the author finds a frame on which it is necessary to apply markup using the navigation tools available on the AV Editor toolbar (Fig. 12, 13). The instrumental ruler includes the playback control buttons: Play, Pause, Stop, Go to the first frame, Go to the last frame, Go to frame back, Go to frame forward, Go 25 frames forward, Go 25 frames back.

Кнопки, предоставляющие доступ к функциям "Определение Сцены", "Покадровое действие", служат для облегчения труда автора разметки АО сценария. Функция "Определение сцены" сходна с функцией "Проиграть" за исключением того, что проигрывание останавливается в случае смены сцены. Чувствительность данной функции регулируется параметрами "Определение сцены", доступными по "File->Рrefer". Функция покадрового просмотра обрабатывает видеофайл без потерь или пропусков кадров. Используется в комбинации с выпадающим меню. С параметром меню "нет действий" используется только для навигации. Одна пара кнопок интерфейса АВ Редактора работает, пока автор держит их прижатыми с помощью клавиш мыши - АВ Редактор проигрывает видео по кадрам и выполняет выбранные действия. Когда автор освобождает кнопки, программа останавливает проигрывание по кадрам. Другая пара кнопок реализует ту же функцию, но, в отличие от предыдущей, автору нет необходимости удерживать кнопки - автор нажимает кнопку управления для начала покадрового редактирования и АВ Редактор выполняет заданное действие до тех пор, пока автор повторно не нажмет ту же кнопку для окончания покадрового редактирования. The buttons that provide access to the Scene Definition, Single-Frame Action functions are used to facilitate the work of the author of marking AO script. The "Scene Definition" function is similar to the "Play" function, except that playback stops when a scene changes. The sensitivity of this function is controlled by the "Scene Definition" parameters, accessible by "File-> Reference". The frame-by-frame viewing function processes the video file without loss or frame skipping. Used in combination with a drop down menu. With the menu option "no action" is used only for navigation. One pair of buttons on the interface of the AV Editor works while the author holds them pressed with the mouse buttons - the AV Editor plays the video frame by frame and performs the selected actions. When the author releases the buttons, the program stops playing frame by frame. Another pair of buttons implements the same function, but, unlike the previous one, the author does not need to hold the buttons - the author presses the control button to start frame-by-frame editing and the AV Editor performs the specified action until the author repeatedly presses the same button to end the frame-by-frame editing.

Как только автор находит нужный кадр, он может начать процесс разметки, используя ручные и автоматические способы (фиг.12, 14). As soon as the author finds the desired frame, he can begin the process of marking, using manual and automatic methods (Fig.12, 14).

Ручные методы включают использование следующих инструментов: Селектор Объектов, Карандаш, Авто заполнение, Заливка, Стирание, Передвижение. Автор выбирает инструмент нажатием соответствующих кнопок на инструментальной панели "Разметка". Manual methods include using the following tools: Object Selector, Pencil, Auto Fill, Fill, Erase, Move. The author selects a tool by clicking the appropriate buttons on the Layout toolbar.

Меню выбора текущего объекта (фиг.12) позволяет получить информацию о принадлежности клеток разметки определенному АО, путем двойного щелчка по разметке. Другие инструменты похожи в использовании с инструментами редакторов изображений за исключением того, что АВ Редактор наносит и определяет разметку с помощью клеток сетки, а не по пикселам. The menu for selecting the current object (Fig. 12) allows you to obtain information about the affiliation of marking cells to a specific AO by double-clicking on the markup. Other tools are similar in use with image editor tools, except that the AV Editor draws and defines markup using grid cells, not pixels.

Способ автоматизированной разметки позволяет отслеживать изменения формы, смещений объектов и наносить скорректированную разметку на следующий кадр с минимальным использованием ручных средств. Автор выбирает АО, вручную определяет контур изображения объекта, который будет соответствовать АО, и запускает процесс автоматического слежения. АВ Редактор переходит на следующий кадр и определяет контур на следующем кадре на основании данных контура предыдущего кадра. Далее процесс отслеживания повторяется от кадра к кадру, пока автор его не остановит. На каждом шагу используется информация предыдущего кадра. The automated marking method allows you to track changes in the shape, displacements of objects and apply the correct markup to the next frame with minimal use of manual tools. The author selects the AO, manually determines the outline of the image of the object that will correspond to the AO, and starts the automatic tracking process. The AV Editor moves to the next frame and determines the contour in the next frame based on the contour data of the previous frame. Next, the tracking process is repeated from frame to frame until the author stops it. At each step, information from the previous frame is used.

После окончания процессов описаний и разметки, автор сохраняет сценарий в файл АВ Сценария (фиг.12) с помощью средств управления файлами главного меню АВ Редактора "File->Save project" or "File->Save project as...". After the description and markup processes are completed, the author saves the script to the AV Script file (Fig. 12) using the file management tools of the AV Editor’s main menu "File-> Save project" or "File-> Save project as ...".

Проигрыватель Активного Видео (АВ Проигрыватель) (фиг.17) предназначен для чтения, проигрывания интерактивных АВ Сценариев и медиафайлов. АВ Сценарии представляют собой интерактивное видео, управление показом которого может осуществляться непосредственно через объекты, показываемые на экране. Персонажи, предметы, товары или другие визуальные объекты, которые зритель видит на экране АВ Проигрывателя, могут откликаться на запросы зрителя. Зритель может обращаться к таким Активным Объектам посредством, например, кликов манипулятора. В ответ на клики зрителя, производимые непосредственно по области Активного Объекта, АВ Проигрыватель возвращает связанную с данным АО информацию. Например, запускается другая Программа воспроизведения Активного Видео, обычное видео, потоковое видео, либо передается управление другим приложениям, ответственным за обработку специфичных файлов, например, документы, гипертекстовые страницы, графика и т.д. (фиг.17). У одного и того же АО могут быть разные гиперссылки в контекстном меню, в зависимости от видеокадра, на котором произошел клик манипулятора. The Active Video Player (AV Player) (Fig. 17) is intended for reading, playing interactive AV Scripts and media files. AV Scenarios are an interactive video, which can be controlled directly through objects displayed on the screen. Characters, objects, goods or other visual objects that the viewer sees on the screen of the AV Player can respond to the requests of the viewer. The viewer can access such Active Objects through, for example, clicks of the manipulator. In response to the clicks of the viewer produced directly in the area of the Active Object, the AV Player returns information related to this AO. For example, another Active Video Playback Program is launched, regular video, streaming video, or control is transferred to other applications responsible for processing specific files, for example, documents, hypertext pages, graphics, etc. (Fig.17). The same AO may have different hyperlinks in the context menu, depending on the video frame on which the manipulator clicked.

Для успешной ориентации зрителя АО обозначаются на экране АВ Проигрывателя с помощью Маркеров (фиг.19). Во избежание неудобств во время просмотра АВ Маркеры позиционируются в левой верхней точке разметки региона АО. Во время нахождения курсора манипулятора на АО курсор меняет свою форму со стрелки на указатель и одновременно выводится подсказка с именем АО. При клике манипулятора на кнопки назад или вперед происходит, соответственно, ранее запомненный переход по связям. For successful orientation of the viewer, AOs are indicated on the screen of the AV Player using Markers (Fig. 19). In order to avoid inconvenience during viewing, AV Markers are positioned in the upper left marking point of the AO region. While the manipulator cursor is on AO, the cursor changes its shape from arrow to pointer and at the same time a tooltip with the name of AO is displayed. When the manipulator clicks the buttons back or forward, a previously memorized transition through the links occurs.

Если зритель делает клик по АО, например, левой кнопкой компьютерной мыши, выполняется переход по гиперссылке, установленной по умолчанию. В контекстном меню АО ссылка по умолчанию занимает первую позицию. If the viewer clicks on the AO, for example, using the left button of a computer mouse, the user clicks on the hyperlink set by default. In the AO context menu, by default the link takes the first position.

При клике правой клавишей манипулятора выводится контекстное меню (фиг. 18). Контекстное меню состоит из нескольких частей: имя АО, список наименований гиперссылок. АО может иметь любое число гиперссылок, первая из которых есть ссылка по умолчанию. Один и тот же АО может иметь разные гиперссылки в зависимости от видеокадра, на котором контекстное меню вызывается. When right-clicking the manipulator, a context menu is displayed (Fig. 18). The context menu consists of several parts: AO name, a list of hyperlink names. AO can have any number of hyperlinks, the first of which is the default link. The same AO can have different hyperlinks depending on the video frame on which the context menu is called.

Щелчок правой кнопкой по зоне экрана, где нет АО, вызовет общее меню управления АВ Проигрывателя, которое не завит от контекста текущего показа. Right-clicking on a screen area where there is no AO will bring up the general control menu of the AV Player, which is not dependent on the context of the current display.

Разработана и проверена версия АВ Проигрывателя, реализующая вышеперечисленный функционал, в среде Windows 98/Me/2000/XP. A version of the AV Player, which implements the above functionality, was developed and tested in the environment of Windows 98 / Me / 2000 / XP.

Наиболее успешно заявленный способ объектно-ориентированной интерактивной обработки видеоинформации промышленно применим в вычислительной технике, преимущественно в компьютерных системах активного видео (АВ) для создания сценариев и просмотра цифровых видео файлов, а также в таких областях, как интерактивное телевидение, видео по требованию, вещание ТВ через Интернет, интерактивные обучающие системы, видео проводники, персональные, мобильные коммуникации, компьютерные и телевизионные игры. The most successfully claimed method of object-oriented interactive processing of video information is industrially applicable in computer technology, mainly in computer active video (AV) systems for creating scripts and viewing digital video files, as well as in areas such as interactive television, video on demand, TV broadcasting via the Internet, interactive training systems, video guides, personal, mobile communications, computer and television games.

Claims (10)

1. Способ объектно-ориентированной интерактивной обработки видеоинформации, включающий этап создания файла сценария и этап воспроизведения видеоизображений, при этом на этапе создания файла сценария выводят на экран монитора видеокадр с изображением по меньшей мере одного визуального объекта, предназначенного в последующем для его активизации на этапе воспроизведения, - активного объекта, разбивают видеокадр на X•Y ячеек, где Х и Y-1, 2, 3. . . , имеющих форму элементарных квадратов или прямоугольников, выделяют ячейки, местоположение которых совпадает и не совпадает на видеокадре с местоположением активного объекта, присваивая ячейкам, совпадающим с местоположением ячеек активных объектов, соответствующие им номера и присваивая нули ячейкам, местоположение которых не совпадает с местоположением ячеек активных объектов, производят внутрикадровое кодирование, формируют массив данных карты для всех активных объектов данного видеокадра, формируют и запоминают свойства активных объектов, формируют и запоминают переход, соответствующий данному активному объекту, причем если положение активных объектов в следующих видеокадрах видеофайла постоянно, то для таких видеокадров карта предыдущего видеокадра принадлежит им, а если положение активных объектов в следующем видеокадре изменяется, то формируют новую карту для этих активных объектов, формируют и запоминают файл сценария, образованный последовательностью карт, в которой каждая карта соответствует по меньшей мере одному видеокадру видеофайла, при этом на этапе воспроизведения видеоизображений используют видеофайл, файл сценариев и текущую информацию положения курсора манипулятора на экране монитора, при перемещении курсора манипулятора на экране монитора и при совпадении местоположения курсора с активным объектом - с теми ячейками, местоположение которых совпадает на видеокадре с местоположением активного объекта, вид курсора преобразуют, при совпадении курсора с местоположением активного объекта и при нажатии одной из клавиш манипулятора осуществляют переход, соответствующий данному активному объекту и запомненный на этапе создания файла сценария, а при воспроизведении видеокадра видеофайла с другим активным объектом на этом же видеокадре при совпадении курсора с местоположением другого активного объекта и при нажатии этой же клавиши манипулятора осуществляют переход, соответствующий другому активному объекту, отличающийся тем, что для формировании массива данных карты всех активных объектов видеокадра внутрикадровое кодирование производят путем выделения по одной из координат Х или Y крайнего ряда, состоящего из ячеек активного объекта, определения координат крайних ячеек этого ряда, определения координат двух крайних ячеек в последующих рядах, при этом если крайний и последующий ряды содержат ячейки, местоположение которых не совпадает с местоположением активного объекта в этих рядах, то в массив данных карты вводят модификатор разрыва ряда ячеек и запоминают координаты крайних ячеек активного объекта в месте разрыва ряда, анализируют каждый последующий ряд на предмет отсутствия в ряду ячеек активных объектов, и если ряд свободен от ячеек активных объектов, то вводят модификатор пропуска ряда, анализируют каждый последующий ряд на предмет идентичности предыдущего и последующих, смежных с ним рядов, если они идентичны, то вводят модификатор повтора ряда, после внутрикадрового кодирования запоминают карту видеокадра, при изменении геометрической формы и/или положения активного объекта в следующем видеокадре производят его межкадровое кодирование, при котором если положение ячеек активного объекта в следующем видеокадре изменяется, а его геометрическая форма сохраняется, то в массив данных карты следующего видеокадра вводят параметры вектора смещения ячеек активного объекта, если изменяется положение ячеек активного объекта и его геометрическая форма, то производят упомянутое внутрикадровое кодирование этого видеокадра, получая массив данных А, далее вводят в массив данных параметры вектора смещения ячеек активного объекта и вычисляют разность между двумя матрицами массивов данных для активного объекта на предыдущем и следующем видеокадре, получая разностную матрицу, полученную разностную матрицу кодируют упомянутым внутрикадровым кодированием, получая массив данных В, сравнивают размер в байтах массива данных А с массивом данных В по формуле
W= { [Р(А)-Р(В)] /Р(А)} •100%,
где W - вычисляемая величина выигрыша в %;
Р(А) - размер массива А;
Р(В) - размер массива В,
и если величина W>K, где К - величина заданного порога, то сохраняют массив В в качестве массива данных следующей карты и при определении местоположения активного объекта этого видеокадра используют массив данных А предыдущей карты, а если W<K, то сохраняют массив данных А в качестве массива следующей карты, формирование и запоминание свойств активных объектов производят путем установки связей с помощью по меньшей мере одной гиперссылки для каждого активного объекта, при этом связь устанавливают с различными источниками цифровых данных, при формировании и запоминании перехода, соответствующего данному активному объекту, формируют последовательность показа других заданных видеокадров для данного активного объекта, на этапе воспроизведения производят декодирование карт файла сценария, при совпадении положения курсора манипулятора на экране монитора с активным объектом и при нажатии одной из клавиш манипулятора осуществляют переход по первой доступной гиперссылке, сформированной и запомненной на этапе создания файла сценария, при совпадении положения курсора манипулятора на экране монитора с активным объектом и при нажатии другой из клавиш манипулятора осуществляют выбор из меню нескольких гиперссылок и при нажатии затем другой клавиши манипулятора на одну из гиперссылок этого меню осуществляют переход в соответствии со связью этой гиперссылки с соответствующим источником цифровых данных.
1. A method of object-oriented interactive processing of video information, including the step of creating a script file and the step of playing back video images, while at the stage of creating the script file, a video frame is displayed on the monitor screen with an image of at least one visual object intended to be subsequently activated at the playback stage , - of the active object, the video frame is divided into X • Y cells, where X and Y-1, 2, 3.. . in the form of elementary squares or rectangles, cells are selected whose location coincides and does not coincide on the video frame with the location of the active object, assigning to the cells matching the location of the cells of the active objects corresponding numbers to them and assigning zeros to the cells whose location does not coincide with the location of the cells of the active objects, perform intraframe coding, form an array of map data for all active objects of a given video frame, form and store properties of an asset objects, form and remember the transition corresponding to this active object, and if the position of the active objects in the next video frames of the video file is constant, then for such video frames the map of the previous video frame belongs to them, and if the position of the active objects in the next video frame changes, they form a new map for these active objects, form and store a script file formed by a sequence of cards in which each card corresponds to at least one video frame of the video file, while the video playback stage uses a video file, a script file and current information on the position of the manipulator cursor on the monitor screen, when the manipulator cursor moves on the monitor screen and when the cursor location coincides with the active object - with those cells whose location coincides with the location of the active object on the video frame, cursor type transform, when the cursor coincides with the location of the active object and when you press one of the keys on the manipulator, a transition corresponding to yes the active object and memorized at the stage of creating the script file, and when playing a video frame of a video file with another active object on the same video frame, when the cursor coincides with the location of another active object and when you press the same manipulator key, the transition corresponding to another active object is different, that in order to form an array of map data of all active objects of a video frame, intraframe coding is performed by selecting the extreme row along one of the X or Y coordinates from the cells of the active object, determining the coordinates of the extreme cells of this row, determining the coordinates of the two extreme cells in subsequent rows, and if the extreme and subsequent rows contain cells whose location does not coincide with the location of the active object in these rows, then enter the map data array modifier of breaking a number of cells and remember the coordinates of the extreme cells of the active object at the place of breaking the series, analyze each subsequent row for the absence of active objects in the row of cells, and if the row is free from i of active objects, then the row skip modifier is introduced, each subsequent row is analyzed for the identity of the previous and subsequent rows adjacent to it, if they are identical, then the row repeat modifier is entered, after the intraframe coding, the video frame map is stored, if the geometric shape and / or the position of the active object in the next video frame produces its inter-frame coding, in which if the position of the cells of the active object in the next video frame changes, and its geometric shape is saved Thus, the parameters of the cell displacement vector of the active object are introduced into the data array of the map of the next video frame, if the position of the cells of the active object and its geometric shape are changed, then the mentioned intraframe coding of this video frame is performed, obtaining the data array A, then the parameters of the cell displacement vector are entered into the data array the active object and calculate the difference between the two matrices of data arrays for the active object on the previous and next video frame, obtaining a difference matrix, the resulting difference matrix the code is encoded with the above-mentioned intraframe coding, obtaining a data array B, the size in bytes of the data array A is compared with the data array B according to the formula
W = {[P (A) -P (B)] / P (A)} • 100%,
where W is the calculated gain in%;
P (A) - the size of the array A;
P (B) - the size of the array B,
and if the value W> K, where K is the value of the given threshold, then save array B as the data array of the next map, and when determining the location of the active object of this video frame, use the data array A of the previous map, and if W <K, then save the data array A as an array of the next map, the formation and storing of the properties of active objects is carried out by establishing links using at least one hyperlink for each active object, and a connection is established with various sources of digital data, etc. forming and storing the transition corresponding to this active object, the sequence of showing other specified video frames for this active object is formed, at the playback stage, the script file cards are decoded, when the position of the manipulator cursor on the monitor screen coincides with the active object, and when one of the manipulator keys is pressed, the transition by the first available hyperlink generated and stored at the stage of creating the script file, with the coincidence of the cursor position a torus on the monitor screen with the active object and when you press another of the manipulator keys, several hyperlinks are selected from the menu and when you then press another manipulator key to one of the hyperlinks in this menu, the transition is made in accordance with the link of this hyperlink with the corresponding digital data source.
2. Способ по п. 1, отличающийся тем, что на этапе создания файла сценария выделение ячеек активного объекта производят при помощи средств ручной разметки. 2. The method according to p. 1, characterized in that at the stage of creating the script file, the selection of the cells of the active object is carried out using manual markup. 3. Способ по п. 1, отличающийся тем, что на этапе создания файла сценария выделение ячеек активного объекта производят автоматически после указания характерных точек на контуре активного объекта и идентификации ячеек внутри этого контура, причем на следующем видеокадре производят автоматическое отслеживание изменения местоположения характерных точек и изменения положения ячеек активного объекта. 3. The method according to p. 1, characterized in that at the stage of creating the script file, the cells of the active object are selected automatically after specifying the characteristic points on the contour of the active object and identifying the cells inside this circuit, and the next video frame automatically tracks the location of the characteristic points and changes in the position of the cells of the active object. 4. Способ по п. 1, отличающийся тем, что на этапе воспроизведения в качестве источника цифровых данных используют видеофайл. 4. The method according to p. 1, characterized in that at the stage of playback as a source of digital data using a video file. 5. Способ по п. 1, отличающийся тем, что на этапе воспроизведения в качестве источника цифровых данных используют программу воспроизведения, обеспечивающую заданный порядок воспроизведения кадров видеофайлов. 5. The method according to p. 1, characterized in that at the stage of playback as a source of digital data using a playback program that provides a specified order of playback of frames of video files. 6. Способ по п. 1, отличающийся тем, что на этапе воспроизведения в качестве источника цифровых данных используют текстовые документы, HTML документы, графику, компьютерную программу. 6. The method according to p. 1, characterized in that at the playback stage, text documents, HTML documents, graphics, a computer program are used as a source of digital data. 7. Способ по п. 1, отличающийся тем, что на этапе воспроизведения запоминают переходы по гиперссылкам активных объектов, для возврата к сюжетам от которых и на которые были выполнены переходы. 7. The method according to p. 1, characterized in that at the playback stage, the transitions are stored by hyperlinks of active objects, to return to the plots from which and to which the transitions were made. 8. Способ по п. 1, отличающийся тем, что на этапе воспроизведения активные объекты маркируют. 8. The method according to p. 1, characterized in that at the playback stage, active objects are marked. 9. Способ по п. 1, отличающийся тем, что на этапе воспроизведения при совпадении местоположения курсора манипулятора с местоположением активного объекта формируют всплывающую подсказку. 9. The method according to p. 1, characterized in that at the playback stage, when the cursor position of the manipulator coincides with the location of the active object, a tooltip is generated. 10. Способ по п. 1, отличающийся тем, что декодирование производят путем операции, обратной кодированию. 10. The method according to p. 1, characterized in that the decoding is carried out by the operation, the reverse encoding.
RU2002126246/09A 2002-10-03 2002-10-03 Method for processing object-oriented interactive video data RU2212709C1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2002126246/09A RU2212709C1 (en) 2002-10-03 2002-10-03 Method for processing object-oriented interactive video data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2002126246/09A RU2212709C1 (en) 2002-10-03 2002-10-03 Method for processing object-oriented interactive video data

Publications (1)

Publication Number Publication Date
RU2212709C1 true RU2212709C1 (en) 2003-09-20

Family

ID=29777909

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2002126246/09A RU2212709C1 (en) 2002-10-03 2002-10-03 Method for processing object-oriented interactive video data

Country Status (1)

Country Link
RU (1) RU2212709C1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2473960C2 (en) * 2010-05-26 2013-01-27 Учреждение Российской академии наук Институт проблем управления им. В.А. Трапезникова РАН Method of finding maximum repeating sections of sequence of characters of finite alphabet and method of calculating auxiliary array
RU2509364C2 (en) * 2012-05-15 2014-03-10 Федеральное государственное унитарное предприятие "Государственный научно-исследовательский институт авиационных систем" Method of generating integer orthogonal decorrelating matrices of given dimensions and apparatus for realising said method
RU2720071C2 (en) * 2010-06-25 2020-04-23 МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи Alternative semantics for scaling operations in a scalable scene

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2473960C2 (en) * 2010-05-26 2013-01-27 Учреждение Российской академии наук Институт проблем управления им. В.А. Трапезникова РАН Method of finding maximum repeating sections of sequence of characters of finite alphabet and method of calculating auxiliary array
RU2720071C2 (en) * 2010-06-25 2020-04-23 МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи Alternative semantics for scaling operations in a scalable scene
RU2509364C2 (en) * 2012-05-15 2014-03-10 Федеральное государственное унитарное предприятие "Государственный научно-исследовательский институт авиационных систем" Method of generating integer orthogonal decorrelating matrices of given dimensions and apparatus for realising said method

Similar Documents

Publication Publication Date Title
EP2127368B1 (en) Concurrent presentation of video segments enabling rapid video file comprehension
CN100473139C (en) Multimedia playback device and playback method
US7853895B2 (en) Control of background media when foreground graphical user interface is invoked
US6714216B2 (en) Video editing apparatus and method
US6246401B1 (en) Reproduction control data generating apparatus and method of same
JP5231928B2 (en) Information processing apparatus and information processing method
JP5552769B2 (en) Image editing apparatus, image editing method and program
US7325245B1 (en) Linking to video information
US8176425B2 (en) Animated screen object for annotation and selection of video sequences
US7698658B2 (en) Display controlling apparatus, display controlling method, and recording medium
USRE38401E1 (en) Interactive video icon with designated viewing position
US20040010793A1 (en) Method and system for flexible time-based control of application appearance and behavior
US20040012621A1 (en) Hyper-media information providing method, hyper-media information providing program and hyper-media information providing apparatus
CN1989479A (en) Multi-media reproduction device and menu screen display method
US6341168B1 (en) Method and apparatus for detecting and displaying a representative image of a shot of short duration in a moving image
CN103680542A (en) Method and apparatus for reproducing stored data
CN110784753B (en) Interactive video playing method and device, storage medium and electronic equipment
JPH0993588A (en) Moving image processing method
KR20190131074A (en) Virtual scene display method and device, and storage medium
CN113014985A (en) Interactive multimedia content processing method and device, electronic equipment and storage medium
RU2212709C1 (en) Method for processing object-oriented interactive video data
US20040139481A1 (en) Browseable narrative architecture system and method
JP3511278B2 (en) Video anchor setting device
CN115048010A (en) Method, device, equipment and medium for displaying audiovisual works
JPH0232473A (en) Moving image retrieving/editing system

Legal Events

Date Code Title Description
PC4A Invention patent assignment

Effective date: 20050620

MM4A The patent is invalid due to non-payment of fees

Effective date: 20091004

PC41 Official registration of the transfer of exclusive right

Effective date: 20110113

MM4A The patent is invalid due to non-payment of fees

Effective date: 20161004