[go: up one dir, main page]

RU2212710C1 - Method for coding coordinates of video image moving on computer monitor screen - Google Patents

Method for coding coordinates of video image moving on computer monitor screen Download PDF

Info

Publication number
RU2212710C1
RU2212710C1 RU2002126247A RU2002126247A RU2212710C1 RU 2212710 C1 RU2212710 C1 RU 2212710C1 RU 2002126247 A RU2002126247 A RU 2002126247A RU 2002126247 A RU2002126247 A RU 2002126247A RU 2212710 C1 RU2212710 C1 RU 2212710C1
Authority
RU
Russia
Prior art keywords
cells
array
video frame
visual object
map
Prior art date
Application number
RU2002126247A
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 RU2002126247A priority Critical patent/RU2212710C1/en
Application granted granted Critical
Publication of RU2212710C1 publication Critical patent/RU2212710C1/en

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

FIELD: computer engineering; active-video computer systems. SUBSTANCE: method includes division of video frame into X and Y locations. Visual object locations are assigned their respective numbers and remaining locations are assigned zero. Video frame coding for generating card data array is effected by separating series of visual object locations. Modifiers are entered in card data array. Interframe coding is made for preceding and next video frame. Data array A of interframe coding and array B of difference matrix of preceding and next video frame encoded by interframe coding are obtained. If position of visual object locations and its geometry change, size in bytes of data array A is compared with data array B using formula W = | [P(A) P(B)]/P(A)| x 100%. If W > K, where K is desired threshold value, array B is saved as description of next card. If W <K, array A is saved as description of next card. In this way set of cards holding data arrays of coded coordinates is obtained. EFFECT: enhanced capacity and coding speed; reduced saved data arrays. 3 cl, 12 dwg, 1 tbl

Description

Изобретение относится к вычислительной технике и может быть использовано в компьютерных системах активного видео (АВ), а также в таких областях, как интерактивное телевидение, видео по требованию, вещание ТВ через Интернет, интерактивные обучающие системы, видеопроводники, персональные, мобильные коммуникации, компьютерные и телевизионные игры. The invention relates to computing and can be used in computer systems of active video (AV), 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.

Известен способ и аппаратура для объединения гиперсвязей с видео, в котором в качестве операции кодирования координат перемещающегося на экране монитора компьютера видеоизображения выводят на экран монитора видеокадр с изображением по меньшей мере одного визуального объекта (ВО), аппроксимируют при помощи разметки визуальный объект простой геометрической фигурой, например кругом, овалом, прямоугольником, с помощью авторского инструментария наносят разметку на отдельные ключевые видеокадры, а области разметки (круг, овал, прямоугольник) линейно интерполируют на оставшиеся промежуточные кадры (Международная заявка РСТ WО 98/44435, G 06 F 17/30, опубл. 1998 г). A known method and apparatus for combining hyperlinks with video, in which, as an operation of encoding the coordinates of a video image moving on a computer monitor screen, video frames are displayed on the monitor screen with an image of at least one visual object (AT), the visual object is approximated by marking with a simple geometric figure, for example, a circle, an oval, a rectangle, using authoring tools, mark up individual key video frames, and markup areas (circle, oval, rectangular h) linearly interpolated to the remaining intermediate frames (PCT International Application WO 98/44435, G 06 F 17/30, publ. 1998).

В этом техническом решении достигается компактное хранение данных разметки, но приносится в жертву точность разметки ВО. Автору не доступен процесс разметки на не ключевых кадрах. В процессе воспроизведения полученного файла после декодирования регионы разметки на ключевых кадрах линейно интерполируются на промежуточные кадры. Таким образом, из-за линейной интерполяции регионов разметки на не ключевых промежуточных кадрах и из-за аппроксимации ВО простой геометрической фигурой его разметка может не совпадать с местоположением и существующей действительной формой ВО как на ключевых видеокадрах, так, в особенности, на промежуточных, т.к. на практике на промежуточных видеокадрах ВО может изменять свою геометрическую форму, так и перемещаться не вдоль прямой линии. Это приводит к неадекватности кодирования видеоизображений. При последующем декодировании, например для просмотра видеофайлов, когда разметка ВО не видна на экране монитора компьютера и не известно, какой кадр является ключевым, а какой - промежуточным, нельзя установить, соответствует ли действительная форма изображения визуального объекта и его местоположение аппроксимированным. Это вызывает последующие трудности, например, в случае активации такого объекта при помощи клика манипулятора (мыши), т.к. положение курсора мыши в действительности может и не совпадать с невидимой разметкой ВО, особенно на промежуточных кадрах. In this technical solution, compact storage of the markup data is achieved, but the accuracy of the markup of the VO is sacrificed. The author does not have access to the markup process on non-key frames. In the process of reproducing the received file after decoding, the markup regions on key frames are linearly interpolated to intermediate frames. Thus, due to the linear interpolation of the markup regions on non-key intermediate frames and because of the approximation of the VO by a simple geometric figure, its markup may not coincide with the location and the existing real form of the VO both on the key video frames, and especially on the intermediate ones, t .to. in practice, in intermediate video frames, the VO can change its geometric shape and not move along a straight line. This leads to inadequate coding of video images. During subsequent decoding, for example, for viewing video files, when VO markup is not visible on the computer monitor screen and it is not known which frame is key and which is intermediate, it is impossible to establish whether the actual image shape of the visual object and its location are approximated. This causes subsequent difficulties, for example, in the case of activation of such an object with the click of a manipulator (mouse), because in fact, the position of the mouse cursor may not coincide with the invisible markup of VO, especially in intermediate frames.

Известна "Параллельная компьютерная система Активного Видео", реализующая, в частности, способ кодирования координат перемещающегося на экране монитора компьютера видеоизображения, который является наиболее близким к заявленному (Патент Российской Федерации на изобретение 2173883, G 06 Т 1/20, опубл. 2001 г.). Known "Parallel computer system of Active Video", which implements, in particular, a method of encoding the coordinates of a video image moving on a computer screen that is closest to the claimed one (Patent of the Russian Federation for the invention 2173883, G 06 T 1/20, published in 2001 )

Способ включает выведение на экран монитора видеокадра с изображением по меньшей мере одного визуального объекта (ВО). Разбивают видеокадр на X•Y ячеек, где Х и Y - 1, 2, 3, ..., имеющих форму элементарных квадратов или прямоугольников. Выделяют ячейки, местоположение которых совпадает и не совпадает на видеокадре с местоположением ВО, присваивая ячейкам, совпадающим с местоположением ячеек ВО, соответствующие им номера, и присваивая нули ячейкам, местоположение которых не совпадает с местоположением ячеек ВО. Производят внутрикадровое кодирование, формируя массив данных карты для ВО данного видеокадра. Если положение ВО в следующих видеокадрах видеофайла постоянно, то для таких видеокадров массив данных карты предыдущего видеокадра принадлежит ему. Если положение ВО в следующем видеокадре изменяется, то формируют новую карту с новым массивом данных для этого ВО. Формируют и запоминают файл, образованный последовательностью карт, в котором каждая карта соответствует по меньшей мере одному видеокадру видеофайла. The method includes displaying on a monitor screen a video frame with an image of at least one visual object (VO). 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. Cells are selected whose location coincides and does not coincide with the location of the BO on the video frame, assigning the numbers corresponding to the cells that coincide with the location of the BO cells, and assigning zeros to the cells whose location does not coincide with the location of the BO cells. Intraframe coding is performed, forming an array of map data for the VO of a given video frame. If the position of VO in the following video frames of the video file is constant, then for such video frames the map data array of the previous video frame belongs to him. If the position of the VO in the next video frame changes, a new map is formed with a new data array for this VO. A file formed by a sequence of cards is formed and stored in which each card corresponds to at least one video frame of the video file.

Ограничениями этого технического решения являются:
необходимость использования при внутрикадровом кодировании ячеек с нулем, не совпадающих с местоположениями активных объектов, что увеличивает массив данных при создании карт. При идентифицировании и выделении ячеек, местоположение которых совпадает с местоположением активного объекта, необходимо кодирование всех ячеек ВО в координатах X, Y для образования карты ВО, что также резко увеличивает массив данных;
отсутствие межкадрового кодирования, что приводит к избыточности сохраняемых данных.
The limitations of this technical solution are:
the need to use cells with zero in intraframe coding that do not coincide with the locations of active objects, which increases the data array when creating maps. When identifying and selecting cells whose location coincides with the location of the active object, it is necessary to encode all the VO cells in X, Y coordinates to form a VO map, which also dramatically increases the data array;
lack of inter-frame coding, which leads to redundancy of the stored data.

Таким образом, основным ограничением такого способа кодирования координат ВО является низкая скорость кодирования и большой массив сохраняемых данных карт для каждого видеокадра. Thus, the main limitation of this method of coding the coordinates of VO is the low encoding speed and a large array of stored map data for each video frame.

Решаемая изобретением задача - создание такого способа кодирования, в котором не требуется запоминание координат всех ячеек ВО в первом и последующих видеокадрах при точном совпадении разметки ВО и его местоположения с действительно существующими, и, таким образом, увеличение производительности и скорости кодирования координат ВО и уменьшение массивов сохраняемых данных. The problem solved by the invention is the creation of such a coding method in which it is not necessary to memorize the coordinates of all VO cells in the first and subsequent video frames with the exact coincidence of the VO marking and its location with the really existing ones, and thus, an increase in the performance and speed of encoding VO coordinates and a reduction in arrays stored data.

Технический результат, который может быть получен при осуществлении заявленного способа, - уменьшение объема памяти, необходимого для хранения и обработки разметки ВО; обеспечение создания файлов, описывающих видеофайлы, малых размеров; уменьшение объема сохраняемых данных при кодировании видеокадров с несколькими ВО. The technical result that can be obtained by implementing the inventive method is to reduce the amount of memory required for storing and processing markup IN; ensuring the creation of files describing video files of small sizes; reduction of the amount of stored data when encoding video frames with several VO.

Для решения поставленной задачи с достижением указанного технического результата в известном способе кодирования координат перемещающегося на экране монитора компьютера видеоизображения, включающем вывод на экран монитора видеокадра с изображением по меньшей мере одного визуального объекта, разделение видеокадра с визуальным объектом на X•Y ячеек, где Х и Y - 1, 2, 3, ..., имеющих форму элементарных квадратов или прямоугольников, выделение ячеек, местоположение которых совпадает и не совпадает на видеокадре с местоположением визуальных объектов, присваивая ячейкам, совпадающим с местоположением ячеек визуальных объектов, соответствующие им номера, и присваивая нули ячейкам, местоположение которых не совпадает с местоположением ячеек визуальных объектов, внутрикадровое кодирование, при котором формируют массив данных карты для всех визуальных объектов данного видеокадра, причем если положение визуальных объектов в следующих видеокадрах видеофайла постоянно, то для таких видеокадров карта предыдущего видеокадра принадлежит им, а если положение визуальных объектов в следующем видеокадре изменяется, то формируют новую карту для этих визуальных объектов, формирование и запоминание файла, образованного последовательностью карт, в которой каждая карта соответствует по меньшей мере одному видеокадру видеофайла, согласно изобретению внутрикадровое кодирование производят путем выделения по одной из координат Х или Y крайнего ряда, состоящего из ячеек визуального объекта, определения координат крайних ячеек этого ряда, определения координат двух крайних ячеек в последующих рядах, при этом если крайний и последующий ряды содержат ячейки, местоположение которых не совпадает с местоположением визуального объекта в этих рядах, то в массив данных карты вводят модификатор разрыва ряда ячеек и запоминают координаты крайних ячеек визуального объекта в месте разрыва ряда, анализируют каждый последующий ряд на предмет отсутствия в ряду ячеек визуальных объектов, и если ряд свободен от ячеек визуальных объектов, то вводят модификатор пропуска ряда, анализируют каждый последующий ряд на предмет идентичности предыдущего и последующих, смежных с ним рядов, если они идентичны, то в массив данных карты вводят модификатор повтора ряда, после внутрикадрового кодирования запоминают карту видеокадра, при изменении геометрической формы и/или положения визуального объекта в следующем видеокадре производят его межкадровое кодирование, при котором, если положение ячеек визуального объекта в следующем видеокадре изменяется, а его геометрическая форма сохраняется, то в массив данных карты следующего видеокадра вводят параметры вектора смещения ячеек визуального объекта, если изменяется положение ячеек визуального объекта и его геометрическая форма, то производят упомянутое внутрикадровое кодирование этого видеокадра, получая массив данных А, далее вводят в массив данных параметры вектора смещения ячеек визуального объекта и вычисляют разность между двумя матрицами массивов данных для визуального объекта на предыдущем и следующем видеокадре, получая разностную матрицу, полученную разностную матрицу кодируют упомянутым внутрикадровым кодированием, получая массив данных В, сравнивают размер в байтах массива данных А с массивом данных В по формуле
W={[Р(А)-Р(В)]/Р(А)}•100%,
где W - вычисляемая величина выигрыша, %,
Р(А) - размер массива А;
Р(В) - размер массива В,
и если величина W>К, где К - величина заданного порога, то сохраняют массив В в качестве массива данных следующей карты, и при определении местоположения визуального объекта этого видеокадра используют массив данных А предыдущей карты, а если W<К, то сохраняют массив данных А в качестве массива следующей карты.
To solve the problem with achieving the specified technical result in a known method of encoding the coordinates of a video image moving on a computer screen, including displaying a video frame on the monitor screen with at least one visual object, dividing the video frame with the visual object in X • Y cells, where X and Y - 1, 2, 3, ..., having the form of elementary squares or rectangles, the selection of cells whose location coincides and does not coincide on the video frame with the location of visual objects, assigning to the cells that coincide with the location of the cells of visual objects, the corresponding numbers, and assigning zeros to the cells whose location does not coincide with the location of the cells of the visual objects, intraframe coding, in which form an array of map data for all visual objects of this video frame, and if the position visual objects in the following video frames of the video file constantly, then for such video frames the map of the previous video frame belongs to them, and if the position of visual objects in the next video frame is changed, then a new map is formed for these visual objects, the formation and storage of a file formed by a sequence of maps in which each map corresponds to at least one video frame of a video file, according to the invention, intraframe coding is performed by extracting one of the X or Y coordinates of the extreme row consisting of cells of the visual 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 Since the next rows contain cells whose location does not coincide with the location of the visual object in these rows, a modifier for breaking a number of cells is entered into the map data array and the coordinates of the extreme cells of the visual object at the point of row breaking are stored, each subsequent row is analyzed for the absence of visual cells in the row objects, and if the row is free from cells of visual objects, then the row skipping modifier is introduced, each subsequent row is analyzed for the identity of the previous and subsequent ones adjacent to n m rows, if they are identical, then a row repeat modifier is introduced into the map data array, after the intraframe coding, the video frame map is stored, when the geometric shape and / or position of the visual object in the next video frame is changed, its interframe coding is performed, in which, if the position of the cells of the visual object in the next video frame changes, and its geometric shape is saved, then the parameters of the displacement vector of the cells of the visual object are introduced into the map data array of the next video frame, if the location of the cells of the visual object and its geometric shape, then the above-mentioned intraframe coding of this video frame is performed, obtaining the data array A, then the parameters of the displacement vector of the cells of the visual object are introduced into the data array and the difference between the two matrixes of data arrays for the visual object on the previous and next video frame is calculated, receiving the difference matrix, the resulting difference matrix is encoded by the mentioned intra-frame coding, receiving the data array B, the size in bytes of the data array A is compared with 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 specified threshold, then save array B as the data array of the next map, and when determining the location of the visual 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 card.

Возможны дополнительные варианты осуществления способа, в которых целесообразно, чтобы:
- выделение ячеек визуального объекта производили при помощи средств ручной разметки;
- выделение ячеек визуального объекта производили автоматически после указания характерных точек на контуре визуального объекта и идентификации ячеек внутри этого контура, причем на следующем видеокадре производили автоматическое отслеживание изменения местоположения характерных точек и изменения положения ячеек визуального объекта.
There are additional options for implementing the method, in which it is advisable that:
- cells of the visual object were selected using manual marking tools;
- cells of the visual object were automatically selected after specifying the characteristic points on the contour of the visual object and identifying the cells inside this contour, and the next video frame automatically tracked the change in the location of the characteristic points and the position of the cells of the visual object.

За счет оригинального осуществления кодирования координат визуальных объектов, введения операции межкадрового кодирования, в которой могут быть использованы массивы данных карт предыдущего видеокадра, удалось решить поставленную задачу. Due to the original implementation of the coding of coordinates of visual objects, the introduction of inter-frame coding, in which data arrays of maps of the previous video frame can be used, it was possible to solve the problem.

Указанные преимущества, а также особенности настоящего изобретения поясняются лучшими вариантами его выполнения со ссылками на прилагаемые чертежи. 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.

Фиг. 1 изображает массив данных с двумя визуальными объектами после идентификации ячеек для подачи на внутрикадровое кодирование. FIG. 1 depicts an array of data with two visual objects after identification of cells for submission to intraframe coding.

Фиг. 2 - ряды ячеек с разрывом ряда, с пропуском ряда, с повторяющимися рядами и отрезки линий с рядом ячеек, описываемые без помощи модификаторов. FIG. 2 - rows of cells with a row break, with a row skip, with repeating rows and line segments with a row of cells, described without the help of modifiers.

Фиг. 3 - а) предыдущий и б) последующий кадры со смещением ВО при сохранении его геометрической формы. FIG. 3 - a) previous and b) subsequent frames with a displacement of VO while maintaining its geometric shape.

Фиг. 4 - массив данных с ВО после идентификации ячеек для подачи на кодирование, где а) - К-й кадр с визуальным объектом; б) - (К+1)-й кадр, в котором ВО изменил геометрическую форму; в) - разностная матрица, полученная в результате вычитания массивов данных (К+1)-го и К-го кадра. FIG. 4 - an array of data from the VO after identifying the cells for filing for encoding, where a) - K-th frame with a visual object; b) - (K + 1) -th frame in which the VO has changed the geometric shape; c) is the difference matrix obtained by subtracting the data arrays of the (K + 1) th and Kth frames.

Фиг.5 - блок-схема алгоритма внутрикадрового кодирования для заявленного способа. 5 is a block diagram of an intraframe coding algorithm for the claimed method.

Фиг.6 - блок-схема алгоритма с учетом межкадрового кодирования. 6 is a block diagram of an algorithm taking into account inter-frame coding.

Фиг.7 - блок-схема способа автоматизированной разметки ВО. 7 is a flowchart of a method for automated marking of VO.

Фиг.8 - блок-схема декодирования карт ВО. Fig. 8 is a block diagram of a decoding of BO cards.

Фиг.9 - блок-схема декодирования ключевой карты. Fig.9 is a block diagram of the decoding of a key card.

В заявленном способе выводят на экран монитора видеокадр с изображением по меньшей мере одного визуального объекта. Разбивают его на XxY ячеек (фиг. 1), осуществляя тем самым дискретизацию визуального объекта. При дискретизации разметки визуальных объектов на видеокадрах отмечаются области, покрывающие изображение объекта на видеокадре, которые будут относиться к предварительно определенному им ВО (например, регионы персонажа фильма, автомобиля, самолета, и т.п). Разметка ВО определяется в координатах сетки. Минимальная единица разметки - одна ячейка сетки. Чем меньше ячейка, тем более точная разметка ВО может быть произведена. In the claimed method, a video frame is displayed on the monitor screen with an image of at least one visual object. It is divided into XxY cells (Fig. 1), thereby sampling the visual object. When sampling the markup of visual objects on video frames, areas covering the image of the object on the video frame are marked, which will relate to the VO predefined by it (for example, regions of the character of the film, car, plane, etc.). VO marking is defined in grid coordinates. The minimum markup unit is one grid cell. The smaller the cell, the more accurate the marking of VO can be made.

Идентифицирование ячеек, местоположение которых совпадает и не совпадает на видеокадре с местоположением ВО, может осуществляться различными средствами ручной разметки или автоматически. Присваивают ячейкам ВО для различных визуальных объектов соответствующие им номера (например, от 1 до 65000), не совпадающие для различных ВО, тем самым производя идентификацию самих ВО. Присваивают нули ячейкам, местоположение которых не совпадает с местоположением ВО (фиг.1). Identification of cells whose location coincides and does not coincide on the video frame with the location of VO can be carried out by various means of manual marking or automatically. Assign VO cells for various visual objects corresponding numbers (for example, from 1 to 65000) that do not coincide for different VOs, thereby identifying the VOs themselves. Assign zeros to cells whose location does not coincide with the location of VO (figure 1).

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

Операция внутрикадрового кодирования в заявленном техническом решении отличается от внутрикадрового кодирования, используемого в аналогичных технических решениях, в которых используется массив данных видеоизображений для всей площади экрана (матрица массива данных в аналогичном способе учитывает нулевые ячейки и координаты каждой из ячеек ВО). В заявленном способе операция внутрикадрового кодирования исключает избыточность массивов данных, описывающих области разметки ВО на видеокадре. The intra-frame encoding operation in the claimed technical solution differs from the intra-frame encoding 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 BO cells). In the claimed method, the operation of intraframe coding eliminates the redundancy of data arrays that describe the markup areas of the VO on the video frame.

В заявленном способе для формировании карты для всех ВО данного видеокадра внутрикадровое кодирование осуществляют путем выделения рядов (фиг.2), состоящих из ячеек ВО, расположенных только в одном направлении Х горизонтально или только Y вертикально. Внутрикадровое кодирование производят последовательно, прибавляя шаг 1 к одной из координат крайнего ряда визуального объекта, например к координате Y. Другие координаты, например Х, определяют для крайних ячеек для каждого ряда ВО. В массив данных карты вводят модификаторы - указатели разрыва в рядах ячеек, пропуска ряда ячеек ВО, повтора ряда ячеек ВО. Если какой-либо из рядов содержит разрыв, то при запоминании массива данных этот ряд описывают при помощи модификатора разрыва ряда ячеек, при этом дополнительно запоминают координаты Х ячеек визуального объекта в месте разрыва ряда. Если следующий по порядку ряд свободен от ячеек визуального объекта, то при запоминании массива данных вводят для этого ряда модификатор пропуска. Если какой-либо из последующих смежных рядов имеет координаты Х крайних ячеек в ряду, одинаковые с предыдущим рядом, то вводят для этого ряда модификатор повтора ряда. После кодирования запоминают карту видеокадра - массив полученных данных. In the inventive method for forming a map for all VOs of a given video frame, intraframe coding is performed by selecting rows (Fig. 2) consisting of VO 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 visual object, for example, to the Y coordinate. Other coordinates, for example X, are determined for the extreme cells for each row of BO. Modifiers are introduced into the map data array - break indicators in the rows of cells, skipping a number of VO cells, and repetition of a number of VO cells. If any of the series 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 visual object in the place of the row break are additionally remembered. If the next row in order is free from the cells of the visual 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 a row repeat modifier is introduced for this row. 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 necessary for the storage and full description of VO, three types of modifiers are introduced: a row row break modifier - a line segment, a row skip modifier for a cell - a line skip for cells, a row repeat modifier for cells - a line repeat indicator for cells.

Пусть первоначально запоминают координату Y верхней левой точки ВО, если кодирование производится по горизонтали. Затем определяют начальные и конечные координаты Х отрезков. Отрезки с рядами следуют один за другим, то есть координата Y следующего сохраненного отрезка равна координате Y предыдущего отрезка плюс 1, поэтому сохраняется только одна координата Y крайней точки ВО и начальные и конечные координаты Х отрезков с ячейками. Let the Y coordinate of the upper left BO point be initially remembered if the coding is done horizontally. Then, the initial and final coordinates of X segments are determined. Segments with rows follow one after another, 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 BO and the initial and final X coordinates of the segments with cells 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 of the series, 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 missing, and the Y coordinate of the next existing B is stored, i.e. not an empty line. 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 are no modifiers 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 жирными линиями показан ВО, матрица которого кодируется последовательностью, приведенной в таблице. In Fig.2 bold lines show VO, the matrix of which is encoded by the sequence shown in the table.

Схема внутрикадрового кодирования карт в формируемый и запоминаемый файл:
<object map i>: : = <begin point> <count stretches> <stretches> <begin point>
Начальная точка области разметки объекта, Y координата верхней левой точки отрезка линии верхнего горизонтального ряда ячеек.
Scheme of intraframe coding of cards into a generated and stored file:
<object map i>:: = <begin point><countstretches><stretches><beginpoint>
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><startX>
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>)
<Iine continue>:=<line continue mod> <stretch i>
Модификатор разрыва линии описывает разрыв текущей линии разметки или, другими словами, продолжительность разметки в текущей линии. Если текущая линия состоит из более чем одного отрезка, модификатор указывает, что следующий отрезок принадлежит той же линии.
<modifier> :: = (<line continue> | <pass lines> | <repeat stretch>)
<Iine 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>
Список отрезков, представляющих повторяющиеся последовательности.
<stretches on line>
A list of segments representing repeating sequences.

<repeat stretch mod>
Модификатор Повтора, байт идентификатор модификатора.
<repeat stretch mod>
Retry modifier, byte modifier identifier.

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

При изменении геометрической формы или положения визуального объекта в следующем видеокадре для уменьшения массива данных карт производят межкадровое кодирование. При этом межкадровое кодирование производят для каждого последующего видеокадра за исключением тех видеокадров, в которых местоположение ВО и его форма не изменяется. Если положение и форма визуальных объектов в следующих видеокадрах видеофайла постоянны, то для таких видеокадров карта предыдущего видеокадра принадлежит им, поэтому не требуется запоминания массива данных карт таких видеокадров. Операция межкадрового кодирования исключает избыточность массивов данных, описывающих регионы разметки визуальных объектов на соседних кадрах. Процесс кодирования областей ВО основан на данных текущего и предыдущего видеокадров. When you change the geometric shape or position of the visual object in the next video frame to reduce the array of data cards produce inter-frame coding. 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 VO and its shape does not change. If the position and shape of the visual objects in the following video frames of the video file are 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 inter-frame coding operation eliminates the redundancy of data arrays that describe the markup regions of visual objects on adjacent frames. The encoding process of the VO regions is based on the data of the current and previous video frames.

На первом этапе массив координат ВО, относящихся к предыдущему видеокадру, сравнивается с массивом координат визуальных объектов текущего кадра. Если матрицы - массивы данных совпадают, то карта разметки ВО, относящаяся к предыдущему видеокадру, относится и к текущему видеокадру, т.е. для таких видеокадров карта предыдущего видеокадра принадлежит им. At the first stage, the array of coordinates of VO related to the previous video frame is compared with the array of coordinates of visual objects of the current frame. If the matrices - data arrays coincide, then the VO 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 HE (if there are several).

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

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

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

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

Если координаты визуальных объектов на предыдущем и последующем кадре равны, то в карту ВО вводят данные о векторе смещения, равном (0, 0). Такая карта может быть раскодирована с использованием информации о предыдущей карте визуального объекта. Для удобства дальнейшего пояснения операции межкадрового кодирования массив данных карты, который используется для кодирования следующей карты и позволяет снизить объем данных для карты следующего кадра, - ключевой, и такая предыдущая карта - ключевая. Карта следующего кадра, с которой информация не может быть считана без использования ключевой, - относительная. If the coordinates of the visual objects on the previous and next frame are equal, then data on the displacement vector equal to (0, 0) are entered into the VO map. Such a map can be decoded using information about the previous map of the visual 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 visual objects is the same, but the visual objects are offset in two-dimensional space, then this offset is taken into account using the <offset vector> (Fig. 3). Only the coordinates of the displacement vector are entered into the data array of the VO 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 VO position is the key one. So, in Fig. 3, the displacement vector of the BO (K + 1) -th frame relative to the K-th frame is characterized by the BO displacement by 5 cells along X and by 1 cell along Y. Therefore, the map data array (K + 1) -th frame is only two numbers (5, 1) are introduced that 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 BO shape of the subsequent frame (FIG. 4B) is changed with respect to the BO shape of the previous frame (FIG. 4A), but the object itself is not offset, then interframe coding is performed by two methods. The intra-frame coding described above encode the data array for the BO (K + 1) th frame. The result is a resultant data array A. Then, by the second method, the difference between the coordinate data of the matrix BO of the previous Kth frame and the coordinate data of the matrix BO of the subsequent (K + 1) th frame with the changed shape of the object is determined (Fig. 4B). As can be seen from figure 4, for the BO (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 save the array B and the displacement vector equal to (0,0) as a description of the next map, and if W <K, then save the array A as the description of the next map 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 developer of the stored file. The threshold of 30% gives a large number of relative VO cards, and at 99% almost all cards are key. This affects the amount of information stored. When in practice, only key cards are used, the volume of stored data is greater, but the access speed is faster and decoding is accordingly faster. When using a large number of relative cards in a 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 of the claimed encoding method, a threshold value of 40-50% can be set.

Если ВО смещен, а также изменена форма ВО по отношению к его форме на предыдущем видеокадре (т. е. произошла совместная ситуация изменения карты ВО, как это было показано по отдельности на фиг.3 и 4), то сначала производят внутрикадровое кодирование следующего видеокадра, получая массив данных А. Затем определяют вектор смещения (как это было ранее описано для фиг.3). В этом случае за направление и величину вектора смещения принимается вектор, который при смещении на величину этого вектора ВО с предыдущего кадра дает максимальное совпадение ячеек с этим ВО последующего кадра. То есть определяют все совпадающие ячейки предыдущего и следующего кадра и находят для этих ячеек параметры Х и Y вектора смещения, как это было описано ранее. Далее определяют разность между данными координат ячеек матрицы ВО предыдущего кадра и данными координат ячеек матрицы ВО последующего кадра с измененной формой объекта (как это было ранее описано для фиг.4). То есть выявляются те ячейки, который не совпадают на предыдущем и следующем видеокадре. Далее кодируют полученную разностную матрицу методом внутрикадрового кодирования, описанным выше. В результате получают результирующий массив данных В. Если W>К, где К - величина заданного порога, то сохраняется закодированный разностный массив В и параметры вектора смещения, т.е. получают относительную карту. Если W<К, то сохраняют массив А, т.е. ключевую карту, как было описано выше. Величина заданного порога К может быть выбрана в интервале 30-99%. If the VO is shifted and the VO shape is changed with respect to its shape on the previous video frame (i.e., there was a joint situation of changing the VO map, as was shown separately in Figs. 3 and 4), then the next video frame is encoded in-frame 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 VO vector from the previous frame, gives the maximum coincidence of the cells with this VO of the subsequent 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 of the VO of the previous frame and the coordinate data of the cells of the matrix of the VO of the subsequent 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 frame 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 visual object in a given video frame.

При кодировании последующего видеокадра проверяется предыдущая карта визуального объекта. Определяется, является ли она относительной или ключевой. Если предыдущая карта является относительной, т.е. для нее W>К, то карта визуального объекта на последующем кадре также может быть только относительной по отношению к ранее полученной ключевой карте. То есть ее данные считываются при помощи ключевой карты, минуя массив данных предыдущих относительных карт. Но в случае, если для нее W<К, то она будет сама ключевой для последующих карт визуального объекта. Таким образом, получают последовательность - "цепь" карт ВО, где могут быть несколько относительных карт ВО, следующих за ключевой. When encoding a subsequent video frame, the previous map of the visual 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 visual 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 it, then it will be the key for subsequent maps of the visual object. Thus, a sequence is obtained - a “chain” of VO cards, where there can be several relative VO 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 and encoding (Fig.5, 6).

На вход кодировщика блок 1 (фиг.5, 6) поступает массив координат ВО текущего кадра, который представляет собой матрицу с размером, равным количеству ячеек в разметке. В ячейках, покрывающих ВО, хранятся номера визуальных объектов, во всех остальных ячейках - нули. Для простоты изложения рассматривается кодирование по горизонтали и слева направо. At the input of the encoder block 1 (Figs. 5, 6), an array of 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 VO numbers of visual 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 data array of the BO coordinates 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 for VO - 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 — segments of VO in the next horizontal line, this check is carried out in comparison block 12, the 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 of 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 the VO are described, this condition is checked in block 16. The process, starting from block 6, is repeated for each VO 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 visual objects, then the matrix of the next frame is input to 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 VO are selected from the matrix and two calculations are performed. According to the first calculation in block 23, the coordinates of the first VO are encoded using the intraframe coding method. According to the second calculation, the displacement vector is determined in block 24; for this calculation, the coordinate matrix BO of the previous frame is extracted from block 25. In block 26, the difference between the BO 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 visual object. The process is repeated for each visual object present in the current frame, which is checked by the comparison unit 30. The resulting array is stored in block 19.

Разметка ячеек ВО может быть произведена ручными способами и автоматически. К ручным способам относится нанесение разметки с помощью известных инструментов:
"Карандаш" - идентификация отдельных ячеек путем выделения ячеек на отображаемом на экране видеокадре с помощью манипулятора (мышь);
"Прямоугольник" - идентификация ячеек в прямоугольной области на кадре, путем растягивания изображения прямоугольника;
"Стирание" - отмена идентификации ячеек объекта;
"Заливка" - идентификация всех ячеек внутри области, ограниченной ранее идентифицированными ячейками;
"Волшебная палочка" - идентификация ячеек, прилежащих к заданной и сходных с ней по цвету (аналогично инструменту "Волшебная палочка" в графических редакторах типа Adobe Photoshop).
The marking of cells can be done manually and automatically. 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 markup method is described below.

В блоке 60 (фиг.7) определяются координаты точек на контуре ВО. Координаты определяются автором, например, автор отмечает с помощью манипулятора точки на видеоизображении ВО. Эти координаты запоминаются в массиве данных. Далее определяется в блоке 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. 7), the coordinates of the points on the BO loop are determined. The coordinates are determined by the author, for example, the author marks the points on the video image 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. As a result, an array C is obtained. Then, cells are determined in block 62 inside the BO loop defined in block 60. First, points within the BO 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 BO contour are determined by approximating previously found points on the grid. Next, in block 63, the coordinates obtained in block 62 about the marking of VO 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 BO loop in frame C, and in block 60, it is searched for frame D. The Pyramidal Implementation of the Lucas Kanade Feature Tracker method described in the article “Pyramidal Implementation of the Lukas Kanade 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 BO 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 BO loop on the video frame D specified by these points are determined in block 62. Further, information about the markup of VO 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 the array C is assigned the value of the array D, the array of coordinates of the points defined for the 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. Thus, automatic selection and identification of BO cells is performed.

После проведения операций внутрикадрового и межкадрового кодирования формируют и запоминают файл, образованный последовательностью ключевых и относительных карт ВО, в которой каждая карта соответствует по меньшей мере одному видеокадру обрабатываемого и кодируемого видеофайла. After the operations of intraframe and interframe coding, a file is formed and stored in a sequence of key and relative BO cards in which each card corresponds to at least one video frame of the processed and encoded video file.

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 X 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 differ-ence>] [<begin point> <circumscribing frame> <count stretches> <stretches>]
<type + object ID> - биты 2-15 - уникальный идентификатор объекта, бит 1 - определяет карта объекта относительная или ключевая (0 - ключевая, 1 - относительная)
[<key map number>] - номер ключевой карты, поле присутствует, если карта относительная.
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 used
<count frame> - the number of frames to which this card is applied.
<count map> - the number of visual objects, the markup of which is described by this map
<count markers> - number of markers
[... <marker i> ...] - list of markers
<marker i> :: = <marker X 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 markups of visual objects
<object map i> - markup of one visual object
<object map i>:: = <type + object ID>[<key map number><motionvector><typediffer-ence>][<beginpoint><circumscribingframe><countstretches><stretches>]
<type + object ID> - bits 2-15 - a unique identifier of the object, bit 1 - determines the map of the object relative or key (0 - key, 1 - relative)
[<key map number>] - key card number, the field is present if the card is relative.

[<motion vector>] - координаты вектора смещения. Поле присутствует, если карта относительная. [<motion vector>] - coordinates of the displacement vector. The field is present if the map is relative.

[<type difference>] - определяет тип type относительной карты. [<type difference>] - defines the type type of the relative map.

0 - объект смещен, форма не изменилась, разность не записывается. 0 - the object is displaced, the shape has not changed, the difference is not recorded.

1 - форма объекта изменена и разностную разметку необходимо прибавить к перемещенному объекту
2 - форма объекта изменена и разностную разметку необходимо вычесть из перемещенного объекта
3 - форма объекта изменена и присутствует разностная разметка, которую необходимо прибавить к перемещенному объекту, далее следует разностная разметка, которую необходимо вычесть из перемещенного объекта.
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 - координата левой верхней точки разметки объекта, если кодирование выполняется по горизонтали, Х - координата нижней правой точки, если кодирование выполняется по вертикали. [<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 the coding is done horizontally, X is the coordinate of the lower right point, if the coding is done vertically.

[<count stretches>] - количество элементов разметки. [<count stretches>] - the number of markup elements.

[<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>::=<lme continue mod> <stretch i> - Описывает разрыв текущей линии разметки или, другими словами, на продолжительность разметки в текущей линии. Если текущая линия состоит из более чем одного отрезка, модификатор обозначает, что следующий отрезок принадлежит той же линии.
[<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 line segment
X - horizontal coding
Y-vertical coding
<modifier>:: = (<line continue> | <pass lines> | <repeat stretch>) - modifier
<line continue> :: = <lme 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> - Модификатор Разрыва Линии, идентификатор модификатора. <stretch i> - следующий отрезок в этой линии
<pass lines>: := <pass lines mod> <Y/X new> Модификатор пропуска линий. Описывает линии, которые не содержат разметку объекта. Определяет Y(горизонтальное кодирование)/X (вертикальное кодирование) координату следующей строки, в которой встречается разметка.
<line continue mod> - Line Break modifier, modifier identifier. <stretch i> - the next segment in this line
<pass lines>:: = <pass lines mod><Y / X new> Line skip modifier. 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> - Модификатор Пропуска Линии, идентификатор модификатора. <pass lines mod> - Line Skip modifier, modifier identifier.

<Y/X new> - Y (горизонтальное кодирование)/Х(вертикальное кодирование) координата линии, где разметка появляется
<repeat stretch>::= <repeat stretch mod> <count line> <stretches on line> - Модификатор Повтора, используется для кодирования повторяющихся отрезков или повторяющихся последовательностей отрезков
<stretches on line> - [<stretches>] - список отрезков, представляющих повторяющиеся последовательности
<repeat stretch mod> Модификатор Повтора, идентификатор модификатора <count line> - количество повторений линии.
<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 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.

Декодирование карты с разметкой визуальных объектов может быть осуществлено путем определения нахождения местоположения курсора между крайними координатами Х для каждого ряда ячеек (попадает ли курсор мыши в область ВО), однако ограничением такого способа является случай, при котором данная карта ВО относится к нескольким визуальным объектам (их картам), а курсор быстро меняет свое местоположение. В этом случае требуется обработка очень большого массива данных. Поэтому при декодировании карт с несколькими визуальными объектами, быстро изменяющими свое местоположение от одного видеокадра к следующим, целесообразно производить декодирование путем операции, обратной кодированию. Decoding a map with the markup of visual objects can be carried out by determining the location of the cursor between the extreme X coordinates for each row of cells (whether the mouse cursor enters the BO region), however, a limitation of this method is the case in which this VO map refers to several visual objects ( their maps), and the cursor quickly changes its location. In this case, processing a very large data array is required. Therefore, when decoding cards with several visual objects that quickly change their location from one video frame to the next, it is advisable to perform decoding using the reverse encoding operation.

Декодирование карт из запомненного файла осуществляется следующим образом (фиг.8, 9). The decoding of cards from the stored file is as follows (Fig.8, 9).

На вход декодировщика (фиг.8) блок 100 поступает массив закодированных координат визуальных объектов - карт. Далее в блоке сравнения 101 проверяется: эта карта ключевая или нет. Карта - ключевая, если все входящие в нее карты для ВО ключевые. Если она ключевая, то в блоке 102 все входящие в данную карту карты ВО декодируются следующим способом. Выбирается карта одного ВО в блоке 120 (фиг.9). Далее в блоке 121 результирующая матрица заполняется нулями. Затем блок 122 осуществляет выбор ординаты YO начальной ячейки ВО, которая определялась на этапе кодирования блок 4 (фиг.5). Далее в блоке 123 (фиг.9) ординате текущей декодируемой линии для ячеек присваивается значение Y0. Затем в блоке 124 извлекается из карты ВО первый отрезок линии разметки ВО, и соответствующие данному отрезку ячейки в матрице (предварительно заполненной нулями в блоке 121) заполняются номером данного ВО. Далее в блоке сравнения 125 проверяется следующая запись в карте - это модификатор разрыва? Если да, то извлекается следующий отрезок с ячейками в блоке 124. Если это не модификатор разрыва, то в блоке сравнения 126 проверяется данная запись - модификатор пропуска? Если это модификатор пропуска, то в блоке 127 присваивается ординате текущей декодируемой линии с рядом ячеек значение, определенное параметром модификатора пропуска. Если это не модификатор пропуска, то в блоке сравнения 128 проверяется текущая запись в карте ВО - модификатор повтора? Если это модификатор повтора линии с ячейками, то в блоке 129 производится копирование координат текущего ряда (строки), вводится копирование координат текущего ряда (строки) результирующей матрицы на следующие смежные ряды, количество которых указано в параметре модификатора. Далее в блоке 130 производится присваивание ординате текущей декодируемой строке ряда ячеек значения ординаты предыдущей декодируемой строки плюс значение параметра модификатора. Если текущая запись в карте ВО - не модификатор повтора, то в блоке 131 увеличивается значение ординаты предыдущего декодируемого ряда ячеек (строки) на единицу. Процесс продолжается, пока будет обнаружен хотя бы один отрезок линии ряда ячеек с текущей ординатой Y. Это условие проверяется в блоке 132. В результате получается матрица (например, как показано на фиг.1), в ячейках которой соответственно координатам ВО хранятся значения номеров ВО, а во всех остальных ячейках - нули. Результат выполнения декодирования блока 102 (фиг.9) запоминается в блоке 104 и в буфере ключевых карт ВО - блоке 103. Блок 103 служит для ускорения процесса декодирования относительных карт ВО. Если результат сравнения блока 101 будет "НЕТ", то значит, что эта карта относительная. Тогда в блоке 105 производится выбор карты одного ВО из буфера ключевых карт блока 103, а если ключевая карта отсутствует в блоке 103, то она выбирается из блока 100 и декодируется блоком 106 (фиг.8), как ранее показано в блоках 120-132 (фиг.9). At the decoder input (Fig. 8), block 100 receives an array of encoded coordinates of visual objects - maps. Further in the block of comparison 101 it is checked: this card is key or not. A card is a key card if all the cards included in it for VO are key. If it is key, then in block 102 all the BO cards included in this card are decoded in the following way. A card of one VO is selected in block 120 (Fig. 9). Next, in block 121, the resulting matrix is filled with zeros. Then block 122 selects the ordinate YO of the initial cell IN, which was determined at the coding stage of block 4 (Fig. 5). Then, in block 123 (Fig. 9), the ordinate of the current decoded line for the cells is assigned the value Y0. Then, in block 124, the first segment of the VO marking line is extracted from the VO card, and the cells corresponding to the given segment in the matrix (previously filled with zeros in block 121) are filled with the number of this VO. 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 VO card is checked - repeat modifier? If this is a modifier of repeating a line with cells, then in block 129 the coordinates of the current row (row) are copied, the coordinates of the current row (row) of the resulting matrix are copied to the following adjacent rows, the number of which is specified 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 VO 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, according to the coordinates of the BO, the values of the BO numbers are stored , and in all other cells - zeros. The decoding result of block 102 (Fig. 9) is stored in block 104 and in the key card buffer BO - block 103. Block 103 serves to accelerate the decoding process of relative BO cards. If the result of the comparison of block 101 is "NO", then this card is relative. Then, in block 105, one VO card 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. 8), as previously shown in blocks 120-132 ( Fig.9).

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

Таким образом, заявленный способ кодирования координат позволяет на несколько порядков уменьшить объем сохраняемых массивов данных карт, увеличить скорость кодирования координат ВО. Это позволяет уменьшить объем памяти, необходимый для хранения и обработки разметки ВО, и обеспечить создание файлов, описывающих видеофайлы, малых размеров. Thus, the claimed method of coding coordinates allows several orders of magnitude to reduce the amount of stored arrays of map data, to increase the coding speed of coordinates in. This allows you to reduce the amount of memory required for storing and processing markup VO, and to ensure the creation of files that describe video files of small size.

Наиболее успешно заявленный способ кодирования координат перемещающегося на экране монитора компьютера видеоизображения может быть промышленно применим в вычислительной технике, преимущественно в компьютерных системах активного видео (АВ), для создания сценариев и просмотра цифровых видеофайлов, а также в таких областях, как интерактивное телевидение, видео по требованию, вещание ТВ через Интернет, интерактивные обучающие системы, видеопроводники, персональные, мобильные коммуникации, компьютерные и телевизионные игры. The most successfully claimed method of encoding the coordinates of a moving video image moving on a computer monitor screen can be industrially applicable in computing, mainly in computer systems for active video (AV), for creating scripts and watching digital video files, as well as in areas such as interactive television, video on on demand, broadcasting TV over the Internet, interactive training systems, video conductors, personal, mobile communications, computer and television games.

Claims (3)

1. Способ кодирования координат перемещающегося на экране монитора компьютера видеоизображения, включающий вывод на экран монитора видеокадра с изображением по меньшей мере одного визуального объекта, разделение видеокадра с визуальным объектом на X•Y ячеек, где Х и Y-1, 2, 3. . . . , имеющих форму элементарных квадратов или прямоугольников, выделение ячеек, местоположение которых совпадает и не совпадает на видеокадре с местоположением визуальных объектов, присваивая ячейкам, совпадающим с местоположением ячеек визуальных объектов, соответствующие им номера, и присваивая нули ячейкам, местоположение которых не совпадает с местоположением ячеек визуальных объектов, внутрикадровое кодирование, при котором формируют массив данных карты для всех визуальных объектов данного видеокадра, причем если положение визуальных объектов в следующих видеокадрах видеофайла постоянно, то для таких видеокадров карта предыдущего видеокадра принадлежит им, а если положение визуальных объектов в следующем видеокадре изменяется, то формируют новую карту для этих визуальных объектов, формирование и запоминание файла, образованного последовательностью карт, в которой каждая карта соответствует по меньшей мере одному видеокадру видеофайла, отличающийся тем, что внутрикадровое кодирование производят путем выделения по одной из координат Х или Y крайнего ряда, состоящего из ячеек визуального объекта, определения координат крайних ячеек этого ряда, определения координат двух крайних ячеек в последующих рядах, при этом если крайний и последующий ряды содержат ячейки, местоположение которых не совпадает с местоположением визуального объекта в этих рядах, то в массив данных карты вводят модификатор разрыва ряда ячеек и запоминают координаты крайних ячеек визуального объекта в месте разрыва ряда, анализируют каждый последующий ряд на предмет отсутствия в ряду ячеек визуальных объектов, и если ряд свободен от ячеек визуальных объектов, то вводят модификатор пропуска ряда, анализируют каждый последующий ряд на предмет идентичности предыдущего и последующих, смежных с ним рядов, если они идентичны, то в массив данных карты вводят модификатор повтора ряда, после внутрикадрового кодирования запоминают карту видеокадра, при изменении геометрической формы и/или положения визуального объекта в следующем видеокадре производят его межкадровое кодирование, при котором если положение ячеек визуального объекта в следующем видеокадре изменяется, а его геометрическая форма сохраняется, то в массив данных карты следующего видеокадра вводят параметры вектора смещения ячеек визуального объекта, если изменяются положение ячеек визуального объекта и его геометрическая форма, то производят упомянутое внутрикадровое кодирование этого видеокадра, получая массив данных А, далее вводят в массив данных параметры вектора смещения ячеек визуального объекта и вычисляют разность двух матриц массивов данных для визуального объекта на предыдущем и следующем видеокадрах, получая разностную матрицу, полученную разностную матрицу кодируют упомянутым внутрикадровым кодированием, получая массив данных В, сравнивают размер в байтах массива данных А с массивом данных В по формуле
W= { [Р(А)-Р(В)] /Р(А)} •100%,
где W - вычисляемая величина выигрыша, %;
Р(А) - размер массива А;
Р(В) - размер массива В,
и если величина W>К, где К - величина заданного порога, то сохраняют массив В в качестве массива данных следующей карты и при определении местоположения визуального объекта этого видеокадра используют массив данных А предыдущей карты, а если W<К, то сохраняют массив данных А в качестве массива следующей карты.
1. A method of encoding the coordinates of a video image moving on a computer screen, including outputting a video frame to the monitor screen with at least one visual object, dividing the video frame with the visual object into X • Y cells, where X and Y-1, 2, 3.. . . having the form of elementary squares or rectangles, the selection of cells whose location coincides and does not coincide on the video frame with the location of visual objects, assigning to the cells matching the location of the cells of visual objects the numbers corresponding to them, and assigning zeros to cells whose location does not coincide with the location of the cells visual objects, intraframe coding, in which form an array of map data for all visual objects of a given video frame, and if the position of the visa objects in the following video frames of a video file constantly, then for such video frames the map of the previous video frame belongs to them, and if the position of visual objects in the next video frame changes, a new map is formed for these visual objects, the formation and storage of the file formed by the sequence of cards in which each card corresponds to at least one video frame of the video file, characterized in that the intraframe coding is performed by extracting on one of the X or Y coordinates of the extreme row, consisting of cells of a visual 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 visual object in these rows, then enter into the map data array modifier of breaking a series of cells and remembering the coordinates of the extreme cells of a visual object at the place of breaking a series, analyze each subsequent series for the absence of visual objects in the series of cells, and if is full of cells of visual 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 inserted into the map data array, after the intraframe coding, the video frame card is stored, when changing the geometric shape and / or position of the visual object in the next video frame produces its inter-frame coding, in which if the position of the cells of the visual object in the next video frame is changed if its geometric shape is saved, then the parameters of the displacement vector of the cells of the visual object are introduced into the map data array of the next video frame, if the position of the cells of the visual object and its geometric shape are changed, then the above-mentioned encoding of this video frame is performed, obtaining the data array A, then entered the data array the parameters of the displacement vector of the cells of the visual object and calculate the difference between the two matrices of data arrays for the visual object on the previous and next video frames, obtaining the difference The obtained matrix, the difference matrix 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 using 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 visual 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.
2. Способ по п. 1, отличающийся тем, что выделение ячеек визуального объекта производят при помощи средств ручной разметки. 2. The method according to p. 1, characterized in that the selection of cells of the visual object is carried out using manual marking. 3. Способ по п. 1, отличающийся тем, что выделение ячеек визуального объекта производят автоматически после указания характерных точек на контуре визуального объекта и идентификации ячеек внутри этого контура, причем на следующем видеокадре производят автоматическое отслеживание изменения местоположения характерных точек и изменения положения ячеек визуального объекта. 3. The method according to p. 1, characterized in that the cells of the visual object are automatically selected after specifying the characteristic points on the contour of the visual object and identifying the cells inside this circuit, and the next video frame automatically monitors the location of the characteristic points and the position of the cells of the visual object .
RU2002126247A 2002-10-03 2002-10-03 Method for coding coordinates of video image moving on computer monitor screen RU2212710C1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2002126247A RU2212710C1 (en) 2002-10-03 2002-10-03 Method for coding coordinates of video image moving on computer monitor screen

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2002126247A RU2212710C1 (en) 2002-10-03 2002-10-03 Method for coding coordinates of video image moving on computer monitor screen

Publications (1)

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

Family

ID=29777910

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2002126247A RU2212710C1 (en) 2002-10-03 2002-10-03 Method for coding coordinates of video image moving on computer monitor screen

Country Status (1)

Country Link
RU (1) RU2212710C1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110989840A (en) * 2019-12-03 2020-04-10 成都纵横自动化技术股份有限公司 Data processing method, front-end equipment, back-end equipment and geographic information system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110989840A (en) * 2019-12-03 2020-04-10 成都纵横自动化技术股份有限公司 Data processing method, front-end equipment, back-end equipment and geographic information system
CN110989840B (en) * 2019-12-03 2023-07-25 成都纵横自动化技术股份有限公司 Data processing method, front-end equipment, back-end equipment and geographic information system

Similar Documents

Publication Publication Date Title
US6947592B2 (en) Encoding method of a color image and its encoding device and a decoding method of the color image and its decoding device
JP3734549B2 (en) Divided area contour tracing device
EP0781492B1 (en) Grid moving method of object image and apparatus using the same and compaction/motion estimation method using the same and apparatus thereof
US5463701A (en) System and method for pattern-matching with error control for image and video compression
DE69735437T2 (en) IMAGE CODERS AND IMAGE DECODERS
KR100738241B1 (en) Image processing apparatus
EP3402205B1 (en) Image encoding/decoding method and device
CN108052653A (en) Acquisition methods, device, storage medium, terminal and the image search method of characteristics of image descriptor
JP3853450B2 (en) Contour tracing method
KR970068189A (en) Image coding and decoding method
CN112070863A (en) Animation file processing method and device, computer readable storage medium and computer equipment
JPH10143604A (en) Pattern extraction device
CN112070867A (en) Animation file processing method and device, computer readable storage medium and computer equipment
CN117014618A (en) Image compression-based blocking method and system and electronic equipment
JP2776489B2 (en) Method for encoding the position of a change in a sequence of video images
CN112118449B (en) Method and device for compressing and decompressing image
CN111447444A (en) Image processing method and device
RU2212710C1 (en) Method for coding coordinates of video image moving on computer monitor screen
JP2007527126A (en) Image part compression method and apparatus
EA008749B1 (en) Method foe encoding co-ordinates of a video image moving along the display of a computing device
CN112070718A (en) Method and device for determining regional quantization parameter, storage medium and terminal
RU2212709C1 (en) Method for processing object-oriented interactive video data
JPH0537916A (en) Image transmission equipment
JP3261208B2 (en) Picture information prediction encoding and decoding apparatus
CN111510767A (en) Video watermark identification method and identification device thereof

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20091004

NF4A Reinstatement of patent

Effective date: 20110110

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