RU2343543C2 - Способ синтезирования динамических виртуальных картинок - Google Patents
Способ синтезирования динамических виртуальных картинок Download PDFInfo
- Publication number
- RU2343543C2 RU2343543C2 RU2006143545/09A RU2006143545A RU2343543C2 RU 2343543 C2 RU2343543 C2 RU 2343543C2 RU 2006143545/09 A RU2006143545/09 A RU 2006143545/09A RU 2006143545 A RU2006143545 A RU 2006143545A RU 2343543 C2 RU2343543 C2 RU 2343543C2
- Authority
- RU
- Russia
- Prior art keywords
- frame
- component
- frames
- image
- picture
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/80—2D [Two Dimensional] animation, e.g. using sprites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
- G06T13/40—3D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/32—Image data format
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Processing Or Creating Images (AREA)
- Image Processing (AREA)
- Color Image Communication Systems (AREA)
Abstract
Изобретение относится к технологиям обработки изображений, в частности к способу синтезирования динамических виртуальных картинок. Технический результат заключается в обеспечении улучшенной услуги для пользователя. Способ содержит следующие действия: а) синтезирующая серверная сторона получает пользовательский запрос на синтезирование виртуальной картинки, отправленный пользователем, и, в соответствии с информацией пользовательского запроса, получает файлы изображений всех компонентов для синтезирования виртуальной картинки; b) поочередно считывают соответствующие файлы изображений компонента в соответствии с номерами слоев каждого компонента и трансформируют полученные файлы изображений компонентов в заданный формат; с) синтезируют компонент, отформатированный на шаге b), и предварительно считанный файл шаблона для формирования промежуточной картинки; d) определяют, все ли компоненты синтезированы; если все компоненты синтезированы, то переходят к шагу е); в противном случае - переходят к шагу f); е) записывают синтезированную виртуальную картинку на основании всех синтезированных компонентов в файл изображения виртуальной картинки и заканчивают процедуру; f) считывают один за другим соответствующие файлы изображения другого компонента согласно номеру слоя каждого компонента и преобразуют полученные файлы изображения компонента в заданный формат; g) синтезируют компонент, отформатированный на шаге f), и предварительно синтезированную промежуточную картинку и возвращаются к шагу d). 13 з.п. ф-лы, 2 ил., 1 табл.
Description
Область изобретения
Настоящее изобретение относится к технологиям обработки изображений, в частности к способу синтезирования динамических виртуальных картинок.
Предпосылки создания изобретения
Технология виртуальных картинок развивалась в сети Интернет в последние годы, и постепенно виртуальная веб-картинка стала модной среди постоянных пользователей Интернета, т.к. она может воплотить в себе индивидуальность пользователя и выразить его оригинальность; виртуальная картинка стала очень популярной в этой среде. В настоящее время большинство виртуальных картинок сохраняют в формате обмена графическими файлами (GIF), и каждая виртуальная картинка состоит из нескольких компонентов. Здесь компонент означает каждое из частичных изображений, входящее в состав виртуальной картинки и сохраненное в формате GIF, при этом каждый компонент - это однокадровое изображение формата GIF.
Формат GIF является базовым стандартным форматом хранения файлов изображения, при этом каждый файл GIF может содержать множество цветных изображений, где каждое цветное изображение называют «кадром»; другими словами, в каждом файле GIF может быть сохранено множество «кадров». Эти изображения GIF можно разделить на однокадровые изображения и на многокадровые изображения, и, вообще говоря, однокадровое изображение представляют как статическое изображение, в то время как многокадровое изображение отображается кадр за кадром для представления динамического эффекта или эффекта анимации, так же, как при проецировании диапозитивов. Однако каждый кадр отличается от одиночного элемента изображения тем, что данный отдельный кадр не может сформировать изображения, поэтому один кадр в изображении GIF должен быть ассоциирован с предыдущим кадром, чтобы быть представленным как изображение. Изображение GIF хранит в себе информацию об изображении, единицей которой является блок, и каждый файл GIF содержит блок, указывающий на графику/изображение, подблок и управляющий блок данных, отображающий графику/изображение, которые вместе называются потоком GIF-данных. Все управляющие блоки данных и блоки в потоке данных должны быть расположены между Заголовком и Концевой частью. В формате GIF применен алгоритм сжатия Лемпеля-Зива-Уэлча (LZW) для хранения данных изображения, также пользователям разрешено задавать атрибут прозрачности для фона изображения.
Характерная структура файла GIF представлена в таблице.
Таблица | |||
Метка | Название составляющей | Описание | |
1 | Заголовок | Заголовок GIF | |
2 | Дескриптор логического экрана | Блок описания логического экрана | |
3 | Глобальная таблица цветов | Глобальная таблица цветов | |
…Модуль расширения (выбирается произвольно)… | |||
4 | Дескриптор изображения | Блок описания изображения | Повторяется N раз |
5 | Локальная таблица цветов | Локальная таблица цветов (может быть повторена N раз) | |
6 | Табличные данные об изображении | Табличные сжатые данные об изображении | |
7 | Расширение управления графикой | Блок расширения управления графикой | |
8 | Расширение простого текста | Блок расширения простого текста | |
9 | Расширение комментария | Блок расширения комментария | |
10 | Расширение приложения | Блок расширения приложения | |
…Модуль расширения (выбирается произвольно)… | |||
11 | Концевая часть GIF | Концевая часть GIF |
Файл GIF содержит три типа блоков: блок управления, блок воспроизведения графики и блок специального назначения. Из них блок управления содержит информацию для управления потоком данных или установки параметров аппаратных средств, причем элементы блока управления содержат: заголовок GIF, дескриптор логического экрана, расширение управления графикой и концевую часть GIF-файла. Блок воспроизведения графики содержит информацию и данные для отображения графики на дисплее, причем элементы графического дескриптора содержат: дескриптор изображения и расширение простого текста. Блок специального назначения содержит информацию, независимую от обработки изображения, при этом элементы блока специального назначения содержат: расширение комментария и расширение приложения. Здесь области влияния только дескриптора логического экрана и глобальной таблицы цветов в блоке управления расположены вне потока данных, в то время как все другие блоки управления управляют только блоками воспроизведения графики, которые следуют за ними. Другими словами, в таблице дескриптор логического экрана и глобальная таблица цветов действуют на весь файл, в то время как расширение приложения, расширение читаемого текста, расширение комментария и расширение управления графикой управляют только теми блоками воспроизведения графики, которые следуют за ними.
Дескриптор логического экрана из таблицы содержит параметры, определяющие область отображения картинки, включая такую информацию, как размер логического экрана, цвет фона, наличие глобальной таблицы цветов, и т.д.
Поскольку один GIF-файл может содержать множество цветных изображений и каждое цветное изображение может иметь таблицу цветов в соответствии с характеристиками этого изображения, то один GIF-файл может иметь несколько таблиц цветов. Однако в общем существует только два типа таблиц цветов: глобальная таблица цветов и локальная таблица цветов. Глобальная таблица цветов применима ко всем изображениям, не имеющим своей таблицы цветов, и к расширениям читаемого текста, в то время как локальная таблица цветов применима только к следующему за ней изображению. Глобальная таблица цветов может отсутствовать, если каждый из кадров изображения имеет локальную таблицу цветов.
Расширение приложения содержит релевантную информацию о программе приложения для формирования файла изображения, например: есть ли периодически воспроизводимая анимация, сколько раз она должна быть периодически проиграна и т.д. Данный блок может быть опущен, если файл изображения является статическим.
Расширение управления графикой содержит параметры для обработки блока воспроизведения графики, включая: отметку прозрачности, которая указывает на наличие прозрачности, цветовой индекс прозрачности, способ обработки, время задержки и т.д. При этом способ обработки используется для конкретизации процесса после того, как графика выведена на дисплей, например: а) процесс не конкретизирован; б) процесс не конкретизирован и графика остается на прежнем месте; в) цвет области, отображающей графику, должен быть восстановлен как цвет фона; г) отображается графика, которая отображалась до этого. Время задержки, единицей измерения которого является 1% секунды, используют для указания интервала ожидания между выведением графики и последующим процессом.
Дескриптор изображения используется для записи размера каждого кадра изображения и может содержать любое число изображений без жесткой последовательности хранения, при этом для идентификации дескриптора изображения использован однобайтовый разделитель изображений. Каждое изображение содержит дескриптор изображения, необязательную локальную таблицу цветов и данные изображения. Каждое изображение должно находиться внутри логического экрана, задаваемого дескриптором логического экрана.
Данные изображения содержат последовательности данных. Эти данные изображения записывают каждый пиксель, используя значение индекса таблицы цветов, и сжимают данные, используя алгоритм LZW.
В уровне техники для осуществления процесса синтеза виртуальных картинок обычно применяют пакет программ синтезирования, используемый, в общем случае, посредством сети Интернет как, например, библиотека Gif Draw (GD). Поскольку библиотека GD не может обработать многокадровый файл в формате GIF и может обработать только однокадровый GIF-файл, то существующая технология синтезирования виртуальных картинок позволяет синтезировать только статическую виртуальную картинку, что в общем случае называют синтезированием статических виртуальных картинок. Процедура осуществления синтезирования статической виртуальной картинки в уровне техники содержит следующие действия: определяют контекстуальные отношения между компонентами, а также задают подобные контекстуальные отношения со слоями; при выполнении синтезирования сначала синтезируют первый слой и фоновое изображение согласно последовательности номеров слоев; затем синтезируют второй слой и ранее синтезированное изображение, дальнейшее можно продолжить аналогично до тех пор, пока не будут синтезированы все слои. Допустим, например, что есть три компонента, помимо фона, а именно: брюки, куртка и лицо, при этом получается следующая виртуальная картинка: лицо находится перед курткой, часть воротника закрыта лицом, куртка находится перед брюками, причем куртка закрывает часть брюк; тогда заранее определенные номера слоев таковы: брюки 1, куртка 2 и лицо 3; если синтезирование завершено, то брюки вставлены в фон первыми, далее вставляют куртку, лицо вставляют последним; под процессом вставки здесь понимают синтезирование изображений путем использования существующих синтезирующих функций.
Хотя описанный выше способ синтезирования очень прост и легок в реализации, поскольку каждый компонент является одним кадром, а каждое временно синтезированное изображение - это также один кадр, однако конечное синтезированное изображение также является одним статическим кадром; другими словами, при использовании вышеуказанного способа можно получить только статическую виртуальную картинку. Даже если компоненты синтезирования - это многокадровые динамические GIF-файлы, только первый кадр может быть прочитан с целью синтезирования, следовательно, синтезированное виртуальное изображение является простым и "негибким", оно неспособно удовлетворить требования пользователя.
Сущность изобретения
Обеспечен способ синтезирования динамических виртуальных картинок с целью осуществить синтезирование динамических виртуальных картинок и, таким образом, предложить пользователю улучшенную услугу.
Для достижения вышеуказанных целей реализована следующая техническая схема настоящего изобретения.
Способ синтезирования динамических виртуальных картинок, содержащий следующие действия:
a) синтезирующая серверная сторона получает пользовательский запрос на синтезирование виртуальной картинки, отправленный пользователем, и, в соответствии с информацией пользовательского запроса, получает файлы изображений всех компонентов для синтезирования виртуальной картинки;
b) поочередно считывают соответствующие файлы изображений компонента в соответствии с номерами слоев каждого компонента и трансформируют полученные файлы изображений компонентов в заданный формат;
c) синтезируют компонент, отформатированный на шаге b), и предварительно считанный файл шаблона для формирования промежуточной картинки;
d) определяют, все ли компоненты синтезированы; если все компоненты синтезированы, то переходят к шагу е); в противном случае переходят к шагу f);
e) записывают синтезированную виртуальную картинку на основании всех синтезированных компонентов в файл изображения виртуальной картинки и заканчивают процедуру;
f) считывают один за другим соответствующие файлы изображения другого компонента согласно номеру слоя каждого компонента и преобразуют полученные файлы изображения компонента в заданный формат;
g) синтезируют компонент, отформатированный на шаге f), и предварительно синтезированную промежуточную картинку и возвращаются к шагу d).
Шаг g) включает следующие шаги:
определяют количество кадров синтезированного изображения промежуточной картинки и количество кадров форматированного компонента, определяют длительность фиксации отображения каждого кадра и соответствующую связь синтезирования между кадрами компонента и кадрами промежуточной картинки; исходя из определенной соответствующей связи синтезирования и в соответствии с длительностью фиксации отображения каждого кадра синтезируют кадры данного компонента и соответствующие кадры промежуточной картинки.
Перед записью кадр за кадром синтезированной виртуальной картинки на основании всех синтезированных компонентов в файл изображения виртуальной картинки на шаге d) способ дополнительно содержит следующие шаги:
сжимают кадр за кадром файл изображения, соответствующий синтезированной виртуальной картинке, от последнего кадра до второго кадра, при этом шаг записи синтезированной виртуальной картинки на основании всех синтезированных компонентов в файл изображения виртуальной картинки является следующим действием:
записывают каждый кадр, соответствующий сжатой и синтезированной виртуальной картинке, в файл изображения виртуальной картинки.
Процесс сжатия, в частности, содержит следующие действия:
последовательно точка за точкой сравнивают значение пикселей кадра со значением пикселей предыдущего кадра и, если два значения пикселей одинаковы, то изменяют цвет точки на прозрачный; если два значения пикселей различны, никаких действий не выполняют.
Способ дополнительно содержит следующий шаг:
предварительно получают информацию обо всех компонентах виртуальной картинки, которую необходимо синтезировать; при этом шаг а) содержит следующие действия:
пользователь отправляет запрос пользователя, несущий идентификационную информацию пользователя и информацию о компонентах для синтезирования виртуальной картинки на синтезирующую серверную сторону; анализируя запрос пользователя, синтезирующая серверная сторона получает метки компонентов и соответствующие номера слоев всех компонентов, а также получает соответствующие файлы изображений компонентов согласно полученным меткам компонентов и соответствующим номерам слоев.
Информация о компонентах содержит, как минимум:
метку компонента, идентифицирующую данный компонент единственным образом, и соответствующий номер слоя компонента.
Трансформирование файлов изображения компонента в заданный формат, в частности, содержит следующие шаги:
b11) добавляют цвета из локальной таблицы цветов файла изображения компонента в глобальную таблицу цветов и оценивают, превышает глобальная таблица цветов максимальное число цветов или нет; если глобальная таблица цветов превышает максимальное число цветов, то рассчитывают наименее отдаленный цвет и добавляют данный рассчитанный наименее удаленный цвет в глобальную таблицу цветов; в противном случае, непосредственно добавляют цвета из локальной таблицы цветов в глобальную таблицу цветов;
b12) оценивают, прозрачна ли каждая пиксельная точка данного кадра; если каждая пиксельная точка кадра прозрачна, то принимают цвет пиксельной точки согласно предыдущему кадру, ассоциированному с данным кадром; в противном случае принимают цвет пиксельной точки данного кадра;
b13) после отображения в расширении управления графикой в файле изображения компонента задают вид обработки единым образом, а именно: восстанавливают цвет области, где отображается графика, в качестве обязательного цвета фона.
Заявленный способ дополнительно содержит следующие шаги:
получают длительность фиксации отображения каждого кадра от расширения управления изображением в файле изображения компонента или в файле изображения промежуточной картинки.
Синтезирование кадра компонента и соответствующиих кадров промежуточной картинки в соответствии с длительностью фиксации отображения каждого кадра на шаге g) содержит следующие действия:
g11) вычисляют суммарную длительность отображения всех кадров в промежуточной картинке и, в то же время, вычисляют суммарную длительность отображения всех кадров в компоненте, и принимают наименьшее общее кратное для обеих вычисленных сумм длительности отображения в качестве суммарной длительности отображения всех кадров в синтезированной картинке;
g12) определяют точку вставки кадра в соответствии с числом кадров данного компонента и с длительностью фиксации отображения каждого кадра в нем, с числом кадров промежуточной картинки и длительностью фиксации отображения каждого кадра в ней, а также с суммарной длительностью фиксации отображения всех кадров, полученных на шаге g);
g13) синтезируют кадр компонента и кадр промежуточной картинки в каждой точке вставки.
Синтезирование соответствующих кадров данного компонента и соответствующих кадров промежуточной картинки в соответствии с длительностью фиксации отображения каждого кадра на шаге g) дополнительно содержит следующие действия:
g21) вычисляют суммарную длительность отображения всех кадров в промежуточной картинке и, в то же время, рассчитывают суммарную длительность отображения всех кадров в данном компоненте, и принимают большее значение суммарной длительности отображения данного компонента и суммарной длительности фиксации промежуточной картинки;
g22) определяют точку вставки этого кадра в соответствии с длительностью фиксации отображения каждого кадра в данном компоненте, с длительностью фиксации отображения каждого кадра в промежуточной картинке, а также с большим значением суммарной длительности фиксации данного компонента и суммарной длительности фиксации промежуточной картинки;
g23) синтезируют кадр компонента и кадр промежуточной картинки в каждой точке вставки.
Если длительность фиксации отображения каждого кадра в промежуточной картинке и длительность фиксации отображения каждого кадра в данном компоненте одинаковы, то синтезирование соответствующих кадров данного компонента и кадров промежуточной картинки в соответствии с длительностью фиксации отображения каждого кадра в них на шаге g) дополнительно содержит следующие шаги:
g31) вычисляют наименьшее общее кратное количества кадров этого компонента и количества кадров промежуточной картинки;
g32) определяют точку вставки кадра в соответствии с количеством кадров данного компонента, количеством кадров промежуточной картинки и наименьшим общим кратным количества кадров данного компонента и количества кадров промежуточной картинки;
g33) синтезируют кадр компонента и кадра промежуточной картинки в каждой точке вставки.
Если длительность фиксации отображения кадров промежуточной картинки и длительность фиксации отображения кадров данного компонента одинаковы, при этом и число кадров данного компонента, и число кадров промежуточной картинки являются степенью числа 2, то синтезирование соответствующих кадров данного компонента и кадров промежуточной картинки соответственно длительности фиксации отображения каждого кадра на шаге g) дополнительно включает следующие шаги:
g41) принимают наибольшее значение количества кадров компонента и количества кадров промежуточной картинки;
g42) определяют точки вставки кадра в соответствии с количеством кадров компонента, количеством кадров промежуточной картинки и наибольшим значением количества кадров компонента и количества кадров промежуточной картинки;
g43) синтезируют кадр компонента и кадр промежуточной картинки в каждой точке вставки.
Синтезирование на шаге g) дополнительно содержит следующие шаги:
g1) анализируют каждую пиксельную точку кадра в данном компоненте, оценивая, является ли прозрачным цвет данной пиксельной точки; если цвет данной пиксельной точки является прозрачным, что означает, что цвет соответствующей пиксельной точки синтезированного кадра такой же, как и цвет соответствующей пиксельной точки ассоциированного кадра промежуточной картинки, то возвращаются к шагу g1) и продолжают обрабатывать следующую пиксельную точку; в противном случае выполняют шаг g2);
g2) оценивают, есть ли в глобальной таблице цветов промежуточной картинки цвет, эквивалентный цвету данной пиксельной точки; если в глобальной таблице цветов промежуточной картинки есть цвет, эквивалентный цвету данной пиксельной точки, то маркируют соответствующую пиксельную точку синтезированного кадра с применением эквивалентного цвета, возвращаются к шагу g1) и продолжают обработку следующей пиксельной точки; в противном случае выполняют шаг g3);
g3) оценивают, до конца ли заполнена глобальная таблица цветов промежуточной картинки; если глобальная таблица цветов промежуточной картинки заполнена не до конца, то заполняют глобальную таблицу цветов промежуточной картинки цветом соответствующей пиксельной точки кадра данного компонента и маркируют соответствующую пиксельную точку синтезированного кадра этим цветом; если глобальная таблица цветов заполнена до конца, то ищут наименее отдаленный цвет в глобальной таблице цветов промежуточной картинки и маркируют соответствующую пиксельную точку синтезированного кадра этим цветом.
Файл изображения является взаимозаменяемым файлом формата графического обмена (GIF) в формате файлов изображения.
В способе синтезирования динамических виртуальных картинок, обеспеченном заявленным изобретением, перед синтезированием виртуальных картинок форматы всех компонентов унифицируют в стандартный формат, при этом во время процесса синтезирования принимают вид вставки длительности фиксации кадра для определения количества кадров синтезированной виртуальной картинки, длительности фиксации отображения каждого кадра и кадра в промежуточной картинке, который необходимо синтезировать с определенным кадром в этом компоненте, и, в то же время, после процесса синтезирования применяют покадровый сравнительный алгоритм сжатия, начиная с последнего кадра.
Таким образом, осуществляют синтезирование динамических виртуальных картинок, благодаря чему пользователю предоставляют улучшенную услугу, более удовлетворяющую пользователя. К тому же технология синтезирования динамических виртуальных картинок может принести большой доход провайдерам услуг, поскольку, как показало проведенное исследование, 10% постоянных пользователей сети Интернет стремятся, а более 85% постоянных пользователей сети Интернет - очень сильно стремятся, синтезировать динамические виртуальные картинки.
Краткое описание чертежей
На фиг.1 показана блок-схема, представляющая процесс осуществления данного способа в соответствии с реализацией настоящего изобретения.
Фиг.2 - это схематическое изображение, представляющее процесс определения точки вставки кадра во время синтезирования в реализации настоящего изобретения.
Подробное раскрытие изобретения
Для пояснения цели, технической схемы и преимуществ настоящего изобретения далее оно раскрыто подробно со ссылками на несколько вариантов осуществления.
Ключевая идея настоящего изобретения заключается в следующем: после чтения каждого компонента выполняют стандартное форматирование данного компонента с применением единой глобальной таблицы цветов и с применением единого способа обработки кадра; и затем в соответствии с длительностью фиксации каждого кадра этого компонента и каждого кадра промежуточной картинки определяют точку вставки кадра для синтезирования и выполняют синтезирование кадра этого компонента и кадра промежуточной картинки в каждой точке вставки. Дополнительно, чтобы уменьшить размер синтезированной динамической виртуальной картинки, после синтезирования может быть выполнено покадровое сравнительное сжатие, начиная с последнего кадра.
Поскольку каждый компонент виртуальной картинки является файлом изображения GIF, то перед началом процесса синтезирования требуется пометить все компоненты виртуальной картинки, которые необходимо синтезировать, так, чтобы каждый компонент был идентифицирован единственной меткой. В то же время необходимо определить номер слоя каждого компонента в соответствии с порядком расположения друг за другом каждого компонента в виртуальной картинке; хотя номер слоя и метка каждого компонента независимы друг от друга, во время синтезирования может быть только один компонент с определенным номером слоя. В общем, порядок следования от фона к переднему плану использует возрастающие номера слоев, иначе говоря, номера слоев переднего плана больше, чем номера слоев фона, в таком положении компоненты с большими номерами слоев могут перекрывать компоненты с меньшими номерами слоев, например: портрет может перекрывать фон, рука может перекрывать тело и т.д.
После того как определят метку и номер слоя каждого компонента, все файлы компонентов сохраняют соответственно метке компонента и номеру слоя, чтобы организовать структуру каталога, например: метка компонента автомобиля - 4, а номер слоя - 20; метка компонента цветка - 8, а номер слоя - 12 и т.д., при этом удобно читать компоненты во время синтезирования виртуальной картинки.
В общем, синтезирование виртуальной картинки запускается и становится возможным в соответствии с запросом пользователя; перед отсылкой запроса пользователю уже известно, какие компоненты содержит виртуальная картинка, которую необходимо синтезировать, а также соответствующие метки и номера слоев этих компонентов, например: пользователь приобретает необходимые компоненты заранее, выбирает подходящие друг другу определенный фон и определенную ткань. Таким образом, когда пользователь отсылает запрос, данный запрос будет содержать информацию обо всех компонентах; иначе говоря, пользователь посылает свою идентификационную информацию вместе с информацией о компонентах для синтезирования виртуальной картинки на сетевой сервер, например, следующим образом: идентификатор пользователя, метка 1-го компонента и соответствующий номер слоя, метка 2-го компонента и соответствующий номер слоя… метка n-го компонента и соответствующий номер слоя. Здесь сервер для реализации функции синтезирования изображения назван синтезирующим сервером; идентификатор пользователя может быть регистрационным именем или регистрационной меткой соответствующего пользователя.
Как показано на фиг.1, процесс осуществления синтезирования динамической виртуальной картинки в этом варианте настоящего изобретения содержит следующие шаги:
Шаг 101: когда пользователь запрашивает синтезирование виртуальной картинки, то он посылает пользовательский запрос, содержащий идентификационную информацию пользователя и информацию о компонентах, на сторону синтезирующего сервера; синтезирующий сервер анализирует полученный пользовательский запрос и получает из пользовательского запроса число компонентов для синтезирования виртуальной картинки, а также соответствующую метку и номер слоя каждого компонента; и затем соответствующий файл изображения компонента может быть получен из структуры каталога компонентов в соответствии с меткой компонента и соответствующим номером слоя.
Шаг 102: после определения всех компонентов, необходимых для синтезирования данной виртуальной картинки в текущий момент, синтезирующий сервер должен сначала прочесть шаблон виртуальной картинки, а затем, в соответствии с различными номерами слоев, синтезирует в данном шаблоне каждый компонент один за другим.
Поскольку каждый пользователь может выбрать различные номера компонентов с различными номерами слоев, то шаблон должен быть наложен на базовый шаблон виртуальной картинки, где шаблон - это GIF-файл, сгенерированный в соответствии с заданным форматом, являющийся изображением белого цвета или прозрачным изображением; шаблон можно также считать предварительно синтезированной промежуточной виртуальной картинкой. В общем, шаблон может быть автоматически добавлен синтезирующим сервером.
Шаг 103: после считывания шаблона виртуальной картинки, в соответствии с меткой компонента и номером слоя, синтезирующий сервер считывает соответствующие файлы изображений компонента, начиная от компонента с меньшим номером слоя.
Конкретный процесс заключается в следующем: соответственно приведенному в таблице GIF-формату файла синтезирующий сервер читает заголовок GIF-файла, дескриптор логического экрана, глобальную таблицу цветов, расширение приложения, расширение управления графикой, дескриптор изображения, данные изображения и т.д.; если имеется локальная таблица цветов, то синтезирующему серверу необходимо считать локальную таблицу цветов, при этом он сохраняет данную таблицу в соответствующей структуре памяти. Если данный компонент является динамическим GIF-изображением, то синтезирующему серверу необходимо считать множество расширений управления графикой, дескрипторов изображения и данных изображения, чтобы сформировать многокадровое изображение. Если каждый кадр имеет свою локальную таблицу цветов, то цвет изображения в этом кадре будет определен локальной таблицей цветов вместо того, чтобы определяться глобальной таблицей цветов. Можно узнать, является данный компонент динамическим изображением GIF или нет, выяснив, есть ли в этом GIF-файле множественные кадры; если хотя бы один из синтезированных компонентов является многокадровым, то синтезированная виртуальная картинка является многокадровой и динамической.
Поскольку расширение комментария и расширение простого текста в GIF-файле бесполезны для синтезирования виртуальной картинки, то расширение комментария и расширение простого текста можно временно опустить во время чтения изображения GIF с целью уменьшить размер синтезируемого файла.
Шаг 104: считанные файлы изображений компонентов приводят к заданному формату, иначе говоря, выполняют инициализацию формата.
Из данного описания очевидно, что синтезирование динамического изображения GIF с позиции расширения управления графикой в файловом формате GIF очень затруднено из-за трех проблем: 1) в GIF-файле декодер может выполнить четыре вида процессов с отображенным кадром, что означает, что есть четыре типа динамических GIF-ов, однако статический GIF не может включать в себя разницу между этими четырьмя типами, поскольку статический GIF содержит только один кадр; 2) поскольку каждый кадр в многокадровом GIF может иметь собственную локальную таблицу цветов или может использовать цвета из глобальной таблице цветов вместо локальной таблицы цветов, то подобная ситуация может привести к изменению многокадровых GIF-файлов; 3) поскольку количество кадров в GIF-файле каждого компонента отличается от количества кадров других компонентов, а длительность фиксации отображения каждого кадра также отличается от других, то эта ситуация может также привести к изменению многокадровых GIF-файлов.
В отношении указанных проблем в вариантах осуществления настоящего изобретения две вышеперечисленные проблемы могут быть решены путем форматирования GIF-компонента, в то время как третья проблема будет решена во время синтезирования. Конкретный способ форматирования, в соответствии с реализациями настоящего изобретения, приведен ниже:
а1) таблицы цветов унифицируют, а именно: если количество цветов превышает максимальное количество цветов в глобальной таблице цветов, то при добавлении цветов локальной таблицы цветов в глобальную таблицу цветов вновь добавленные цвета будут заменены наименее удаленными цветами.
В данном случае расстояние между цветами определяют как квадратичную сумму двух значений красного, зеленого и синего цветов, соответственно, и те два цвета, которые имеют минимальную квадратичную сумму, называются ближайшими цветами.
b1) каждый кадр можно превратить в изображение независимым образом; если кадр должен быть ассоциирован с предыдущим кадром для независимого превращения в изображение, то этот кадр будет ассоциирован с предыдущим кадром для независимого формирования изображения с унифицированным форматом, при этом способ обработки после отображения в расширении управления графикой может быть унифицирован следующим образом: в качестве цвета фона обязательным образом восстанавливают цвет области, в которой отображают графику.
В данном случае конкретный процесс синтезирования текущего кадра с предыдущим ассоциированным кадром таков: анализируют каждую пиксельную точку в текущем кадре и окрашивают каждую пиксельную точку заново; если она прозрачна, то принимают цвет соответствующей пиксельной точки предыдущего ассоциированного кадра; в противном случае, используют цвет пиксельной точки текущего кадра.
Цвета из локальной таблицы цветов в процессе форматирования постепенно добавляют в глобальную таблицу цветов, в то время как каждый кадр превращается в изображение независимым образом; каждый форматированный компонент имеет только глобальную таблицу цветов, каждый кадр здесь можно превратить в изображение, при этом способ обработки единый.
Шаг 105: синтезируют форматированный компонент и предварительно синтезируют промежуточную картинку. Синтезирование на этом шаге можно дополнительно разделить на два шага:
а2) в соответствии с количеством кадров и длительностью фиксации отображения каждого кадра компонента и с длительностью фиксации отображения каждого кадра промежуточной картинки определяют синтезирование определенного кадра в этом компоненте и кадра в промежуточной картинке, а именно: определяют соответствующие отношения синтезирования между кадрами этого компонента и кадрами промежуточной картинки. В данном случае длительность фиксации отображения каждого кадра может быть получена от расширения управления изображением файла изображения компонента или от расширения управления изображением промежуточной картинки.
Поскольку этот компонент может быть динамическим и может иметь множественные изображения, и поскольку промежуточная картинка также может быть многокадровой, более того, поскольку длительность фиксации отображения изображений кадра также может быть различной, то для того, чтобы синтезировать текущий компонент и промежуточную картинку, в первую очередь необходимо определить количество кадров синтезированного изображения, а также определить, какой кадр в промежуточной картинке должен быть синтезирован с определенным кадром в текущем компоненте, а именно: в первую очередь определяют точку вставки.
b2) в каждой точке вставки синтезируют текущий кадр компонента и текущий кадр промежуточной картинки, а именно: вставляют текущий кадр компонента в текущий кадр промежуточной картинки.
В процессе синтезирования на шагах а2) и b2) главным является определение точки вставки в соответствии с релевантной информацией о кадрах компонента и о кадрах промежуточной картинки; к релевантной информации здесь относится: количество кадров компонента, длительность фиксации отображения каждого кадра компонента, количество кадров промежуточной картинки и длительность отображения каждого кадра промежуточной картинки. Общий способ определения точки вставки кадра заключается в следующем.
Сначала рассчитывают суммарную длительность отображения всех кадров промежуточной картинки и, в то же время, рассчитывают суммарную длительность отображения всех кадров компонента, и затем принимают наименьшее общее кратное обеих рассчитанных суммарных длительностей вывода отображений в качестве суммарной длительности отображения всех кадров в синтезированной картинке.
Затем определяют количество точек вставки кадра компонента и количество точек вставки кадра промежуточной картинки в соответствии с длительностью отображения всех кадров компонента, суммарной длительности отображения всех кадров промежуточной картинки, а также длительность отображения каждого кадра в синтезированной картинке, соответственно; и далее определяют фактическую точку вставки согласно с длительностью фиксации каждого кадра, соответственно. Каждый раз в момент вставки создают один кадр этой синтезируемой картинки и каждый синтезированный кадр создают путем вставки определенного кадра в компоненте в ассоциированный кадр в промежуточной картинке, при этом данный ассоциированный кадр в промежуточной картинке обозначает ближайший кадр промежуточной картинки среди кадров, расположенных перед текущим кадром этого компонента.
Синтезировать кадр в компоненте и ассоциированный кадр в промежуточной картинке означает вставить текущий кадр этого компонента в каждую точку вставки в текущий кадр промежуточной картинки. Во время синтезирования этих двух кадров цвета, использованные текущим кадром этого компонента, добавляют в глобальную таблицу промежуточной картинки; если таблица заполнена, то эти цвета заменяют наименее отдаленными цветами.
Со ссылкой на фиг.2 предположим, что промежуточная картинка имеет три кадра, соответственно, М1, М2 и М3, при этом длительность этих трех кадров равна 40, 50 и 60, соответственно, следовательно, сумма равна 150; компонент имеет три кадра соответственно G1, G2 и G3, при этом длительность этих трех кадров соответственно равна 30, 30 и 40, и, следовательно, сумма равна 100. Таким образом, наименьшее общее кратное этих двух сумм равняется 300, другими словами, суммарная длительность отображения кадров синтезированной виртуальной картинки равна 300. Таким образом, каждый из кадров промежуточной картинки периодически вставляют дважды, так что существует 6 точек вставки, т.е. изображение сменяется 6 раз; поскольку каждый из кадров этого компонента периодически вставляют трижды, следовательно, существует 9 точек вставки, т.е. изображение сменяется 9 раз. Поскольку первая точка вставки промежуточной картинки и первая точка вставки компонента совпадают, т.е. совпадают их первые кадры, тогда как остальные точки вставки не совпадают, то есть всего 14 точек вставки, и, таким образом, формируется 14 синтезированных кадров; соответствующее фактическое положение точек вставки с 1 по 14 показано на фиг.2.
После определения количества синтезированных кадров и длительности фиксации синтезируют кадры, где каждый кадр получают посредством синтезирования кадра в компоненте и ассоциированного кадра в промежуточной картинке, данный ассоциированный кадр определяют соответственно времени вставки кадра, при этом каждый синтезированный кадр получают путем синтезирования кадра компонента, который является ближайшим или совпадает с моментом времени вставки синтезированного кадра, и кадра промежуточной картинки, который является ближайшим или совпадает с моментом времени вставки синтезированного кадра. В данном способе синтезирования еще требуется вставить кадр компонента в соответствующий кадр промежуточной картинки; если есть какие-либо совпадающие кадры, эти два совпадающих кадра будут синтезированы в один кадр. Как показано на фиг.2, вновь синтезированный первый кадр получен путем вставки кадра G1 компонента в кадр М1 промежуточной картинки, вновь синтезированный второй кадр получен путем вставки кадра G2 компонента в кадр М1 промежуточной картинки, вновь синтезированный третий кадр получен путем вставки кадра G2 компонента в кадр М2 промежуточной картинки, вновь синтезированный четвертый кадр получен путем вставки кадра G3 компонента в кадр М2 промежуточной картинки, вновь синтезированный пятый кадр получен путем вставки кадра G3 компонента в кадр М3 промежуточной картинки, вновь синтезированный шестой кадр получен путем вставки кадра G1 компонента в кадр М3 промежуточной картинки, вновь синтезированный седьмой кадр получен путем вставки кадра G2 компонента в кадр М3 промежуточной картинки,… остальные кадры получают аналогично. Здесь вновь синтезированный первый - это синтезированный кадр 1, согласно фиг.2, а остальные кадры могут быть получены аналогично.
Процесс вставки выполняют в соответствии со следующим способом: пока выполняется синтезирование, происходит анализ каждой пиксельной точки определенного кадра компонента: если данный пиксель прозрачен, то цвет соответствующей пиксельной точки синтезированного кадра и цвет соответствующего пикселя ассоциированного кадра промежуточной картинки одинаковы; в случае, если этот пиксель непрозрачен, есть три способа обработки: А) ищут эквивалентный цвет в глобальной таблице цветов промежуточной картинки и маркируют соответствующую пиксельную точку синтезированного кадра этим эквивалентным цветом; В) если такого эквивалентного цвета нет, то выясняют, заполнена ли глобальная таблица цветов промежуточной картинки; если глобальная таблица цветов промежуточной картинки не заполнена, то заполняют глобальную таблицу цветов промежуточной картинки цветом соответствующей пиксельной точки определенного кадра в компоненте и маркируют соответствующую пиксельную точку синтезированного кадра этим цветом; С) если глобальная таблица цветов промежуточной картинки заполнена, то проводят поиск в глобальной таблице цветов промежуточной картинки с целью найти наименее удаленный цвет и маркируют соответствующую пиксельную точку синтезированного кадра этим цветом.
Чтобы уменьшить размер синтезированного файла, для определения суммарной длительности фиксации синтезированного кадра может быть использовано большее значение суммарной длительности фиксации этого компонента и большее значение суммарной длительности фиксации промежуточной картинки вместо вышеупомянутого наименьшего общего кратного. Если снова обратиться к фиг.2, где количество кадров компонента равно 3, длительности равны 40, 50 и 60, соответственно, а суммарная длительность равна 150; количество кадров промежуточной картинки равно 3, длительности равны 30, 30 и 40, соответственно, а суммарная длительность равна 100; при этом максимальное значение суммарной длительности фиксации компонента и суммарной длительности фиксации промежуточной картинки равно 150. На фиг.2 видно, что, если периодический цикл установлен как 150, то фиксация отображения промежуточной картинки будет завершена на М3, т.е. на втором М1; что касается компонента, то его отображение будет завершено между вторым G2 и G3, следовательно, необходимо синтезировать только 7 кадров, соответственно, а именно: необходимо синтезировать кадры с 1 по 7, согласно фиг.2. Из них синтезированный кадр 1 получают путем вставки кадра G1 компонента в кадр М1 промежуточной картинки, синтезированный кадр 2 получают путем вставки кадра G2 компонента в кадр М1 промежуточной картинки, синтезированный кадр 3 получают путем вставки кадра G2 компонента в кадр М2 промежуточной картинки, … и т.п. Такой процесс позволяет уменьшить размер файла синтезированной картинки, тогда как на восприятие пользователя это влияет незначительно.
Если длительности фиксации отображения кадров промежуточной картинки и длительности фиксации отображения кадров компонента унифицированы, то альтернативным алгоритмом вставки длительности фиксации может быть способ наименьшего общего кратного, а именно: наименьшее общее кратное количества кадров компонента и количества кадров промежуточной картинки принимают в качестве количества кадров синтезированной картинки, например: количество кадров компонента 3 и все длительности фиксации в нем равны 50; количество кадров промежуточной картинки 4 и все длительности фиксации в нем равны 50, следовательно, наименьшее общее кратное количества кадров компонента и количества кадров промежуточной картинки равно 12, иначе говоря, определяют, что кадры компонента периодически вставляют четыре раза, тогда как кадры промежуточной картинки периодически вставляют три раза.
Если длительности фиксации отображения кадров промежуточной картинки и кадров компонента унифицированы, при этом как количество кадров компонента, так и количество кадров промежуточной картинки являются степенью числа 2, то алгоритм вставки длительности фиксации может быть дополнительно трансформирован путем принятия большего значения количества кадров компонента и количества кадров промежуточной картинки. Например, количество кадров компонента равно 2, и длительности фиксации в нем равны 50; количество кадров промежуточной картинки 4, и длительности фиксации в нем все равны 50; следовательно, определяют, что кадры этого компонента периодически вставляют дважды, тогда как кадры промежуточной картинки вставляют только один раз.
Шаг 106: вновь синтезированную виртуальную картинку берут в качестве промежуточной картинки и далее выясняют, все ли запрошенные пользователем компоненты синтезированы; если все компоненты, запрошенные пользователем, синтезированы, то выполняют шаг 107; в противном случае, выполняют шаг 103, где файл изображения компонента следующего слоя считывают последовательно в зависимости от номера слоя для обработки и синтезирования. Этот процесс повторяют до тех пор, пока все компоненты, выбранные пользователем, не будут синтезированы для получения динамической виртуальной картинки, требуемой пользователю.
Шаг 107: поскольку каждый кадр в синтезированном динамическом GIF-файле может сформировать изображение независимо, то этот файл относительно велик, поэтому синтезированная виртуальная картинка требует сжатия, чтобы уменьшить объем занимаемой памяти.
Согласно описанию на шаге 104: синтезированная виртуальная картинка имеет только глобальную таблицу цветов, при этом цвета определены как одинаковые, если соответствующие значения пиксельных точек в кадре являются одинаковыми, в этом случае, в частности, может быть использован следующий алгоритм сжатия: неиспользуемый цвет выбирают в качестве прозрачного цвета и следующий шаг начинают с последнего кадра; значение пиксельной точки текущего кадра сравнивают со значением пиксельной точки предыдущего кадра; если оба значения одинаковы, то цвет этой точки будет изменен на прозрачный и т.д., пока посредством сравнения не будет сжат второй кадр; способы обработки после отображения всех кадров унифицированы как отсутствие процесса обработки данных, поэтому графика останется неподвижной. После выполнения этого алгоритма сжатия каждый кадр записывает только те пиксели, которые отличны от пикселей предыдущих кадров. Размер файла виртуальной картинки, сжатого посредством данного алгоритма сжатия, будет значительно меньшим, например, от нескольких сотен K до менее, чем сто K.
Шаг 108: заголовок GIF-файла, дескриптор логического экрана, глобальная таблица цветов и расширение приложения в структуре памяти, которые использованы для синтезирования виртуальной картинки, записывают в GIF-файл виртуальной картинки, соответственно, в формате GIF-файла, и далее расширение управления графикой, дескриптор изображения и данные об изображении каждого кадра записывают в GIF-файл виртуальной картинки, соответственно, и в конце добавляют концевую часть GIF. Из них данные изображения записывают в GIF-файл виртуальной картинки по способу сжатия LZW.
Стоит сжимать синтезированную виртуальную картинку или нет, определяют в соответствии с конкретными требованиями; если требования на сжатие нет, то синтезированная виртуальная картинка может быть напрямую записана в файл изображения виртуальной картинки кадр за кадром; если требуется процесс сжатия, могут быть выполнены шаги 107 и 108.
После выполнения указанных выше шагов получившаяся в результате синтезированная динамическая виртуальная картинка является многокадровой, каждый кадр и предыдущий ассоциированный кадр вместе формируют изображение, и динамический эффект может быть достигнут путем периодического отображения этих изображений.
Приведенные выше описания - это только предпочтительные варианты осуществления реализации настоящего изобретения и не обязательно ограничивают объем настоящего изобретения.
Claims (14)
1. Способ синтезирования динамических виртуальных картинок, содержащий следующие действия:
a) синтезирующая серверная сторона получает пользовательский запрос на синтезирование виртуальной картинки, отправленный пользователем, и в соответствии с информацией пользовательского запроса получает файлы изображений всех компонентов для синтезирования виртуальной картинки;
b) поочередно считывают соответствующие файлы изображений компонента в соответствии с номерами слоев каждого компонента и трансформируют полученные файлы изображений компонентов в заданный формат;
c) синтезируют компонент, отформатированный на шаге b), и предварительно считанный файл шаблона для формирования промежуточной картинки;
d) определяют, все ли компоненты синтезированы, если все компоненты синтезированы, то переходят к шагу е), в противном случае переходят к шагу f);
e) записывают синтезированную виртуальную картинку на основании всех синтезированных компонентов в файл изображения виртуальной картинки и заканчивают процедуру;
f) считывают один за другим соответствующие файлы изображения другого компонента согласно номеру слоя каждого компонента и преобразуют полученные файлы изображения компонента в заданный формат;
g) синтезируют компонент, отформатированный на шаге f), и предварительно синтезированную промежуточную картинку, и возвращаются к шагу d).
a) синтезирующая серверная сторона получает пользовательский запрос на синтезирование виртуальной картинки, отправленный пользователем, и в соответствии с информацией пользовательского запроса получает файлы изображений всех компонентов для синтезирования виртуальной картинки;
b) поочередно считывают соответствующие файлы изображений компонента в соответствии с номерами слоев каждого компонента и трансформируют полученные файлы изображений компонентов в заданный формат;
c) синтезируют компонент, отформатированный на шаге b), и предварительно считанный файл шаблона для формирования промежуточной картинки;
d) определяют, все ли компоненты синтезированы, если все компоненты синтезированы, то переходят к шагу е), в противном случае переходят к шагу f);
e) записывают синтезированную виртуальную картинку на основании всех синтезированных компонентов в файл изображения виртуальной картинки и заканчивают процедуру;
f) считывают один за другим соответствующие файлы изображения другого компонента согласно номеру слоя каждого компонента и преобразуют полученные файлы изображения компонента в заданный формат;
g) синтезируют компонент, отформатированный на шаге f), и предварительно синтезированную промежуточную картинку, и возвращаются к шагу d).
2. Способ по п.1, в котором шаг g) содержит следующие действия: определяют количество кадров синтезированного изображения промежуточной картинки и количество кадров форматированного компонента, определяют длительность фиксации отображения каждого кадра и соответствующую связь синтезирования между кадрами компонента и кадрами промежуточной картинки, исходя из определенной соответствующей связи синтезирования, и в соответствии с длительностью фиксации отображения каждого кадра, синтезируют кадры данного компонента и соответствующие кадры промежуточной картинки.
3. Способ по п.1, в котором перед записью синтезированной виртуальной картинки на основании всех синтезированных компонентов в файл изображения виртуальной картинки на шаге d), дополнительно содержатся следующие действия:
сжимают кадр за кадром файл изображения, соответствующий синтезированной виртуальной картинке, от последнего кадра до второго кадра, при этом шаг записи синтезированной виртуальной картинки на основании всех синтезированных компонентов в файл изображения виртуальной картинки выполняют следующим образом:
записывают каждый кадр, соответствующий сжатой и синтезированной виртуальной картинке, в файл изображения виртуальной картинки.
сжимают кадр за кадром файл изображения, соответствующий синтезированной виртуальной картинке, от последнего кадра до второго кадра, при этом шаг записи синтезированной виртуальной картинки на основании всех синтезированных компонентов в файл изображения виртуальной картинки выполняют следующим образом:
записывают каждый кадр, соответствующий сжатой и синтезированной виртуальной картинке, в файл изображения виртуальной картинки.
4. Способ по п.3, в котором процесс сжатия, в частности, содержит следующие действия:
последовательно точка за точкой сравнивают пиксельные значения кадра с пиксельными значениями предыдущего кадра и если два пиксельных значения одинаковы, то изменяют цвет точки на прозрачный, если два пиксельных значения пикселя различны, то никаких действий не выполняют.
последовательно точка за точкой сравнивают пиксельные значения кадра с пиксельными значениями предыдущего кадра и если два пиксельных значения одинаковы, то изменяют цвет точки на прозрачный, если два пиксельных значения пикселя различны, то никаких действий не выполняют.
5. Способ по любому из пп.1-3, в котором дополнительно содержатся следующие действия:
предварительно получают информацию обо всех компонентах виртуальной картинки, которую необходимо синтезировать, при этом шаг а) содержит следующие действия:
пользователь отправляет запрос пользователя, несущий идентификационную информацию пользователя и информацию о компонентах для синтезирования виртуальной картинки на синтезирующую серверную сторону, анализируя запрос пользователя, синтезирующая серверная сторона получает метки компонентов и соответствующие номера слоев всех компонентов, а также получает соответствующие файлы изображений компонентов согласно полученным меткам компонентов и соответствующим номерам слоев.
предварительно получают информацию обо всех компонентах виртуальной картинки, которую необходимо синтезировать, при этом шаг а) содержит следующие действия:
пользователь отправляет запрос пользователя, несущий идентификационную информацию пользователя и информацию о компонентах для синтезирования виртуальной картинки на синтезирующую серверную сторону, анализируя запрос пользователя, синтезирующая серверная сторона получает метки компонентов и соответствующие номера слоев всех компонентов, а также получает соответствующие файлы изображений компонентов согласно полученным меткам компонентов и соответствующим номерам слоев.
6. Способ по п.5, в котором информация о компонентах, как минимум, содержит
метку компонента, идентифицирующую данный компонент единственным образом, и соответствующий номер слоя компонента.
метку компонента, идентифицирующую данный компонент единственным образом, и соответствующий номер слоя компонента.
7. Способ по любому из пп.1-3, в котором трансформирование файлов изображения компонента в заданный формат, в частности, содержит следующие действия:
b11) добавляют цвета из локальной таблицы цветов файла изображения компонента в глобальную таблицу цветов и оценивают, превышает глобальная таблица цветов максимальное число цветов или нет, если глобальная таблица цветов превышает максимальное число цветов, то рассчитывают наименее отдаленный цвет и добавляют данный рассчитанный наименее удаленный цвет в глобальную таблицу цветов, в противном случае, непосредственно добавляют цвета из локальной таблицы цветов в глобальную таблицу цветов;
b12) оценивают, прозрачна ли каждая пиксельная точка данного кадра, если каждая пиксельная точка кадра прозрачна, то принимают цвет пиксельной точки согласно предыдущему кадру, ассоциированному с данным кадром, в противном случае принимают цвет пиксельной точки данного кадра;
b13) после отображения в расширении управления графикой в файле изображения компонента задают вид обработки единым образом, а именно восстанавливают цвет области, где отображается графика, в качестве обязательного цвета фона.
b11) добавляют цвета из локальной таблицы цветов файла изображения компонента в глобальную таблицу цветов и оценивают, превышает глобальная таблица цветов максимальное число цветов или нет, если глобальная таблица цветов превышает максимальное число цветов, то рассчитывают наименее отдаленный цвет и добавляют данный рассчитанный наименее удаленный цвет в глобальную таблицу цветов, в противном случае, непосредственно добавляют цвета из локальной таблицы цветов в глобальную таблицу цветов;
b12) оценивают, прозрачна ли каждая пиксельная точка данного кадра, если каждая пиксельная точка кадра прозрачна, то принимают цвет пиксельной точки согласно предыдущему кадру, ассоциированному с данным кадром, в противном случае принимают цвет пиксельной точки данного кадра;
b13) после отображения в расширении управления графикой в файле изображения компонента задают вид обработки единым образом, а именно восстанавливают цвет области, где отображается графика, в качестве обязательного цвета фона.
8. Способ по п.2, в котором дополнительно содержатся следующие действия:
получают длительность фиксации отображения каждого кадра от расширения управления изображением в файле изображения компонента или в файле изображения промежуточной картинки.
получают длительность фиксации отображения каждого кадра от расширения управления изображением в файле изображения компонента или в файле изображения промежуточной картинки.
9. Способ по п.2, в котором синтезирование кадров компонента и соответствующих кадров промежуточной картинки в соответствии с длительностью фиксации отображения каждого кадра на шаге g) содержит следующие действия:
g11) вычисляют суммарную длительность отображения всех кадров в промежуточной картинке и в то же время вычисляют суммарную длительность отображения всех кадров в компоненте и принимают наименьшее общее кратное для обеих вычисленных сумм длительности отображения в качестве суммарной длительности отображения всех кадров в синтезированной картинке;
g12) определяют точку вставки кадра в соответствии с числом кадров данного компонента и с длительностью фиксации отображения каждого кадра в нем, с числом кадров промежуточной картинки и длительностью фиксации отображения каждого кадра в ней, а также с суммарной длительностью фиксации отображения всех кадров, полученных на шаге g);
g13) синтезируют кадр компонента и кадр промежуточной картинки в каждой точке вставки.
g11) вычисляют суммарную длительность отображения всех кадров в промежуточной картинке и в то же время вычисляют суммарную длительность отображения всех кадров в компоненте и принимают наименьшее общее кратное для обеих вычисленных сумм длительности отображения в качестве суммарной длительности отображения всех кадров в синтезированной картинке;
g12) определяют точку вставки кадра в соответствии с числом кадров данного компонента и с длительностью фиксации отображения каждого кадра в нем, с числом кадров промежуточной картинки и длительностью фиксации отображения каждого кадра в ней, а также с суммарной длительностью фиксации отображения всех кадров, полученных на шаге g);
g13) синтезируют кадр компонента и кадр промежуточной картинки в каждой точке вставки.
10. Способ по п.2, в котором синтезирование соответствующих кадров компонента и кадров промежуточной картинки в соответствии с длительностью фиксации отображения каждого кадра, на шаге g) дополнительно содержит следующие действия:
g21) вычисляют суммарную длительность отображения всех кадров в промежуточной картинке и в то же время рассчитывают суммарную длительность отображения всех кадров в данном компоненте и принимают большее значение суммарной длительности отображения данного компонента и суммарной длительности фиксации промежуточной картинки;
g22) определяют точку вставки этого кадра в соответствии с длительностью фиксации отображения каждого кадра в данном компоненте, с длительностью фиксации отображения каждого кадра в промежуточной картинке, а также с большим значением суммарной длительности фиксации данного компонента и суммарной длительности фиксации промежуточной картинки;
g23) синтезируют кадр компонента и кадр промежуточной картинки в каждой точке вставки.
g21) вычисляют суммарную длительность отображения всех кадров в промежуточной картинке и в то же время рассчитывают суммарную длительность отображения всех кадров в данном компоненте и принимают большее значение суммарной длительности отображения данного компонента и суммарной длительности фиксации промежуточной картинки;
g22) определяют точку вставки этого кадра в соответствии с длительностью фиксации отображения каждого кадра в данном компоненте, с длительностью фиксации отображения каждого кадра в промежуточной картинке, а также с большим значением суммарной длительности фиксации данного компонента и суммарной длительности фиксации промежуточной картинки;
g23) синтезируют кадр компонента и кадр промежуточной картинки в каждой точке вставки.
11. Способ по п.2, в котором, если длительность фиксации отображения каждого кадра в промежуточной картинке и длительность фиксации отображения каждого кадра в компоненте одинаковы, то синтезирование соответствующих кадров компонента и кадров промежуточной картинки в соответствии с длительностью фиксации отображения каждого кадра, на шаге g) дополнительно содержит следующие шаги:
g31) вычисляют наименьшее общее кратное количества кадров этого компонента и количества кадров промежуточной картинки;
g32) определяют точку вставки кадра в соответствии с количеством кадров данного компонента, количеством кадров промежуточной картинки и наименьшим общим кратным количества кадров данного компонента и количества кадров промежуточной картинки;
g33) синтезируют кадр компонента и кадр промежуточной картинки в каждой точке вставки.
g31) вычисляют наименьшее общее кратное количества кадров этого компонента и количества кадров промежуточной картинки;
g32) определяют точку вставки кадра в соответствии с количеством кадров данного компонента, количеством кадров промежуточной картинки и наименьшим общим кратным количества кадров данного компонента и количества кадров промежуточной картинки;
g33) синтезируют кадр компонента и кадр промежуточной картинки в каждой точке вставки.
12. Способ по п.2, в котором, если длительность фиксации отображения кадров промежуточной картинки и длительность фиксации отображения кадров компонента одинаковы, при этом и число кадров данного компонента, и число кадров промежуточной картинки являются степенью числа 2, то синтезирование соответствующих кадров компонента и кадров промежуточной картинки в соответствии с длительностью фиксации отображения каждого кадра, на шаге g) дополнительно содержит следующие действия:
g41) принимают наибольшее значение количества кадров компонента и количества кадров промежуточной картинки;
g42) определяют точки вставки кадра в соответствии с количеством кадров компонента, количеством кадров промежуточной картинки и наибольшим значением количества кадров компонента и количества кадров промежуточной картинки;
g43) синтезируют кадр компонента и кадр промежуточной картинки в каждой точке вставки.
g41) принимают наибольшее значение количества кадров компонента и количества кадров промежуточной картинки;
g42) определяют точки вставки кадра в соответствии с количеством кадров компонента, количеством кадров промежуточной картинки и наибольшим значением количества кадров компонента и количества кадров промежуточной картинки;
g43) синтезируют кадр компонента и кадр промежуточной картинки в каждой точке вставки.
13. Способ по любому из пп.2, 9-12, в котором синтезирование на шаге g) дополнительно содержит следующие действия:
g1) анализируют каждую пиксельную точку кадра в данном компоненте, оценивая, является ли прозрачным цвет данной пиксельной точки, если цвет данной пиксельной точки является прозрачным, то означает, что цвет соответствующей пиксельной точки синтезированного кадра такой же, как и цвет соответствующей пиксельной точки ассоциированного кадра промежуточной картинки, то возвращаются к шагу g1) и продолжают обрабатывать следующую пиксельную точку, в противном случае выполняют шаг g2);
g2) оценивают, есть ли в глобальной таблице цветов промежуточной картинки цвет, эквивалентный цвету данной пиксельной точки, если в глобальной таблице цветов промежуточной картинки есть цвет, эквивалентный цвету данной пиксельной точки, то маркируют соответствующую пиксельную точку синтезированного кадра с применением эквивалентного цвета, возвращаются к шагу g1) и продолжают обработку следующей пиксельной точки, в противном случае выполняют шаг g3);
g3) оценивают, до конца ли заполнена глобальная таблица цветов промежуточной картинки, если глобальная таблица цветов промежуточной картинки заполнена не до конца, то заполняют глобальную таблицу цветов промежуточной картинки цветом соответствующей пиксельной точки кадра данного компонента и маркируют соответствующую пиксельную точку синтезированного кадра этим цветом, если глобальная таблица цветов заполнена до конца, то ищут наименее отдаленный цвет в глобальной таблице цветов промежуточной картинки и маркируют соответствующую пиксельную точку синтезированного кадра этим цветом.
g1) анализируют каждую пиксельную точку кадра в данном компоненте, оценивая, является ли прозрачным цвет данной пиксельной точки, если цвет данной пиксельной точки является прозрачным, то означает, что цвет соответствующей пиксельной точки синтезированного кадра такой же, как и цвет соответствующей пиксельной точки ассоциированного кадра промежуточной картинки, то возвращаются к шагу g1) и продолжают обрабатывать следующую пиксельную точку, в противном случае выполняют шаг g2);
g2) оценивают, есть ли в глобальной таблице цветов промежуточной картинки цвет, эквивалентный цвету данной пиксельной точки, если в глобальной таблице цветов промежуточной картинки есть цвет, эквивалентный цвету данной пиксельной точки, то маркируют соответствующую пиксельную точку синтезированного кадра с применением эквивалентного цвета, возвращаются к шагу g1) и продолжают обработку следующей пиксельной точки, в противном случае выполняют шаг g3);
g3) оценивают, до конца ли заполнена глобальная таблица цветов промежуточной картинки, если глобальная таблица цветов промежуточной картинки заполнена не до конца, то заполняют глобальную таблицу цветов промежуточной картинки цветом соответствующей пиксельной точки кадра данного компонента и маркируют соответствующую пиксельную точку синтезированного кадра этим цветом, если глобальная таблица цветов заполнена до конца, то ищут наименее отдаленный цвет в глобальной таблице цветов промежуточной картинки и маркируют соответствующую пиксельную точку синтезированного кадра этим цветом.
14. Способ по любому из пп.1-3, в котором файл изображения является взаимозаменяемым файлом формата графического обмена (GIF) в формате файлов изображения.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100379993A CN100345164C (zh) | 2004-05-14 | 2004-05-14 | 一种动态虚拟形象的合成方法 |
CN200410037999.3 | 2004-05-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2006143545A RU2006143545A (ru) | 2008-06-20 |
RU2343543C2 true RU2343543C2 (ru) | 2009-01-10 |
Family
ID=35349692
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2006143545/09A RU2343543C2 (ru) | 2004-05-14 | 2005-01-06 | Способ синтезирования динамических виртуальных картинок |
Country Status (8)
Country | Link |
---|---|
US (1) | US10032290B2 (ru) |
JP (1) | JP4361950B2 (ru) |
KR (1) | KR100882250B1 (ru) |
CN (1) | CN100345164C (ru) |
CA (1) | CA2566787C (ru) |
HK (1) | HK1084476A1 (ru) |
RU (1) | RU2343543C2 (ru) |
WO (1) | WO2005111929A1 (ru) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2517398C2 (ru) * | 2009-09-25 | 2014-05-27 | Тенсент Текнолоджи (Шэньчжэнь) Компани Лимитед | Способ, устройство и система для сжатия и восстановления сжатого прозрачного изображения |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101281653B (zh) * | 2008-04-30 | 2011-06-15 | 拓维信息系统股份有限公司 | 将观众的个人脸谱融入动画角色的方法 |
WO2010050843A1 (ru) * | 2008-10-29 | 2010-05-06 | Kuznetsov Petr Mikhailovich | Способ формирования статических, динамических или анимационных изображений на коммуникационных устройствах |
CN103440612B (zh) * | 2013-08-27 | 2016-12-28 | 华为技术有限公司 | 一种gpu虚拟化中图像处理方法和装置 |
EP3255610B1 (en) * | 2015-03-02 | 2021-01-20 | Huawei Technologies Co. Ltd. | Image processing method and apparatus, and electronic terminal |
KR20190116606A (ko) | 2018-04-04 | 2019-10-15 | (주)온넷시스템즈코리아 | 하이브리드 이미지 정합 장치 |
Family Cites Families (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6327381B1 (en) * | 1994-12-29 | 2001-12-04 | Worldscape, Llc | Image transformation and synthesis methods |
JP2994996B2 (ja) * | 1995-12-01 | 1999-12-27 | 松下電器産業株式会社 | マルチメディア編集装置 |
EP1439705A3 (en) | 1997-03-17 | 2011-09-14 | Panasonic Corporation | Method and apparatus for processing, transmitting and receiving dynamic image data |
EP0895190A3 (en) * | 1997-07-18 | 2001-01-17 | Artwings Co., Ltd. | Motion detection system |
IL123738A0 (en) * | 1998-03-19 | 1998-10-30 | Banitt Shmuel | Method for processing variable speed scenes for computer games |
US6211881B1 (en) * | 1998-05-13 | 2001-04-03 | Compaq Computer Corporation | Image format conversion with transparency color adjustment |
US7027086B1 (en) | 1999-04-15 | 2006-04-11 | Sony Corporation | Photographing apparatus and signal processing method that allow data of still pictures to be converted into a moving picture file |
GB9913687D0 (en) * | 1999-06-11 | 1999-08-11 | Canon Kk | Image processing apparatus |
DE60044179D1 (de) * | 1999-12-28 | 2010-05-27 | Sony Corp | System und Verfahren für den kommerziellen Verkehr von Bildern |
AU2001238116A1 (en) * | 2000-02-11 | 2001-08-20 | Autolycus, Corporation | Generation and display of multi-image video streams |
US6628283B1 (en) * | 2000-04-12 | 2003-09-30 | Codehorse, Inc. | Dynamic montage viewer |
KR20010096412A (ko) | 2000-04-18 | 2001-11-07 | 양호준 | 인터넷을 이용한 아바타 생성장치 및 그 방법 |
US6618051B1 (en) * | 2000-04-26 | 2003-09-09 | Sony Corporation | System and method for creating and displaying representations of holographic images |
JP4560897B2 (ja) * | 2000-06-02 | 2010-10-13 | ソニー株式会社 | 通信装置、通信方法及び媒体 |
US7298520B2 (en) * | 2000-08-17 | 2007-11-20 | Dai Nippon Printing Co., Ltd. | Image printing system |
JP2002247566A (ja) * | 2000-11-30 | 2002-08-30 | Matsushita Electric Ind Co Ltd | 画像受信装置、画像送信装置および画像伝送システム |
JP2002298149A (ja) | 2001-03-29 | 2002-10-11 | Sharp Corp | データ合成処理装置、データ合成処理方法、データ合成処理プログラムを記録した機械読取可能な記録媒体およびデータ合成処理プログラム |
KR20010082779A (ko) | 2001-05-26 | 2001-08-31 | 이경환 | 이미지 데이터를 이용한 아바타 제작 방법 및 아바타를이용한 에이전트 시스템 |
KR100516638B1 (ko) * | 2001-09-26 | 2005-09-22 | 엘지전자 주식회사 | 화상 통신 시스템 |
KR20010114196A (ko) * | 2001-11-30 | 2001-12-29 | 오광호 | 아바타 제작방법과 그를 이용한 온라인상의 아바타제작시스템 및 방법 |
US20030128235A1 (en) * | 2002-01-10 | 2003-07-10 | International Business Machines Corporation | System for associating graphics frames with events and method therefor |
CA2479375A1 (en) | 2002-03-16 | 2003-10-02 | Questerra Corporation | Method, system, and program for an improved enterprise spatial system |
US7107285B2 (en) * | 2002-03-16 | 2006-09-12 | Questerra Corporation | Method, system, and program for an improved enterprise spatial system |
US6864897B2 (en) * | 2002-04-12 | 2005-03-08 | Mitsubishi Electric Research Labs, Inc. | Analysis, synthesis and control of data signals with temporal textures using a linear dynamic system |
CN1209723C (zh) | 2002-04-28 | 2005-07-06 | 上海友讯网络资讯有限公司 | 可自由组合的虚拟形象虚拟场景的形成方法 |
JP2004046513A (ja) | 2002-07-11 | 2004-02-12 | Basu Plus One:Kk | 2次元動画データ作成プログラム及び2次元動画データ作成方法 |
CN1389817A (zh) * | 2002-07-16 | 2003-01-08 | 雷永昌 | 一种网络虚拟人像的建构方法 |
JP3944019B2 (ja) * | 2002-07-31 | 2007-07-11 | キヤノン株式会社 | 情報処理装置および方法 |
CN1479250A (zh) * | 2002-08-29 | 2004-03-03 | 数位营运股份有限公司 | 虚拟图像物件化系统 |
CN1190683C (zh) * | 2003-02-11 | 2005-02-23 | 北京邮电大学 | 利用平面镜构成立体图像的观看装置 |
US7570803B2 (en) * | 2003-10-08 | 2009-08-04 | Microsoft Corporation | Virtual camera translation |
US7262783B2 (en) * | 2004-03-03 | 2007-08-28 | Virtual Iris Studios, Inc. | System for delivering and enabling interactivity with images |
US7706663B2 (en) * | 2004-10-12 | 2010-04-27 | Cyberlink Corp. | Apparatus and method for embedding content information in a video bit stream |
JP2010003198A (ja) * | 2008-06-23 | 2010-01-07 | Fuji Xerox Co Ltd | 文書管理システム、文書管理装置、プログラム |
WO2010062647A2 (en) * | 2008-10-28 | 2010-06-03 | Pixtronix, Inc. | System and method for selecting display modes |
-
2004
- 2004-05-14 CN CNB2004100379993A patent/CN100345164C/zh not_active Expired - Lifetime
-
2005
- 2005-01-06 JP JP2007511833A patent/JP4361950B2/ja active Active
- 2005-01-06 RU RU2006143545/09A patent/RU2343543C2/ru active
- 2005-01-06 CA CA2566787A patent/CA2566787C/en active Active
- 2005-01-06 KR KR1020067026235A patent/KR100882250B1/ko active IP Right Grant
- 2005-01-06 WO PCT/CN2005/000019 patent/WO2005111929A1/zh active Application Filing
- 2005-01-06 US US11/596,223 patent/US10032290B2/en active Active
-
2006
- 2006-04-20 HK HK06104733A patent/HK1084476A1/xx not_active IP Right Cessation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2517398C2 (ru) * | 2009-09-25 | 2014-05-27 | Тенсент Текнолоджи (Шэньчжэнь) Компани Лимитед | Способ, устройство и система для сжатия и восстановления сжатого прозрачного изображения |
Also Published As
Publication number | Publication date |
---|---|
CA2566787A1 (en) | 2005-11-24 |
WO2005111929A1 (fr) | 2005-11-24 |
CN100345164C (zh) | 2007-10-24 |
CN1696979A (zh) | 2005-11-16 |
JP4361950B2 (ja) | 2009-11-11 |
US20070279410A1 (en) | 2007-12-06 |
KR100882250B1 (ko) | 2009-02-06 |
RU2006143545A (ru) | 2008-06-20 |
JP2007537516A (ja) | 2007-12-20 |
KR20070011600A (ko) | 2007-01-24 |
US10032290B2 (en) | 2018-07-24 |
CA2566787C (en) | 2015-10-20 |
HK1084476A1 (en) | 2006-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10448031B2 (en) | Method of generating media file and storage medium storing media file generation program | |
CN111899322B (zh) | 视频处理方法、动画渲染sdk和设备及计算机存储介质 | |
CN111899155B (zh) | 视频处理方法、装置、计算机设备及存储介质 | |
RU2343543C2 (ru) | Способ синтезирования динамических виртуальных картинок | |
US8368813B2 (en) | Generating device, generating method, and program for reproducing subtitles from a file in which subtitle data relating to subtitles is stored | |
US20050088442A1 (en) | Moving picture data generation system, moving picture data generation method, moving picture data generation program, and information recording medium | |
CN101420612A (zh) | 数字图像处理设备及其控制方法和数字图像压缩方法 | |
US20030095596A1 (en) | Image processing apparatus, image processing method, and a computer-readable storage medium containing a computer program for image processing recorded thereon | |
US8699846B2 (en) | Reproducing device, reproducing method, program, and data structure | |
CN113225587B (zh) | 视频处理方法、视频处理装置及电子设备 | |
US20120251081A1 (en) | Image editing device, image editing method, and program | |
CN107707840A (zh) | 一种摄像模组及多图像数据传递的方法 | |
KR20100062822A (ko) | 협업적 영상 제작 관리 장치 | |
US20110242099A1 (en) | Image processing apparatus, image processing method, and program | |
US20060280479A1 (en) | Recording device, information recording medium and recording method | |
JP7457506B2 (ja) | 画像ファイル生成装置、画像ファイル生成方法、画像ファイル再生装置、画像ファイル再生方法、及びプログラム | |
TWI454150B (zh) | 影像檔案的處理方法 | |
CN108235144A (zh) | 播放内容获取方法、装置及计算设备 | |
CN117729296A (zh) | 视频生成方法、装置、计算机设备、存储介质和程序产品 | |
Næss | Efficient implementation and processing of a real-time panorama video pipeline with emphasis on color correction | |
CN116648917A (zh) | 将图像数据封装在文件中以用于渐进绘制的方法和设备 | |
JPH05328392A (ja) | 画像処理装置 | |
JP2001331246A (ja) | 画像関連データ表示装置 | |
JP2005027357A (ja) | マルチメディア情報編集装置 | |
JP2009130757A (ja) | コンテンツデータ変換装置 |