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

Реферат

 

Изобретение относится к вычислительной технике и позволяет уменьшить объект памяти, необходимый для хранения и обработки визуальных объектов (ВО). Технический результат заключается в уменьшении объема памяти, необходимого для хранения и обработки разметки ВО. Способ включает вывод на экран монитора видеокадра с изображением по меньшей мере одного ВО и разделение видеокадра с ВО на ХY ячеек. Внутрикадровое кодирование в способе производят путем выделения характеристических ячеек, совпадающих с контуром ВО и в которых контур ВО испытывает изменение формы. Изменение контура между характеристическими ячейками аппроксимируют математическими выражениями между контрольными точками. Вводят локальную систему координат Х' и Y'. После внутрикадрового кодирования запоминают в карте массив данных контрольных точек. 3 с. и 13 з.п. ф-лы, 22 ил., 2 табл.

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

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

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

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

Способ кодирования координат перемещающегося на экране монитора компьютера видеоизображения включает вывод на экран монитора видеокадра с изображением по меньшей мере одного визуального объекта. Разделяют видеокадр с визуальным объектом на Х х Y ячеек, где Х и Y – 0, 1, 2, ... , имеющих форму элементарных квадратов или прямоугольников. Выделяют ячейки, местоположение которых совпадает и не совпадает на видеокадре с местоположением визуальных объектов, маркируя ячейки, совпадающие с местоположением ячеек визуального объекта, соответствующим символом, и маркируя другим одним символом ячейки, местоположение которых не совпадает с местоположением ячеек визуального объекта. При внутрикадровом кодировании формируют массив данных карты для визуального объекта данного видеокадра, причем если положение визуального объекта в следующем видеокадре видеофайла постоянно, то, формируя новую карту, для таких видеокадров сохраняют массив данных визуального объекта предыдущего видеокадра, а если положение визуального объекта в следующем видеокадре изменяется, то, формируя новую карту, для таких видеокадров изменяют массив данных визуального объекта. Формируют и запоминают файл, образованный последовательностью карт, в которой каждая карта соответствует по меньшей мере одному видеокадру видеофайла.

Ограничениями этого технического решения являются:

необходимость использования при внутрикадровом кодировании ячеек с нулем, не совпадающих с местоположениями активных объектов, что увеличивает массив данных при создании карт. При идентифицировании и выделении ячеек, местоположение которых совпадает с местоположением активного объекта, необходимо кодирование всех ячеек ВО в координатах Х, Y для образования карты ВО, что также резко увеличивает массив данных;

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

Таким образом, основным ограничением такого способа кодирования координат ВО является низкая скорость кодирования и большой массив сохраняемых данных карт для каждого видеокадра.

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

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

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

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

Для решения поставленной задачи с достижением указанного технического результата в известном способе кодирования координат перемещающегося на экране вычислительного устройства видеоизображения, включающем вывод на экран видеокадра с изображением по меньшей мере одного визуального объекта, разделение видеокадра с визуальным объектом на Х х Y ячеек, где Х и Y координаты – 0, 1, 2, ... , имеющих форму элементарных квадратов или прямоугольников, выделение ячеек, местоположение которых совпадает и не совпадает на видеокадре с местоположением визуальных объектов, путем маркировки ячеек, совпадающих с местоположением ячеек визуального объекта, соответствующим символом, и путем маркировки другим символом ячеек, местоположение которых не совпадает с местоположением ячеек визуального объекта, внутрикадровое кодирование, при котором формируют массив данных карты для визуального объекта данного видеокадра, причем если положение визуального объекта в следующем видеокадре постоянно, то, формируя новую карту, для таких видеокадров сохраняют массив данных визуального объекта предыдущего видеокадра, а если положение визуального объекта в следующем видеокадре изменяется, то, формируя новую карту, для таких видеокадров изменяют массив данных визуального объекта, формирование и запоминание файла, образованного последовательностью карт, в которой каждая карта соответствует по меньшей мере одному видеокадру файла, согласно изобретению внутрикадровое кодирование производят путем выделения характеристических ячеек, совпадающих с контуром визуального объекта и в которых контур визуального объекта испытывает изменение формы, измеряют координаты контрольных точек – центры характеристических ячеек, а изменение контура визуального объекта между контрольными точками аппроксимируют, вводят локальную систему координат Х' и Y', характеризующуюся меньшим количеством ячеек, чем система координат Х и Y, при этом центр одной из ячеек принимают за начало системы координат X' и Y', направление осей которых параллельно осям Х и Y, при внутрикадровом кодировании формируют в карте массив данных контрольных точек в локальной системе координат X' и Y', который запоминают, причем если положение визуального объекта в следующем видеокадре постоянно, то, формируя новую карту, для таких видеокадров сохраняют массив данных контрольных точек предыдущего видеокадра в локальной системе координат X' и Y', при изменении геометрической формы и/или положении визуального объекта в следующем видеокадре производят его межкадровое кодирование, при котором если положение ячеек визуального объекта в следующем видеокадре в локальной системе координат X' и Y' изменяется, а его контур сохраняется, то в массив данных карты следующего видеокадра вводят параметры вектора смещения для всех контрольных точек визуального объекта, если изменяется в локальной системе координат X' и Y' его контур, то производят упомянутое внутрикадровое кодирование этого видеокадра, получая массив данных контрольных точек нового видеокадра, далее определяют смещения соответствующих друг другу контрольных точек в локальной системе координат X' и Y'.

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

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

- при аппроксимации использовали кусочно-линейную аппроксимацию;

- при аппроксимации использовали кривые Безье;

- при аппроксимации использовали кубические сплайны;

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

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

- при межкадровом кодировании вычисляли по массиву смещений контрольных точек для последующего видеокадра длину кода смещений по оси X' и Y', и в качестве массива данных межкадрового кодирования использовали код смещений по оси X' и Y';

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

- массив данных межкадрового кодирования подвергали сжатию с использованием двоичного вектора;

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

- массив данных межкадрового кодирования подвергали сжатию с использованием связанного списка;

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

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

Поскольку заявленный способ кодирования ранее не был известен в уровне техники, то аналогов заявленного устройства и системы не существует.

Поставленная задача с достижением указанного технического результата решается тем, что устройство для декодирования закодированного визуального объекта содержит блоки - ядро контроллера шины РСI, ядро контроллера прямого доступа к памяти, регистр базового адреса, регистр состояния, регистр команды, блок, обеспечивающий доступ в память со стороны контроллера PCI, блок для построения контура визуального объекта по контрольным точкам, в которых контур визуального объекта испытывает изменение формы, блок управления блоком для построения контура визуального объекта, блок для заливки области внутри контура визуального объекта, контроллер памяти, коммутатор потоков данных для памяти, блок логического объединения по ИЛИ сигналов готовности данных, триггер сигналов готовности данных регистров, при этом входы /выходы упомянутых блоков соединены шинами посредством типовых соединений для указанных блоков, причем блок для построения контура визуального объекта предназначен для создания контура визуального объекта по контрольным точкам и выполнен с возможностью приема координат контрольных точек от шины РCI, аппроксимации контура визуального объекта и передачи массива данных обо всех точках контура на шину ZBT, блок для заливки области внутри контура визуального объекта предназначен для маркировки ячеек внутри контура визуального объекта и выполнен с возможностью приема от шины ZBT массива данных обо всех точках экрана, выделения точек контура визуального объекта и точек, расположенных внутри контура визуального объекта, на шину ZBT, блок управления блоком для построения контура визуального объекта выполнен с возможностью поддержки порядка следования координат контрольных точек при подаче их в блок для построения контура визуального объекта.

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

Указанные преимущества, а также особенности настоящего изобретения поясняются лучшими вариантами его выполнения со ссылками на прилагаемые фигуры.

Фиг.1 изображает видеокадр с визуальным объектом (ВО);

фиг.2 – то же, что фиг.1 с ВО, вписанным в прямоугольник;

фиг.3 – формирование контура (границы) ВО, в котором смещение одной контрольной точки относительно другой показано стрелками;

фиг.4 - видеокадр с общим смещением ВО без изменения формы;

фиг.5 – видеокадр со смещением ВО с изменением формы;

фиг.6 – видеокадр с общим смещением группы контрольных точек контура ВО;

фиг.7 – формат кодирования информации о ВО при междкадровом кодировании;

фиг.8 – ВО с изменением формы для иллюстрации межкадрового кодирования:

фиг.9 – блок-схему алгоритма внутрикадрового кодирования;

фиг.10 – блок-схему алгоритма межкадрового кодирования;

фиг.11 – структурную схему устройства декодирования визуального объекта;

фиг.12 – блок для построения контура визуального объекта на пяти листах;

фиг.13 – схему блока заливки области внутри контура визуального объекта на двух листах;

фиг.14 – схему соответствия ячеек памяти пикселям изображения;

фиг.15 – схему блока управления блоком построения контура визуального объекта на двух листах;

фиг.16 – формат описания контрольной точки;

фиг.17 – схему системы для визуализации активного видео.

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

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

При изменении геометрической формы и/или положения ВО в следующем видеокадре (фиг.4-6) производят его межкадровое кодирование. Если положение ячеек ВО в следующем видеокадре изменяется, а его контур сохраняется, то в массив данных карты следующего видеокадра вводят параметры вектора смещения для всех контрольных точек (фиг.4). Если изменяется положение ячеек ВО и его контур (фиг.5, 6), то производят упомянутое внутрикадровое кодирование этого видеокадра, получая массив данных контрольных точек нового видеокадра. Далее определяют смещения соответствующих друг другу контрольных точек и кодируют их, а закодированный массив этих смещений контрольных точек служит для формирования массива данных межкадрового кодирования.

Пример кодирования смещения ВО, представленного на фиг.4.

[1] есть изменения ВО

[I] ВО сместился

[10] кодируем смещение однопиксельными сдвигами

[011] код смещения на юго–восток

Пример кодирования смещения ВО, представленного на фиг.5.

[1] есть изменение ВО

[I] ВО сместился

[10] кодируем смещение однопиксельными сдвигами

[010] код смещения на восток

Пример кодирования изменения размеров ВО, представленного на фиг.5:

[1] есть изменение размеров области отображения ВО;

[I] кодируем однопиксельные изменение размеров

[011] размер каждой стороны увеличился на 1 ячейку

Пример кодирования изменение формы ВО, представленного на фиг.5;

[1] есть изменения формы ВО

[00] код способа представления формы – двоичный вектор смещений опорных точек

[1] [00] устанавливаем кодирование по осям с помощью однопиксельных сдвигов

число точек в двоичном векторе известно с предыдущего кадра – оно не изменилось

[0] 0 – точка осталась на месте

[1] [111] 1 – точка сместилась на северо-запад

[1] [000] 2 – точка сместилась на север

[0] 3 – точка осталась на месте

[1] [100] 4 - точка сместилась на юг

[1] [110] 5 – точка сместилась на запад

[1] [000] 6 – точка сместилась на север

Пример кодирования общего смещения группы опорных точек ВО, представленного на фиг.6:

[1] есть изменения формы ВО

[10] код способа представления формы – двоичный вектор смещений опорных точек с общим движением групп.

[1] [00] устанавливаем кодирование по осям с помощью однопиксельных сдвигов

[011] группа из трех точек

[1] сместилась

[010] на восток

[100] оставшиеся четыре точки

[0] не поменяли свое положение

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

Первый путь сохранения полученных данных заключается в том, что при межкадровом кодировании вычисляют по массиву смещений контрольных точек для последующего видеокадра длину кода смещений по оси X' и Y' и в качестве массива данных межкадрового кодирования используют код смещений по оси X' и Y'.

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

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

Для уменьшения длины кода ВО (фиг.2) вписан в упомянутый прямоугольник. Центр начала координат X' и Y' располагают в центре угловой ячейки прямоугольника, а для простоты и удобства при переходе из одной системы координат в другую направление осей X' и Y' выбирают совпадающим с направлением системы координат Х и Y.

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

При внутрикадровом кодировании в качестве математических выражений могут также использовать кривые Безье или кубические сплайны, которые целесообразно применять в силу их математических свойств плавного сопряжения участков контура (Роджерс Д., Адамс Дж. Математические основы машинной графики: Пер. с англ. – М.: Мир, 2001, - 604 с., ил., ISBN 5-03-002143-4, стр.260-380).

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

"Карандаш" – идентификация отдельных характеристических ячеек путем выделения ячеек на отображаемом на экране видеокадре с помощью манипулятора (мышь);

"Прямоугольник" – идентификация характеристических ячеек в прямоугольной области на кадре, путем растягивания изображения прямоугольника на области отображения ВО;

"Стирание" – отмена идентификации ячеек объекта;

"Волшебная палочка" – идентификация ячеек, принадлежащих контуру ВО (аналогично инструменту "Волшебная палочка" в графических редакторах типа Adobe Photoshop).

При внутрикадровом кодировании выделение характеристических ячеек ВО можно производить путем указания при помощи упомянутых средств ручной разметки нескольких характеристических ячеек на контуре визуального объекта с автоматическим определением контрольных ячеек этих характеристических ячеек, и по визуальным характеристикам визуального объекта автоматически определяют его другие контрольные точки, например, по яркости или контрасту или цвету (Рудаков П.И., Сафонов И.В. Обработка сигналов и изображений. Marlab 5.x/ Под общ. ред. К.т.н. В.Г. Потемкина. – М.: ДИАЛОГ – МИФИ, 2000, -416 с. –(Пакеты прикладных программ; кн.2), стр.360-365).

Массив данных межкадрового кодирования подвергают сжатию путем введения в массив данных информации только о смещенных контрольных точках с кодом их смещения (фиг.5).

Массив данных межкадрового кодирования может быть подвергнут сжатию с использованием двоичного вектора или связанного списка (Ахо Альфред В., Хопкрофт Джон Э., Ульман Джеффри Д. Структуры данных и алгоритмы.: Пер. с англ.: Уч. пос. - М.: Издательский дом "Вильямс", 2000, -384, с.: ил. – Парал. тит.англ., ISBN: 5-8459-0122-7 (рус.), стр.109-113).

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

Видеопоток можно разбить на логические фрагменты, в которых продолжительное время отображаются мало меняющееся по составу и динамике множество ВО. Фрагменты далее разбиваются на последовательность сцен. Каждая сцена является непрерывным движением ВО. Каждая сцена обладает особенностями по отображению ВО. Вычленение этих общих для всех объектов сцены характеристик является важным для кодирования процессом, помогая существенно сжать структурную информацию в кадре, а может даже в сцене. Следующий уровень видеоданных – это видеокадры, на которые разбивается сцена. Здесь каждая ВО позиционирован и имеет определенную форму.

Для всех кадров вводится прямоугольная целочисленная сетка (фиг.1) с постоянными параметрами: дискретными шагами по горизонтали и вертикали, ширины М и высоты N ячеек. Размеры сетки M и N ограничены размерами области отображения видеопотока.

На сетку накладывается система координат Х, Y. Ячейка принадлежит ВО, если их области полностью или частично совпадают. В результате для ВО получают бинарное растровое изображение. Такая сетка вводится для всего видеопотока, и ее параметры (количество ячеек, определяемых их шириной и высотой) зависят от требуемого качества передаваемой информации.

В описание ВО включается его положение, размеры, форма, приоритет по его отображению. На протяжении последовательных кадров эти характеристики ВО могут меняться. Форма ВО отображается в виде двухмерного образа (фиг.2). Информативной составляющей является его контур – граница, которая необходимо состоит из одной части, не имеет разрывов и самопересечений, разбивает плоскость отображения на внутреннюю (конечную) и внешнюю (бесконечную) области. Находя максимальные и минимальные значения координат контрольных точек ВО по осям Х и Y, определяем область отображения и вводим в нее локальную систему координат X' и Y'.

Форма ВО представлена массивом контрольных точек с местом аппроксимации контура. Задание формы у ВО решается на этапе выделения объекта из видеопотока. Используется векторный способ задания контура (фиг.3). Для этого устанавливается начальная контрольная точка контура, например, ближайшая к началу локальной системы координат X' и Y' области отображения, и ее локальные координаты. Далее последовательно определяется смещение соседних контрольных точек относительно предыдущих. Преимущество векторного формата в его простоте, настраиваемой точности задания контура, в его возможности масштабировать изображение без потери качества и в эффективных алгоритмах обработки. Векторный формат визуальных объектов также универсален с точки зрения постановки данной задачи, как описание границ двухмерных образов.

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

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

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

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

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

Формат может быть описан в специальной формальной грамматике – форме Бэкуса-Наура. Символы в определениях "::=" означают "определяется как ". Для альтернатив используется разделитель "|". Символ в конце выражения "+" значит "один или более", символ "*" значит "ноль или более" и "?" значит "ноль или один". Комментарии добавлены в виде: <!"-комментарий->" или "<категория языка> комментарий".

Выделенная структурная информация кодируется в особый формат ВО и составляет ХМL–документ. Он состоит из обязательного заголовка документа и последовательности кадров, составляющих сцены и предваряемых необязательным заголовком сцены. Каждый кадр, в свою очередь, состоит из списка активных ВО.

<документ ВО>::=

<заголовок документа>

(заголовок сцены? (ВО кадра)*)*

<заголовок документа>::=

<ХМL заголовок> Тип документа

<V:32bit> Версия /расширение (V=1.0)

<N:32bit, M:32bit> Размеры сетки

<Flags:32bit> Флаг установок

<заголовок сцены>::=

<Т1> Код сцены

<! – Служебная информация по общим для данной сцены: настройкам, способам кодирования и задания границы ->

</T1> Код завершения заголовка сцены

<ВО кадра>::=

<T2> Код списка ВО кадра

<32bit> Служебная информация по кадру

<32bit> Длина массива кодовой информации в байтах

<кодированная информация по ВО кадра>

<N_OLD> Число старых ВО

<формат ВО>*N_OLD

<N_NEW> Число новых ВО

(<область отображения ВО>

<формат ВО>)*N_NEW

</T2> Код завершения списка ВО кадра

<область отображения ВО>::=

<X:bit8, Y:bit8> Начальная точка области отображения ВО

<W:bit8, H:bit8> Размеры области отображения по ширине и высоте

<1D:bit8> Идентификатор ВО

<Формат ВО>::=

[0] – Нет изменений или сохранение предыдущего движения!

<1> Есть изменения

[1] [0] Нет движения

[1] <1> Есть движение

[1] [1] [0] [x:8bit, y:8 bit] Обычные координаты

[1] [1] <10> Однопиксельные сдвиги

[1] [1] [10] [direct:3bit] код сдвига О-N, 1-NE, 2-Е, ..., 7 –NW

[1] [1] <11> Короткие координаты

[1] [1] [11] <ХХ> Код длины сдвига 00 - 3bit, 01 - 4bit, 10 - 5bit, 11 - 6bit

[1] [1] [11] [01] <x:4bit, y:4bit> Координаты смещения знаковые

<! -[X]::=[prefix]->

[X] [0] Размеры прежние

[X] <1> Размеры изменились

[X] [1] [0] <...> Обычные координаты

[X] [1] [1] [0] <...> Однопиксельные сдвиги

[X] [1] [1] [1] <...> Сжатые координаты

<!-[X]::=[prefix]->

[X] [0] Форма прежняя

[X] <1> Форма изменилась

<формат изменений формы>

<формат изменений формы>::=

<! -Для ВО некоторые настройки

могут быть установлены при создании ->

(<тип списка>::=

<ТЗ> Двоичный вектор

|<T4> <2bit>

Связанный список, с разрядностью указателей

)?

<установки кодирования по оси Х>?

<установки кодирования по оси Y>?

(<смещение контрольной точки>)+

|(<смещение интервала контрольных точек)*

<установки кодирования по оси>::=

<0> Нет кодирования

<1> Есть кодирование по оси

[1] <тип смещения>

<смещение контрольной точки>::=

(<указатель контрольной точки)? <смещение>

<смещение интервала контрольных точек>::=<интервал><cмещение>

<смещение>::=(<тип смещения>)? <величина смещения>

Каждый видеокадр оформляется заголовком, который содержит сопутствующую и индивидуальную информацию. После него размещается формат списка объектов видеокадра. Список ВО упорядочен по важности отображения и по глубине сцены. Число ВО сцены устанавливается в кодовом заголовке сцены. На ВО можно ссылаться по очередности доступа в списке или по его идентификатору. Новые ВО сцены описываются кодом “нового объекта” и задаются динамически полной информацией. Старые ВО, которые необходимо удалить, кодируются кодом “удаления”. В списке ВО видеокадра содержится кодированная информация обо всех ВО данного видеокадра.

На фиг.7 представлена схема кодирования ВО. Этот формат представляет бинарную последовательность заданной длины. В формате используется минимальный код для тегов с частым использованием. Он оптимизирован под минимальным общие изменения формы ВО. Ниже приведены варианты формата кодирования ВО с разной информацией по динамике изменения формы.